[mod] more samples

This commit is contained in:
Andy Bunce 2025-08-06 12:13:02 +01:00
parent 5b311838ba
commit 198bd66c09
3 changed files with 79 additions and 65 deletions

View file

@ -26,10 +26,12 @@ as map(*)
"result":{
"contents": [
`markdown here, this is **bold**.
A [link](http://google.com)
The last line.`
,
`A hover for { json:serialize($json?params?position) }
`A hover at \\n\\n{ json:serialize($json?params?position) }
uri: {$json?params?textDocument?uri} `
]
}

View file

@ -45,80 +45,35 @@
<div class="container-fluid">
<div class="row " style="overflow:hidden">
<div class="col-2">
ggg
<button id="load"> something</button>
<select id="load">
<option selected value="">load..</option>
<optgroup label="XQuery3">
<option value="https://raw.githubusercontent.com/expkg-zone58/pdfbox/refs/heads/main/src/Pdfbox3.xqm">Pdfbox3.xqm</option>
<option value="https://raw.githubusercontent.com/Quodatum/xqdoca/refs/heads/master/src/main/lib/model.xqm">model.xqm</option>
</optgroup>
<optgroup label="XQuery4">
<option value="https://git.quodatum.duckdns.org/quodatum/basex-lsp/raw/branch/main/webapp/lsp/lsp-text.xqm">lsp-text.xqm</option>
</optgroup>
<optgroup label="xpath">
<option value="https://raw.githubusercontent.com/dnovatchev/Articles/refs/heads/main/Generators/Code/generator.xpath">generator.xpath</option>
</optgroup>
</select>
</div>
<div class="col flex-grow-1" style="overflow: auto;">
<!-- Editor goes in here -->
<div id="editor"></div>
</div>
</div>
</div>
<!-- CodeMirror 6 -->
<script src="./lsp.bundle.js"></script>
<script>
<script src="./script.js"></script>
let doc = `3+1`;
// Load saved content from localStorage when the page loads
window.addEventListener('load', () => {
const savedText = localStorage.getItem('code');
if (savedText) {
doc = savedText;
}
});
const view = lsp.createEditorView(undefined, document.getElementById("editor"));
view.setState(lsp.createEditorState(doc, lsp.baseExts));
// Save content to localStorage when the page is about to unload
window.addEventListener('beforeunload', () => {
const doc = view.state.doc.toString();
localStorage.setItem('code', doc);
});
document.getElementById("connect").onclick = e => {
e.preventDefault()
connect()
};
document.getElementById("search").onclick = e => {
lsp.openSearchPanel(view);
};
document.getElementById("lint").onclick = e => {
lsp.openLintPanel(view);
};
document.getElementById("load").onclick = e => {
const url = "https://raw.githubusercontent.com/dnovatchev/Articles/refs/heads/main/Generators/Code/generator.xpath";
fetch(url)
.then(response => response.text())
.then(t => {
view.dispatch({
changes: {
from: 0,
to: view.state.doc.length,
insert: t
}
})
});
};
function connect() {
const server = document.getElementById("iServer").value;
const file = document.getElementById("iFile").value;
lsp.simpleWebSocketTransport(server)
.then(transport => {
let link = lsp.lsp(transport, file);
const doc = view.state.doc.toString();
const state = lsp.createEditorState(doc, [...lsp.baseExts, link]);
view.setState(state);
})
.catch(r => alert("fail"));
};
connect();
</script>
</body>
</html>

View file

@ -0,0 +1,57 @@
let doc = `3+1`;
// Load saved content from localStorage when the page loads
window.addEventListener('load', () => {
const savedText = localStorage.getItem('code');
if (savedText) {
doc = savedText;
}
});
const view = lsp.createEditorView(undefined, document.getElementById("editor"));
view.setState(lsp.createEditorState(doc, lsp.baseExts));
// Save content to localStorage when the page is about to unload
window.addEventListener('beforeunload', () => {
const doc = view.state.doc.toString();
localStorage.setItem('code', doc);
});
document.getElementById("connect").onclick = e => {
e.preventDefault()
connect()
};
document.getElementById("search").onclick = e => {
lsp.openSearchPanel(view);
};
document.getElementById("lint").onclick = e => {
lsp.openLintPanel(view);
};
document.getElementById("load").onchange = e => {
const url = e.target.value;
if(url.length==0)return
fetch(url)
.then(response => response.text())
.then(t => {
view.dispatch({
changes: {
from: 0,
to: view.state.doc.length,
insert: t
}
})
});
};
function connect() {
const server = document.getElementById("iServer").value;
const file = document.getElementById("iFile").value;
lsp.simpleWebSocketTransport(server)
.then(transport => {
let link = lsp.lsp(transport, file);
const doc = view.state.doc.toString();
const state = lsp.createEditorState(doc, [...lsp.baseExts, link]);
view.setState(state);
})
.catch(r => alert("fail"));
};
connect();