[mod] wsl
This commit is contained in:
parent
b741dc5952
commit
ddd772f563
69 changed files with 26660 additions and 25940 deletions
|
|
@ -1,28 +1,28 @@
|
|||
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"),
|
||||
modes: "json|json5",
|
||||
type: "socket",
|
||||
socket: new WebSocket("ws://127.0.0.1:3000/ws/lsp"), // your websocket server address
|
||||
}
|
||||
*/
|
||||
// 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);
|
||||
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"),
|
||||
modes: "json|json5",
|
||||
type: "socket",
|
||||
socket: new WebSocket("ws://127.0.0.1:3000/ws/lsp"), // your websocket server address
|
||||
}
|
||||
*/
|
||||
// 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);
|
||||
|
|
@ -1,44 +1,44 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<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"
|
||||
//"ws://127.0.0.1:3000/exampleserver"
|
||||
),
|
||||
}
|
||||
];
|
||||
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/json"
|
||||
});
|
||||
|
||||
languageProvider.registerEditor(editor);
|
||||
editor.session.setMode("astro"); // mode now contains "ace/mode/javascript".
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<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"
|
||||
//"ws://127.0.0.1:3000/exampleserver"
|
||||
),
|
||||
}
|
||||
];
|
||||
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/json"
|
||||
});
|
||||
|
||||
languageProvider.registerEditor(editor);
|
||||
editor.session.setMode("astro"); // mode now contains "ace/mode/javascript".
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -1,39 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Editor</title>
|
||||
<style type="text/css" media="screen">
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#editor {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<pre id="editor">function foo(items) {
|
||||
var i;
|
||||
for (i = 0; i < items.length; i++) {
|
||||
alert("Ace Rocks " + items[i]);
|
||||
}
|
||||
}</pre>
|
||||
|
||||
<script src="src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script>
|
||||
var editor = ace.edit("editor");
|
||||
editor.setTheme("ace/theme/twilight");
|
||||
editor.session.setMode("ace/mode/javascript");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Editor</title>
|
||||
<style type="text/css" media="screen">
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#editor {
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<pre id="editor">function foo(items) {
|
||||
var i;
|
||||
for (i = 0; i < items.length; i++) {
|
||||
alert("Ace Rocks " + items[i]);
|
||||
}
|
||||
}</pre>
|
||||
|
||||
<script src="src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
|
||||
<script>
|
||||
var editor = ace.edit("editor");
|
||||
editor.setTheme("ace/theme/twilight");
|
||||
editor.session.setMode("ace/mode/javascript");
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
REM default port 5008
|
||||
REM https://download.eclipse.org/lemminx/releases/0.31.0/
|
||||
REM default port 5008
|
||||
REM https://download.eclipse.org/lemminx/releases/0.31.0/
|
||||
java -cp org.eclipse.lemminx-uber.jar org.eclipse.lemminx.XMLServerSocketLauncher
|
||||
|
|
@ -1,72 +1,72 @@
|
|||
(:~ web socket for ace
|
||||
:)
|
||||
module namespace lsp="urn:quodatum:vscode";
|
||||
import module namespace ws = "http://basex.org/modules/ws";
|
||||
|
||||
declare
|
||||
%ws:connect('/ws/exampleServer')
|
||||
function lsp:connect()
|
||||
as empty-sequence(){
|
||||
let $_:=trace(ws:id(),"BaseX socket id: ")
|
||||
return ()
|
||||
};
|
||||
|
||||
(:~
|
||||
: Processes a WebSocket message.
|
||||
: @param $message message
|
||||
:)
|
||||
declare
|
||||
%ws:message('/ws/exampleServer', '{$message}')
|
||||
function lsp:message(
|
||||
$message as xs:string
|
||||
) as empty-sequence() {
|
||||
let $json:=json:parse($message, map{ 'format': 'xquery' })
|
||||
let $id:=$json?id
|
||||
let $_:=trace($id,"MESSAGE id: ")
|
||||
return switch($json?method=>trace("method: "))
|
||||
case "initialize" return
|
||||
let $a:=map{
|
||||
"capabilities":map{"textDocumentSync":2,
|
||||
"completionProvider":map{"resolveProvider":false(),"triggerCharacters":["\",":"]},
|
||||
"hoverProvider":true(),
|
||||
"documentSymbolProvider":true(),
|
||||
"documentRangeFormattingProvider":false(),
|
||||
"colorProvider":map{},
|
||||
"foldingRangeProvider":true(),
|
||||
"selectionRangeProvider":true(),
|
||||
"documentLinkProvider":map{}
|
||||
}
|
||||
}
|
||||
let $a:=trace($a,"A: ")
|
||||
return lsp:send-result($a,$id,ws:id())
|
||||
default
|
||||
return error()
|
||||
};
|
||||
|
||||
declare %ws:error('/ws/exampleServer', '{$error}')
|
||||
function lsp:error($error)
|
||||
{
|
||||
let $_:=trace($error,"ERROR ")
|
||||
return ()
|
||||
};
|
||||
|
||||
(:~
|
||||
: Closes a WebSocket connection. Unregisters the user and notifies all clients.
|
||||
:)
|
||||
declare
|
||||
%ws:close('/ws/exampleServer')
|
||||
function lsp:close() as empty-sequence() {
|
||||
let $_:=trace("CLOSE")
|
||||
return ()
|
||||
};
|
||||
|
||||
|
||||
|
||||
declare
|
||||
function lsp:send-result($result as map(*),$rpcId as xs:string, $wsId as xs:string)
|
||||
as empty-sequence()
|
||||
{
|
||||
let $json:=map{"jsonrpc":"2.0","id":$rpcId,"result":$result}=>trace("RESULT: ")
|
||||
return ws:send($json,$wsId)
|
||||
};
|
||||
|
||||
(:~ web socket for ace
|
||||
:)
|
||||
module namespace lsp="urn:quodatum:vscode";
|
||||
import module namespace ws = "http://basex.org/modules/ws";
|
||||
|
||||
declare
|
||||
%ws:connect('/ws/exampleServer')
|
||||
function lsp:connect()
|
||||
as empty-sequence(){
|
||||
let $_:=trace(ws:id(),"BaseX socket id: ")
|
||||
return ()
|
||||
};
|
||||
|
||||
(:~
|
||||
: Processes a WebSocket message.
|
||||
: @param $message message
|
||||
:)
|
||||
declare
|
||||
%ws:message('/ws/exampleServer', '{$message}')
|
||||
function lsp:message(
|
||||
$message as xs:string
|
||||
) as empty-sequence() {
|
||||
let $json:=json:parse($message, map{ 'format': 'xquery' })
|
||||
let $id:=$json?id
|
||||
let $_:=trace($id,"MESSAGE id: ")
|
||||
return switch($json?method=>trace("method: "))
|
||||
case "initialize" return
|
||||
let $a:=map{
|
||||
"capabilities":map{"textDocumentSync":2,
|
||||
"completionProvider":map{"resolveProvider":false(),"triggerCharacters":["\",":"]},
|
||||
"hoverProvider":true(),
|
||||
"documentSymbolProvider":true(),
|
||||
"documentRangeFormattingProvider":false(),
|
||||
"colorProvider":map{},
|
||||
"foldingRangeProvider":true(),
|
||||
"selectionRangeProvider":true(),
|
||||
"documentLinkProvider":map{}
|
||||
}
|
||||
}
|
||||
let $a:=trace($a,"A: ")
|
||||
return lsp:send-result($a,$id,ws:id())
|
||||
default
|
||||
return error()
|
||||
};
|
||||
|
||||
declare %ws:error('/ws/exampleServer', '{$error}')
|
||||
function lsp:error($error)
|
||||
{
|
||||
let $_:=trace($error,"ERROR ")
|
||||
return ()
|
||||
};
|
||||
|
||||
(:~
|
||||
: Closes a WebSocket connection. Unregisters the user and notifies all clients.
|
||||
:)
|
||||
declare
|
||||
%ws:close('/ws/exampleServer')
|
||||
function lsp:close() as empty-sequence() {
|
||||
let $_:=trace("CLOSE")
|
||||
return ()
|
||||
};
|
||||
|
||||
|
||||
|
||||
declare
|
||||
function lsp:send-result($result as map(*),$rpcId as xs:string, $wsId as xs:string)
|
||||
as empty-sequence()
|
||||
{
|
||||
let $json:=map{"jsonrpc":"2.0","id":$rpcId,"result":$result}=>trace("RESULT: ")
|
||||
return ws:send($json,$wsId)
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<script>
|
||||
const webSocket = new WebSocket("ws://localhost:5008");
|
||||
alert("hi");
|
||||
<script>
|
||||
const webSocket = new WebSocket("ws://localhost:5008");
|
||||
alert("hi");
|
||||
</script>
|
||||
Loading…
Add table
Add a link
Reference in a new issue