[mod] connects

This commit is contained in:
Andy Bunce 2025-07-11 22:51:59 +01:00
parent 1c758567d4
commit 3c60660f16
5 changed files with 46 additions and 173 deletions

View file

@ -1,6 +1,11 @@
import * as ace from "ace-builds/ace";
import {Mode as JSONMode} from "ace-builds/src/mode/json"; // any mode you want
import {AceLanguageClient} from "ace-linters/build/ace-language-client";
import * as aceBuilds from 'https://esm.run/ace-builds';
import ace from 'https://cdn.jsdelivr.net/npm/ace/+esm'
/* import 'ace-builds/src-noconflict/mode-javascript';
import 'ace-builds/src-noconflict/theme-chrome'; */
/* import {AceLanguageClient} from "ace-linters/build/ace-language-client";
const serverData = {
module: () => import("ace-linters/build/language-client"),
@ -8,12 +13,16 @@ const serverData = {
type: "socket",
socket: new WebSocket("ws://127.0.0.1:3000/ws/lsp"), // your websocket server address
}
// Create an Ace editor
let editor = ace.edit("container", {
mode: new JSONMode()
*/
// Initialize the editor
const editor = ace.edit("editor", {
theme: "ace/theme/chrome",
mode: "ace/mode/javascript",
fontSize: "14px",
showPrintMargin: false,
useWorker: false // Disable web worker for this simple demo
});
// Create a language provider for WebSocket
let languageProvider = AceLanguageClient.for(serverData);
languageProvider.registerEditor(editor);
//let languageProvider = AceLanguageClient.for(serverData);
//languageProvider.registerEditor(editor);

View file

@ -1,34 +1,42 @@
<!DOCTYPE html>
<html>
<html lang="en-US">
<head>
<script type="importmap">
{
"imports": {
"ace-builds": "https://www.unpkg.com/ace-builds@latest/src-noconflict"
}
}
</script>
<meta charset="utf-8">
<title>BaseX LSP</title>
<script src="https://www.unpkg.com/ace-builds@latest/src-noconflict/ace.js"></script>
<script src="https://www.unpkg.com/ace-builds@latest/src-noconflict/ext-language_tools.js"></script>
<script src="https://www.unpkg.com/ace-linters@latest/build/ace-linters.js"></script>
<script src="https://www.unpkg.com/ace-linters@latest/build/ace-language-client.js"></script>
</head>
<body>
<div>something</div>
<div id="editor" style="height: 100px">some text</div>
<script>
let servers = [
{
module: () => import("ace-linters/build/language-client"),
modes: "astro",
type: "socket",
socket: new WebSocket("ws://127.0.0.1:8080/ws/lsp"),
}
];
let languageProvider = AceLanguageClient.for(servers);
ace.require("ace/ext/language_tools"); //To allow autocompletion
var editor = ace.edit("editor", {
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
mode: "ace/mode/xml"
mode: "ace/mode/json"
});
var provider = LanguageProvider.fromCdn("https://www.unpkg.com/ace-linters@latest/build/");
provider.registerEditor(editor);
languageProvider.registerEditor(editor);
editor.session.setMode("astro"); // mode now contains "ace/mode/javascript".
</script>
</body>
</html>