From a2fa9cb06298b84e64b5cf96ffe173ac3ca28b66 Mon Sep 17 00:00:00 2001 From: Andy Bunce Date: Fri, 10 Oct 2025 12:17:46 +0100 Subject: [PATCH] [mod] completions --- test/completion.xq | 7 +++++++ test/symbols.xq | 2 +- webapp/lsp/lsp-text.xqm | 2 +- webapp/lsp/providers/completions.xqm | 12 +++++++++++- 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 test/completion.xq diff --git a/test/completion.xq b/test/completion.xq new file mode 100644 index 0000000..288baf7 --- /dev/null +++ b/test/completion.xq @@ -0,0 +1,7 @@ + +import module namespace comp = 'lsp-completions' at "../webapp/lsp/providers/completions.xqm"; +declare variable $src:="sample.docs/parse-pdfbox.xml"; +declare variable $parse:=doc($src)/*; + +let $context:= {"triggerCharacter":":","triggerKind":2.0e0} +return comp:list($context ) diff --git a/test/symbols.xq b/test/symbols.xq index 7491043..d82ffde 100644 --- a/test/symbols.xq +++ b/test/symbols.xq @@ -3,4 +3,4 @@ declare variable $src:="sample.docs/parse-pdfbox.xml"; declare variable $parse:=doc($src)/*; -syms:list($parse ) +syms:list($parse,string($parse )) diff --git a/webapp/lsp/lsp-text.xqm b/webapp/lsp/lsp-text.xqm index 6d19217..df08a4b 100644 --- a/webapp/lsp/lsp-text.xqm +++ b/webapp/lsp/lsp-text.xqm @@ -57,7 +57,7 @@ as map(*)? { let $doc:=$json?params?textDocument?uri let $context:=$json?params?context (:{"triggerCharacter":":","triggerKind":2.0e0}:) - let $result:=comp:list($context)=>array:build() + let $result:=comp:dummy($context)=>array:build() return rpc:result($json,$result) }; diff --git a/webapp/lsp/providers/completions.xqm b/webapp/lsp/providers/completions.xqm index 5cf96a7..f5d0b0b 100644 --- a/webapp/lsp/providers/completions.xqm +++ b/webapp/lsp/providers/completions.xqm @@ -5,5 +5,15 @@ import module namespace lspt = 'lsp-typedefs' at "../lsp-typedefs.xqm"; declare function comp:list($context as map(*)) as lspt:CompletionItem*{ message($context,"context: "), - (1 to 5)!lspt:CompletionItem("item"+.,.) + (1 to 20)!lspt:CompletionItem("item"||.,.) +}; + +declare function comp:dummy($context as map(*)) +as lspt:CompletionItem*{ + + message($context,"context: "), + map:for-each($lspt:CompletionItemKindMap, + fn($k,$v){ + lspt:CompletionItem($k,$v) + }) }; \ No newline at end of file