@macroforge/svelte-language-server 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +331 -0
- package/bin/server.js +5 -0
- package/dist/src/importPackage.d.ts +16 -0
- package/dist/src/importPackage.js +76 -0
- package/dist/src/importPackage.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +23 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/DiagnosticsManager.d.ts +20 -0
- package/dist/src/lib/DiagnosticsManager.js +71 -0
- package/dist/src/lib/DiagnosticsManager.js.map +1 -0
- package/dist/src/lib/FallbackWatcher.d.ts +15 -0
- package/dist/src/lib/FallbackWatcher.js +66 -0
- package/dist/src/lib/FallbackWatcher.js.map +1 -0
- package/dist/src/lib/documentHighlight/wordHighlight.d.ts +3 -0
- package/dist/src/lib/documentHighlight/wordHighlight.js +62 -0
- package/dist/src/lib/documentHighlight/wordHighlight.js.map +1 -0
- package/dist/src/lib/documents/Document.d.ts +63 -0
- package/dist/src/lib/documents/Document.js +138 -0
- package/dist/src/lib/documents/Document.js.map +1 -0
- package/dist/src/lib/documents/DocumentBase.d.ts +65 -0
- package/dist/src/lib/documents/DocumentBase.js +69 -0
- package/dist/src/lib/documents/DocumentBase.js.map +1 -0
- package/dist/src/lib/documents/DocumentManager.d.ts +28 -0
- package/dist/src/lib/documents/DocumentManager.js +122 -0
- package/dist/src/lib/documents/DocumentManager.js.map +1 -0
- package/dist/src/lib/documents/DocumentMapper.d.ts +88 -0
- package/dist/src/lib/documents/DocumentMapper.js +258 -0
- package/dist/src/lib/documents/DocumentMapper.js.map +1 -0
- package/dist/src/lib/documents/configLoader.d.ts +80 -0
- package/dist/src/lib/documents/configLoader.js +265 -0
- package/dist/src/lib/documents/configLoader.js.map +1 -0
- package/dist/src/lib/documents/fileCollection.d.ts +41 -0
- package/dist/src/lib/documents/fileCollection.js +87 -0
- package/dist/src/lib/documents/fileCollection.js.map +1 -0
- package/dist/src/lib/documents/index.d.ts +5 -0
- package/dist/src/lib/documents/index.js +22 -0
- package/dist/src/lib/documents/index.js.map +1 -0
- package/dist/src/lib/documents/parseHtml.d.ts +13 -0
- package/dist/src/lib/documents/parseHtml.js +160 -0
- package/dist/src/lib/documents/parseHtml.js.map +1 -0
- package/dist/src/lib/documents/utils.d.ts +105 -0
- package/dist/src/lib/documents/utils.js +410 -0
- package/dist/src/lib/documents/utils.js.map +1 -0
- package/dist/src/lib/foldingRange/indentFolding.d.ts +26 -0
- package/dist/src/lib/foldingRange/indentFolding.js +142 -0
- package/dist/src/lib/foldingRange/indentFolding.js.map +1 -0
- package/dist/src/lib/semanticToken/semanticTokenLegend.d.ts +33 -0
- package/dist/src/lib/semanticToken/semanticTokenLegend.js +37 -0
- package/dist/src/lib/semanticToken/semanticTokenLegend.js.map +1 -0
- package/dist/src/logger.d.ts +9 -0
- package/dist/src/logger.js +28 -0
- package/dist/src/logger.js.map +1 -0
- package/dist/src/ls-config.d.ts +326 -0
- package/dist/src/ls-config.js +386 -0
- package/dist/src/ls-config.js.map +1 -0
- package/dist/src/plugins/PluginHost.d.ts +68 -0
- package/dist/src/plugins/PluginHost.js +447 -0
- package/dist/src/plugins/PluginHost.js.map +1 -0
- package/dist/src/plugins/css/CSSDocument.d.ts +46 -0
- package/dist/src/plugins/css/CSSDocument.js +78 -0
- package/dist/src/plugins/css/CSSDocument.js.map +1 -0
- package/dist/src/plugins/css/CSSPlugin.d.ts +35 -0
- package/dist/src/plugins/css/CSSPlugin.js +407 -0
- package/dist/src/plugins/css/CSSPlugin.js.map +1 -0
- package/dist/src/plugins/css/FileSystemProvider.d.ts +10 -0
- package/dist/src/plugins/css/FileSystemProvider.js +75 -0
- package/dist/src/plugins/css/FileSystemProvider.js.map +1 -0
- package/dist/src/plugins/css/StyleAttributeDocument.d.ts +41 -0
- package/dist/src/plugins/css/StyleAttributeDocument.js +65 -0
- package/dist/src/plugins/css/StyleAttributeDocument.js.map +1 -0
- package/dist/src/plugins/css/features/getIdClassCompletion.d.ts +19 -0
- package/dist/src/plugins/css/features/getIdClassCompletion.js +56 -0
- package/dist/src/plugins/css/features/getIdClassCompletion.js.map +1 -0
- package/dist/src/plugins/css/features/svelte-selectors.d.ts +2 -0
- package/dist/src/plugins/css/features/svelte-selectors.js +18 -0
- package/dist/src/plugins/css/features/svelte-selectors.js.map +1 -0
- package/dist/src/plugins/css/global-vars.d.ts +16 -0
- package/dist/src/plugins/css/global-vars.js +82 -0
- package/dist/src/plugins/css/global-vars.js.map +1 -0
- package/dist/src/plugins/css/service.d.ts +5 -0
- package/dist/src/plugins/css/service.js +66 -0
- package/dist/src/plugins/css/service.js.map +1 -0
- package/dist/src/plugins/documentContext.d.ts +3 -0
- package/dist/src/plugins/documentContext.js +36 -0
- package/dist/src/plugins/documentContext.js.map +1 -0
- package/dist/src/plugins/html/HTMLPlugin.d.ts +36 -0
- package/dist/src/plugins/html/HTMLPlugin.js +363 -0
- package/dist/src/plugins/html/HTMLPlugin.js.map +1 -0
- package/dist/src/plugins/html/dataProvider.d.ts +1 -0
- package/dist/src/plugins/html/dataProvider.js +481 -0
- package/dist/src/plugins/html/dataProvider.js.map +1 -0
- package/dist/src/plugins/index.d.ts +7 -0
- package/dist/src/plugins/index.js +24 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/plugins/interfaces.d.ts +132 -0
- package/dist/src/plugins/interfaces.js +3 -0
- package/dist/src/plugins/interfaces.js.map +1 -0
- package/dist/src/plugins/svelte/SvelteDocument.d.ts +98 -0
- package/dist/src/plugins/svelte/SvelteDocument.js +318 -0
- package/dist/src/plugins/svelte/SvelteDocument.js.map +1 -0
- package/dist/src/plugins/svelte/SveltePlugin.d.ts +24 -0
- package/dist/src/plugins/svelte/SveltePlugin.js +306 -0
- package/dist/src/plugins/svelte/SveltePlugin.js.map +1 -0
- package/dist/src/plugins/svelte/features/SvelteTags.d.ts +28 -0
- package/dist/src/plugins/svelte/features/SvelteTags.js +136 -0
- package/dist/src/plugins/svelte/features/SvelteTags.js.map +1 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.d.ts +11 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js +140 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js.map +1 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.d.ts +9 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js +140 -0
- package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js.map +1 -0
- package/dist/src/plugins/svelte/features/getCodeActions/index.d.ts +4 -0
- package/dist/src/plugins/svelte/features/getCodeActions/index.js +19 -0
- package/dist/src/plugins/svelte/features/getCodeActions/index.js.map +1 -0
- package/dist/src/plugins/svelte/features/getCompletions.d.ts +4 -0
- package/dist/src/plugins/svelte/features/getCompletions.js +184 -0
- package/dist/src/plugins/svelte/features/getCompletions.js.map +1 -0
- package/dist/src/plugins/svelte/features/getDiagnostics.d.ts +9 -0
- package/dist/src/plugins/svelte/features/getDiagnostics.js +284 -0
- package/dist/src/plugins/svelte/features/getDiagnostics.js.map +1 -0
- package/dist/src/plugins/svelte/features/getHoverInfo.d.ts +7 -0
- package/dist/src/plugins/svelte/features/getHoverInfo.js +93 -0
- package/dist/src/plugins/svelte/features/getHoverInfo.js.map +1 -0
- package/dist/src/plugins/svelte/features/getModifierData.d.ts +7 -0
- package/dist/src/plugins/svelte/features/getModifierData.js +56 -0
- package/dist/src/plugins/svelte/features/getModifierData.js.map +1 -0
- package/dist/src/plugins/svelte/features/getSelectionRanges.d.ts +3 -0
- package/dist/src/plugins/svelte/features/getSelectionRanges.js +46 -0
- package/dist/src/plugins/svelte/features/getSelectionRanges.js.map +1 -0
- package/dist/src/plugins/svelte/features/utils.d.ts +5 -0
- package/dist/src/plugins/svelte/features/utils.js +18 -0
- package/dist/src/plugins/svelte/features/utils.js.map +1 -0
- package/dist/src/plugins/typescript/ComponentInfoProvider.d.ts +27 -0
- package/dist/src/plugins/typescript/ComponentInfoProvider.js +116 -0
- package/dist/src/plugins/typescript/ComponentInfoProvider.js.map +1 -0
- package/dist/src/plugins/typescript/DocumentMapper.d.ts +10 -0
- package/dist/src/plugins/typescript/DocumentMapper.js +25 -0
- package/dist/src/plugins/typescript/DocumentMapper.js.map +1 -0
- package/dist/src/plugins/typescript/DocumentSnapshot.d.ts +173 -0
- package/dist/src/plugins/typescript/DocumentSnapshot.js +623 -0
- package/dist/src/plugins/typescript/DocumentSnapshot.js.map +1 -0
- package/dist/src/plugins/typescript/LSAndTSDocResolver.d.ts +100 -0
- package/dist/src/plugins/typescript/LSAndTSDocResolver.js +301 -0
- package/dist/src/plugins/typescript/LSAndTSDocResolver.js.map +1 -0
- package/dist/src/plugins/typescript/SnapshotManager.d.ts +59 -0
- package/dist/src/plugins/typescript/SnapshotManager.js +238 -0
- package/dist/src/plugins/typescript/SnapshotManager.js.map +1 -0
- package/dist/src/plugins/typescript/TypeScriptPlugin.d.ts +65 -0
- package/dist/src/plugins/typescript/TypeScriptPlugin.js +332 -0
- package/dist/src/plugins/typescript/TypeScriptPlugin.js.map +1 -0
- package/dist/src/plugins/typescript/features/CallHierarchyProvider.d.ts +24 -0
- package/dist/src/plugins/typescript/features/CallHierarchyProvider.js +325 -0
- package/dist/src/plugins/typescript/features/CallHierarchyProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/CodeActionsProvider.d.ts +72 -0
- package/dist/src/plugins/typescript/features/CodeActionsProvider.js +1030 -0
- package/dist/src/plugins/typescript/features/CodeActionsProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/CodeLensProvider.d.ts +28 -0
- package/dist/src/plugins/typescript/features/CodeLensProvider.js +205 -0
- package/dist/src/plugins/typescript/features/CodeLensProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/CompletionProvider.d.ts +57 -0
- package/dist/src/plugins/typescript/features/CompletionProvider.js +791 -0
- package/dist/src/plugins/typescript/features/CompletionProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/DiagnosticsProvider.d.ts +36 -0
- package/dist/src/plugins/typescript/features/DiagnosticsProvider.js +497 -0
- package/dist/src/plugins/typescript/features/DiagnosticsProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/DocumentHighlightProvider.d.ts +17 -0
- package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js +211 -0
- package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.d.ts +9 -0
- package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js +66 -0
- package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/FindFileReferencesProvider.d.ts +9 -0
- package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js +38 -0
- package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/FindReferencesProvider.d.ts +20 -0
- package/dist/src/plugins/typescript/features/FindReferencesProvider.js +149 -0
- package/dist/src/plugins/typescript/features/FindReferencesProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/FoldingRangeProvider.d.ts +28 -0
- package/dist/src/plugins/typescript/features/FoldingRangeProvider.js +247 -0
- package/dist/src/plugins/typescript/features/FoldingRangeProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/HoverProvider.d.ts +11 -0
- package/dist/src/plugins/typescript/features/HoverProvider.js +75 -0
- package/dist/src/plugins/typescript/features/HoverProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/ImplementationProvider.d.ts +9 -0
- package/dist/src/plugins/typescript/features/ImplementationProvider.js +47 -0
- package/dist/src/plugins/typescript/features/ImplementationProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/InlayHintProvider.d.ts +22 -0
- package/dist/src/plugins/typescript/features/InlayHintProvider.js +225 -0
- package/dist/src/plugins/typescript/features/InlayHintProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/RenameProvider.d.ts +53 -0
- package/dist/src/plugins/typescript/features/RenameProvider.js +423 -0
- package/dist/src/plugins/typescript/features/RenameProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/SelectionRangeProvider.d.ts +18 -0
- package/dist/src/plugins/typescript/features/SelectionRangeProvider.js +62 -0
- package/dist/src/plugins/typescript/features/SelectionRangeProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/SemanticTokensProvider.d.ts +15 -0
- package/dist/src/plugins/typescript/features/SemanticTokensProvider.js +116 -0
- package/dist/src/plugins/typescript/features/SemanticTokensProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/SignatureHelpProvider.d.ts +22 -0
- package/dist/src/plugins/typescript/features/SignatureHelpProvider.js +110 -0
- package/dist/src/plugins/typescript/features/SignatureHelpProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/TypeDefinitionProvider.d.ts +9 -0
- package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js +35 -0
- package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/UpdateImportsProvider.d.ts +11 -0
- package/dist/src/plugins/typescript/features/UpdateImportsProvider.js +109 -0
- package/dist/src/plugins/typescript/features/UpdateImportsProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.d.ts +25 -0
- package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js +176 -0
- package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js.map +1 -0
- package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.d.ts +13 -0
- package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js +58 -0
- package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js.map +1 -0
- package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.d.ts +4 -0
- package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js +57 -0
- package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js.map +1 -0
- package/dist/src/plugins/typescript/features/utils.d.ts +81 -0
- package/dist/src/plugins/typescript/features/utils.js +331 -0
- package/dist/src/plugins/typescript/features/utils.js.map +1 -0
- package/dist/src/plugins/typescript/macroforgeAugmenter.d.ts +23 -0
- package/dist/src/plugins/typescript/macroforgeAugmenter.js +41 -0
- package/dist/src/plugins/typescript/macroforgeAugmenter.js.map +1 -0
- package/dist/src/plugins/typescript/module-loader.d.ts +28 -0
- package/dist/src/plugins/typescript/module-loader.js +254 -0
- package/dist/src/plugins/typescript/module-loader.js.map +1 -0
- package/dist/src/plugins/typescript/previewer.d.ts +7 -0
- package/dist/src/plugins/typescript/previewer.js +120 -0
- package/dist/src/plugins/typescript/previewer.js.map +1 -0
- package/dist/src/plugins/typescript/service.d.ts +105 -0
- package/dist/src/plugins/typescript/service.js +1073 -0
- package/dist/src/plugins/typescript/service.js.map +1 -0
- package/dist/src/plugins/typescript/serviceCache.d.ts +90 -0
- package/dist/src/plugins/typescript/serviceCache.js +50 -0
- package/dist/src/plugins/typescript/serviceCache.js.map +1 -0
- package/dist/src/plugins/typescript/svelte-ast-utils.d.ts +77 -0
- package/dist/src/plugins/typescript/svelte-ast-utils.js +100 -0
- package/dist/src/plugins/typescript/svelte-ast-utils.js.map +1 -0
- package/dist/src/plugins/typescript/svelte-sys.d.ts +9 -0
- package/dist/src/plugins/typescript/svelte-sys.js +79 -0
- package/dist/src/plugins/typescript/svelte-sys.js.map +1 -0
- package/dist/src/plugins/typescript/utils.d.ts +48 -0
- package/dist/src/plugins/typescript/utils.js +334 -0
- package/dist/src/plugins/typescript/utils.js.map +1 -0
- package/dist/src/server.d.ts +19 -0
- package/dist/src/server.js +434 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/svelte-check.d.ts +65 -0
- package/dist/src/svelte-check.js +288 -0
- package/dist/src/svelte-check.js.map +1 -0
- package/dist/src/utils.d.ts +111 -0
- package/dist/src/utils.js +337 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SvelteCheck = void 0;
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
10
|
+
const documents_1 = require("./lib/documents");
|
|
11
|
+
const logger_1 = require("./logger");
|
|
12
|
+
const ls_config_1 = require("./ls-config");
|
|
13
|
+
const plugins_1 = require("./plugins");
|
|
14
|
+
const FileSystemProvider_1 = require("./plugins/css/FileSystemProvider");
|
|
15
|
+
const service_1 = require("./plugins/css/service");
|
|
16
|
+
const utils_1 = require("./plugins/typescript/features/utils");
|
|
17
|
+
const utils_2 = require("./plugins/typescript/utils");
|
|
18
|
+
const utils_3 = require("./utils");
|
|
19
|
+
const lodash_1 = require("lodash");
|
|
20
|
+
/**
|
|
21
|
+
* Small wrapper around PluginHost's Diagnostic Capabilities
|
|
22
|
+
* for svelte-check, without the overhead of the lsp.
|
|
23
|
+
*/
|
|
24
|
+
class SvelteCheck {
|
|
25
|
+
constructor(workspacePath, options = {}) {
|
|
26
|
+
this.options = options;
|
|
27
|
+
this.docManager = new documents_1.DocumentManager((textDocument) => new documents_1.Document(textDocument.uri, textDocument.text));
|
|
28
|
+
this.configManager = new ls_config_1.LSConfigManager();
|
|
29
|
+
this.pluginHost = new plugins_1.PluginHost(this.docManager);
|
|
30
|
+
logger_1.Logger.setLogErrorsOnly(true);
|
|
31
|
+
this.initialize(workspacePath, options);
|
|
32
|
+
}
|
|
33
|
+
async initialize(workspacePath, options) {
|
|
34
|
+
if (options.tsconfig && !(0, path_1.isAbsolute)(options.tsconfig)) {
|
|
35
|
+
throw new Error('tsconfigPath needs to be absolute, got ' + options.tsconfig);
|
|
36
|
+
}
|
|
37
|
+
this.configManager.update({
|
|
38
|
+
svelte: {
|
|
39
|
+
compilerWarnings: options.compilerWarnings
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
// No HTMLPlugin, it does not provide diagnostics
|
|
43
|
+
if (shouldRegister('svelte')) {
|
|
44
|
+
this.pluginHost.register(new plugins_1.SveltePlugin(this.configManager));
|
|
45
|
+
}
|
|
46
|
+
if (shouldRegister('css')) {
|
|
47
|
+
const services = (0, service_1.createLanguageServices)({
|
|
48
|
+
fileSystemProvider: new FileSystemProvider_1.FileSystemProvider()
|
|
49
|
+
});
|
|
50
|
+
const workspaceFolders = [
|
|
51
|
+
{
|
|
52
|
+
name: '',
|
|
53
|
+
uri: (0, utils_3.pathToUrl)(workspacePath)
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
this.pluginHost.register(new plugins_1.CSSPlugin(this.docManager, this.configManager, workspaceFolders, services));
|
|
57
|
+
}
|
|
58
|
+
if (shouldRegister('js') || options.tsconfig) {
|
|
59
|
+
const workspaceUris = [(0, utils_3.pathToUrl)(workspacePath)];
|
|
60
|
+
this.lsAndTSDocResolver = new plugins_1.LSAndTSDocResolver(this.docManager, workspaceUris, this.configManager, {
|
|
61
|
+
tsconfigPath: options.tsconfig,
|
|
62
|
+
isSvelteCheck: true,
|
|
63
|
+
onProjectReloaded: options.onProjectReload,
|
|
64
|
+
watch: options.watch,
|
|
65
|
+
onFileSnapshotCreated: options.onFileSnapshotCreated
|
|
66
|
+
});
|
|
67
|
+
this.pluginHost.register(new plugins_1.TypeScriptPlugin(this.configManager, this.lsAndTSDocResolver, workspaceUris, this.docManager));
|
|
68
|
+
}
|
|
69
|
+
function shouldRegister(source) {
|
|
70
|
+
return !options.diagnosticSources || options.diagnosticSources.includes(source);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates/updates given document
|
|
75
|
+
*
|
|
76
|
+
* @param doc Text and Uri of the document
|
|
77
|
+
* @param isNew Whether or not this is the creation of the document
|
|
78
|
+
*/
|
|
79
|
+
async upsertDocument(doc, isNew) {
|
|
80
|
+
const filePath = (0, utils_3.urlToPath)(doc.uri) || '';
|
|
81
|
+
if (this.options.tsconfig) {
|
|
82
|
+
const lsContainer = await this.getLSContainer(this.options.tsconfig);
|
|
83
|
+
if (!lsContainer.fileBelongsToProject(filePath, isNew)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (doc.uri.endsWith('.ts') ||
|
|
88
|
+
doc.uri.endsWith('.js') ||
|
|
89
|
+
doc.uri.endsWith('.tsx') ||
|
|
90
|
+
doc.uri.endsWith('.jsx') ||
|
|
91
|
+
doc.uri.endsWith('.mjs') ||
|
|
92
|
+
doc.uri.endsWith('.cjs') ||
|
|
93
|
+
doc.uri.endsWith('.mts') ||
|
|
94
|
+
doc.uri.endsWith('.cts')) {
|
|
95
|
+
this.pluginHost.updateTsOrJsFile(filePath, [
|
|
96
|
+
{
|
|
97
|
+
range: vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(0, 0), vscode_languageserver_1.Position.create(Number.MAX_VALUE, Number.MAX_VALUE)),
|
|
98
|
+
text: doc.text
|
|
99
|
+
}
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
this.docManager.openClientDocument({
|
|
104
|
+
text: doc.text,
|
|
105
|
+
uri: doc.uri
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Removes/closes document
|
|
111
|
+
*
|
|
112
|
+
* @param uri Uri of the document
|
|
113
|
+
*/
|
|
114
|
+
async removeDocument(uri) {
|
|
115
|
+
if (!this.docManager.get(uri)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.docManager.closeDocument(uri);
|
|
119
|
+
this.docManager.releaseDocument(uri);
|
|
120
|
+
if (this.options.tsconfig) {
|
|
121
|
+
const lsContainer = await this.getLSContainer(this.options.tsconfig);
|
|
122
|
+
lsContainer.deleteSnapshot((0, utils_3.urlToPath)(uri) || '');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Gets the diagnostics for all currently open files.
|
|
127
|
+
*/
|
|
128
|
+
async getDiagnostics() {
|
|
129
|
+
if (this.options.tsconfig) {
|
|
130
|
+
return this.getDiagnosticsForTsconfig(this.options.tsconfig);
|
|
131
|
+
}
|
|
132
|
+
return await Promise.all(this.docManager.getAllOpenedByClient().map(async (doc) => {
|
|
133
|
+
const uri = doc[1].uri;
|
|
134
|
+
return await this.getDiagnosticsForFile(uri);
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
async getDiagnosticsForTsconfig(tsconfigPath) {
|
|
138
|
+
const lsContainer = await this.getLSContainer(tsconfigPath);
|
|
139
|
+
const map = (diagnostic, range) => {
|
|
140
|
+
const file = diagnostic.file;
|
|
141
|
+
range ??= file
|
|
142
|
+
? (0, utils_2.convertRange)({ positionAt: file.getLineAndCharacterOfPosition.bind(file) }, diagnostic)
|
|
143
|
+
: { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } };
|
|
144
|
+
return {
|
|
145
|
+
range: range,
|
|
146
|
+
severity: (0, utils_2.mapSeverity)(diagnostic.category),
|
|
147
|
+
source: diagnostic.source,
|
|
148
|
+
message: typescript_1.default.flattenDiagnosticMessageText(diagnostic.messageText, '\n'),
|
|
149
|
+
code: diagnostic.code,
|
|
150
|
+
tags: (0, utils_2.getDiagnosticTag)(diagnostic)
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
if (lsContainer.configErrors.some((error) => error.category === typescript_1.default.DiagnosticCategory.Error)) {
|
|
154
|
+
return reportConfigError();
|
|
155
|
+
}
|
|
156
|
+
const lang = lsContainer.getService();
|
|
157
|
+
if (lsContainer.configErrors.some((error) => error.category === typescript_1.default.DiagnosticCategory.Error)) {
|
|
158
|
+
return reportConfigError();
|
|
159
|
+
}
|
|
160
|
+
const files = lang.getProgram()?.getSourceFiles() || [];
|
|
161
|
+
const options = lang.getProgram()?.getCompilerOptions() || {};
|
|
162
|
+
const diagnostics = await Promise.all(files.map((file) => {
|
|
163
|
+
const uri = (0, utils_3.pathToUrl)(file.fileName);
|
|
164
|
+
const doc = this.docManager.get(uri);
|
|
165
|
+
if (doc) {
|
|
166
|
+
this.docManager.markAsOpenedInClient(uri);
|
|
167
|
+
return this.getDiagnosticsForFile(uri);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// This check is done inside TS mostly, too, but for some diagnostics like suggestions it
|
|
171
|
+
// doesn't apply to all code paths. That's why we do it here, too.
|
|
172
|
+
const skipDiagnosticsForFile = (options.skipLibCheck && file.isDeclarationFile) ||
|
|
173
|
+
(options.skipDefaultLibCheck && file.hasNoDefaultLib) ||
|
|
174
|
+
lsContainer.isShimFiles(file.fileName) ||
|
|
175
|
+
// ignore JS files in node_modules
|
|
176
|
+
/\/node_modules\/.+\.(c|m)?js$/.test(file.fileName);
|
|
177
|
+
const snapshot = lsContainer.snapshotManager.get(file.fileName);
|
|
178
|
+
const isKitFile = snapshot?.kitFile ?? false;
|
|
179
|
+
const diagnostics = [];
|
|
180
|
+
if (!skipDiagnosticsForFile) {
|
|
181
|
+
const diagnosticSources = [
|
|
182
|
+
'getSyntacticDiagnostics',
|
|
183
|
+
'getSuggestionDiagnostics',
|
|
184
|
+
'getSemanticDiagnostics'
|
|
185
|
+
];
|
|
186
|
+
for (const diagnosticSource of diagnosticSources) {
|
|
187
|
+
for (let diagnostic of lang[diagnosticSource](file.fileName)) {
|
|
188
|
+
if (!diagnostic.start || !diagnostic.length || !isKitFile) {
|
|
189
|
+
diagnostics.push(map(diagnostic));
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
let range = undefined;
|
|
193
|
+
const inGenerated = (0, utils_1.isInGeneratedCode)(file.text, diagnostic.start, diagnostic.start + diagnostic.length);
|
|
194
|
+
if (inGenerated && snapshot) {
|
|
195
|
+
const pos = snapshot.getOriginalPosition(snapshot.positionAt(diagnostic.start));
|
|
196
|
+
range = {
|
|
197
|
+
start: pos,
|
|
198
|
+
end: {
|
|
199
|
+
line: pos.line,
|
|
200
|
+
// adjust length so it doesn't spill over to the next line
|
|
201
|
+
character: pos.character + 1
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
// If not one of the specific error messages then filter out
|
|
205
|
+
if (diagnostic.code === 2307) {
|
|
206
|
+
diagnostic = {
|
|
207
|
+
...diagnostic,
|
|
208
|
+
messageText: typeof diagnostic.messageText === 'string' &&
|
|
209
|
+
diagnostic.messageText.includes('./$types')
|
|
210
|
+
? diagnostic.messageText +
|
|
211
|
+
` (this likely means that SvelteKit's type generation didn't run yet - try running it by executing 'npm run dev' or 'npm run build')`
|
|
212
|
+
: diagnostic.messageText
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
else if (diagnostic.code === 2694) {
|
|
216
|
+
diagnostic = {
|
|
217
|
+
...diagnostic,
|
|
218
|
+
messageText: typeof diagnostic.messageText === 'string' &&
|
|
219
|
+
diagnostic.messageText.includes('/$types')
|
|
220
|
+
? diagnostic.messageText +
|
|
221
|
+
` (this likely means that SvelteKit's generated types are out of date - try rerunning it by executing 'npm run dev' or 'npm run build')`
|
|
222
|
+
: diagnostic.messageText
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
else if (diagnostic.code !==
|
|
226
|
+
2355 /* A function whose declared type is neither 'void' nor 'any' must return a value */) {
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
diagnostics.push(map(diagnostic, range));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
filePath: file.fileName,
|
|
236
|
+
text: snapshot?.originalText ?? file.text,
|
|
237
|
+
diagnostics
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
}));
|
|
241
|
+
if (lsContainer.configErrors.length) {
|
|
242
|
+
diagnostics.push(...reportConfigError());
|
|
243
|
+
}
|
|
244
|
+
return diagnostics;
|
|
245
|
+
function reportConfigError() {
|
|
246
|
+
const grouped = (0, lodash_1.groupBy)(lsContainer.configErrors, (error) => error.file?.fileName ?? tsconfigPath);
|
|
247
|
+
return Object.entries(grouped).map(([filePath, errors]) => ({
|
|
248
|
+
filePath,
|
|
249
|
+
text: '',
|
|
250
|
+
diagnostics: errors.map((diagnostic) => map(diagnostic))
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
async getDiagnosticsForFile(uri) {
|
|
255
|
+
const diagnostics = await this.pluginHost.getDiagnostics({ uri });
|
|
256
|
+
return {
|
|
257
|
+
filePath: (0, utils_3.urlToPath)(uri) || '',
|
|
258
|
+
text: this.docManager.get(uri)?.getText() || '',
|
|
259
|
+
diagnostics
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
getLSContainer(tsconfigPath) {
|
|
263
|
+
if (!this.lsAndTSDocResolver) {
|
|
264
|
+
throw new Error('Cannot run with tsconfig path without LS/TSdoc resolver');
|
|
265
|
+
}
|
|
266
|
+
return this.lsAndTSDocResolver.getTSService(tsconfigPath);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Gets the watch directories based on the tsconfig include patterns.
|
|
270
|
+
* Returns null if no tsconfig is specified.
|
|
271
|
+
*/
|
|
272
|
+
async getWatchDirectories() {
|
|
273
|
+
if (!this.options.tsconfig) {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
const lsContainer = await this.getLSContainer(this.options.tsconfig);
|
|
277
|
+
const projectConfig = lsContainer.getProjectConfig();
|
|
278
|
+
if (!projectConfig.wildcardDirectories) {
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
return Object.entries(projectConfig.wildcardDirectories).map(([dir, flags]) => ({
|
|
282
|
+
path: dir,
|
|
283
|
+
recursive: !!(flags & typescript_1.default.WatchDirectoryFlags.Recursive)
|
|
284
|
+
}));
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.SvelteCheck = SvelteCheck;
|
|
288
|
+
//# sourceMappingURL=svelte-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svelte-check.js","sourceRoot":"","sources":["../../src/svelte-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Node } from 'vscode-html-languageservice';
|
|
2
|
+
import { Position, Range } from 'vscode-languageserver';
|
|
3
|
+
type Predicate<T> = (x: T) => boolean;
|
|
4
|
+
export declare function not<T>(predicate: Predicate<T>): (x: T) => boolean;
|
|
5
|
+
export declare function or<T>(...predicates: Array<Predicate<T>>): (x: T) => boolean;
|
|
6
|
+
export declare function and<T>(...predicates: Array<Predicate<T>>): (x: T) => boolean;
|
|
7
|
+
export declare function unique<T>(array: T[]): T[];
|
|
8
|
+
export declare function clamp(num: number, min: number, max: number): number;
|
|
9
|
+
export declare function urlToPath(stringUrl: string): string | null;
|
|
10
|
+
export declare function pathToUrl(path: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Some paths (on windows) start with a upper case driver letter, some don't.
|
|
13
|
+
* This is normalized here.
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizePath(path: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* URIs coming from the client could be encoded in a different
|
|
18
|
+
* way than expected / than the internal services create them.
|
|
19
|
+
* This normalizes them to be the same as the internally generated ones.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeUri(uri: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Given a path like foo/bar or foo/bar.svelte , returns its last path
|
|
24
|
+
* (bar or bar.svelte in this example).
|
|
25
|
+
*/
|
|
26
|
+
export declare function getLastPartOfPath(path: string): string;
|
|
27
|
+
export declare function flatten<T>(arr: Array<T | T[]>): T[];
|
|
28
|
+
/**
|
|
29
|
+
* Map or keep original (passthrough) if the mapper returns undefined.
|
|
30
|
+
*/
|
|
31
|
+
export declare function passMap<T>(array: T[], mapper: (x: T) => void | T[]): (T | T[])[];
|
|
32
|
+
export declare function isInRange(range: Range, positionToTest: Position): boolean;
|
|
33
|
+
export declare function isZeroLengthRange(range: Range): boolean;
|
|
34
|
+
export declare function isRangeStartAfterEnd(range: Range): boolean;
|
|
35
|
+
export declare function swapRangeStartEndIfNecessary(range: Range): Range;
|
|
36
|
+
export declare function moveRangeStartToEndIfNecessary(range: Range): Range;
|
|
37
|
+
export declare function isBeforeOrEqualToPosition(position: Position, positionToTest: Position): boolean;
|
|
38
|
+
export declare function isPositionEqual(position1: Position, position2: Position): boolean;
|
|
39
|
+
export declare function isNotNullOrUndefined<T>(val: T | undefined | null): val is T;
|
|
40
|
+
/**
|
|
41
|
+
* Debounces a function but cancels previous invocation only if
|
|
42
|
+
* a second function determines it should.
|
|
43
|
+
*
|
|
44
|
+
* @param fn The function with it's argument
|
|
45
|
+
* @param determineIfSame The function which determines if the previous invocation should be canceld or not
|
|
46
|
+
* @param miliseconds Number of miliseconds to debounce
|
|
47
|
+
*/
|
|
48
|
+
export declare function debounceSameArg<T>(fn: (arg: T) => void, shouldCancelPrevious: (newArg: T, prevArg?: T) => boolean, miliseconds: number): (arg: T) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Debounces a function but also waits at minimum the specified number of miliseconds until
|
|
51
|
+
* the next invocation. This avoids needless calls when a synchronous call (like diagnostics)
|
|
52
|
+
* took too long and the whole timeout of the next call was eaten up already.
|
|
53
|
+
*
|
|
54
|
+
* @param fn The function
|
|
55
|
+
* @param miliseconds Number of miliseconds to debounce/throttle
|
|
56
|
+
*/
|
|
57
|
+
export declare function debounceThrottle(fn: () => void, miliseconds: number): () => void;
|
|
58
|
+
/**
|
|
59
|
+
* Like str.lastIndexOf, but for regular expressions. Note that you need to provide the g-flag to your RegExp!
|
|
60
|
+
*/
|
|
61
|
+
export declare function regexLastIndexOf(text: string, regex: RegExp, endPos?: number): number;
|
|
62
|
+
/**
|
|
63
|
+
* Like str.indexOf, but for regular expressions.
|
|
64
|
+
*/
|
|
65
|
+
export declare function regexIndexOf(text: string, regex: RegExp, startPos?: number): number;
|
|
66
|
+
/**
|
|
67
|
+
* Get all matches of a regexp.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getRegExpMatches(regex: RegExp, str: string): RegExpExecArray[];
|
|
70
|
+
/**
|
|
71
|
+
* Function to modify each line of a text, preserving the line break style (`\n` or `\r\n`)
|
|
72
|
+
*/
|
|
73
|
+
export declare function modifyLines(text: string, replacementFn: (line: string, lineIdx: number) => string): string;
|
|
74
|
+
export declare function isSamePosition(position: Position, another: Position): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Like array.filter, but asynchronous
|
|
77
|
+
*/
|
|
78
|
+
export declare function filterAsync<T>(array: T[], predicate: (t: T, idx: number) => Promise<boolean>): Promise<T[]>;
|
|
79
|
+
export declare function getIndent(text: string): string;
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* The html language service is case insensitive, and would provide
|
|
83
|
+
* hover/ completion info for Svelte components like `Option` which have
|
|
84
|
+
* the same name like a html tag.
|
|
85
|
+
*
|
|
86
|
+
* Also, svelte directives like action and event modifier only work
|
|
87
|
+
* with element not component
|
|
88
|
+
*/
|
|
89
|
+
export declare function possiblyComponent(node: Node): boolean;
|
|
90
|
+
export declare function possiblyComponent(tagName: string): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* If the object if it has entries, else undefined
|
|
93
|
+
*/
|
|
94
|
+
export declare function returnObjectIfHasKeys<T>(obj: T | undefined): T | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* adopted from https://github.com/microsoft/TypeScript/blob/8192d550496d884263e292488e325ae96893dc78/src/compiler/core.ts#L1769-L1807
|
|
97
|
+
* see the comment there about why we can't just use String.prototype.toLowerCase() here
|
|
98
|
+
*/
|
|
99
|
+
export declare function toFileNameLowerCase(x: string): string;
|
|
100
|
+
export type GetCanonicalFileName = (fileName: string) => string;
|
|
101
|
+
/**
|
|
102
|
+
* adopted from https://github.com/microsoft/TypeScript/blob/8192d550496d884263e292488e325ae96893dc78/src/compiler/core.ts#L2312
|
|
103
|
+
*/
|
|
104
|
+
export declare function createGetCanonicalFileName(useCaseSensitiveFileNames: boolean): GetCanonicalFileName;
|
|
105
|
+
export declare function memoize<T>(callback: () => T): () => T;
|
|
106
|
+
export declare function removeLineWithString(str: string, keyword: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Traverses a string and returns the index of the end character, taking into account quotes, curlies and generic tags.
|
|
109
|
+
*/
|
|
110
|
+
export declare function traverseTypeString(str: string, start: number, endChar: string): number;
|
|
111
|
+
export {};
|