@kerebron/extension-lsp 0.8.4 → 0.8.6
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/esm/ExtensionLsp.d.ts +1 -7
- package/esm/ExtensionLsp.d.ts.map +1 -1
- package/esm/ExtensionLsp.js +62 -79
- package/esm/ExtensionLsp.js.map +1 -1
- package/esm/LSPClient.d.ts +60 -15
- package/esm/LSPClient.d.ts.map +1 -1
- package/esm/LSPClient.js +91 -40
- package/esm/LSPClient.js.map +1 -1
- package/esm/LSPPlugin.d.ts +6 -35
- package/esm/LSPPlugin.d.ts.map +1 -1
- package/esm/LSPPlugin.js +40 -165
- package/esm/LSPPlugin.js.map +1 -1
- package/esm/LSPSync.d.ts +28 -0
- package/esm/LSPSync.d.ts.map +1 -0
- package/esm/LSPSync.js +111 -0
- package/esm/LSPSync.js.map +1 -0
- package/esm/computeIncrementalChanges.d.ts +1 -0
- package/esm/computeIncrementalChanges.d.ts.map +1 -1
- package/esm/computeIncrementalChanges.js +11 -0
- package/esm/computeIncrementalChanges.js.map +1 -1
- package/esm/mod.d.ts +0 -1
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +0 -1
- package/esm/mod.js.map +1 -1
- package/package.json +4 -7
- package/src/ExtensionLsp.ts +91 -94
- package/src/LSPClient.ts +217 -54
- package/src/LSPPlugin.ts +59 -292
- package/src/LSPSync.ts +169 -0
- package/src/computeIncrementalChanges.ts +17 -0
- package/src/mod.ts +0 -1
- package/esm/LSPWorkspace.d.ts +0 -39
- package/esm/LSPWorkspace.d.ts.map +0 -1
- package/esm/LSPWorkspace.js +0 -118
- package/esm/LSPWorkspace.js.map +0 -1
- package/esm/createLspAutocomplete.d.ts +0 -17
- package/esm/createLspAutocomplete.d.ts.map +0 -1
- package/esm/createLspAutocomplete.js +0 -68
- package/esm/createLspAutocomplete.js.map +0 -1
- package/esm/types.d.ts +0 -19
- package/esm/types.d.ts.map +0 -1
- package/esm/types.js +0 -2
- package/esm/types.js.map +0 -1
- package/esm/workspace.d.ts +0 -33
- package/esm/workspace.d.ts.map +0 -1
- package/esm/workspace.js +0 -23
- package/esm/workspace.js.map +0 -1
- package/src/LSPWorkspace.ts +0 -172
- package/src/createLspAutocomplete.ts +0 -98
- package/src/types.ts +0 -14
- package/src/workspace.ts +0 -53
package/esm/LSPPlugin.d.ts
CHANGED
|
@@ -1,38 +1,9 @@
|
|
|
1
|
-
import { Plugin } from 'prosemirror-state';
|
|
2
|
-
import { PositionMapper } from '@kerebron/extension-markdown/PositionMapper';
|
|
1
|
+
import { Plugin, PluginKey } from 'prosemirror-state';
|
|
3
2
|
import { CoreEditor } from '@kerebron/editor';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
import type { LspConfig } from './ExtensionLsp.js';
|
|
4
|
+
import { LSPSync } from './LSPSync.js';
|
|
5
|
+
export declare const LSPPluginKey: PluginKey<LSPSync>;
|
|
6
|
+
export declare class LSPPlugin extends Plugin<LSPSync> {
|
|
7
|
+
constructor(config: LspConfig, editor: CoreEditor);
|
|
9
8
|
}
|
|
10
|
-
interface DiagnosticsItem {
|
|
11
|
-
severity: number;
|
|
12
|
-
range: {
|
|
13
|
-
start: LspRange;
|
|
14
|
-
end: LspRange;
|
|
15
|
-
};
|
|
16
|
-
message: string;
|
|
17
|
-
source: string;
|
|
18
|
-
code: string;
|
|
19
|
-
data: any;
|
|
20
|
-
}
|
|
21
|
-
declare class LSPPluginState {
|
|
22
|
-
private editor;
|
|
23
|
-
diagnostics: DiagnosticsItem[];
|
|
24
|
-
snapshot?: {
|
|
25
|
-
version: number;
|
|
26
|
-
mapper: PositionMapper;
|
|
27
|
-
markdownResult: MarkdownResult;
|
|
28
|
-
};
|
|
29
|
-
constructor(editor: CoreEditor);
|
|
30
|
-
}
|
|
31
|
-
export declare class LSPPlugin extends Plugin<LSPPluginState> {
|
|
32
|
-
listenerDiag: ((event: Event) => void) | undefined;
|
|
33
|
-
listenerDisconnect: ((event: Event) => void) | undefined;
|
|
34
|
-
listenerChange: ((event: Event) => void) | undefined;
|
|
35
|
-
constructor(config: LspConfig, extension: ExtensionLsp);
|
|
36
|
-
}
|
|
37
|
-
export {};
|
|
38
9
|
//# sourceMappingURL=LSPPlugin.d.ts.map
|
package/esm/LSPPlugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LSPPlugin.d.ts","sourceRoot":"","sources":["../src/LSPPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"LSPPlugin.d.ts","sourceRoot":"","sources":["../src/LSPPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,eAAO,MAAM,YAAY,oBAAgC,CAAC;AAE1D,qBAAa,SAAU,SAAQ,MAAM,CAAC,OAAO,CAAC;gBAChC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU;CA8ElD"}
|
package/esm/LSPPlugin.js
CHANGED
|
@@ -1,190 +1,65 @@
|
|
|
1
1
|
import { Plugin, PluginKey } from 'prosemirror-state';
|
|
2
2
|
import { Decoration, DecorationSet } from 'prosemirror-view';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
diagnostics = [];
|
|
6
|
-
snapshot;
|
|
7
|
-
constructor(editor) {
|
|
8
|
-
this.editor = editor;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const LSPPluginKey = new PluginKey('lsp');
|
|
3
|
+
import { LSPSync } from './LSPSync.js';
|
|
4
|
+
export const LSPPluginKey = new PluginKey('lsp');
|
|
12
5
|
export class LSPPlugin extends Plugin {
|
|
13
|
-
|
|
14
|
-
listenerDisconnect;
|
|
15
|
-
listenerChange;
|
|
16
|
-
constructor(config, extension) {
|
|
6
|
+
constructor(config, editor) {
|
|
17
7
|
super({
|
|
18
8
|
key: LSPPluginKey,
|
|
19
|
-
view(view) {
|
|
20
|
-
return {
|
|
21
|
-
destroy: () => {
|
|
22
|
-
const client = extension.getClient(extension.mainLang);
|
|
23
|
-
if (this.listenerDiag && client) {
|
|
24
|
-
client.removeEventListener('textDocument/publishDiagnostics', this.listenerDiag);
|
|
25
|
-
}
|
|
26
|
-
if (this.listenerDisconnect && client) {
|
|
27
|
-
client.removeEventListener('close', this.listenerDisconnect);
|
|
28
|
-
}
|
|
29
|
-
// if (this.listenerChange) {
|
|
30
|
-
// extension.getEditor().removeEventListener(
|
|
31
|
-
// 'change',
|
|
32
|
-
// this.listenerChange,
|
|
33
|
-
// );
|
|
34
|
-
// }
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
},
|
|
38
9
|
state: {
|
|
39
10
|
init() {
|
|
40
|
-
return new
|
|
11
|
+
return new LSPSync(config, editor);
|
|
41
12
|
},
|
|
42
|
-
apply(
|
|
43
|
-
const workspaceMeta = tr.getMeta('workspace');
|
|
44
|
-
if (workspaceMeta) {
|
|
45
|
-
console.log('workspaceMeta', workspaceMeta.operation, workspaceMeta);
|
|
46
|
-
const uri = workspaceMeta.uri;
|
|
47
|
-
// const lang = workspaceMeta.lang;
|
|
48
|
-
switch (workspaceMeta.operation) {
|
|
49
|
-
case 'openFile':
|
|
50
|
-
{
|
|
51
|
-
const client = extension.getClient(workspaceMeta.lang);
|
|
52
|
-
if (client) {
|
|
53
|
-
client.addEventListener('textDocument/publishDiagnostics', this.diagListener);
|
|
54
|
-
const go = async () => {
|
|
55
|
-
client.connect(uri, this.source);
|
|
56
|
-
if (uri === editor.config.uri) {
|
|
57
|
-
await client.restart();
|
|
58
|
-
}
|
|
59
|
-
client.workspace.openFile(workspaceMeta.uri, workspaceMeta.lang, this.source);
|
|
60
|
-
};
|
|
61
|
-
go();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
break;
|
|
65
|
-
case 'modifyFile':
|
|
66
|
-
break;
|
|
67
|
-
case 'closeFile':
|
|
68
|
-
// this.editor.view.dispatch(tr);
|
|
69
|
-
// const client = this.getClient(this.mainLang);
|
|
70
|
-
// if (client) {
|
|
71
|
-
// client.disconnect(this.uri);
|
|
72
|
-
// }
|
|
73
|
-
break;
|
|
74
|
-
}
|
|
75
|
-
return value;
|
|
76
|
-
}
|
|
77
|
-
const meta = tr.getMeta(LSPPluginKey);
|
|
78
|
-
if (meta?.diagnostics) {
|
|
79
|
-
value.diagnostics = meta.diagnostics;
|
|
80
|
-
}
|
|
81
|
-
const markdownMeta = tr.getMeta('markdown');
|
|
82
|
-
if (markdownMeta?.snapshot) {
|
|
83
|
-
value.snapshot = markdownMeta.snapshot;
|
|
84
|
-
return value;
|
|
85
|
-
}
|
|
86
|
-
if (markdownMeta?.clearSnapshot) {
|
|
87
|
-
value.snapshot = undefined;
|
|
88
|
-
return value;
|
|
89
|
-
}
|
|
90
|
-
if (tr.docChanged) {
|
|
91
|
-
// value.snapshot = undefined;
|
|
92
|
-
}
|
|
93
|
-
// let codeBlockChanged = false;
|
|
94
|
-
// // Compare changed ranges only
|
|
95
|
-
// tr.mapping.maps.forEach((stepMap) => {
|
|
96
|
-
// stepMap.forEach((oldStart, oldEnd, newStart, newEnd) => {
|
|
97
|
-
// oldState.doc.nodesBetween(oldStart, oldEnd, (node) => {
|
|
98
|
-
// if (node.type.name === "code_block") {
|
|
99
|
-
// codeBlockChanged = true;
|
|
100
|
-
// }
|
|
101
|
-
// });
|
|
102
|
-
// newState.doc.nodesBetween(newStart, newEnd, (node) => {
|
|
103
|
-
// if (node.type.name === "code_block") {
|
|
104
|
-
// codeBlockChanged = true;
|
|
105
|
-
// }
|
|
106
|
-
// });
|
|
107
|
-
// });
|
|
108
|
-
// });
|
|
109
|
-
// if (codeBlockChanged) {
|
|
110
|
-
// console.log("Code block changed");
|
|
111
|
-
// // trigger your logic here
|
|
112
|
-
// }
|
|
13
|
+
apply(_tr, value) {
|
|
113
14
|
return value;
|
|
114
15
|
},
|
|
115
16
|
},
|
|
17
|
+
view(view) {
|
|
18
|
+
const pluginState = LSPPluginKey.getState(view.state);
|
|
19
|
+
return {
|
|
20
|
+
destroy() {
|
|
21
|
+
pluginState?.destroy();
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
},
|
|
116
25
|
props: {
|
|
117
26
|
decorations(state) {
|
|
118
27
|
const decorations = [];
|
|
119
|
-
const pluginState =
|
|
28
|
+
const pluginState = LSPPluginKey.getState(editor.state);
|
|
120
29
|
if (pluginState) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
30
|
+
state.doc.forEach((node, pos) => {
|
|
31
|
+
const dom = editor.view.nodeDOM(pos);
|
|
32
|
+
if (!dom || !dom.querySelector) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const editorElement = dom.querySelector('[data-uri]');
|
|
36
|
+
const uri = (editorElement
|
|
37
|
+
? editorElement.getAttribute('data-uri')
|
|
38
|
+
: undefined) ||
|
|
39
|
+
undefined;
|
|
40
|
+
if (uri) {
|
|
41
|
+
const diags = pluginState.uriToDiagnostics[uri];
|
|
42
|
+
if (!diags) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const { diagnostics, version, contentMapper } = diags;
|
|
46
|
+
if (version === editor.version) {
|
|
47
|
+
for (const diag of diagnostics) {
|
|
48
|
+
const from = contentMapper.fromLineChar(diag.range.start.line, diag.range.start.character);
|
|
49
|
+
const end = contentMapper.fromLineChar(diag.range.end.line, diag.range.end.character);
|
|
50
|
+
if (from > -1 && end > -1) {
|
|
51
|
+
const decoration = Decoration.inline(pos + 1 + from, pos + 1 + end, {}, { class: 'kb-lsp__error', title: diag.message });
|
|
52
|
+
decorations.push(decoration);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
129
55
|
}
|
|
130
56
|
}
|
|
131
|
-
}
|
|
57
|
+
});
|
|
132
58
|
}
|
|
133
59
|
return DecorationSet.create(state.doc, decorations);
|
|
134
60
|
},
|
|
135
61
|
},
|
|
136
62
|
});
|
|
137
|
-
let lastDiag = 0;
|
|
138
|
-
const editor = extension.getEditor();
|
|
139
|
-
const uri = editor.config.uri;
|
|
140
|
-
if (uri) {
|
|
141
|
-
const client = extension.getClient(extension.mainLang);
|
|
142
|
-
this.listenerDiag = (event) => {
|
|
143
|
-
const detail = event.detail;
|
|
144
|
-
if (detail.params.uri !== uri) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
event.preventDefault();
|
|
148
|
-
lastDiag = +Date();
|
|
149
|
-
if (client) {
|
|
150
|
-
const file = client.workspace.getFile(uri);
|
|
151
|
-
if (file) {
|
|
152
|
-
const { mapper } = file;
|
|
153
|
-
const diagnostics = detail.params.diagnostics;
|
|
154
|
-
// file.dia
|
|
155
|
-
const tr = editor.view.state.tr.setMeta(LSPPluginKey, {
|
|
156
|
-
diagnostics: detail.params.diagnostics,
|
|
157
|
-
mapper,
|
|
158
|
-
});
|
|
159
|
-
editor.view.dispatch(tr);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
if (client) {
|
|
164
|
-
client.addEventListener('textDocument/publishDiagnostics', this.listenerDiag);
|
|
165
|
-
}
|
|
166
|
-
this.listenerDisconnect = (event) => {
|
|
167
|
-
const tr = editor.view.state.tr.setMeta(LSPPluginKey, {
|
|
168
|
-
diagnostics: [],
|
|
169
|
-
mapper: undefined,
|
|
170
|
-
});
|
|
171
|
-
editor.view.dispatch(tr);
|
|
172
|
-
};
|
|
173
|
-
if (client) {
|
|
174
|
-
client.addEventListener('close', this.listenerDisconnect);
|
|
175
|
-
}
|
|
176
|
-
this.listenerChange = (event) => {
|
|
177
|
-
if (lastDiag === 0 && +Date() - lastDiag > 10_1000) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
const tr = editor.view.state.tr.setMeta(LSPPluginKey, {
|
|
181
|
-
diagnostics: [],
|
|
182
|
-
mapper: undefined,
|
|
183
|
-
});
|
|
184
|
-
editor.view.dispatch(tr);
|
|
185
|
-
};
|
|
186
|
-
// extension.getEditor().addEventListener('changed', this.listenerChange);
|
|
187
|
-
}
|
|
188
63
|
}
|
|
189
64
|
}
|
|
190
65
|
//# sourceMappingURL=LSPPlugin.js.map
|
package/esm/LSPPlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LSPPlugin.js","sourceRoot":"","sources":["../src/LSPPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"LSPPlugin.js","sourceRoot":"","sources":["../src/LSPPlugin.ts"],"names":[],"mappings":"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"}
|
package/esm/LSPSync.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as lsp from 'vscode-languageserver-protocol';
|
|
2
|
+
import { CoreEditor } from '@kerebron/editor';
|
|
3
|
+
import type { ContentMapper, WorkspaceModifyParams } from '@kerebron/workspace';
|
|
4
|
+
import type { LspConfig } from './ExtensionLsp.js';
|
|
5
|
+
import { LSPClient } from './LSPClient.js';
|
|
6
|
+
export declare class LSPSync {
|
|
7
|
+
private config;
|
|
8
|
+
private editor;
|
|
9
|
+
clients: Record<string, LSPClient>;
|
|
10
|
+
uriToClient: Record<string, LSPClient>;
|
|
11
|
+
uriToDiagnostics: Record<string, {
|
|
12
|
+
diagnostics: lsp.Diagnostic[];
|
|
13
|
+
version: number;
|
|
14
|
+
contentMapper: ContentMapper;
|
|
15
|
+
}>;
|
|
16
|
+
listenerDiag: (event: CustomEvent<{
|
|
17
|
+
params: lsp.PublishDiagnosticsParams;
|
|
18
|
+
}>) => void;
|
|
19
|
+
listenerDisconnect: (event: CustomEvent<void>) => void;
|
|
20
|
+
listenerChange: (event: CustomEvent<WorkspaceModifyParams>) => Promise<void>;
|
|
21
|
+
constructor(config: LspConfig, editor: CoreEditor);
|
|
22
|
+
changeFile(modified: WorkspaceModifyParams): Promise<void>;
|
|
23
|
+
closeFile(uri: string): Promise<void>;
|
|
24
|
+
disconnected(disconnectedClient: LSPClient): void;
|
|
25
|
+
getClient(lang: string): LSPClient | undefined;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=LSPSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LSPSync.d.ts","sourceRoot":"","sources":["../src/LSPSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EACV,aAAa,EAGb,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAiB,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,OAAO;IAmBN,OAAO,CAAC,MAAM;IAAa,OAAO,CAAC,MAAM;IAlBrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM;IAExC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAM;IAC5C,gBAAgB,EAAE,MAAM,CACtB,MAAM,EACN;QACE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,aAAa,CAAC;KAC9B,CACF,CAAM;IAEP,YAAY,EAAE,CACZ,KAAK,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC,wBAAwB,CAAA;KAAE,CAAC,KACzD,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,qBAAqB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEzD,MAAM,EAAE,SAAS,EAAU,MAAM,EAAE,UAAU;IA8C3D,UAAU,CAAC,QAAQ,EAAE,qBAAqB;IAwB1C,SAAS,CAAC,GAAG,EAAE,MAAM;IAS3B,YAAY,CAAC,kBAAkB,EAAE,SAAS,GAAG,IAAI;IASjD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IA2B9C,OAAO;CAqBR"}
|
package/esm/LSPSync.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { LSPClientImpl } from './LSPClient.js';
|
|
2
|
+
export class LSPSync {
|
|
3
|
+
config;
|
|
4
|
+
editor;
|
|
5
|
+
clients = {};
|
|
6
|
+
uriToClient = {};
|
|
7
|
+
uriToDiagnostics = {};
|
|
8
|
+
listenerDiag;
|
|
9
|
+
listenerDisconnect;
|
|
10
|
+
listenerChange;
|
|
11
|
+
constructor(config, editor) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.editor = editor;
|
|
14
|
+
this.listenerDiag = async (event) => {
|
|
15
|
+
const { uri, diagnostics, version } = event.detail.params;
|
|
16
|
+
const client = event.target;
|
|
17
|
+
const entry = client.entries[uri];
|
|
18
|
+
if (!entry || !version) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const contentMapper = await entry.getContentMapper();
|
|
22
|
+
this.uriToDiagnostics[uri] = {
|
|
23
|
+
diagnostics,
|
|
24
|
+
version,
|
|
25
|
+
contentMapper,
|
|
26
|
+
};
|
|
27
|
+
const tr = editor.state.tr;
|
|
28
|
+
editor.dispatchTransaction(tr);
|
|
29
|
+
};
|
|
30
|
+
this.listenerDisconnect = (event) => {
|
|
31
|
+
const client = event.target;
|
|
32
|
+
this.disconnected(client);
|
|
33
|
+
};
|
|
34
|
+
const workspace = this.editor.ci.resolve('workspace');
|
|
35
|
+
this.listenerChange = async (event) => {
|
|
36
|
+
await this.changeFile(event.detail);
|
|
37
|
+
};
|
|
38
|
+
workspace.addEventListener('openFile', this.listenerChange);
|
|
39
|
+
workspace.addEventListener('modifyFile', this.listenerChange);
|
|
40
|
+
workspace.addEventListener('closeFile', (event) => {
|
|
41
|
+
this.closeFile(event.detail.uri);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
async changeFile(modified) {
|
|
45
|
+
const langClient = this.getClient(modified.lang);
|
|
46
|
+
if (!langClient) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const client = this.uriToClient[modified.uri];
|
|
50
|
+
if (!client) {
|
|
51
|
+
this.uriToClient[modified.uri] = langClient;
|
|
52
|
+
await langClient.changeFile(modified);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (client.lang !== langClient.lang) {
|
|
56
|
+
await client.closeFile(modified.uri);
|
|
57
|
+
this.uriToClient[modified.uri] = langClient;
|
|
58
|
+
await langClient.changeFile(modified);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
await client.changeFile(modified);
|
|
62
|
+
}
|
|
63
|
+
async closeFile(uri) {
|
|
64
|
+
const client = this.uriToClient[uri];
|
|
65
|
+
if (client) {
|
|
66
|
+
delete this.uriToClient[uri];
|
|
67
|
+
await client.closeFile(uri);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
disconnected(disconnectedClient) {
|
|
71
|
+
for (const [uri, client] of Object.entries(this.uriToClient)) {
|
|
72
|
+
if (client !== disconnectedClient) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
this.closeFile(uri);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getClient(lang) {
|
|
79
|
+
if (!this.clients[lang]) {
|
|
80
|
+
const transport = this.config.getLspTransport(lang);
|
|
81
|
+
if (!transport) {
|
|
82
|
+
console.warn(`No lsp transport for ${lang}`);
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
const ui = this.editor.ui;
|
|
86
|
+
const client = new LSPClientImpl(transport, {
|
|
87
|
+
lang,
|
|
88
|
+
rootUri: 'file:///',
|
|
89
|
+
ui,
|
|
90
|
+
});
|
|
91
|
+
client.addEventListener('textDocument/publishDiagnostics', this.listenerDiag);
|
|
92
|
+
client.addEventListener('close', this.listenerDisconnect);
|
|
93
|
+
this.clients[lang] = client;
|
|
94
|
+
}
|
|
95
|
+
return this.clients[lang];
|
|
96
|
+
}
|
|
97
|
+
destroy() {
|
|
98
|
+
const workspace = this.editor.ci.resolve('workspace');
|
|
99
|
+
workspace.removeEventListener('openFile', this.listenerChange);
|
|
100
|
+
workspace.removeEventListener('modifyFile', this.listenerChange);
|
|
101
|
+
for (const client of Object.values(this.clients)) {
|
|
102
|
+
client.removeEventListener('textDocument/publishDiagnostics', this.listenerDiag);
|
|
103
|
+
client.removeEventListener('close', this.listenerDisconnect);
|
|
104
|
+
client.destroy();
|
|
105
|
+
}
|
|
106
|
+
this.clients = {};
|
|
107
|
+
this.uriToClient = {};
|
|
108
|
+
this.uriToDiagnostics = {};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=LSPSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LSPSync.js","sourceRoot":"","sources":["../src/LSPSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,5 @@ import * as lsp from 'vscode-languageserver-protocol';
|
|
|
5
5
|
* Returns an array of TextEdit-like changes that transform `previous` into `current`.
|
|
6
6
|
*/
|
|
7
7
|
export declare function computeIncrementalChanges(previous: string, current: string): lsp.TextDocumentContentChangeEvent[];
|
|
8
|
+
export declare function contentChangesFor(supportInc: boolean, newContent: string, oldContent?: string): lsp.TextDocumentContentChangeEvent[];
|
|
8
9
|
//# sourceMappingURL=computeIncrementalChanges.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeIncrementalChanges.d.ts","sourceRoot":"","sources":["../src/computeIncrementalChanges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,GAAG,CAAC,8BAA8B,EAAE,CA0FtC"}
|
|
1
|
+
{"version":3,"file":"computeIncrementalChanges.d.ts","sourceRoot":"","sources":["../src/computeIncrementalChanges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,GAAG,CAAC,8BAA8B,EAAE,CA0FtC;AAMD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,GAAG,CAAC,8BAA8B,EAAE,CAOtC"}
|
|
@@ -80,4 +80,15 @@ export function computeIncrementalChanges(previous, current) {
|
|
|
80
80
|
});
|
|
81
81
|
return changes;
|
|
82
82
|
}
|
|
83
|
+
var Sync;
|
|
84
|
+
(function (Sync) {
|
|
85
|
+
Sync[Sync["AlwaysIfSmaller"] = 1024] = "AlwaysIfSmaller";
|
|
86
|
+
})(Sync || (Sync = {}));
|
|
87
|
+
export function contentChangesFor(supportInc, newContent, oldContent) {
|
|
88
|
+
if (!supportInc || newContent.length < Sync.AlwaysIfSmaller || !oldContent) {
|
|
89
|
+
return [{ text: newContent }];
|
|
90
|
+
}
|
|
91
|
+
const changes = computeIncrementalChanges(oldContent, newContent);
|
|
92
|
+
return changes.reverse();
|
|
93
|
+
}
|
|
83
94
|
//# sourceMappingURL=computeIncrementalChanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeIncrementalChanges.js","sourceRoot":"","sources":["../src/computeIncrementalChanges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"computeIncrementalChanges.js","sourceRoot":"","sources":["../src/computeIncrementalChanges.ts"],"names":[],"mappings":"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"}
|
package/esm/mod.d.ts
CHANGED
package/esm/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
package/esm/mod.js
CHANGED
package/esm/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kerebron/extension-lsp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"module": "./esm/mod.js",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"import": "./esm/mod.js"
|
|
9
9
|
},
|
|
10
|
-
"./types": {
|
|
11
|
-
"import": "./esm/types.js"
|
|
12
|
-
},
|
|
13
10
|
"./LSPWebSocketTransport": {
|
|
14
11
|
"import": "./esm/LSPWebSocketTransport.js"
|
|
15
12
|
}
|
|
@@ -20,9 +17,9 @@
|
|
|
20
17
|
"src"
|
|
21
18
|
],
|
|
22
19
|
"dependencies": {
|
|
23
|
-
"@kerebron/editor": "0.8.
|
|
24
|
-
"@kerebron/extension-
|
|
25
|
-
"@kerebron/
|
|
20
|
+
"@kerebron/editor": "0.8.6",
|
|
21
|
+
"@kerebron/extension-ui": "0.8.6",
|
|
22
|
+
"@kerebron/workspace": "0.8.6",
|
|
26
23
|
"prosemirror-state": "1.4.3",
|
|
27
24
|
"prosemirror-view": "1.40.0",
|
|
28
25
|
"vscode-languageserver-protocol": "3.17.5"
|