[mod] more samples
This commit is contained in:
parent
5b311838ba
commit
198bd66c09
3 changed files with 79 additions and 65 deletions
|
@ -25,11 +25,13 @@ as map(*)
|
||||||
"id": $json?id,
|
"id": $json?id,
|
||||||
"result":{
|
"result":{
|
||||||
"contents": [
|
"contents": [
|
||||||
`markdown here, this is **bold**.
|
`markdown here, this is **bold**.
|
||||||
|
|
||||||
A [link](http://google.com)
|
A [link](http://google.com)
|
||||||
|
|
||||||
The last line.`
|
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} `
|
uri: {$json?params?textDocument?uri} `
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,80 +45,35 @@
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row " style="overflow:hidden">
|
<div class="row " style="overflow:hidden">
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
ggg
|
<select id="load">
|
||||||
<button id="load"> something</button>
|
<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>
|
||||||
|
|
||||||
<div class="col flex-grow-1" style="overflow: auto;">
|
<div class="col flex-grow-1" style="overflow: auto;">
|
||||||
|
|
||||||
|
|
||||||
<!-- Editor goes in here -->
|
<!-- Editor goes in here -->
|
||||||
|
|
||||||
<div id="editor"></div>
|
<div id="editor"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- CodeMirror 6 -->
|
<!-- CodeMirror 6 -->
|
||||||
<script src="./lsp.bundle.js"></script>
|
<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>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
57
webapp/static/clients/codemirror/script.js
Normal file
57
webapp/static/clients/codemirror/script.js
Normal 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();
|
Loading…
Add table
Reference in a new issue