[mod] better completion info
This commit is contained in:
parent
a2fa9cb062
commit
9894581d19
6 changed files with 43 additions and 19 deletions
|
@ -4,4 +4,4 @@ declare variable $src:="sample.docs/parse-pdfbox.xml";
|
|||
declare variable $parse:=doc($src)/*;
|
||||
|
||||
let $context:= {"triggerCharacter":":","triggerKind":2.0e0}
|
||||
return comp:list($context )
|
||||
return comp:dummy($context )=>array:build()
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"hoverProvider": true,
|
||||
"hoverProvider": false,
|
||||
"documentSymbolProvider": true,
|
||||
"documentRangeFormattingProvider": false,
|
||||
"colorProvider": false,
|
||||
|
|
|
@ -9,6 +9,7 @@ import module namespace lspt = 'lsp-typedefs' at 'lsp-typedefs.xqm';
|
|||
import module namespace pos="lsp/position" at "position.xqm";
|
||||
import module namespace syms="lsp/symbols" at "providers/documentSymbols.xqm";
|
||||
import module namespace comp = 'lsp-completions' at "providers/completions.xqm";
|
||||
import module namespace hov = 'lsp-hover' at "providers/hover.xqm";
|
||||
|
||||
declare variable $lsp-text:methods:=map{
|
||||
"textDocument/didOpen": lsp-text:didOpen#1,
|
||||
|
@ -30,14 +31,8 @@ as map(*)
|
|||
{
|
||||
let $pos:=$json?params?position
|
||||
let $uri:= $json?params?textDocument?uri
|
||||
let $word:="TODO"
|
||||
let $r:= [
|
||||
`Hover { pos:ln-col($pos) }, uri: {$uri},
|
||||
[path](https://quodatum.github.io/basex-xqparse/i-BaseX.xhtml#EQName)
|
||||
|
||||
WordAt: {$word}`
|
||||
]
|
||||
return rpc:result($json,{"contents":$r})
|
||||
let $r:=hov:list($uri,$pos)
|
||||
return rpc:result($json,{"contents":array:build($r)})
|
||||
};
|
||||
|
||||
(:~ symbols :)
|
||||
|
@ -57,8 +52,8 @@ as map(*)?
|
|||
{
|
||||
let $doc:=$json?params?textDocument?uri
|
||||
let $context:=$json?params?context (:{"triggerCharacter":":","triggerKind":2.0e0}:)
|
||||
let $result:=comp:dummy($context)=>array:build()
|
||||
return rpc:result($json,$result)
|
||||
let $result:=comp:dummy($context)
|
||||
return rpc:result($json,array:build($result))
|
||||
};
|
||||
|
||||
declare
|
||||
|
|
|
@ -339,5 +339,18 @@ export interface CompletionItem {
|
|||
:)
|
||||
declare record lspt:CompletionItem(
|
||||
label as xs:string,
|
||||
kind? as lspt:CompletionItemKind
|
||||
kind? as lspt:CompletionItemKind,
|
||||
tags? as xs:string* :=(),
|
||||
detail? as xs:string,
|
||||
documentation? as (xs:string|lspt:MarkupContent)
|
||||
);
|
||||
|
||||
|
||||
declare type lspt:MarkupKind as enum('plaintext' , 'markdown');
|
||||
(: A `MarkupContent` literal represents a string value which content is
|
||||
* interpreted base on its kind flag.
|
||||
:)
|
||||
declare record lspt:MarkupContent(
|
||||
kind as lspt:MarkupKind,
|
||||
value as xs:string
|
||||
);
|
|
@ -10,10 +10,14 @@ as lspt:CompletionItem*{
|
|||
|
||||
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)
|
||||
})
|
||||
message($context,"context: "),
|
||||
map:for-each(
|
||||
$lspt:CompletionItemKindMap,
|
||||
fn($k,$v){
|
||||
let $d:=lspt:MarkupContent(
|
||||
'markdown',
|
||||
'[path](https://quodatum.github.io/basex-xqparse/i-BaseX.xhtml#EQName)'
|
||||
)
|
||||
return lspt:CompletionItem($k,$v,detail:="detail",documentation:=$d)
|
||||
})
|
||||
};
|
12
webapp/lsp/providers/hover.xqm
Normal file
12
webapp/lsp/providers/hover.xqm
Normal file
|
@ -0,0 +1,12 @@
|
|||
module namespace hov = 'lsp-hover';
|
||||
import module namespace lspt = 'lsp-typedefs' at "../lsp-typedefs.xqm";
|
||||
import module namespace pos="lsp/position" at "../position.xqm";
|
||||
|
||||
declare function hov:list($uri, $pos as map(*))
|
||||
as xs:string*{
|
||||
let $word:="TODO"
|
||||
return `Hover { pos:ln-col($pos) }, uri: {$uri},
|
||||
[path](https://quodatum.github.io/basex-xqparse/i-BaseX.xhtml#EQName)
|
||||
|
||||
WordAt: {$word}`
|
||||
};
|
Loading…
Add table
Reference in a new issue