[add] server save/default
This commit is contained in:
parent
433a2c54a7
commit
532580273b
2 changed files with 36 additions and 27 deletions
|
@ -112,7 +112,7 @@
|
|||
</header>
|
||||
<div class="modal-body">
|
||||
<div id="state">🔴</div>
|
||||
<input id="iServer" type="text" value="ws://localhost:3000/ws/lsp" style="width:25em" />
|
||||
<input id="iServer" type="text" style="width:25em" />
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="connect">connect</button>
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
const view = new lsp.EditorView({
|
||||
extensions: lsp.baseExts,
|
||||
parent:document.getElementById("editor")
|
||||
parent: document.getElementById("editor")
|
||||
});
|
||||
let doc = "xquery version '3.1';\n(:~ comment:)\nmodule namespace pdfbox='ns';\n";
|
||||
var client;
|
||||
var extLint;
|
||||
|
||||
function $(id){ return document.getElementById(id) };
|
||||
function $(id) { return document.getElementById(id) };
|
||||
|
||||
// Load saved content from localStorage when the page loads
|
||||
window.addEventListener('load', () => {
|
||||
const savedText = localStorage.getItem('code');
|
||||
if (savedText) {
|
||||
doc = savedText;
|
||||
if (savedText) doc = savedText;
|
||||
let svr = localStorage.getItem('lsp');
|
||||
if (!svr) {
|
||||
let x = new URL(window.location.href);
|
||||
x.protocol = "ws";
|
||||
x.pathname = "ws/lsp"
|
||||
svr = x.href;
|
||||
}
|
||||
|
||||
view.setState(lsp.EditorState.create({doc:doc, extensions: lsp.baseExts}));
|
||||
$("iServer").value = svr;
|
||||
view.setState(lsp.EditorState.create({ doc: doc, extensions: lsp.baseExts }));
|
||||
connect();
|
||||
});
|
||||
|
||||
|
@ -23,24 +28,25 @@ window.addEventListener('load', () => {
|
|||
window.addEventListener('beforeunload', () => {
|
||||
const doc = view.state.doc.toString();
|
||||
localStorage.setItem('code', doc);
|
||||
localStorage.setItem('lsp', $("iServer").value);
|
||||
});
|
||||
|
||||
$("connect").onclick = e => { e.preventDefault();connect()};
|
||||
$("connect").onclick = e => { e.preventDefault(); connect() };
|
||||
|
||||
$("search").onclick = e => lsp.openSearchPanel(view);
|
||||
|
||||
$("format").onclick = e => console.log("CMDS",lsp.listCommands(view));
|
||||
$("format").onclick = e => console.log("CMDS", lsp.listCommands(view));
|
||||
|
||||
$("lint").onclick = async e => {
|
||||
console.log("word", view.state.wordAt(1));
|
||||
lsp.openLintPanel(view);
|
||||
};
|
||||
|
||||
$("sync").onclick = e => { client.sync(); console.log("XXXsync");};
|
||||
$("sync").onclick = e => { client.sync(); console.log("XXXsync"); };
|
||||
|
||||
$("format").onclick = e => {
|
||||
client.sync();
|
||||
console.log("FMT",lsp.formatDocument(view));
|
||||
console.log("FMT", lsp.formatDocument(view));
|
||||
};
|
||||
|
||||
$("load").onchange = e => {
|
||||
|
@ -70,20 +76,23 @@ function connect() {
|
|||
transport.socket.onclose = (event) => connectStatus(false);
|
||||
transport.socket.oneror = (event) => $("msg").innerText = "sock error!";
|
||||
transport.subscribe(incoming);
|
||||
client = new lsp.LSPClient({extensions: lsp.languageServerExtensions()});
|
||||
client = new lsp.LSPClient({ extensions: lsp.languageServerExtensions() });
|
||||
client.connect(transport);
|
||||
$("popConnect").hidePopover();
|
||||
connectStatus(true);
|
||||
let extLsp =client.plugin( file, "xquery");
|
||||
let up=lsp.debouncedChangeListener({
|
||||
let extLsp = client.plugin(file, "xquery");
|
||||
let up = lsp.debouncedChangeListener({
|
||||
delay: 750,
|
||||
onChange: (content, state) => {
|
||||
console.log('Debounced change detected:');
|
||||
client.sync();
|
||||
}})
|
||||
}
|
||||
})
|
||||
|
||||
view.dispatch({ effects: lsp.StateEffect.appendConfig.of(
|
||||
[lsp.linter(null, {autoPanel:true}),...extLsp,up]) })
|
||||
view.dispatch({
|
||||
effects: lsp.StateEffect.appendConfig.of(
|
||||
[lsp.linter(null, { autoPanel: true }), ...extLsp, up])
|
||||
})
|
||||
})
|
||||
.catch(r => { connectStatus(false); alert("connection failed: " + server) });
|
||||
|
||||
|
@ -107,11 +116,11 @@ function incoming(msg) {
|
|||
|
||||
|
||||
function log(rpc) {
|
||||
console.log("<-",rpc)
|
||||
console.log("<-", rpc)
|
||||
if (rpc.id) return
|
||||
const text = rpc.method;
|
||||
const li = document.createElement("li");
|
||||
const n=$("traffic").childElementCount + " ";
|
||||
const n = $("traffic").childElementCount + " ";
|
||||
li.appendChild(document.createTextNode(n + text));
|
||||
$("traffic").insertBefore(li, $("traffic").firstChild)
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue