ace-linters 0.13.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -8
- package/build/ace-language-client.js +1627 -4945
- package/build/ace-linters.js +2 -2
- package/build/base-service.js +1 -1
- package/build/css-service.js +7 -3
- package/build/html-service.js +7 -3
- package/build/javascript-service.js +7 -1
- package/build/json-service.js +7 -3
- package/build/language-client.js +17405 -0
- package/build/lua-service.js +7 -1
- package/build/php-service.js +7 -1
- package/build/python-service.js +7 -1
- package/build/service-manager.js +227 -141
- package/build/typescript-service.js +7 -3
- package/build/xml-service.js +7 -1
- package/build/yaml-service.js +9 -3
- package/package.json +4 -1
- package/types/ace-language-client.d.ts +3 -6
- package/types/misc/mock-worker.d.ts +16 -0
- package/types/services/base-service.d.ts +4 -4
- package/types/services/css/css-service.d.ts +5 -1
- package/types/services/html/html-service.d.ts +5 -1
- package/types/services/javascript/javascript-service.d.ts +6 -0
- package/types/services/json/json-service.d.ts +5 -1
- package/types/services/language-client.d.ts +33 -0
- package/types/services/lua/lua-service.d.ts +6 -0
- package/types/services/php/php-service.d.ts +6 -0
- package/types/services/python/python-service.d.ts +6 -0
- package/types/services/service-manager.d.ts +17 -5
- package/types/services/typescript/typescript-service.d.ts +5 -1
- package/types/services/xml/xml-service.d.ts +6 -0
- package/types/services/yaml/yaml-service.d.ts +7 -1
- package/types/types/language-service.d.ts +30 -6
package/README.md
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Ace linters is lsp client for Ace editor. It comes with large number of preconfigured easy to use in browser servers.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
If you're uncertain about integrating ace-linters, consult [our diagram on the GitHub Wiki](https://github.com/mkslanc/ace-linters/wiki/Usage-Scenarios-Overview) for a quick setup guide
|
|
6
|
+
tailored to your needs.
|
|
7
|
+
|
|
8
|
+
### Example client with pre-defined services:
|
|
6
9
|
```javascript
|
|
7
10
|
import * as ace from "ace-code";
|
|
8
11
|
import {Mode as TypescriptMode} from "ace-code/src/mode/typescript";
|
|
@@ -21,11 +24,47 @@ let languageProvider = LanguageProvider.create(worker);
|
|
|
21
24
|
|
|
22
25
|
// Register the editor with the language provider
|
|
23
26
|
languageProvider.registerEditor(editor);
|
|
24
|
-
|
|
25
27
|
```
|
|
26
28
|
|
|
27
29
|
[Example webworker.js with all services](https://github.com/mkslanc/ace-linters/blob/main/packages/demo/webworker-lsp/webworker.ts)
|
|
28
30
|
|
|
31
|
+
## New Features in 1.0.0
|
|
32
|
+
|
|
33
|
+
- `registerServer` method in `ServiceManager` enables management of both services and servers on the web worker's side.
|
|
34
|
+
Just add new servers to your webworker like this:
|
|
35
|
+
```javascript
|
|
36
|
+
manager.registerServer("astro", {
|
|
37
|
+
module: () => import("ace-linters/build/language-client"),
|
|
38
|
+
modes: "astro",
|
|
39
|
+
type: "socket", // "socket|worker"
|
|
40
|
+
socket: new WebSocket("ws://127.0.0.1:3030/astro"),
|
|
41
|
+
initializationOptions: {
|
|
42
|
+
typescript: {
|
|
43
|
+
tsdk: "node_modules/typescript/lib"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
- Multiple servers management on main thread. Just register servers like this:
|
|
49
|
+
```javascript
|
|
50
|
+
let servers = [
|
|
51
|
+
{
|
|
52
|
+
module: () => import("ace-linters/build/language-client"),
|
|
53
|
+
modes: "astro",
|
|
54
|
+
type: "socket",
|
|
55
|
+
socket: new WebSocket("ws://127.0.0.1:3030/astro"),
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
module: () => import("ace-linters/build/language-client"),
|
|
59
|
+
modes: "svelte",
|
|
60
|
+
type: "socket",
|
|
61
|
+
socket: new WebSocket("ws://127.0.0.1:3030/svelte"),
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
let languageProvider = AceLanguageClient.for(servers);
|
|
65
|
+
```
|
|
66
|
+
- **Breaking change:** `AceLanguageClient.for` interface was changed
|
|
67
|
+
|
|
29
68
|
## Example using script tag from CDN
|
|
30
69
|
```html
|
|
31
70
|
<script src="https://www.unpkg.com/ace-builds@latest/src-noconflict/ace.js"></script>
|
|
@@ -48,7 +87,7 @@ languageProvider.registerEditor(editor);
|
|
|
48
87
|
```
|
|
49
88
|
|
|
50
89
|
|
|
51
|
-
Ace linters
|
|
90
|
+
Ace linters client currently supports two modes: **WebSockets** and **WebWorkers**.
|
|
52
91
|
|
|
53
92
|
## Usage with WebSocket (JSON-RPC)
|
|
54
93
|
|
|
@@ -62,15 +101,19 @@ import {Mode as JSONMode} from "ace-code/src/mode/json"; //any mode you want
|
|
|
62
101
|
import {AceLanguageClient} from "ace-linters/build/ace-language-client";
|
|
63
102
|
|
|
64
103
|
// Create a web socket
|
|
65
|
-
const
|
|
66
|
-
|
|
104
|
+
const serverData = {
|
|
105
|
+
module: () => import("ace-linters/build/language-client"),
|
|
106
|
+
modes: "json|json5",
|
|
107
|
+
type: "socket",
|
|
108
|
+
socket: new WebSocket("ws://127.0.0.1:3000/exampleServer"), // address of your websocket server
|
|
109
|
+
}
|
|
67
110
|
// Create an Ace editor
|
|
68
111
|
let editor = ace.edit("container", {
|
|
69
112
|
mode: new JSONMode() // Set the mode of the editor to JSON
|
|
70
113
|
});
|
|
71
114
|
|
|
72
115
|
// Create a language provider for web socket
|
|
73
|
-
let languageProvider = AceLanguageClient.for(
|
|
116
|
+
let languageProvider = AceLanguageClient.for(serverData);
|
|
74
117
|
|
|
75
118
|
// Register the editor with the language provider
|
|
76
119
|
languageProvider.registerEditor(editor);
|
|
@@ -91,13 +134,19 @@ import {AceLanguageClient} from "ace-linters/build/ace-language-client";
|
|
|
91
134
|
|
|
92
135
|
// Create a web worker
|
|
93
136
|
let worker = new Worker(new URL('./webworker.js', import.meta.url));
|
|
137
|
+
const serverData = {
|
|
138
|
+
module: () => import("ace-linters/build/language-client"),
|
|
139
|
+
modes: "json",
|
|
140
|
+
type: "webworker",
|
|
141
|
+
worker: worker,
|
|
142
|
+
}
|
|
94
143
|
|
|
95
144
|
// Create an Ace editor
|
|
96
145
|
let editor = ace.edit("container", {
|
|
97
146
|
mode: new TypescriptMode() // Set the mode of the editor to Typescript
|
|
98
147
|
});
|
|
99
148
|
|
|
100
|
-
// Create a language provider for web worker
|
|
149
|
+
// Create a language provider for web worker
|
|
101
150
|
let languageProvider = AceLanguageClient.for(worker);
|
|
102
151
|
|
|
103
152
|
// Register the editor with the language provider
|
|
@@ -118,7 +167,7 @@ languageProvider.registerEditor(editor);
|
|
|
118
167
|
- Completions
|
|
119
168
|
- Signature Help
|
|
120
169
|
|
|
121
|
-
[Full list of capabilities](https://github.com/mkslanc/ace-linters/
|
|
170
|
+
[Full list of capabilities](https://github.com/mkslanc/ace-linters/wiki/Client-LSP-capabilities)
|
|
122
171
|
|
|
123
172
|
## Supported languages
|
|
124
173
|
Ace linters supports the following languages by default with webworkers approach:
|