typescript-language-server 3.0.1 → 3.0.2
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/CHANGELOG.md +12 -0
- package/lib/cli.mjs +3 -0
- package/lib/cli.mjs.map +1 -0
- package/package.json +37 -31
- package/lib/cli.d.ts +0 -3
- package/lib/cli.d.ts.map +0 -1
- package/lib/cli.js +0 -37
- package/lib/cli.js.map +0 -1
- package/lib/commands.d.ts +0 -13
- package/lib/commands.d.ts.map +0 -1
- package/lib/commands.js +0 -20
- package/lib/commands.js.map +0 -1
- package/lib/completion.d.ts +0 -10
- package/lib/completion.d.ts.map +0 -1
- package/lib/completion.js +0 -388
- package/lib/completion.js.map +0 -1
- package/lib/configuration-manager.d.ts +0 -48
- package/lib/configuration-manager.d.ts.map +0 -1
- package/lib/configuration-manager.js +0 -138
- package/lib/configuration-manager.js.map +0 -1
- package/lib/diagnostic-queue.d.ts +0 -31
- package/lib/diagnostic-queue.d.ts.map +0 -1
- package/lib/diagnostic-queue.js +0 -70
- package/lib/diagnostic-queue.js.map +0 -1
- package/lib/document-symbol.d.ts +0 -6
- package/lib/document-symbol.d.ts.map +0 -1
- package/lib/document-symbol.js +0 -85
- package/lib/document-symbol.js.map +0 -1
- package/lib/document.d.ts +0 -34
- package/lib/document.d.ts.map +0 -1
- package/lib/document.js +0 -115
- package/lib/document.js.map +0 -1
- package/lib/features/call-hierarchy.d.ts +0 -7
- package/lib/features/call-hierarchy.d.ts.map +0 -1
- package/lib/features/call-hierarchy.js +0 -81
- package/lib/features/call-hierarchy.js.map +0 -1
- package/lib/features/call-hierarchy.spec.d.ts +0 -2
- package/lib/features/call-hierarchy.spec.d.ts.map +0 -1
- package/lib/features/call-hierarchy.spec.js +0 -107
- package/lib/features/call-hierarchy.spec.js.map +0 -1
- package/lib/features/fix-all.d.ts +0 -12
- package/lib/features/fix-all.d.ts.map +0 -1
- package/lib/features/fix-all.js +0 -156
- package/lib/features/fix-all.js.map +0 -1
- package/lib/features/inlay-hints.d.ts +0 -11
- package/lib/features/inlay-hints.d.ts.map +0 -1
- package/lib/features/inlay-hints.js +0 -71
- package/lib/features/inlay-hints.js.map +0 -1
- package/lib/features/semantic-tokens.d.ts +0 -9
- package/lib/features/semantic-tokens.d.ts.map +0 -1
- package/lib/features/semantic-tokens.js +0 -43
- package/lib/features/semantic-tokens.js.map +0 -1
- package/lib/features/source-definition.d.ts +0 -11
- package/lib/features/source-definition.d.ts.map +0 -1
- package/lib/features/source-definition.js +0 -51
- package/lib/features/source-definition.js.map +0 -1
- package/lib/file-lsp-server.spec.d.ts +0 -2
- package/lib/file-lsp-server.spec.d.ts.map +0 -1
- package/lib/file-lsp-server.spec.js +0 -64
- package/lib/file-lsp-server.spec.js.map +0 -1
- package/lib/hover.d.ts +0 -6
- package/lib/hover.d.ts.map +0 -1
- package/lib/hover.js +0 -80
- package/lib/hover.js.map +0 -1
- package/lib/lsp-client.d.ts +0 -26
- package/lib/lsp-client.d.ts.map +0 -1
- package/lib/lsp-client.js +0 -51
- package/lib/lsp-client.js.map +0 -1
- package/lib/lsp-connection.d.ts +0 -9
- package/lib/lsp-connection.d.ts.map +0 -1
- package/lib/lsp-connection.js +0 -54
- package/lib/lsp-connection.js.map +0 -1
- package/lib/lsp-server.d.ts +0 -86
- package/lib/lsp-server.d.ts.map +0 -1
- package/lib/lsp-server.js +0 -1168
- package/lib/lsp-server.js.map +0 -1
- package/lib/lsp-server.spec.d.ts +0 -2
- package/lib/lsp-server.spec.d.ts.map +0 -1
- package/lib/lsp-server.spec.js +0 -2106
- package/lib/lsp-server.spec.js.map +0 -1
- package/lib/organize-imports.d.ts +0 -5
- package/lib/organize-imports.d.ts.map +0 -1
- package/lib/organize-imports.js +0 -19
- package/lib/organize-imports.js.map +0 -1
- package/lib/organize-imports.spec.d.ts +0 -2
- package/lib/organize-imports.spec.d.ts.map +0 -1
- package/lib/organize-imports.spec.js +0 -38
- package/lib/organize-imports.spec.js.map +0 -1
- package/lib/protocol-translation.d.ts +0 -26
- package/lib/protocol-translation.d.ts.map +0 -1
- package/lib/protocol-translation.js +0 -184
- package/lib/protocol-translation.js.map +0 -1
- package/lib/quickfix.d.ts +0 -5
- package/lib/quickfix.d.ts.map +0 -1
- package/lib/quickfix.js +0 -20
- package/lib/quickfix.js.map +0 -1
- package/lib/refactor.d.ts +0 -6
- package/lib/refactor.d.ts.map +0 -1
- package/lib/refactor.js +0 -58
- package/lib/refactor.js.map +0 -1
- package/lib/test-utils.d.ts +0 -45
- package/lib/test-utils.d.ts.map +0 -1
- package/lib/test-utils.js +0 -185
- package/lib/test-utils.js.map +0 -1
- package/lib/ts-protocol.d.ts +0 -93
- package/lib/ts-protocol.d.ts.map +0 -1
- package/lib/ts-protocol.js +0 -66
- package/lib/ts-protocol.js.map +0 -1
- package/lib/tsServer/callbackMap.d.ts +0 -17
- package/lib/tsServer/callbackMap.d.ts.map +0 -1
- package/lib/tsServer/callbackMap.js +0 -47
- package/lib/tsServer/callbackMap.js.map +0 -1
- package/lib/tsServer/cancellation.d.ts +0 -22
- package/lib/tsServer/cancellation.d.ts.map +0 -1
- package/lib/tsServer/cancellation.js +0 -51
- package/lib/tsServer/cancellation.js.map +0 -1
- package/lib/tsServer/logDirectoryProvider.d.ts +0 -13
- package/lib/tsServer/logDirectoryProvider.d.ts.map +0 -1
- package/lib/tsServer/logDirectoryProvider.js +0 -49
- package/lib/tsServer/logDirectoryProvider.js.map +0 -1
- package/lib/tsServer/requestQueue.d.ts +0 -34
- package/lib/tsServer/requestQueue.d.ts.map +0 -1
- package/lib/tsServer/requestQueue.js +0 -74
- package/lib/tsServer/requestQueue.js.map +0 -1
- package/lib/tsServer/requests.d.ts +0 -73
- package/lib/tsServer/requests.d.ts.map +0 -1
- package/lib/tsServer/requests.js +0 -30
- package/lib/tsServer/requests.js.map +0 -1
- package/lib/tsServer/server.d.ts +0 -100
- package/lib/tsServer/server.d.ts.map +0 -1
- package/lib/tsServer/server.js +0 -216
- package/lib/tsServer/server.js.map +0 -1
- package/lib/tsServer/serverError.d.ts +0 -18
- package/lib/tsServer/serverError.d.ts.map +0 -1
- package/lib/tsServer/serverError.js +0 -53
- package/lib/tsServer/serverError.js.map +0 -1
- package/lib/tsServer/serverProcess.d.ts +0 -7
- package/lib/tsServer/serverProcess.d.ts.map +0 -1
- package/lib/tsServer/serverProcess.js +0 -244
- package/lib/tsServer/serverProcess.js.map +0 -1
- package/lib/tsServer/spawner.d.ts +0 -19
- package/lib/tsServer/spawner.d.ts.map +0 -1
- package/lib/tsServer/spawner.js +0 -130
- package/lib/tsServer/spawner.js.map +0 -1
- package/lib/tsServer/tracer.d.ts +0 -26
- package/lib/tsServer/tracer.d.ts.map +0 -1
- package/lib/tsServer/tracer.js +0 -80
- package/lib/tsServer/tracer.js.map +0 -1
- package/lib/tsServer/versionProvider.d.ts +0 -29
- package/lib/tsServer/versionProvider.d.ts.map +0 -1
- package/lib/tsServer/versionProvider.js +0 -161
- package/lib/tsServer/versionProvider.js.map +0 -1
- package/lib/tsp-client.d.ts +0 -53
- package/lib/tsp-client.d.ts.map +0 -1
- package/lib/tsp-client.js +0 -228
- package/lib/tsp-client.js.map +0 -1
- package/lib/tsp-client.spec.d.ts +0 -2
- package/lib/tsp-client.spec.d.ts.map +0 -1
- package/lib/tsp-client.spec.js +0 -113
- package/lib/tsp-client.spec.js.map +0 -1
- package/lib/utils/MarkdownString.d.ts +0 -15
- package/lib/utils/MarkdownString.d.ts.map +0 -1
- package/lib/utils/MarkdownString.js +0 -45
- package/lib/utils/MarkdownString.js.map +0 -1
- package/lib/utils/SnippetString.d.ts +0 -12
- package/lib/utils/SnippetString.d.ts.map +0 -1
- package/lib/utils/SnippetString.js +0 -66
- package/lib/utils/SnippetString.js.map +0 -1
- package/lib/utils/api.d.ts +0 -49
- package/lib/utils/api.d.ts.map +0 -1
- package/lib/utils/api.js +0 -77
- package/lib/utils/api.js.map +0 -1
- package/lib/utils/configuration.d.ts +0 -20
- package/lib/utils/configuration.d.ts.map +0 -1
- package/lib/utils/configuration.js +0 -47
- package/lib/utils/configuration.js.map +0 -1
- package/lib/utils/errorCodes.d.ts +0 -12
- package/lib/utils/errorCodes.d.ts.map +0 -1
- package/lib/utils/errorCodes.js +0 -16
- package/lib/utils/errorCodes.js.map +0 -1
- package/lib/utils/fixNames.d.ts +0 -14
- package/lib/utils/fixNames.d.ts.map +0 -1
- package/lib/utils/fixNames.js +0 -18
- package/lib/utils/fixNames.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -65
- package/lib/utils/logger.d.ts.map +0 -1
- package/lib/utils/logger.js +0 -187
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/modules-resolver.d.ts +0 -2
- package/lib/utils/modules-resolver.d.ts.map +0 -1
- package/lib/utils/modules-resolver.js +0 -17
- package/lib/utils/modules-resolver.js.map +0 -1
- package/lib/utils/modules-resolver.spec.d.ts +0 -2
- package/lib/utils/modules-resolver.spec.d.ts.map +0 -1
- package/lib/utils/modules-resolver.spec.js +0 -18
- package/lib/utils/modules-resolver.spec.js.map +0 -1
- package/lib/utils/previewer.d.ts +0 -15
- package/lib/utils/previewer.d.ts.map +0 -1
- package/lib/utils/previewer.js +0 -185
- package/lib/utils/previewer.js.map +0 -1
- package/lib/utils/previewer.spec.d.ts +0 -2
- package/lib/utils/previewer.spec.d.ts.map +0 -1
- package/lib/utils/previewer.spec.js +0 -123
- package/lib/utils/previewer.spec.js.map +0 -1
- package/lib/utils/tsconfig.d.ts +0 -4
- package/lib/utils/tsconfig.d.ts.map +0 -1
- package/lib/utils/tsconfig.js +0 -41
- package/lib/utils/tsconfig.js.map +0 -1
- package/lib/utils/typeConverters.d.ts +0 -29
- package/lib/utils/typeConverters.d.ts.map +0 -1
- package/lib/utils/typeConverters.js +0 -118
- package/lib/utils/typeConverters.js.map +0 -1
- package/lib/utils/types.d.ts +0 -41
- package/lib/utils/types.d.ts.map +0 -1
- package/lib/utils/types.js +0 -55
- package/lib/utils/types.js.map +0 -1
- package/lib/utils.d.ts +0 -6
- package/lib/utils.d.ts.map +0 -1
- package/lib/utils.js +0 -17
- package/lib/utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typescript-language-server",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "Language Server Protocol (LSP) implementation for TypeScript using tsserver",
|
|
5
5
|
"author": "TypeFox and others",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,18 +16,17 @@
|
|
|
16
16
|
"lib"
|
|
17
17
|
],
|
|
18
18
|
"bin": {
|
|
19
|
-
"typescript-language-server": "./lib/cli.
|
|
19
|
+
"typescript-language-server": "./lib/cli.mjs"
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"clean": "rimraf lib *.tsbuildinfo",
|
|
23
|
-
"test": "cross-env CONSOLE_LOG_LEVEL=warning
|
|
24
|
-
"test:watch": "cross-env CONSOLE_LOG_LEVEL=warning
|
|
25
|
-
"test:compiled": "cross-env CONSOLE_LOG_LEVEL=warning mocha \"./lib/**/*.spec.js\"",
|
|
23
|
+
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules CONSOLE_LOG_LEVEL=warning jest",
|
|
24
|
+
"test:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules CONSOLE_LOG_LEVEL=warning jest --watch",
|
|
26
25
|
"lint": "eslint --ext \".js,.ts\" src",
|
|
27
26
|
"fix": "eslint --ext \".js,.ts\" --fix src",
|
|
28
27
|
"build": "concurrently -n compile,lint -c blue,green \"yarn compile\" \"yarn lint\"",
|
|
29
|
-
"compile": "
|
|
30
|
-
"watch": "
|
|
28
|
+
"compile": "rimraf lib && rollup --config rollup.config.ts --configPlugin typescript",
|
|
29
|
+
"watch": "rimraf lib && rollup --config rollup.config.ts --configPlugin typescript --watch",
|
|
31
30
|
"postversion": "git push --follow-tags",
|
|
32
31
|
"prepare": "cd test-data/jsx && yarn"
|
|
33
32
|
},
|
|
@@ -36,43 +35,50 @@
|
|
|
36
35
|
],
|
|
37
36
|
"husky": {
|
|
38
37
|
"hooks": {
|
|
39
|
-
"pre-commit": "yarn lint && yarn
|
|
38
|
+
"pre-commit": "yarn lint && yarn test && yarn build",
|
|
40
39
|
"post-merge": "yarn"
|
|
41
40
|
}
|
|
42
41
|
},
|
|
43
|
-
"
|
|
44
|
-
"
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@babel/core": "^7.20.12",
|
|
44
|
+
"@babel/preset-env": "^7.20.2",
|
|
45
|
+
"@rollup/plugin-commonjs": "^24.0.0",
|
|
46
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
47
|
+
"@rollup/plugin-terser": "^0.3.0",
|
|
48
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
49
|
+
"@types/deepmerge": "^2.2.0",
|
|
50
|
+
"@types/fs-extra": "^11.0.1",
|
|
51
|
+
"@types/jest": "^29.2.5",
|
|
52
|
+
"@types/node": "^16.18.11",
|
|
53
|
+
"@types/semver": "^7.3.13",
|
|
54
|
+
"@types/which": "^2.0.1",
|
|
55
|
+
"@typescript-eslint/eslint-plugin": "^5.48.1",
|
|
56
|
+
"@typescript-eslint/parser": "^5.48.1",
|
|
57
|
+
"babel-jest": "^29.3.1",
|
|
58
|
+
"commander": "^9.5.0",
|
|
59
|
+
"concurrently": "^7.6.0",
|
|
60
|
+
"cross-env": "^7.0.3",
|
|
45
61
|
"deepmerge": "^4.2.2",
|
|
62
|
+
"eslint": "^8.31.0",
|
|
63
|
+
"eslint-plugin-jest": "^27.2.1",
|
|
46
64
|
"fs-extra": "^11.1.0",
|
|
65
|
+
"husky": "4.x",
|
|
66
|
+
"jest": "^29.3.1",
|
|
47
67
|
"p-debounce": "^4.0.0",
|
|
48
68
|
"pkg-up": "^4.0.0",
|
|
69
|
+
"rimraf": "^4.0.4",
|
|
70
|
+
"rollup": "^3.10.0",
|
|
49
71
|
"semver": "^7.3.8",
|
|
72
|
+
"source-map-support": "^0.5.21",
|
|
50
73
|
"tempy": "^3.0.0",
|
|
74
|
+
"ts-jest": "^29.0.5",
|
|
75
|
+
"ts-node": "^10.9.1",
|
|
76
|
+
"tslib": "^2.4.1",
|
|
77
|
+
"typescript": "^4.9.4",
|
|
51
78
|
"vscode-languageserver": "^8.0.2",
|
|
52
79
|
"vscode-languageserver-protocol": "^3.17.2",
|
|
53
80
|
"vscode-languageserver-textdocument": "1.0.8",
|
|
54
81
|
"vscode-uri": "^3.0.7",
|
|
55
82
|
"which": "^3.0.0"
|
|
56
|
-
},
|
|
57
|
-
"devDependencies": {
|
|
58
|
-
"@types/chai": "^4.3.4",
|
|
59
|
-
"@types/deepmerge": "^2.2.0",
|
|
60
|
-
"@types/fs-extra": "^9.0.13",
|
|
61
|
-
"@types/mocha": "^10.0.1",
|
|
62
|
-
"@types/node": "^16.18.11",
|
|
63
|
-
"@types/semver": "^7.3.13",
|
|
64
|
-
"@types/which": "^2.0.1",
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "^5.47.1",
|
|
66
|
-
"@typescript-eslint/parser": "^5.47.1",
|
|
67
|
-
"chai": "^4.3.7",
|
|
68
|
-
"concurrently": "^7.6.0",
|
|
69
|
-
"cross-env": "^7.0.3",
|
|
70
|
-
"eslint": "^8.30.0",
|
|
71
|
-
"husky": "4.x",
|
|
72
|
-
"mocha": "^10.2.0",
|
|
73
|
-
"rimraf": "^3.0.2",
|
|
74
|
-
"source-map-support": "^0.5.21",
|
|
75
|
-
"ts-node": "^10.9.1",
|
|
76
|
-
"typescript": "^4.9.4"
|
|
77
83
|
}
|
|
78
84
|
}
|
package/lib/cli.d.ts
DELETED
package/lib/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/lib/cli.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (C) 2017, 2018 TypeFox and others.
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
*/
|
|
8
|
-
import { readFileSync } from 'node:fs';
|
|
9
|
-
import { Command } from 'commander';
|
|
10
|
-
import lsp from 'vscode-languageserver';
|
|
11
|
-
import { createLspConnection } from './lsp-connection.js';
|
|
12
|
-
import { TsServerLogLevel } from './utils/configuration.js';
|
|
13
|
-
const DEFAULT_LOG_LEVEL = lsp.MessageType.Info;
|
|
14
|
-
const { version } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), { encoding: 'utf8' }));
|
|
15
|
-
const program = new Command('typescript-language-server')
|
|
16
|
-
.version(version)
|
|
17
|
-
.requiredOption('--stdio', 'use stdio')
|
|
18
|
-
.option('--log-level <logLevel>', 'A number indicating the log level (4 = log, 3 = info, 2 = warn, 1 = error). Defaults to `2`.')
|
|
19
|
-
.option('--tsserver-log-verbosity <tsserverLogVerbosity>', '[deprecated] Specify a tsserver log verbosity (terse, normal, verbose). Defaults to `normal`.' +
|
|
20
|
-
' example: --tsserver-log-verbosity verbose')
|
|
21
|
-
.option('--tsserver-path <path>', '[deprecated] Specify path to tsserver.js or the lib directory. example: --tsserver-path=/Users/me/typescript/lib/tsserver.js')
|
|
22
|
-
.parse(process.argv);
|
|
23
|
-
const options = program.opts();
|
|
24
|
-
let logLevel = DEFAULT_LOG_LEVEL;
|
|
25
|
-
if (options.logLevel) {
|
|
26
|
-
logLevel = parseInt(options.logLevel, 10);
|
|
27
|
-
if (logLevel && (logLevel < 1 || logLevel > 4)) {
|
|
28
|
-
console.error(`Invalid '--log-level ${logLevel}'. Falling back to 'info' level.`);
|
|
29
|
-
logLevel = DEFAULT_LOG_LEVEL;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
createLspConnection({
|
|
33
|
-
cmdLineTsserverPath: options.tsserverPath,
|
|
34
|
-
cmdLineTsserverLogVerbosity: TsServerLogLevel.fromString(options.tsserverLogVerbosity),
|
|
35
|
-
showMessageLevel: logLevel,
|
|
36
|
-
}).listen();
|
|
37
|
-
//# sourceMappingURL=cli.js.map
|
package/lib/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,GAAG,MAAM,uBAAuB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,iBAAiB,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAEhH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KACpD,OAAO,CAAC,OAAO,CAAC;KAChB,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;KACtC,MAAM,CAAC,wBAAwB,EAAE,8FAA8F,CAAC;KAChI,MAAM,CAAC,iDAAiD,EAAE,+FAA+F;IACxJ,4CAA4C,CAAC;KAC9C,MAAM,CAAC,wBAAwB,EAAE,8HAA8H,CAAC;KAChK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAE/B,IAAI,QAAQ,GAAG,iBAAiB,CAAC;AACjC,IAAI,OAAO,CAAC,QAAQ,EAAE;IAClB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;QAC5C,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,kCAAkC,CAAC,CAAC;QAClF,QAAQ,GAAG,iBAAiB,CAAC;KAChC;CACJ;AAED,mBAAmB,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC,YAAsB;IACnD,2BAA2B,EAAE,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACtF,gBAAgB,EAAE,QAA2B;CAChD,CAAC,CAAC,MAAM,EAAE,CAAC"}
|
package/lib/commands.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const Commands: {
|
|
2
|
-
APPLY_WORKSPACE_EDIT: string;
|
|
3
|
-
APPLY_CODE_ACTION: string;
|
|
4
|
-
APPLY_REFACTORING: string;
|
|
5
|
-
CONFIGURE_PLUGIN: string;
|
|
6
|
-
ORGANIZE_IMPORTS: string;
|
|
7
|
-
APPLY_RENAME_FILE: string;
|
|
8
|
-
APPLY_COMPLETION_CODE_ACTION: string;
|
|
9
|
-
/** Commands below should be implemented by the client */
|
|
10
|
-
SELECT_REFACTORING: string;
|
|
11
|
-
SOURCE_DEFINITION: string;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=commands.d.ts.map
|
package/lib/commands.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ;;;;;;;;IAQjB,yDAAyD;;;CAG5D,CAAC"}
|
package/lib/commands.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2018 TypeFox and others.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
-
*/
|
|
7
|
-
import { SourceDefinitionCommand } from './features/source-definition.js';
|
|
8
|
-
export const Commands = {
|
|
9
|
-
APPLY_WORKSPACE_EDIT: '_typescript.applyWorkspaceEdit',
|
|
10
|
-
APPLY_CODE_ACTION: '_typescript.applyCodeAction',
|
|
11
|
-
APPLY_REFACTORING: '_typescript.applyRefactoring',
|
|
12
|
-
CONFIGURE_PLUGIN: '_typescript.configurePlugin',
|
|
13
|
-
ORGANIZE_IMPORTS: '_typescript.organizeImports',
|
|
14
|
-
APPLY_RENAME_FILE: '_typescript.applyRenameFile',
|
|
15
|
-
APPLY_COMPLETION_CODE_ACTION: '_typescript.applyCompletionCodeAction',
|
|
16
|
-
/** Commands below should be implemented by the client */
|
|
17
|
-
SELECT_REFACTORING: '_typescript.selectRefactoring',
|
|
18
|
-
SOURCE_DEFINITION: SourceDefinitionCommand.id,
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=commands.js.map
|
package/lib/commands.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,oBAAoB,EAAE,gCAAgC;IACtD,iBAAiB,EAAE,6BAA6B;IAChD,iBAAiB,EAAE,8BAA8B;IACjD,gBAAgB,EAAE,6BAA6B;IAC/C,gBAAgB,EAAE,6BAA6B;IAC/C,iBAAiB,EAAE,6BAA6B;IAChD,4BAA4B,EAAE,uCAAuC;IACrE,yDAAyD;IACzD,kBAAkB,EAAE,+BAA+B;IACnD,iBAAiB,EAAE,uBAAuB,CAAC,EAAE;CAChD,CAAC"}
|
package/lib/completion.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as lsp from 'vscode-languageserver';
|
|
2
|
-
import { LspDocument } from './document.js';
|
|
3
|
-
import { TspClient } from './tsp-client.js';
|
|
4
|
-
import { tsp, SupportedFeatures } from './ts-protocol.js';
|
|
5
|
-
import { IFilePathToResourceConverter } from './utils/previewer.js';
|
|
6
|
-
import type { WorkspaceConfigurationCompletionOptions } from './configuration-manager.js';
|
|
7
|
-
export declare function asCompletionItem(entry: tsp.CompletionEntry, optionalReplacementSpan: tsp.TextSpan | undefined, file: string, position: lsp.Position, document: LspDocument, filePathConverter: IFilePathToResourceConverter, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): lsp.CompletionItem | null;
|
|
8
|
-
export declare function asResolvedCompletionItem(item: lsp.CompletionItem, details: tsp.CompletionEntryDetails, document: LspDocument | undefined, client: TspClient, filePathConverter: IFilePathToResourceConverter, options: WorkspaceConfigurationCompletionOptions, features: SupportedFeatures): Promise<lsp.CompletionItem>;
|
|
9
|
-
export declare function getCompletionTriggerCharacter(character: string | undefined): tsp.CompletionsTriggerCharacter | undefined;
|
|
10
|
-
//# sourceMappingURL=completion.d.ts.map
|
package/lib/completion.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAS,GAAG,EAAiB,iBAAiB,EAA2B,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,4BAA4B,CAAC;AAU1F,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,GAAG,CAAC,eAAe,EAC1B,uBAAuB,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,EACjD,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACpC,QAAQ,EAAE,WAAW,EACrB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,GAAG,CAAC,cAAc,GAAG,IAAI,CA+E3B;AA0GD,wBAAsB,wBAAwB,CAC1C,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,OAAO,EAAE,GAAG,CAAC,sBAAsB,EACnC,QAAQ,EAAE,WAAW,GAAG,SAAS,EACjC,MAAM,EAAE,SAAS,EACjB,iBAAiB,EAAE,4BAA4B,EAC/C,OAAO,EAAE,uCAAuC,EAChD,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAoB7B;AAsLD,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,2BAA2B,GAAG,SAAS,CAexH"}
|
package/lib/completion.js
DELETED
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2018 TypeFox and others.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
-
*/
|
|
7
|
-
import * as lsp from 'vscode-languageserver';
|
|
8
|
-
import { toTextEdit, normalizePath } from './protocol-translation.js';
|
|
9
|
-
import { Commands } from './commands.js';
|
|
10
|
-
import { tslib, tsp, KindModifiers, toSymbolDisplayPartKind } from './ts-protocol.js';
|
|
11
|
-
import * as Previewer from './utils/previewer.js';
|
|
12
|
-
import SnippetString from './utils/SnippetString.js';
|
|
13
|
-
import { Range, Position } from './utils/typeConverters.js';
|
|
14
|
-
var ScriptElementKind = tslib.ScriptElementKind;
|
|
15
|
-
var SymbolDisplayPartKind = tslib.SymbolDisplayPartKind;
|
|
16
|
-
export function asCompletionItem(entry, optionalReplacementSpan, file, position, document, filePathConverter, options, features) {
|
|
17
|
-
const item = {
|
|
18
|
-
label: entry.name,
|
|
19
|
-
...features.completionLabelDetails ? { labelDetails: entry.labelDetails } : {},
|
|
20
|
-
kind: asCompletionItemKind(entry.kind),
|
|
21
|
-
sortText: entry.sortText,
|
|
22
|
-
commitCharacters: asCommitCharacters(entry.kind),
|
|
23
|
-
preselect: entry.isRecommended,
|
|
24
|
-
data: {
|
|
25
|
-
file,
|
|
26
|
-
line: position.line + 1,
|
|
27
|
-
offset: position.character + 1,
|
|
28
|
-
entryNames: [
|
|
29
|
-
entry.source || entry.data ? {
|
|
30
|
-
name: entry.name,
|
|
31
|
-
source: entry.source,
|
|
32
|
-
data: entry.data,
|
|
33
|
-
} : entry.name,
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
if (entry.source && entry.hasAction) {
|
|
38
|
-
// De-prioritze auto-imports
|
|
39
|
-
// https://github.com/Microsoft/vscode/issues/40311
|
|
40
|
-
item.sortText = `\uffff${entry.sortText}`;
|
|
41
|
-
}
|
|
42
|
-
const { isSnippet, replacementSpan, sourceDisplay } = entry;
|
|
43
|
-
if (isSnippet && !features.completionSnippets) {
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
if (features.completionSnippets && (isSnippet || canCreateSnippetOfFunctionCall(item.kind, options))) {
|
|
47
|
-
// Import statements, Functions and Methods can result in a snippet completion when resolved.
|
|
48
|
-
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
49
|
-
}
|
|
50
|
-
if (sourceDisplay) {
|
|
51
|
-
item.detail = Previewer.plainWithLinks(sourceDisplay, filePathConverter);
|
|
52
|
-
}
|
|
53
|
-
let { insertText } = entry;
|
|
54
|
-
if (entry.kindModifiers) {
|
|
55
|
-
const kindModifiers = new Set(entry.kindModifiers.split(/,|\s+/g));
|
|
56
|
-
if (kindModifiers.has(KindModifiers.optional)) {
|
|
57
|
-
if (!insertText) {
|
|
58
|
-
insertText = item.label;
|
|
59
|
-
}
|
|
60
|
-
if (!item.filterText) {
|
|
61
|
-
item.filterText = item.label;
|
|
62
|
-
}
|
|
63
|
-
item.label += '?';
|
|
64
|
-
}
|
|
65
|
-
if (kindModifiers.has(KindModifiers.deprecated)) {
|
|
66
|
-
item.tags = [lsp.CompletionItemTag.Deprecated];
|
|
67
|
-
}
|
|
68
|
-
if (entry.kind === ScriptElementKind.scriptElement) {
|
|
69
|
-
for (const extModifier of KindModifiers.fileExtensionKindModifiers) {
|
|
70
|
-
if (kindModifiers.has(extModifier)) {
|
|
71
|
-
if (entry.name.toLowerCase().endsWith(extModifier)) {
|
|
72
|
-
item.detail = entry.name;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
item.detail = entry.name + extModifier;
|
|
76
|
-
}
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
const range = getRangeFromReplacementSpan(replacementSpan, optionalReplacementSpan, position, document, features);
|
|
83
|
-
if (range) {
|
|
84
|
-
item.textEdit = range.insert
|
|
85
|
-
? lsp.InsertReplaceEdit.create(insertText || item.label, range.insert, range.replace)
|
|
86
|
-
: lsp.TextEdit.replace(range.replace, insertText || item.label);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
item.insertText = insertText;
|
|
90
|
-
}
|
|
91
|
-
return item;
|
|
92
|
-
}
|
|
93
|
-
function getRangeFromReplacementSpan(replacementSpan, optionalReplacementSpan, position, document, features) {
|
|
94
|
-
if (replacementSpan) {
|
|
95
|
-
// If TS provides an explicit replacement span with an entry, we should use it and not provide an insert.
|
|
96
|
-
return {
|
|
97
|
-
replace: ensureRangeIsOnSingleLine(Range.fromTextSpan(replacementSpan), document),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
if (features.completionInsertReplaceSupport && optionalReplacementSpan) {
|
|
101
|
-
const range = ensureRangeIsOnSingleLine(Range.fromTextSpan(optionalReplacementSpan), document);
|
|
102
|
-
return {
|
|
103
|
-
insert: lsp.Range.create(range.start, position),
|
|
104
|
-
replace: ensureRangeIsOnSingleLine(range, document),
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
function ensureRangeIsOnSingleLine(range, document) {
|
|
109
|
-
if (range.start.line !== range.end.line) {
|
|
110
|
-
return lsp.Range.create(range.start, document.getLineEnd(range.start.line));
|
|
111
|
-
}
|
|
112
|
-
return range;
|
|
113
|
-
}
|
|
114
|
-
function asCompletionItemKind(kind) {
|
|
115
|
-
switch (kind) {
|
|
116
|
-
case ScriptElementKind.primitiveType:
|
|
117
|
-
case ScriptElementKind.keyword:
|
|
118
|
-
return lsp.CompletionItemKind.Keyword;
|
|
119
|
-
case ScriptElementKind.constElement:
|
|
120
|
-
return lsp.CompletionItemKind.Constant;
|
|
121
|
-
case ScriptElementKind.letElement:
|
|
122
|
-
case ScriptElementKind.variableElement:
|
|
123
|
-
case ScriptElementKind.localVariableElement:
|
|
124
|
-
case ScriptElementKind.alias:
|
|
125
|
-
return lsp.CompletionItemKind.Variable;
|
|
126
|
-
case ScriptElementKind.memberVariableElement:
|
|
127
|
-
case ScriptElementKind.memberGetAccessorElement:
|
|
128
|
-
case ScriptElementKind.memberSetAccessorElement:
|
|
129
|
-
return lsp.CompletionItemKind.Field;
|
|
130
|
-
case ScriptElementKind.functionElement:
|
|
131
|
-
return lsp.CompletionItemKind.Function;
|
|
132
|
-
case ScriptElementKind.memberFunctionElement:
|
|
133
|
-
case ScriptElementKind.constructSignatureElement:
|
|
134
|
-
case ScriptElementKind.callSignatureElement:
|
|
135
|
-
case ScriptElementKind.indexSignatureElement:
|
|
136
|
-
return lsp.CompletionItemKind.Method;
|
|
137
|
-
case ScriptElementKind.enumElement:
|
|
138
|
-
return lsp.CompletionItemKind.Enum;
|
|
139
|
-
case ScriptElementKind.moduleElement:
|
|
140
|
-
case ScriptElementKind.externalModuleName:
|
|
141
|
-
return lsp.CompletionItemKind.Module;
|
|
142
|
-
case ScriptElementKind.classElement:
|
|
143
|
-
case ScriptElementKind.typeElement:
|
|
144
|
-
return lsp.CompletionItemKind.Class;
|
|
145
|
-
case ScriptElementKind.interfaceElement:
|
|
146
|
-
return lsp.CompletionItemKind.Interface;
|
|
147
|
-
case ScriptElementKind.warning:
|
|
148
|
-
case ScriptElementKind.scriptElement:
|
|
149
|
-
return lsp.CompletionItemKind.File;
|
|
150
|
-
case ScriptElementKind.directory:
|
|
151
|
-
return lsp.CompletionItemKind.Folder;
|
|
152
|
-
case ScriptElementKind.string:
|
|
153
|
-
return lsp.CompletionItemKind.Constant;
|
|
154
|
-
}
|
|
155
|
-
return lsp.CompletionItemKind.Property;
|
|
156
|
-
}
|
|
157
|
-
function asCommitCharacters(kind) {
|
|
158
|
-
const commitCharacters = [];
|
|
159
|
-
switch (kind) {
|
|
160
|
-
case ScriptElementKind.memberGetAccessorElement:
|
|
161
|
-
case ScriptElementKind.memberSetAccessorElement:
|
|
162
|
-
case ScriptElementKind.constructSignatureElement:
|
|
163
|
-
case ScriptElementKind.callSignatureElement:
|
|
164
|
-
case ScriptElementKind.indexSignatureElement:
|
|
165
|
-
case ScriptElementKind.enumElement:
|
|
166
|
-
case ScriptElementKind.interfaceElement:
|
|
167
|
-
commitCharacters.push('.');
|
|
168
|
-
break;
|
|
169
|
-
case ScriptElementKind.moduleElement:
|
|
170
|
-
case ScriptElementKind.alias:
|
|
171
|
-
case ScriptElementKind.constElement:
|
|
172
|
-
case ScriptElementKind.letElement:
|
|
173
|
-
case ScriptElementKind.variableElement:
|
|
174
|
-
case ScriptElementKind.localVariableElement:
|
|
175
|
-
case ScriptElementKind.memberVariableElement:
|
|
176
|
-
case ScriptElementKind.classElement:
|
|
177
|
-
case ScriptElementKind.functionElement:
|
|
178
|
-
case ScriptElementKind.memberFunctionElement:
|
|
179
|
-
commitCharacters.push('.', ',');
|
|
180
|
-
commitCharacters.push('(');
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
return commitCharacters.length === 0 ? undefined : commitCharacters;
|
|
184
|
-
}
|
|
185
|
-
export async function asResolvedCompletionItem(item, details, document, client, filePathConverter, options, features) {
|
|
186
|
-
item.detail = asDetail(details, filePathConverter);
|
|
187
|
-
const { documentation, tags } = details;
|
|
188
|
-
item.documentation = Previewer.markdownDocumentation(documentation, tags, filePathConverter);
|
|
189
|
-
const filepath = normalizePath(item.data.file);
|
|
190
|
-
if (details.codeActions?.length) {
|
|
191
|
-
item.additionalTextEdits = asAdditionalTextEdits(details.codeActions, filepath);
|
|
192
|
-
item.command = asCommand(details.codeActions, item.data.file);
|
|
193
|
-
}
|
|
194
|
-
if (document && features.completionSnippets && canCreateSnippetOfFunctionCall(item.kind, options)) {
|
|
195
|
-
const { line, offset } = item.data;
|
|
196
|
-
const position = Position.fromLocation({ line, offset });
|
|
197
|
-
const shouldCompleteFunction = await isValidFunctionCompletionContext(filepath, position, client, document);
|
|
198
|
-
if (shouldCompleteFunction) {
|
|
199
|
-
createSnippetOfFunctionCall(item, details);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return item;
|
|
203
|
-
}
|
|
204
|
-
async function isValidFunctionCompletionContext(filepath, position, client, document) {
|
|
205
|
-
// Workaround for https://github.com/Microsoft/TypeScript/issues/12677
|
|
206
|
-
// Don't complete function calls inside of destructive assigments or imports
|
|
207
|
-
try {
|
|
208
|
-
const args = Position.toFileLocationRequestArgs(filepath, position);
|
|
209
|
-
const response = await client.request(tsp.CommandTypes.Quickinfo, args);
|
|
210
|
-
if (response.type === 'response' && response.body) {
|
|
211
|
-
switch (response.body.kind) {
|
|
212
|
-
case 'var':
|
|
213
|
-
case 'let':
|
|
214
|
-
case 'const':
|
|
215
|
-
case 'alias':
|
|
216
|
-
return false;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
catch {
|
|
221
|
-
// Noop
|
|
222
|
-
}
|
|
223
|
-
// Don't complete function call if there is already something that looks like a function call
|
|
224
|
-
// https://github.com/microsoft/vscode/issues/18131
|
|
225
|
-
const after = document.getLine(position.line).slice(position.character);
|
|
226
|
-
return after.match(/^[a-z_$0-9]*\s*\(/gi) === null;
|
|
227
|
-
}
|
|
228
|
-
function canCreateSnippetOfFunctionCall(kind, options) {
|
|
229
|
-
return options.completeFunctionCalls === true && (kind === lsp.CompletionItemKind.Function || kind === lsp.CompletionItemKind.Method);
|
|
230
|
-
}
|
|
231
|
-
function createSnippetOfFunctionCall(item, detail) {
|
|
232
|
-
const { displayParts } = detail;
|
|
233
|
-
const parameterListParts = getParameterListParts(displayParts);
|
|
234
|
-
const snippet = new SnippetString();
|
|
235
|
-
snippet.appendText(`${item.insertText || item.label}(`);
|
|
236
|
-
appendJoinedPlaceholders(snippet, parameterListParts.parts, ', ');
|
|
237
|
-
if (parameterListParts.hasOptionalParameters) {
|
|
238
|
-
snippet.appendTabstop();
|
|
239
|
-
}
|
|
240
|
-
snippet.appendText(')');
|
|
241
|
-
snippet.appendTabstop(0);
|
|
242
|
-
item.insertText = snippet.value;
|
|
243
|
-
item.insertTextFormat = lsp.InsertTextFormat.Snippet;
|
|
244
|
-
if (item.textEdit) {
|
|
245
|
-
item.textEdit.newText = snippet.value;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
function getParameterListParts(displayParts) {
|
|
249
|
-
const parts = [];
|
|
250
|
-
let isInMethod = false;
|
|
251
|
-
let hasOptionalParameters = false;
|
|
252
|
-
let parenCount = 0;
|
|
253
|
-
let braceCount = 0;
|
|
254
|
-
outer: for (let i = 0; i < displayParts.length; ++i) {
|
|
255
|
-
const part = displayParts[i];
|
|
256
|
-
switch (toSymbolDisplayPartKind(part.kind)) {
|
|
257
|
-
case SymbolDisplayPartKind.methodName:
|
|
258
|
-
case SymbolDisplayPartKind.functionName:
|
|
259
|
-
case SymbolDisplayPartKind.text:
|
|
260
|
-
case SymbolDisplayPartKind.propertyName:
|
|
261
|
-
if (parenCount === 0 && braceCount === 0) {
|
|
262
|
-
isInMethod = true;
|
|
263
|
-
}
|
|
264
|
-
break;
|
|
265
|
-
case SymbolDisplayPartKind.parameterName:
|
|
266
|
-
if (parenCount === 1 && braceCount === 0 && isInMethod) {
|
|
267
|
-
// Only take top level paren names
|
|
268
|
-
const next = displayParts[i + 1];
|
|
269
|
-
// Skip optional parameters
|
|
270
|
-
const nameIsFollowedByOptionalIndicator = next && next.text === '?';
|
|
271
|
-
// Skip this parameter
|
|
272
|
-
const nameIsThis = part.text === 'this';
|
|
273
|
-
if (!nameIsFollowedByOptionalIndicator && !nameIsThis) {
|
|
274
|
-
parts.push(part);
|
|
275
|
-
}
|
|
276
|
-
hasOptionalParameters = hasOptionalParameters || nameIsFollowedByOptionalIndicator;
|
|
277
|
-
}
|
|
278
|
-
break;
|
|
279
|
-
case SymbolDisplayPartKind.punctuation:
|
|
280
|
-
if (part.text === '(') {
|
|
281
|
-
++parenCount;
|
|
282
|
-
}
|
|
283
|
-
else if (part.text === ')') {
|
|
284
|
-
--parenCount;
|
|
285
|
-
if (parenCount <= 0 && isInMethod) {
|
|
286
|
-
break outer;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
else if (part.text === '...' && parenCount === 1) {
|
|
290
|
-
// Found rest parmeter. Do not fill in any further arguments
|
|
291
|
-
hasOptionalParameters = true;
|
|
292
|
-
break outer;
|
|
293
|
-
}
|
|
294
|
-
else if (part.text === '{') {
|
|
295
|
-
++braceCount;
|
|
296
|
-
}
|
|
297
|
-
else if (part.text === '}') {
|
|
298
|
-
--braceCount;
|
|
299
|
-
}
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
return { hasOptionalParameters, parts };
|
|
304
|
-
}
|
|
305
|
-
function appendJoinedPlaceholders(snippet, parts, joiner) {
|
|
306
|
-
for (let i = 0; i < parts.length; ++i) {
|
|
307
|
-
const paramterPart = parts[i];
|
|
308
|
-
snippet.appendPlaceholder(paramterPart.text);
|
|
309
|
-
if (i !== parts.length - 1) {
|
|
310
|
-
snippet.appendText(joiner);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
function asAdditionalTextEdits(codeActions, filepath) {
|
|
315
|
-
// Try to extract out the additionalTextEdits for the current file.
|
|
316
|
-
const additionalTextEdits = [];
|
|
317
|
-
for (const tsAction of codeActions) {
|
|
318
|
-
// Apply all edits in the current file using `additionalTextEdits`
|
|
319
|
-
if (tsAction.changes) {
|
|
320
|
-
for (const change of tsAction.changes) {
|
|
321
|
-
if (change.fileName === filepath) {
|
|
322
|
-
for (const textChange of change.textChanges) {
|
|
323
|
-
additionalTextEdits.push(toTextEdit(textChange));
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
return additionalTextEdits.length ? additionalTextEdits : undefined;
|
|
330
|
-
}
|
|
331
|
-
function asCommand(codeActions, filepath) {
|
|
332
|
-
let hasRemainingCommandsOrEdits = false;
|
|
333
|
-
for (const tsAction of codeActions) {
|
|
334
|
-
if (tsAction.commands) {
|
|
335
|
-
hasRemainingCommandsOrEdits = true;
|
|
336
|
-
break;
|
|
337
|
-
}
|
|
338
|
-
if (tsAction.changes) {
|
|
339
|
-
for (const change of tsAction.changes) {
|
|
340
|
-
if (change.fileName !== filepath) {
|
|
341
|
-
hasRemainingCommandsOrEdits = true;
|
|
342
|
-
break;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
if (hasRemainingCommandsOrEdits) {
|
|
348
|
-
// Create command that applies all edits not in the current file.
|
|
349
|
-
return {
|
|
350
|
-
title: '',
|
|
351
|
-
command: Commands.APPLY_COMPLETION_CODE_ACTION,
|
|
352
|
-
arguments: [filepath, codeActions.map(codeAction => ({
|
|
353
|
-
commands: codeAction.commands,
|
|
354
|
-
description: codeAction.description,
|
|
355
|
-
changes: codeAction.changes.filter(x => x.fileName !== filepath),
|
|
356
|
-
}))],
|
|
357
|
-
};
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
function asDetail({ displayParts, sourceDisplay, source: deprecatedSource }, filePathConverter) {
|
|
361
|
-
const result = [];
|
|
362
|
-
const source = sourceDisplay || deprecatedSource;
|
|
363
|
-
if (source) {
|
|
364
|
-
result.push(`Auto import from '${Previewer.plainWithLinks(source, filePathConverter)}'`);
|
|
365
|
-
}
|
|
366
|
-
const detail = Previewer.plainWithLinks(displayParts, filePathConverter);
|
|
367
|
-
if (detail) {
|
|
368
|
-
result.push(detail);
|
|
369
|
-
}
|
|
370
|
-
return result.join('\n');
|
|
371
|
-
}
|
|
372
|
-
export function getCompletionTriggerCharacter(character) {
|
|
373
|
-
switch (character) {
|
|
374
|
-
case '@':
|
|
375
|
-
case '#':
|
|
376
|
-
case ' ':
|
|
377
|
-
case '.':
|
|
378
|
-
case '"':
|
|
379
|
-
case '\'':
|
|
380
|
-
case '`':
|
|
381
|
-
case '/':
|
|
382
|
-
case '<':
|
|
383
|
-
return character;
|
|
384
|
-
default:
|
|
385
|
-
return undefined;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
//# sourceMappingURL=completion.js.map
|
package/lib/completion.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../src/completion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAqB,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAElD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG5D,IAAO,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;AACnD,IAAO,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;AAO3D,MAAM,UAAU,gBAAgB,CAC5B,KAA0B,EAC1B,uBAAiD,EACjD,IAAY,EAAE,QAAsB,EACpC,QAAqB,EACrB,iBAA+C,EAC/C,OAAgD,EAChD,QAA2B;IAE3B,MAAM,IAAI,GAAuB;QAC7B,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;QAC9E,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;QACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;QAChD,SAAS,EAAE,KAAK,CAAC,aAAa;QAC9B,IAAI,EAAE;YACF,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;YACvB,MAAM,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC;YAC9B,UAAU,EAAE;gBACR,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACnB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;aACjB;SACJ;KACJ,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;QACjC,4BAA4B;QAC5B,mDAAmD;QACnD,IAAI,CAAC,QAAQ,GAAG,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC7C;IAED,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC5D,IAAI,SAAS,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;QAC3C,OAAO,IAAI,CAAC;KACf;IACD,IAAI,QAAQ,CAAC,kBAAkB,IAAI,CAAC,SAAS,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE;QAClG,6FAA6F;QAC7F,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACxD;IACD,IAAI,aAAa,EAAE;QACf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;KAC5E;IAED,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3B,IAAI,KAAK,CAAC,aAAa,EAAE;QACrB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;YAC3C,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;aAC3B;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;aAChC;YACD,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;SACrB;QAED,IAAI,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;YAC7C,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;SAClD;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,aAAa,EAAE;YAChD,KAAK,MAAM,WAAW,IAAI,aAAa,CAAC,0BAA0B,EAAE;gBAChE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oBAChC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;wBAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;qBAC5B;yBAAM;wBACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;qBAC1C;oBACD,MAAM;iBACT;aACJ;SACJ;KACJ;IACD,MAAM,KAAK,GAAG,2BAA2B,CAAC,eAAe,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClH,IAAI,KAAK,EAAE;QACP,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM;YACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACrF,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;KACvE;SAAM;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAChC,eAAyC,EACzC,uBAAiD,EACjD,QAAsB,EACtB,QAAqB,EACrB,QAA2B;IAE3B,IAAI,eAAe,EAAE;QACjB,yGAAyG;QACzG,OAAO;YACH,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC;SACpF,CAAC;KACL;IACD,IAAI,QAAQ,CAAC,8BAA8B,IAAI,uBAAuB,EAAE;QACpE,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,YAAY,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC/F,OAAO;YACH,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/C,OAAO,EAAE,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC;SACtD,CAAC;KACL;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAgB,EAAE,QAAqB;IACtE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;QACrC,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;KAC/E;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAuB;IACjD,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,aAAa,CAAC;QACrC,KAAK,iBAAiB,CAAC,OAAO;YAC1B,OAAO,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC1C,KAAK,iBAAiB,CAAC,YAAY;YAC/B,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC3C,KAAK,iBAAiB,CAAC,UAAU,CAAC;QAClC,KAAK,iBAAiB,CAAC,eAAe,CAAC;QACvC,KAAK,iBAAiB,CAAC,oBAAoB,CAAC;QAC5C,KAAK,iBAAiB,CAAC,KAAK;YACxB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC3C,KAAK,iBAAiB,CAAC,qBAAqB,CAAC;QAC7C,KAAK,iBAAiB,CAAC,wBAAwB,CAAC;QAChD,KAAK,iBAAiB,CAAC,wBAAwB;YAC3C,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACxC,KAAK,iBAAiB,CAAC,eAAe;YAClC,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QAC3C,KAAK,iBAAiB,CAAC,qBAAqB,CAAC;QAC7C,KAAK,iBAAiB,CAAC,yBAAyB,CAAC;QACjD,KAAK,iBAAiB,CAAC,oBAAoB,CAAC;QAC5C,KAAK,iBAAiB,CAAC,qBAAqB;YACxC,OAAO,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACzC,KAAK,iBAAiB,CAAC,WAAW;YAC9B,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;QACvC,KAAK,iBAAiB,CAAC,aAAa,CAAC;QACrC,KAAK,iBAAiB,CAAC,kBAAkB;YACrC,OAAO,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACzC,KAAK,iBAAiB,CAAC,YAAY,CAAC;QACpC,KAAK,iBAAiB,CAAC,WAAW;YAC9B,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC;QACxC,KAAK,iBAAiB,CAAC,gBAAgB;YACnC,OAAO,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC;QAC5C,KAAK,iBAAiB,CAAC,OAAO,CAAC;QAC/B,KAAK,iBAAiB,CAAC,aAAa;YAChC,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;QACvC,KAAK,iBAAiB,CAAC,SAAS;YAC5B,OAAO,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACzC,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;KAC9C;IACD,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAuB;IAC/C,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,wBAAwB,CAAC;QAChD,KAAK,iBAAiB,CAAC,wBAAwB,CAAC;QAChD,KAAK,iBAAiB,CAAC,yBAAyB,CAAC;QACjD,KAAK,iBAAiB,CAAC,oBAAoB,CAAC;QAC5C,KAAK,iBAAiB,CAAC,qBAAqB,CAAC;QAC7C,KAAK,iBAAiB,CAAC,WAAW,CAAC;QACnC,KAAK,iBAAiB,CAAC,gBAAgB;YACnC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM;QAEV,KAAK,iBAAiB,CAAC,aAAa,CAAC;QACrC,KAAK,iBAAiB,CAAC,KAAK,CAAC;QAC7B,KAAK,iBAAiB,CAAC,YAAY,CAAC;QACpC,KAAK,iBAAiB,CAAC,UAAU,CAAC;QAClC,KAAK,iBAAiB,CAAC,eAAe,CAAC;QACvC,KAAK,iBAAiB,CAAC,oBAAoB,CAAC;QAC5C,KAAK,iBAAiB,CAAC,qBAAqB,CAAC;QAC7C,KAAK,iBAAiB,CAAC,YAAY,CAAC;QACpC,KAAK,iBAAiB,CAAC,eAAe,CAAC;QACvC,KAAK,iBAAiB,CAAC,qBAAqB;YACxC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM;KACb;IAED,OAAO,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,IAAwB,EACxB,OAAmC,EACnC,QAAiC,EACjC,MAAiB,EACjB,iBAA+C,EAC/C,OAAgD,EAChD,QAA2B;IAE3B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACxC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,qBAAqB,CAAC,aAAa,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE;QAC7B,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjE;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;QAC/F,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,sBAAsB,GAAG,MAAM,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5G,IAAI,sBAAsB,EAAE;YACxB,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9C;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,QAAgB,EAAE,QAAsB,EAAE,MAAiB,EAAE,QAAqB;IAC9H,sEAAsE;IACtE,4EAA4E;IAC5E,IAAI;QACA,MAAM,IAAI,GAAgC,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE;YAC/C,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxB,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK,CAAC;gBACX,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO;oBACR,OAAO,KAAK,CAAC;aACpB;SACJ;KACJ;IAAC,MAAM;QACJ,OAAO;KACV;IAED,6FAA6F;IAC7F,mDAAmD;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAwC,EAAE,OAAgD;IAC9H,OAAO,OAAO,CAAC,qBAAqB,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,kBAAkB,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC1I,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAwB,EAAE,MAAkC;IAC7F,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACxD,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,kBAAkB,CAAC,qBAAqB,EAAE;QAC1C,OAAO,CAAC,aAAa,EAAE,CAAC;KAC3B;IACD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACrD,IAAI,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;KACzC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAkD;IAC7E,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACjD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,QAAQ,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxC,KAAK,qBAAqB,CAAC,UAAU,CAAC;YACtC,KAAK,qBAAqB,CAAC,YAAY,CAAC;YACxC,KAAK,qBAAqB,CAAC,IAAI,CAAC;YAChC,KAAK,qBAAqB,CAAC,YAAY;gBACnC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE;oBACtC,UAAU,GAAG,IAAI,CAAC;iBACrB;gBACD,MAAM;YAEV,KAAK,qBAAqB,CAAC,aAAa;gBACpC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,EAAE;oBACpD,kCAAkC;oBAClC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,2BAA2B;oBAC3B,MAAM,iCAAiC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;oBACpE,sBAAsB;oBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;oBACxC,IAAI,CAAC,iCAAiC,IAAI,CAAC,UAAU,EAAE;wBACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACpB;oBACD,qBAAqB,GAAG,qBAAqB,IAAI,iCAAiC,CAAC;iBACtF;gBACD,MAAM;YAEV,KAAK,qBAAqB,CAAC,WAAW;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBACnB,EAAE,UAAU,CAAC;iBAChB;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC1B,EAAE,UAAU,CAAC;oBACb,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,EAAE;wBAC/B,MAAM,KAAK,CAAC;qBACf;iBACJ;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,KAAK,CAAC,EAAE;oBAChD,4DAA4D;oBAC5D,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,MAAM,KAAK,CAAC;iBACf;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC1B,EAAE,UAAU,CAAC;iBAChB;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAC1B,EAAE,UAAU,CAAC;iBAChB;gBACD,MAAM;SACb;KACJ;IACD,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAsB,EAAE,KAA2C,EAAE,MAAc;IACjH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACnC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC9B;KACJ;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,WAA6B,EAAE,QAAgB;IAC1E,mEAAmE;IACnE,MAAM,mBAAmB,GAAmB,EAAE,CAAC;IAC/C,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;QAChC,kEAAkE;QAClE,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC9B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE;wBACzC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;qBACpD;iBACJ;aACJ;SACJ;KACJ;IACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,WAA6B,EAAE,QAAgB;IAC9D,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;QAChC,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACnB,2BAA2B,GAAG,IAAI,CAAC;YACnC,MAAM;SACT;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC9B,2BAA2B,GAAG,IAAI,CAAC;oBACnC,MAAM;iBACT;aACJ;SACJ;KACJ;IAED,IAAI,2BAA2B,EAAE;QAC7B,iEAAiE;QACjE,OAAO;YACH,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,QAAQ,CAAC,4BAA4B;YAC9C,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBACjD,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;iBACnE,CAAC,CAAC,CAAC;SACP,CAAC;KACL;AACL,CAAC;AAED,SAAS,QAAQ,CACb,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAA8B,EACrF,iBAA+C;IAE/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,aAAa,IAAI,gBAAgB,CAAC;IACjD,IAAI,MAAM,EAAE;QACR,MAAM,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;KAC5F;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IACzE,IAAI,MAAM,EAAE;QACR,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACvB;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,SAA6B;IACvE,QAAQ,SAAS,EAAE;QACf,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,IAAI,CAAC;QACV,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACJ,OAAO,SAAS,CAAC;QACrB;YACI,OAAO,SAAS,CAAC;KACxB;AACL,CAAC"}
|