@kerebron/extension-lsp 0.8.5 → 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/ExtensionLsp.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Plugin } from 'prosemirror-state';
|
|
2
2
|
import { Extension } from '@kerebron/editor';
|
|
3
|
-
import {
|
|
4
|
-
import { LSPClient, Transport } from './LSPClient.js';
|
|
3
|
+
import { Transport } from './LSPClient.js';
|
|
5
4
|
export type LSPTransportGetter = (lang: string) => Transport | undefined;
|
|
6
5
|
export interface LspConfig {
|
|
7
6
|
getLspTransport: LSPTransportGetter;
|
|
@@ -9,13 +8,8 @@ export interface LspConfig {
|
|
|
9
8
|
export declare class ExtensionLsp extends Extension {
|
|
10
9
|
config: LspConfig;
|
|
11
10
|
name: string;
|
|
12
|
-
clients: Record<string, LSPClient>;
|
|
13
|
-
uri: string | undefined;
|
|
14
|
-
extensionMarkdown: ExtensionMarkdown;
|
|
15
|
-
mainLang: string;
|
|
16
11
|
constructor(config: LspConfig);
|
|
17
12
|
getProseMirrorPlugins(): Plugin[];
|
|
18
13
|
created(): void;
|
|
19
|
-
getClient(lang: string): LSPClient | undefined;
|
|
20
14
|
}
|
|
21
15
|
//# sourceMappingURL=ExtensionLsp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionLsp.d.ts","sourceRoot":"","sources":["../src/ExtensionLsp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ExtensionLsp.d.ts","sourceRoot":"","sources":["../src/ExtensionLsp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAa,MAAM,kBAAkB,CAAC;AAOxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,kBAAkB,CAAC;CACrC;AAED,qBAAa,YAAa,SAAQ,SAAS;IAGb,MAAM,EAAE,SAAS;IAF7C,IAAI,SAAS;gBAEe,MAAM,EAAE,SAAS;IAIpC,qBAAqB,IAAI,MAAM,EAAE;IAOjC,OAAO,IAAI,IAAI;CAiFzB"}
|
package/esm/ExtensionLsp.js
CHANGED
|
@@ -1,96 +1,79 @@
|
|
|
1
1
|
import { Extension } from '@kerebron/editor';
|
|
2
|
-
import {
|
|
3
|
-
import { LSPPlugin } from './LSPPlugin.js';
|
|
4
|
-
import { createLspAutocomplete } from './createLspAutocomplete.js';
|
|
2
|
+
import { LSPPlugin, LSPPluginKey } from './LSPPlugin.js';
|
|
5
3
|
export class ExtensionLsp extends Extension {
|
|
6
4
|
config;
|
|
7
5
|
name = 'lsp';
|
|
8
|
-
clients = {};
|
|
9
|
-
uri;
|
|
10
|
-
extensionMarkdown;
|
|
11
|
-
mainLang = 'markdown';
|
|
12
|
-
// source!: LSPSource;
|
|
13
6
|
constructor(config) {
|
|
14
7
|
super(config);
|
|
15
8
|
this.config = config;
|
|
16
9
|
}
|
|
17
10
|
getProseMirrorPlugins() {
|
|
18
11
|
const plugins = [];
|
|
19
|
-
const { autocompleteConfig } = createLspAutocomplete(this);
|
|
20
|
-
plugins.push(new LSPPlugin(this.config, this));
|
|
12
|
+
// const { autocompleteConfig } = createLspAutocomplete(this);
|
|
13
|
+
plugins.push(new LSPPlugin(this.config, this.editor));
|
|
21
14
|
return plugins;
|
|
22
15
|
}
|
|
23
16
|
created() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
17
|
+
const source3 = {
|
|
18
|
+
match: function (trigger) {
|
|
19
|
+
let pos = trigger.pos;
|
|
20
|
+
if (trigger.uri) {
|
|
21
|
+
pos = pos + trigger.inside;
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
source: source3,
|
|
25
|
+
uri: trigger.uri,
|
|
26
|
+
range: {
|
|
27
|
+
from: pos,
|
|
28
|
+
to: pos,
|
|
29
|
+
},
|
|
30
|
+
trigger,
|
|
31
|
+
text: '...',
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
getItem: async (range, trigger) => {
|
|
35
|
+
if (!trigger.uri) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const lspSync = LSPPluginKey.getState(this.editor.state);
|
|
39
|
+
if (!lspSync) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const lspClient = lspSync.uriToClient[trigger.uri];
|
|
43
|
+
const entry = lspClient.getEntry(trigger.uri);
|
|
44
|
+
if (!entry) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const contentMapper = await entry.getContentMapper();
|
|
48
|
+
const [line, character] = contentMapper.toRawTextLineCol(trigger.inside);
|
|
49
|
+
const hover = await lspClient.request('textDocument/hover', {
|
|
50
|
+
textDocument: {
|
|
51
|
+
uri: trigger.uri,
|
|
52
|
+
},
|
|
53
|
+
position: {
|
|
54
|
+
line,
|
|
55
|
+
character,
|
|
56
|
+
},
|
|
55
57
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (this.uri) {
|
|
76
|
-
const tr = this.editor.view.state.tr;
|
|
77
|
-
tr.setMeta('workspace', {
|
|
78
|
-
operation: 'closeFile',
|
|
79
|
-
uri: this.editor.config.uri,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
getClient(lang) {
|
|
85
|
-
if (!this.clients[lang]) {
|
|
86
|
-
const transport = this.config.getLspTransport(lang);
|
|
87
|
-
if (!transport) {
|
|
88
|
-
console.warn(`No lsp transport for ${lang}`);
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
this.clients[lang] = new LSPClient(transport, { rootUri: 'file:///' });
|
|
92
|
-
}
|
|
93
|
-
return this.clients[lang];
|
|
58
|
+
if (!hover) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const contents = hover.contents;
|
|
62
|
+
if (Array.isArray(contents)) {
|
|
63
|
+
return { text: contents.map((a) => a.toString).join('\n') };
|
|
64
|
+
}
|
|
65
|
+
if ('string' === typeof contents) {
|
|
66
|
+
return { text: contents };
|
|
67
|
+
}
|
|
68
|
+
if ('kind' in contents) {
|
|
69
|
+
return { text: contents.value };
|
|
70
|
+
}
|
|
71
|
+
return { text: contents.value, a: contents.language };
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
this.editor.addEventListener('ready', () => {
|
|
75
|
+
this.editor.chain().addHoverSource(source3).run();
|
|
76
|
+
}, { once: true });
|
|
94
77
|
}
|
|
95
78
|
}
|
|
96
79
|
//# sourceMappingURL=ExtensionLsp.js.map
|
package/esm/ExtensionLsp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionLsp.js","sourceRoot":"","sources":["../src/ExtensionLsp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtensionLsp.js","sourceRoot":"","sources":["../src/ExtensionLsp.ts"],"names":[],"mappings":"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"}
|
package/esm/LSPClient.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as lsp from 'vscode-languageserver-protocol';
|
|
2
2
|
import { TextDocumentSyncKind } from 'vscode-languageserver-protocol';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { EditorUi } from '@kerebron/editor';
|
|
4
|
+
import type { ContentMapper, WorkspaceModifyParams } from '@kerebron/workspace';
|
|
5
5
|
export type Transport = {
|
|
6
6
|
connect(): void;
|
|
7
7
|
disconnect(): void;
|
|
@@ -12,10 +12,10 @@ export type Transport = {
|
|
|
12
12
|
isInitialized(): boolean;
|
|
13
13
|
};
|
|
14
14
|
export type LSPClientConfig = {
|
|
15
|
+
ui: EditorUi;
|
|
16
|
+
lang: string;
|
|
15
17
|
rootUri?: string;
|
|
16
|
-
workspace?: (client: LSPClient) => Workspace;
|
|
17
18
|
timeout?: number;
|
|
18
|
-
sanitizeHTML?: (html: string) => string;
|
|
19
19
|
unhandledNotification?: (client: LSPClient, method: string, params: any) => void;
|
|
20
20
|
};
|
|
21
21
|
export declare class LSPError extends Error {
|
|
@@ -23,11 +23,50 @@ export declare class LSPError extends Error {
|
|
|
23
23
|
readonly isLSP = true;
|
|
24
24
|
static createTimeout(): LSPError;
|
|
25
25
|
}
|
|
26
|
-
export
|
|
26
|
+
export interface LSPClientEventMap {
|
|
27
|
+
'initialize': CustomEvent<lsp.InitializeParams>;
|
|
28
|
+
'initialized': CustomEvent<lsp.InitializedParams>;
|
|
29
|
+
'textDocument/didOpen': CustomEvent<lsp.DidOpenTextDocumentParams>;
|
|
30
|
+
'textDocument/didChange': CustomEvent<lsp.DidChangeTextDocumentParams>;
|
|
31
|
+
'textDocument/didClose': CustomEvent<lsp.DidCloseTextDocumentParams>;
|
|
32
|
+
'textDocument/completion': CustomEvent<lsp.CompletionParams>;
|
|
33
|
+
'textDocument/diagnostic': CustomEvent<lsp.DocumentDiagnosticParams>;
|
|
34
|
+
'textDocument/publishDiagnostics': CustomEvent<{
|
|
35
|
+
params: lsp.PublishDiagnosticsParams;
|
|
36
|
+
}>;
|
|
37
|
+
'window/logMessage': CustomEvent<lsp.LogMessageParams>;
|
|
38
|
+
'window/showMessage': CustomEvent<lsp.ShowMessageParams>;
|
|
39
|
+
'close': CustomEvent<void>;
|
|
40
|
+
}
|
|
41
|
+
export interface LSPClient extends EventTarget {
|
|
42
|
+
addEventListener<K extends keyof LSPClientEventMap>(type: K, listener: (event: LSPClientEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
43
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
|
|
44
|
+
removeEventListener<K extends keyof LSPClientEventMap>(type: K, listener: (event: LSPClientEventMap[K]) => void, options?: boolean | EventListenerOptions): void;
|
|
45
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions): void;
|
|
46
|
+
dispatchEvent<K extends keyof LSPClientEventMap>(event: LSPClientEventMap[K]): boolean;
|
|
47
|
+
dispatchEvent(event: Event): boolean;
|
|
48
|
+
lang: string;
|
|
49
|
+
hasCapability(name: keyof lsp.ServerCapabilities): boolean;
|
|
50
|
+
connect(): void;
|
|
51
|
+
restart(): Promise<void>;
|
|
52
|
+
changeFile(modified: WorkspaceModifyParams): Promise<boolean>;
|
|
53
|
+
closeFile(uri: string): Promise<void>;
|
|
54
|
+
request<Params, Result>(method: string, params: Params): Promise<Result>;
|
|
55
|
+
notification<Params>(method: string, params: Params): Promise<boolean>;
|
|
56
|
+
getEntry(uri: string): LSPEntry | undefined;
|
|
57
|
+
destroy(): void;
|
|
58
|
+
}
|
|
59
|
+
interface LSPEntry {
|
|
60
|
+
getContentMapper: () => Promise<ContentMapper>;
|
|
61
|
+
uri: string;
|
|
62
|
+
version: number;
|
|
63
|
+
syncedText?: string;
|
|
64
|
+
opened: boolean;
|
|
65
|
+
}
|
|
66
|
+
export declare class LSPClientImpl extends EventTarget implements LSPClient {
|
|
27
67
|
private readonly transport;
|
|
28
68
|
readonly config: LSPClientConfig;
|
|
29
|
-
|
|
30
|
-
workspace: Workspace;
|
|
69
|
+
entries: Record<string, LSPEntry>;
|
|
31
70
|
private nextReqID;
|
|
32
71
|
private requests;
|
|
33
72
|
serverCapabilities: lsp.ServerCapabilities | null;
|
|
@@ -35,23 +74,29 @@ export declare class LSPClient extends EventTarget {
|
|
|
35
74
|
private readonly timeout;
|
|
36
75
|
private initializing;
|
|
37
76
|
private readonly receiveListener;
|
|
77
|
+
private readonly startInitializingListener;
|
|
38
78
|
active: boolean;
|
|
39
|
-
constructor(transport: Transport, config
|
|
79
|
+
constructor(transport: Transport, config: LSPClientConfig);
|
|
80
|
+
destroy(): void;
|
|
81
|
+
get lang(): string;
|
|
40
82
|
startInitializing(): void;
|
|
41
83
|
stopInitializing(): void;
|
|
42
84
|
restart(): Promise<void>;
|
|
43
|
-
onInitialized(): void
|
|
44
|
-
connect(
|
|
85
|
+
onInitialized(): Promise<void>;
|
|
86
|
+
connect(): void;
|
|
45
87
|
disconnect(uri: string): void;
|
|
46
|
-
|
|
47
|
-
|
|
88
|
+
changeFile(modified: WorkspaceModifyParams): Promise<boolean>;
|
|
89
|
+
didOpen(entry: LSPEntry): Promise<boolean>;
|
|
90
|
+
didChange(entry: LSPEntry): Promise<boolean>;
|
|
91
|
+
closeFile(uri: string): Promise<void>;
|
|
48
92
|
private receiveMessage;
|
|
49
93
|
request<Params, Result>(method: string, params: Params): Promise<Result>;
|
|
50
94
|
private requestInner;
|
|
51
95
|
notification<Params>(method: string, params: Params): Promise<boolean>;
|
|
52
96
|
cancelRequest(params: any): void;
|
|
53
|
-
hasCapability(name: keyof lsp.ServerCapabilities): boolean
|
|
54
|
-
syncFiles(): void;
|
|
97
|
+
hasCapability(name: keyof lsp.ServerCapabilities): boolean;
|
|
55
98
|
private timeoutRequest;
|
|
99
|
+
getEntry(uri: string): LSPEntry | undefined;
|
|
56
100
|
}
|
|
101
|
+
export {};
|
|
57
102
|
//# sourceMappingURL=LSPClient.d.ts.map
|
package/esm/LSPClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LSPClient.d.ts","sourceRoot":"","sources":["../src/LSPClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"LSPClient.d.ts","sourceRoot":"","sources":["../src/LSPClient.ts"],"names":[],"mappings":"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"}
|
package/esm/LSPClient.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as lsp from 'vscode-languageserver-protocol';
|
|
1
2
|
import { MessageType, TextDocumentSyncKind, } from 'vscode-languageserver-protocol';
|
|
2
|
-
import {
|
|
3
|
+
import { contentChangesFor } from './computeIncrementalChanges.js';
|
|
3
4
|
const defaultNotificationHandlers = {
|
|
4
5
|
'window/logMessage': (client, params) => {
|
|
5
6
|
if (params.type == MessageType.Error) {
|
|
@@ -15,11 +16,11 @@ const defaultNotificationHandlers = {
|
|
|
15
16
|
console.log('[lsp] ' + params.message);
|
|
16
17
|
}
|
|
17
18
|
},
|
|
18
|
-
'window/showMessage': (client, params) => {
|
|
19
|
+
'window/showMessage': (client, params, config) => {
|
|
19
20
|
if (params.type > MessageType.Info)
|
|
20
21
|
return;
|
|
21
|
-
for (const f of client.
|
|
22
|
-
const ui =
|
|
22
|
+
for (const f of Object.entries(client.entries)) {
|
|
23
|
+
const ui = config.ui;
|
|
23
24
|
if (!ui)
|
|
24
25
|
continue;
|
|
25
26
|
ui.showMessage(params.message);
|
|
@@ -99,11 +100,12 @@ export class LSPError extends Error {
|
|
|
99
100
|
return err;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
|
-
export class
|
|
103
|
+
export class LSPClientImpl extends EventTarget {
|
|
103
104
|
transport;
|
|
104
105
|
config;
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
entries = {};
|
|
107
|
+
// sources: Record<string, () => Promise<ContentMapper>> = {};
|
|
108
|
+
// workspace: Workspace;
|
|
107
109
|
nextReqID = 0;
|
|
108
110
|
requests = [];
|
|
109
111
|
serverCapabilities = null;
|
|
@@ -111,14 +113,16 @@ export class LSPClient extends EventTarget {
|
|
|
111
113
|
timeout;
|
|
112
114
|
initializing;
|
|
113
115
|
receiveListener;
|
|
116
|
+
startInitializingListener;
|
|
114
117
|
active = false;
|
|
115
|
-
constructor(transport, config
|
|
118
|
+
constructor(transport, config) {
|
|
116
119
|
super();
|
|
117
120
|
this.transport = transport;
|
|
118
121
|
this.config = config;
|
|
119
122
|
this.timeout = config.timeout ?? 3000;
|
|
120
123
|
this.receiveListener = (event) => this.receiveMessage(event);
|
|
121
|
-
|
|
124
|
+
this.startInitializingListener = (event) => this.startInitializing();
|
|
125
|
+
transport.addEventListener('open', this.startInitializingListener);
|
|
122
126
|
transport.addEventListener('initialized', () => {
|
|
123
127
|
try {
|
|
124
128
|
console.info('LSP initialized');
|
|
@@ -133,17 +137,19 @@ export class LSPClient extends EventTarget {
|
|
|
133
137
|
}
|
|
134
138
|
}
|
|
135
139
|
});
|
|
136
|
-
transport.addEventListener('
|
|
137
|
-
this.startInitializing();
|
|
138
|
-
});
|
|
140
|
+
transport.addEventListener('message', this.receiveListener);
|
|
139
141
|
transport.addEventListener('close', (event) => {
|
|
140
142
|
this.active = false;
|
|
141
143
|
this.serverCapabilities = null;
|
|
142
144
|
this.dispatchEvent(new CloseEvent('close'));
|
|
143
145
|
});
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
146
|
+
}
|
|
147
|
+
destroy() {
|
|
148
|
+
this.transport.removeEventListener('message', this.receiveListener);
|
|
149
|
+
this.transport.removeEventListener('open', this.startInitializingListener);
|
|
150
|
+
}
|
|
151
|
+
get lang() {
|
|
152
|
+
return this.config.lang;
|
|
147
153
|
}
|
|
148
154
|
startInitializing() {
|
|
149
155
|
if (this.initializing) {
|
|
@@ -187,57 +193,102 @@ export class LSPClient extends EventTarget {
|
|
|
187
193
|
this.startInitializing();
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
|
-
onInitialized() {
|
|
196
|
+
async onInitialized() {
|
|
191
197
|
this.transport.send(JSON.stringify({ jsonrpc: '2.0', method: 'initialized', params: {} }));
|
|
192
|
-
this.
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
198
|
+
for (const [uri, entry] of Object.entries(this.entries)) {
|
|
199
|
+
if (entry.opened) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
await this.didOpen(entry);
|
|
197
203
|
}
|
|
198
|
-
this.
|
|
204
|
+
this.dispatchEvent(new CustomEvent('initialized'));
|
|
205
|
+
}
|
|
206
|
+
connect() {
|
|
199
207
|
this.active = true;
|
|
200
208
|
if (!this.transport.isConnected()) {
|
|
201
209
|
this.transport.connect();
|
|
202
210
|
}
|
|
203
211
|
}
|
|
204
212
|
disconnect(uri) {
|
|
205
|
-
|
|
206
|
-
this.workspace.closeFile(uri);
|
|
207
|
-
if (Object.keys(this.sources).length === 0) {
|
|
213
|
+
if (Object.keys(this.entries).length === 0) {
|
|
208
214
|
this.active = false;
|
|
209
215
|
this.serverCapabilities = null;
|
|
210
216
|
this.transport.removeEventListener('data', this.receiveListener);
|
|
211
|
-
this.workspace.disconnected();
|
|
212
217
|
this.dispatchEvent(new CloseEvent('close'));
|
|
213
218
|
}
|
|
214
219
|
}
|
|
220
|
+
async changeFile(modified) {
|
|
221
|
+
const entry = this.entries[modified.uri] || {
|
|
222
|
+
uri: modified.uri,
|
|
223
|
+
version: modified.version,
|
|
224
|
+
syncedText: undefined,
|
|
225
|
+
opened: false,
|
|
226
|
+
};
|
|
227
|
+
entry.version = modified.version;
|
|
228
|
+
entry.getContentMapper = modified.getContentMapper;
|
|
229
|
+
if (!this.entries[modified.uri]) {
|
|
230
|
+
this.entries[modified.uri] = entry;
|
|
231
|
+
return await this.didOpen(entry);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
return await this.didChange(entry);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
215
237
|
/// Send a `textDocument/didOpen` notification to the server.
|
|
216
|
-
async didOpen(
|
|
238
|
+
async didOpen(entry) {
|
|
217
239
|
if (!this.transport.isInitialized()) {
|
|
240
|
+
entry.opened = false;
|
|
241
|
+
this.connect();
|
|
218
242
|
return false;
|
|
219
243
|
}
|
|
244
|
+
const mapper = await entry.getContentMapper();
|
|
245
|
+
const text = mapper.getTextContent();
|
|
220
246
|
await this.notification('textDocument/didOpen', {
|
|
221
247
|
textDocument: {
|
|
222
|
-
uri:
|
|
223
|
-
languageId:
|
|
224
|
-
text
|
|
225
|
-
version:
|
|
248
|
+
uri: entry.uri,
|
|
249
|
+
languageId: this.lang,
|
|
250
|
+
text,
|
|
251
|
+
version: entry.version,
|
|
226
252
|
},
|
|
227
253
|
});
|
|
254
|
+
entry.opened = true;
|
|
255
|
+
entry.syncedText = text;
|
|
228
256
|
await this.notification('textDocument/diagnostic', {
|
|
229
257
|
textDocument: {
|
|
230
|
-
uri:
|
|
258
|
+
uri: entry.uri,
|
|
231
259
|
},
|
|
232
260
|
});
|
|
233
261
|
return true;
|
|
234
262
|
}
|
|
235
|
-
|
|
236
|
-
|
|
263
|
+
async didChange(entry) {
|
|
264
|
+
if (!this.transport.isInitialized()) {
|
|
265
|
+
entry.opened = false;
|
|
266
|
+
this.connect();
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
if (!entry.opened) {
|
|
270
|
+
return this.didOpen(entry);
|
|
271
|
+
}
|
|
272
|
+
const mapper = await entry.getContentMapper();
|
|
273
|
+
const text = mapper.getTextContent();
|
|
274
|
+
await this.notification('textDocument/didChange', {
|
|
275
|
+
textDocument: { uri: entry.uri, version: entry.version },
|
|
276
|
+
contentChanges: contentChangesFor(this.supportSync == lsp.TextDocumentSyncKind.Incremental, text, entry.syncedText),
|
|
277
|
+
});
|
|
278
|
+
entry.syncedText = text;
|
|
279
|
+
await this.notification('textDocument/diagnostic', {
|
|
280
|
+
textDocument: {
|
|
281
|
+
uri: entry.uri,
|
|
282
|
+
},
|
|
283
|
+
});
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
async closeFile(uri) {
|
|
287
|
+
delete this.entries[uri];
|
|
237
288
|
if (!this.transport.isInitialized()) {
|
|
238
289
|
return;
|
|
239
290
|
}
|
|
240
|
-
this.notification('textDocument/didClose', {
|
|
291
|
+
await this.notification('textDocument/didClose', {
|
|
241
292
|
textDocument: { uri },
|
|
242
293
|
});
|
|
243
294
|
}
|
|
@@ -269,7 +320,7 @@ export class LSPClient extends EventTarget {
|
|
|
269
320
|
}
|
|
270
321
|
else {
|
|
271
322
|
if (defaultNotificationHandlers[value.method]) {
|
|
272
|
-
defaultNotificationHandlers[value.method](this, value.params);
|
|
323
|
+
defaultNotificationHandlers[value.method](this, value.params, this.config);
|
|
273
324
|
}
|
|
274
325
|
}
|
|
275
326
|
}
|
|
@@ -355,10 +406,7 @@ export class LSPClient extends EventTarget {
|
|
|
355
406
|
}
|
|
356
407
|
}
|
|
357
408
|
hasCapability(name) {
|
|
358
|
-
return this.serverCapabilities ? !!this.serverCapabilities[name] :
|
|
359
|
-
}
|
|
360
|
-
syncFiles() {
|
|
361
|
-
this.workspace.syncFiles();
|
|
409
|
+
return this.serverCapabilities ? !!this.serverCapabilities[name] : false;
|
|
362
410
|
}
|
|
363
411
|
timeoutRequest(req, method, id, params) {
|
|
364
412
|
const index = this.requests.indexOf(req);
|
|
@@ -367,5 +415,8 @@ export class LSPClient extends EventTarget {
|
|
|
367
415
|
this.requests.splice(index, 1);
|
|
368
416
|
}
|
|
369
417
|
}
|
|
418
|
+
getEntry(uri) {
|
|
419
|
+
return this.entries[uri];
|
|
420
|
+
}
|
|
370
421
|
}
|
|
371
422
|
//# sourceMappingURL=LSPClient.js.map
|
package/esm/LSPClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LSPClient.js","sourceRoot":"","sources":["../src/LSPClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAa,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,2BAA2B,GAE7B;IACF,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAA4B,EAAE,EAAE;QAC5D,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAA6B,EAAE,EAAE;QAC9D,IAAI,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;YAAE,OAAO;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,EAAE;gBAAE,SAAS;YAClB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF,CAAC;AAoBF,MAAM,OAAO;IAMA;IACA;IACA;IALX,OAAO,CAAkB;IAEzB,YACW,EAAU,EACV,MAAW,EACX,OAAsC;QAFtC,OAAE,GAAF,EAAE,CAAQ;QACV,WAAM,GAAN,MAAM,CAAK;QACX,YAAO,GAAP,OAAO,CAA+B;QAE/C,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,kBAAkB,GAA2B;IACjD,OAAO,EAAE;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,QAAQ;SACjB;KACF;IACD,SAAS,EAAE;QACT,aAAa,EAAE;YACb,gBAAgB,EAAE,IAAI;SACvB;KACF;IACD,YAAY,EAAE;QACZ,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QAC5C,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,cAAc,EAAE,IAAI;gBACpB,mBAAmB,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;gBAC9C,oBAAoB,EAAE,KAAK;aAC5B;YACD,cAAc,EAAE;gBACd,YAAY,EAAE,CAAC,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,CAAC;aACpE;YACD,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACpC,cAAc,EAAE,IAAI;SACrB;QACD,KAAK,EAAE;YACL,aAAa,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;SACzC;QACD,kBAAkB;QAClB,cAAc;QACd,aAAa,EAAE;YACb,cAAc,EAAE,IAAI;YACpB,oBAAoB,EAAE;gBACpB,mBAAmB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;gBAC9C,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;gBAClD,sBAAsB,EAAE,IAAI;aAC7B;SACF;QACD,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;QACd,kBAAkB;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,EAAE;KAChB;CACF,CAAC;AA+BF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,SAAS,GAAG,KAAK,CAAC;IACT,KAAK,GAAG,IAAI,CAAC;IAEtB,MAAM,CAAC,aAAa;QAClB,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC9C,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACrB,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,WAAW;IAiBrB;IACR;IAjBX,OAAO,GAA8B,EAAE,CAAC;IAExC,SAAS,CAAY;IACb,SAAS,GAAG,CAAC,CAAC;IACd,QAAQ,GAAmB,EAAE,CAAC;IAEtC,kBAAkB,GAAkC,IAAI,CAAC;IAClD,WAAW,GAAyB,oBAAoB,CAAC,IAAI,CAAC;IAEpD,OAAO,CAAS;IACzB,YAAY,CAA6C;IAEhD,eAAe,CAAqC;IACrE,MAAM,GAAY,KAAK,CAAC;IAExB,YACmB,SAAoB,EAC5B,SAA0B,EAAE;QAErC,KAAK,EAAE,CAAC;QAHS,cAAS,GAAT,SAAS,CAAW;QAC5B,WAAM,GAAN,MAAM,CAAsB;QAIrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;QAEtC,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE7D,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,CACX,iCAAiC,EACjC,GAAG,CAAC,OAAO,EACX,IAAI,CAAC,aAAa,CACnB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;YAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,YAAY,GAAG,kBAAkB,CAAC;YAExC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAIlC,YAAY,EACZ;oBACE,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;oBAC5C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI;oBACpC,YAAY;iBACb,CACF,CAAC,OAAO,CAAC;gBAEV,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAExB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;gBACtD,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,QAAQ;wBACxC,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC;gBAC/C,CAAC;gBACD,4BAA4B;YAC9B,CAAC;YAAC,OAAO,mBAAmB,EAAE,CAAC,CAAA,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,aAAa;QACX,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACtE,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,MAAiB;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,oBAAoB,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,IAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,CAAC,YAAY,CACrB,sBAAsB,EACtB;YACE,YAAY,EAAE;gBACZ,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CACF,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CACrB,yBAAyB,EACzB;YACE,YAAY,EAAE;gBACZ,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,YAAY,CAAiC,uBAAuB,EAAE;YACzE,YAAY,EAAE,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,KAAY;QACjC,MAAM,GAAG,GAAI,KAAsB,CAAC,IAAI,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAGN,CAAC;QAEvB,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CACV,sDAAsD,KAAK,CAAC,EAAE,EAAE,CACjE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,CAAC,KAAK;oBAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;oBACpC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;aACjC,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;oBACtC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,IAAI,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC9C,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAwB;gBAChC,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB;oBAClC,OAAO,EAAE,wBAAwB;iBAClC;aACF,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAc,EACd,MAAc;QAEd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAiB,MAAM,EAAE,MAAM,CAAC;aACnE,OAAO,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAClB,MAAc,EACd,MAAc,EACd,MAAM,GAAG,KAAK;QAEd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,GAAuB;YACzB,OAAO,EAAE,KAAK;YACd,EAAE;YACF,MAAM;YACN,MAAM,EAAE,MAAa;SACtB,CAAC;QAEJ,MAAM,GAAG,GAAG,IAAI,OAAO,CACrB,EAAE,EACF,MAAM,EACN,UAAU,CACR,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAClD,IAAI,CAAC,OAAO,CACb,CACF,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,YAAY,CAAS,MAAc,EAAE,MAAc;QACvD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,KAAK;YACd,MAAM;YACN,MAAM,EAAE,MAAa;SACtB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,MAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAkC;QAC9C,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,CAAC;IAED,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC;IAEO,cAAc,CACpB,GAAe,EACf,MAAc,EACd,EAAU,EACV,MAAW;QAEX,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"LSPClient.js","sourceRoot":"","sources":["../src/LSPClient.ts"],"names":[],"mappings":"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"}
|