[fix] load
This commit is contained in:
parent
49b4b1529a
commit
97d0deef0d
5 changed files with 23 additions and 18 deletions
|
@ -9,7 +9,7 @@ services:
|
||||||
- "3001:1984"
|
- "3001:1984"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/srv/basex/data
|
- ./data:/srv/basex/data
|
||||||
- ./webapp/web.xml:/srv/basex/webapp/WEB-INF/web.xml # set websocket options 12.1+
|
# - ./webapp/web.xml:/srv/basex/webapp/WEB-INF/web.xml # set websocket options 12.1+
|
||||||
- ./webapp/lsp:/srv/basex/webapp/lsp
|
- ./webapp/lsp:/srv/basex/webapp/lsp
|
||||||
- ./webapp/static/clients:/srv/basex/webapp/static/clients
|
- ./webapp/static/clients:/srv/basex/webapp/static/clients
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"cells":[{"kind":2,"language":"xquery","value":"(:<:)\r\n\r\nimport module namespace docs=\"lsp/docs\" at \"/srv/basex/webapp/lsp/docs.xqm\";"},{"kind":2,"language":"xquery","value":"ws:ids()"},{"kind":2,"language":"xquery","value":"let $sock:=foot(ws:ids())\r\nlet $f:=docs:list($sock)\r\nreturn docs:get($sock,$f,\"textDocument\")"}]}
|
{"cells":[{"kind":2,"language":"xquery","value":"(:<:)\r\n\r\nimport module namespace docs=\"lsp/docs\" at \"/srv/basex/webapp/lsp/docs.xqm\";"},{"kind":2,"language":"xquery","value":"ws:ids()"},{"kind":2,"language":"xquery","value":"let $sock:=foot(ws:ids())\r\nlet $f:=docs:list($sock)\r\nlet $t:=docs:get($sock,$f,\"textDocument\")?text\r\nreturn $t"}]}
|
|
@ -94,15 +94,27 @@ declare function docs:key(
|
||||||
ws:get($socket,"files")($file)($property)
|
ws:get($socket,"files")($file)($property)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
(: get $property key for $file from session $socket :)
|
||||||
|
declare function docs:get(
|
||||||
|
$socket as xs:string,
|
||||||
|
$file as xs:string,
|
||||||
|
$property as docs:property
|
||||||
|
) as item()?
|
||||||
|
{
|
||||||
|
ws:get($socket,
|
||||||
|
docs:key($socket,$file,$property)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
declare function docs:parse(
|
declare function docs:parse(
|
||||||
$socket as xs:string,
|
$socket as xs:string,
|
||||||
$file as xs:string
|
$file as xs:string
|
||||||
)as map(*)?
|
)as map(*)?
|
||||||
{
|
{
|
||||||
let $text:=docs:key($socket,$file,"textDocument")
|
let $text:=docs:get($socket,$file,"textDocument")?text
|
||||||
let $xml:= p:parse-Module($text)=>prof:time("⏱️ p:parse-Module " || $file)
|
let $xml:= p:parse-Module($text)=>prof:time("⏱️ p:parse-Module " || $file)
|
||||||
return (
|
return (
|
||||||
ws:set($socket,docs:key($socket,$file,"parse"),$xml),
|
ws:set($socket,docs:key($socket,$file,"parse"),$xml),
|
||||||
rpc:log(`done {$xml/name(.)}`)
|
rpc:log(`{ current-dateTime() } done {$xml/name(.)} size: { string-length( $text) }`)
|
||||||
)
|
)
|
||||||
};
|
};
|
|
@ -57,16 +57,7 @@ function lsp-text:didOpen($json as map(*))
|
||||||
as map(*)?
|
as map(*)?
|
||||||
{
|
{
|
||||||
let $uri:=docs:open(ws:id(),$json?params)=>prof:time("⏱️ doc:save ")
|
let $uri:=docs:open(ws:id(),$json?params)=>prof:time("⏱️ doc:save ")
|
||||||
|
return docs:parse(ws:id(),$uri)
|
||||||
(:
|
|
||||||
let $xml:=prof:time(p:parse-Module($text),"⏱️ p:parse-Module ")
|
|
||||||
let $x:=job:eval(xs:anyURI("parse.xq"),
|
|
||||||
{"params" : $json?params,
|
|
||||||
"webSocket":ws:id()},
|
|
||||||
{ 'cache': true() }
|
|
||||||
)
|
|
||||||
:)
|
|
||||||
return rpc:log("saved " || $uri)
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -77,7 +68,6 @@ function lsp-text:didChange($json as map(*))
|
||||||
as map(*)?
|
as map(*)?
|
||||||
{
|
{
|
||||||
let $uri:=docs:change(ws:id(),$json?params)=>prof:time("⏱️ doc:change ")
|
let $uri:=docs:change(ws:id(),$json?params)=>prof:time("⏱️ doc:change ")
|
||||||
|
|
||||||
return docs:parse(ws:id(),$uri)
|
return docs:parse(ws:id(),$uri)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
let doc = `3+1`;
|
|
||||||
// Load saved content from localStorage when the page loads
|
// Load saved content from localStorage when the page loads
|
||||||
window.addEventListener('load', () => {
|
window.addEventListener('load', () => {
|
||||||
const savedText = localStorage.getItem('code');
|
const savedText = localStorage.getItem('code');
|
||||||
if (savedText) {
|
if (savedText) {
|
||||||
doc = savedText;
|
doc = savedText;
|
||||||
}
|
}
|
||||||
|
view.setState(lsp.createEditorState(doc, lsp.baseExts));
|
||||||
|
connect();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const view = lsp.createEditorView(undefined, document.getElementById("editor"));
|
const view = lsp.createEditorView(undefined, document.getElementById("editor"));
|
||||||
view.setState(lsp.createEditorState(doc, lsp.baseExts));
|
let doc = `3+1`;
|
||||||
let client;
|
let client;
|
||||||
|
|
||||||
|
|
||||||
// Save content to localStorage when the page is about to unload
|
// Save content to localStorage when the page is about to unload
|
||||||
window.addEventListener('beforeunload', () => {
|
window.addEventListener('beforeunload', () => {
|
||||||
const doc = view.state.doc.toString();
|
const doc = view.state.doc.toString();
|
||||||
|
@ -57,4 +61,3 @@ function connect() {
|
||||||
})
|
})
|
||||||
.catch(r => alert("connection failed: "+ server));
|
.catch(r => alert("connection failed: "+ server));
|
||||||
};
|
};
|
||||||
connect();
|
|
Loading…
Add table
Reference in a new issue