diff --git a/crates/nuwiki-lsp/src/commands.rs b/crates/nuwiki-lsp/src/commands.rs index e3335b4..d45dd27 100644 --- a/crates/nuwiki-lsp/src/commands.rs +++ b/crates/nuwiki-lsp/src/commands.rs @@ -238,7 +238,7 @@ fn file_delete(args: Vec) -> Result, String> { fn list_checkbox( backend: &Backend, args: Vec, - mutate: fn(&str) -> Option<&'static str>, + mutate: fn(&nuwiki_core::listsyms::ListSyms, &str) -> Option, ) -> Result, String> { let p = parse_pos(args)?; let doc = match backend.documents.get(&p.uri) { @@ -247,12 +247,14 @@ fn list_checkbox( }; let utf8 = backend.use_utf8.load(Ordering::Relaxed); let (line, col) = nav::lsp_to_byte_pos(p.position, &doc.text, utf8); - let propagate = backend - .wiki_for_uri(&p.uri) - .map(|w| w.config.listsyms_propagate) - .unwrap_or(true); + let wiki = backend.wiki_for_uri(&p.uri); + let syms = wiki + .as_ref() + .map(|w| nuwiki_core::listsyms::ListSyms::new(&w.config.listsyms)) + .unwrap_or_default(); + let propagate = wiki.map(|w| w.config.listsyms_propagate).unwrap_or(true); Ok(ops::checkbox_edit( - &doc.text, &doc.ast, &p.uri, line, col, utf8, mutate, propagate, + &doc.text, &doc.ast, &p.uri, line, col, utf8, &syms, mutate, propagate, )) } @@ -1139,9 +1141,9 @@ fn export_all(backend: &Backend, args: Vec, force: bool) -> Result