[add] server save/default

This commit is contained in:
Andy Bunce 2025-08-29 11:39:39 +01:00
parent 433a2c54a7
commit 532580273b
2 changed files with 36 additions and 27 deletions

View file

@ -112,7 +112,7 @@
</header> </header>
<div class="modal-body"> <div class="modal-body">
<div id="state">🔴</div> <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>
<div class="modal-footer"> <div class="modal-footer">
<button id="connect">connect</button> <button id="connect">connect</button>

View file

@ -11,10 +11,15 @@ function $(id){ return document.getElementById(id) };
// 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; let svr = localStorage.getItem('lsp');
if (!svr) {
let x = new URL(window.location.href);
x.protocol = "ws";
x.pathname = "ws/lsp"
svr = x.href;
} }
$("iServer").value = svr;
view.setState(lsp.EditorState.create({ doc: doc, extensions: lsp.baseExts })); view.setState(lsp.EditorState.create({ doc: doc, extensions: lsp.baseExts }));
connect(); connect();
}); });
@ -23,6 +28,7 @@ window.addEventListener('load', () => {
window.addEventListener('beforeunload', () => { window.addEventListener('beforeunload', () => {
const doc = view.state.doc.toString(); const doc = view.state.doc.toString();
localStorage.setItem('code', doc); localStorage.setItem('code', doc);
localStorage.setItem('lsp', $("iServer").value);
}); });
$("connect").onclick = e => { e.preventDefault(); connect() }; $("connect").onclick = e => { e.preventDefault(); connect() };
@ -80,10 +86,13 @@ function connect() {
onChange: (content, state) => { onChange: (content, state) => {
console.log('Debounced change detected:'); console.log('Debounced change detected:');
client.sync(); client.sync();
}}) }
})
view.dispatch({ effects: lsp.StateEffect.appendConfig.of( view.dispatch({
[lsp.linter(null, {autoPanel:true}),...extLsp,up]) }) effects: lsp.StateEffect.appendConfig.of(
[lsp.linter(null, { autoPanel: true }), ...extLsp, up])
})
}) })
.catch(r => { connectStatus(false); alert("connection failed: " + server) }); .catch(r => { connectStatus(false); alert("connection failed: " + server) });