Fix bug with lists
This commit is contained in:
parent
decac73fec
commit
de983979c4
3 changed files with 18 additions and 17 deletions
|
@ -340,6 +340,20 @@ impl Rule for ListRule {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(hints) =
|
||||||
|
Hints::from_source(cursor.source.clone(), &state.shared.lsp)
|
||||||
|
{
|
||||||
|
let mut label = String::new();
|
||||||
|
for (_, id) in &depth
|
||||||
|
{
|
||||||
|
if !label.is_empty() {
|
||||||
|
label.push('.');
|
||||||
|
}
|
||||||
|
label.push_str(id.to_string().as_str());
|
||||||
|
}
|
||||||
|
hints.add(captures.get(1).unwrap().end(), label);
|
||||||
|
}
|
||||||
|
|
||||||
// Content
|
// Content
|
||||||
let entry_start = captures.get(3).unwrap().start();
|
let entry_start = captures.get(3).unwrap().start();
|
||||||
let mut entry_content = captures.get(3).unwrap().as_str().to_string();
|
let mut entry_content = captures.get(3).unwrap().as_str().to_string();
|
||||||
|
@ -396,20 +410,6 @@ impl Rule for ListRule {
|
||||||
ListRule::push_markers(&token, state, document, &vec![], &depth);
|
ListRule::push_markers(&token, state, document, &vec![], &depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(hints) =
|
|
||||||
Hints::from_source(token.source(), &state.shared.lsp)
|
|
||||||
{
|
|
||||||
let mut label = String::new();
|
|
||||||
for (_, id) in &depth
|
|
||||||
{
|
|
||||||
if !label.is_empty() {
|
|
||||||
label.push('.');
|
|
||||||
}
|
|
||||||
label.push_str(id.to_string().as_str());
|
|
||||||
}
|
|
||||||
hints.add(captures.get(1).unwrap().end(), label);
|
|
||||||
}
|
|
||||||
|
|
||||||
state.push(
|
state.push(
|
||||||
document,
|
document,
|
||||||
Box::new(ListEntry {
|
Box::new(ListEntry {
|
||||||
|
|
|
@ -590,7 +590,7 @@ nml.section.push("6", 6, "", "refname")
|
||||||
section_name { delta_line == 0, delta_start == 1 };
|
section_name { delta_line == 0, delta_start == 1 };
|
||||||
|
|
||||||
section_heading { delta_line == 1, delta_start == 0, length == 2 };
|
section_heading { delta_line == 1, delta_start == 0, length == 2 };
|
||||||
section_reference { delta_line == 0, delta_start == 2, length == 3 };
|
section_reference { delta_line == 0, delta_start == 2, length == 4 };
|
||||||
section_kind { delta_line == 0, delta_start == 4, length == 1 };
|
section_kind { delta_line == 0, delta_start == 4, length == 1 };
|
||||||
section_name { delta_line == 0, delta_start == 1 };
|
section_name { delta_line == 0, delta_start == 1 };
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
use std::borrow::BorrowMut;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
|
@ -53,9 +54,9 @@ fn from_source_impl(
|
||||||
return from_source_impl(location.source(), target, lsp, original);
|
return from_source_impl(location.source(), target, lsp, original);
|
||||||
} else if let Ok(sourcefile) = source.downcast_rc::<SourceFile>() {
|
} else if let Ok(sourcefile) = source.downcast_rc::<SourceFile>() {
|
||||||
let borrow = lsp.as_ref().unwrap().borrow();
|
let borrow = lsp.as_ref().unwrap().borrow();
|
||||||
let definitions = borrow.definitions.get(&original.source()).unwrap();
|
if let Some(def_data) = borrow.definitions.get(&original.source())
|
||||||
let mut db = definitions.definitions.borrow_mut();
|
|
||||||
{
|
{
|
||||||
|
let mut db = def_data.definitions.borrow_mut();
|
||||||
let token = original.source().original_range(original.range).1;
|
let token = original.source().original_range(original.range).1;
|
||||||
|
|
||||||
// Resolve target
|
// Resolve target
|
||||||
|
|
Loading…
Reference in a new issue