@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.
Files changed (256) hide show
  1. package/README.md +331 -0
  2. package/bin/server.js +5 -0
  3. package/dist/src/importPackage.d.ts +16 -0
  4. package/dist/src/importPackage.js +76 -0
  5. package/dist/src/importPackage.js.map +1 -0
  6. package/dist/src/index.d.ts +3 -0
  7. package/dist/src/index.js +23 -0
  8. package/dist/src/index.js.map +1 -0
  9. package/dist/src/lib/DiagnosticsManager.d.ts +20 -0
  10. package/dist/src/lib/DiagnosticsManager.js +71 -0
  11. package/dist/src/lib/DiagnosticsManager.js.map +1 -0
  12. package/dist/src/lib/FallbackWatcher.d.ts +15 -0
  13. package/dist/src/lib/FallbackWatcher.js +66 -0
  14. package/dist/src/lib/FallbackWatcher.js.map +1 -0
  15. package/dist/src/lib/documentHighlight/wordHighlight.d.ts +3 -0
  16. package/dist/src/lib/documentHighlight/wordHighlight.js +62 -0
  17. package/dist/src/lib/documentHighlight/wordHighlight.js.map +1 -0
  18. package/dist/src/lib/documents/Document.d.ts +63 -0
  19. package/dist/src/lib/documents/Document.js +138 -0
  20. package/dist/src/lib/documents/Document.js.map +1 -0
  21. package/dist/src/lib/documents/DocumentBase.d.ts +65 -0
  22. package/dist/src/lib/documents/DocumentBase.js +69 -0
  23. package/dist/src/lib/documents/DocumentBase.js.map +1 -0
  24. package/dist/src/lib/documents/DocumentManager.d.ts +28 -0
  25. package/dist/src/lib/documents/DocumentManager.js +122 -0
  26. package/dist/src/lib/documents/DocumentManager.js.map +1 -0
  27. package/dist/src/lib/documents/DocumentMapper.d.ts +88 -0
  28. package/dist/src/lib/documents/DocumentMapper.js +258 -0
  29. package/dist/src/lib/documents/DocumentMapper.js.map +1 -0
  30. package/dist/src/lib/documents/configLoader.d.ts +80 -0
  31. package/dist/src/lib/documents/configLoader.js +265 -0
  32. package/dist/src/lib/documents/configLoader.js.map +1 -0
  33. package/dist/src/lib/documents/fileCollection.d.ts +41 -0
  34. package/dist/src/lib/documents/fileCollection.js +87 -0
  35. package/dist/src/lib/documents/fileCollection.js.map +1 -0
  36. package/dist/src/lib/documents/index.d.ts +5 -0
  37. package/dist/src/lib/documents/index.js +22 -0
  38. package/dist/src/lib/documents/index.js.map +1 -0
  39. package/dist/src/lib/documents/parseHtml.d.ts +13 -0
  40. package/dist/src/lib/documents/parseHtml.js +160 -0
  41. package/dist/src/lib/documents/parseHtml.js.map +1 -0
  42. package/dist/src/lib/documents/utils.d.ts +105 -0
  43. package/dist/src/lib/documents/utils.js +410 -0
  44. package/dist/src/lib/documents/utils.js.map +1 -0
  45. package/dist/src/lib/foldingRange/indentFolding.d.ts +26 -0
  46. package/dist/src/lib/foldingRange/indentFolding.js +142 -0
  47. package/dist/src/lib/foldingRange/indentFolding.js.map +1 -0
  48. package/dist/src/lib/semanticToken/semanticTokenLegend.d.ts +33 -0
  49. package/dist/src/lib/semanticToken/semanticTokenLegend.js +37 -0
  50. package/dist/src/lib/semanticToken/semanticTokenLegend.js.map +1 -0
  51. package/dist/src/logger.d.ts +9 -0
  52. package/dist/src/logger.js +28 -0
  53. package/dist/src/logger.js.map +1 -0
  54. package/dist/src/ls-config.d.ts +326 -0
  55. package/dist/src/ls-config.js +386 -0
  56. package/dist/src/ls-config.js.map +1 -0
  57. package/dist/src/plugins/PluginHost.d.ts +68 -0
  58. package/dist/src/plugins/PluginHost.js +447 -0
  59. package/dist/src/plugins/PluginHost.js.map +1 -0
  60. package/dist/src/plugins/css/CSSDocument.d.ts +46 -0
  61. package/dist/src/plugins/css/CSSDocument.js +78 -0
  62. package/dist/src/plugins/css/CSSDocument.js.map +1 -0
  63. package/dist/src/plugins/css/CSSPlugin.d.ts +35 -0
  64. package/dist/src/plugins/css/CSSPlugin.js +407 -0
  65. package/dist/src/plugins/css/CSSPlugin.js.map +1 -0
  66. package/dist/src/plugins/css/FileSystemProvider.d.ts +10 -0
  67. package/dist/src/plugins/css/FileSystemProvider.js +75 -0
  68. package/dist/src/plugins/css/FileSystemProvider.js.map +1 -0
  69. package/dist/src/plugins/css/StyleAttributeDocument.d.ts +41 -0
  70. package/dist/src/plugins/css/StyleAttributeDocument.js +65 -0
  71. package/dist/src/plugins/css/StyleAttributeDocument.js.map +1 -0
  72. package/dist/src/plugins/css/features/getIdClassCompletion.d.ts +19 -0
  73. package/dist/src/plugins/css/features/getIdClassCompletion.js +56 -0
  74. package/dist/src/plugins/css/features/getIdClassCompletion.js.map +1 -0
  75. package/dist/src/plugins/css/features/svelte-selectors.d.ts +2 -0
  76. package/dist/src/plugins/css/features/svelte-selectors.js +18 -0
  77. package/dist/src/plugins/css/features/svelte-selectors.js.map +1 -0
  78. package/dist/src/plugins/css/global-vars.d.ts +16 -0
  79. package/dist/src/plugins/css/global-vars.js +82 -0
  80. package/dist/src/plugins/css/global-vars.js.map +1 -0
  81. package/dist/src/plugins/css/service.d.ts +5 -0
  82. package/dist/src/plugins/css/service.js +66 -0
  83. package/dist/src/plugins/css/service.js.map +1 -0
  84. package/dist/src/plugins/documentContext.d.ts +3 -0
  85. package/dist/src/plugins/documentContext.js +36 -0
  86. package/dist/src/plugins/documentContext.js.map +1 -0
  87. package/dist/src/plugins/html/HTMLPlugin.d.ts +36 -0
  88. package/dist/src/plugins/html/HTMLPlugin.js +363 -0
  89. package/dist/src/plugins/html/HTMLPlugin.js.map +1 -0
  90. package/dist/src/plugins/html/dataProvider.d.ts +1 -0
  91. package/dist/src/plugins/html/dataProvider.js +481 -0
  92. package/dist/src/plugins/html/dataProvider.js.map +1 -0
  93. package/dist/src/plugins/index.d.ts +7 -0
  94. package/dist/src/plugins/index.js +24 -0
  95. package/dist/src/plugins/index.js.map +1 -0
  96. package/dist/src/plugins/interfaces.d.ts +132 -0
  97. package/dist/src/plugins/interfaces.js +3 -0
  98. package/dist/src/plugins/interfaces.js.map +1 -0
  99. package/dist/src/plugins/svelte/SvelteDocument.d.ts +98 -0
  100. package/dist/src/plugins/svelte/SvelteDocument.js +318 -0
  101. package/dist/src/plugins/svelte/SvelteDocument.js.map +1 -0
  102. package/dist/src/plugins/svelte/SveltePlugin.d.ts +24 -0
  103. package/dist/src/plugins/svelte/SveltePlugin.js +306 -0
  104. package/dist/src/plugins/svelte/SveltePlugin.js.map +1 -0
  105. package/dist/src/plugins/svelte/features/SvelteTags.d.ts +28 -0
  106. package/dist/src/plugins/svelte/features/SvelteTags.js +136 -0
  107. package/dist/src/plugins/svelte/features/SvelteTags.js.map +1 -0
  108. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.d.ts +11 -0
  109. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js +140 -0
  110. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js.map +1 -0
  111. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.d.ts +9 -0
  112. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js +140 -0
  113. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js.map +1 -0
  114. package/dist/src/plugins/svelte/features/getCodeActions/index.d.ts +4 -0
  115. package/dist/src/plugins/svelte/features/getCodeActions/index.js +19 -0
  116. package/dist/src/plugins/svelte/features/getCodeActions/index.js.map +1 -0
  117. package/dist/src/plugins/svelte/features/getCompletions.d.ts +4 -0
  118. package/dist/src/plugins/svelte/features/getCompletions.js +184 -0
  119. package/dist/src/plugins/svelte/features/getCompletions.js.map +1 -0
  120. package/dist/src/plugins/svelte/features/getDiagnostics.d.ts +9 -0
  121. package/dist/src/plugins/svelte/features/getDiagnostics.js +284 -0
  122. package/dist/src/plugins/svelte/features/getDiagnostics.js.map +1 -0
  123. package/dist/src/plugins/svelte/features/getHoverInfo.d.ts +7 -0
  124. package/dist/src/plugins/svelte/features/getHoverInfo.js +93 -0
  125. package/dist/src/plugins/svelte/features/getHoverInfo.js.map +1 -0
  126. package/dist/src/plugins/svelte/features/getModifierData.d.ts +7 -0
  127. package/dist/src/plugins/svelte/features/getModifierData.js +56 -0
  128. package/dist/src/plugins/svelte/features/getModifierData.js.map +1 -0
  129. package/dist/src/plugins/svelte/features/getSelectionRanges.d.ts +3 -0
  130. package/dist/src/plugins/svelte/features/getSelectionRanges.js +46 -0
  131. package/dist/src/plugins/svelte/features/getSelectionRanges.js.map +1 -0
  132. package/dist/src/plugins/svelte/features/utils.d.ts +5 -0
  133. package/dist/src/plugins/svelte/features/utils.js +18 -0
  134. package/dist/src/plugins/svelte/features/utils.js.map +1 -0
  135. package/dist/src/plugins/typescript/ComponentInfoProvider.d.ts +27 -0
  136. package/dist/src/plugins/typescript/ComponentInfoProvider.js +116 -0
  137. package/dist/src/plugins/typescript/ComponentInfoProvider.js.map +1 -0
  138. package/dist/src/plugins/typescript/DocumentMapper.d.ts +10 -0
  139. package/dist/src/plugins/typescript/DocumentMapper.js +25 -0
  140. package/dist/src/plugins/typescript/DocumentMapper.js.map +1 -0
  141. package/dist/src/plugins/typescript/DocumentSnapshot.d.ts +173 -0
  142. package/dist/src/plugins/typescript/DocumentSnapshot.js +623 -0
  143. package/dist/src/plugins/typescript/DocumentSnapshot.js.map +1 -0
  144. package/dist/src/plugins/typescript/LSAndTSDocResolver.d.ts +100 -0
  145. package/dist/src/plugins/typescript/LSAndTSDocResolver.js +301 -0
  146. package/dist/src/plugins/typescript/LSAndTSDocResolver.js.map +1 -0
  147. package/dist/src/plugins/typescript/SnapshotManager.d.ts +59 -0
  148. package/dist/src/plugins/typescript/SnapshotManager.js +238 -0
  149. package/dist/src/plugins/typescript/SnapshotManager.js.map +1 -0
  150. package/dist/src/plugins/typescript/TypeScriptPlugin.d.ts +65 -0
  151. package/dist/src/plugins/typescript/TypeScriptPlugin.js +332 -0
  152. package/dist/src/plugins/typescript/TypeScriptPlugin.js.map +1 -0
  153. package/dist/src/plugins/typescript/features/CallHierarchyProvider.d.ts +24 -0
  154. package/dist/src/plugins/typescript/features/CallHierarchyProvider.js +325 -0
  155. package/dist/src/plugins/typescript/features/CallHierarchyProvider.js.map +1 -0
  156. package/dist/src/plugins/typescript/features/CodeActionsProvider.d.ts +72 -0
  157. package/dist/src/plugins/typescript/features/CodeActionsProvider.js +1030 -0
  158. package/dist/src/plugins/typescript/features/CodeActionsProvider.js.map +1 -0
  159. package/dist/src/plugins/typescript/features/CodeLensProvider.d.ts +28 -0
  160. package/dist/src/plugins/typescript/features/CodeLensProvider.js +205 -0
  161. package/dist/src/plugins/typescript/features/CodeLensProvider.js.map +1 -0
  162. package/dist/src/plugins/typescript/features/CompletionProvider.d.ts +57 -0
  163. package/dist/src/plugins/typescript/features/CompletionProvider.js +791 -0
  164. package/dist/src/plugins/typescript/features/CompletionProvider.js.map +1 -0
  165. package/dist/src/plugins/typescript/features/DiagnosticsProvider.d.ts +36 -0
  166. package/dist/src/plugins/typescript/features/DiagnosticsProvider.js +497 -0
  167. package/dist/src/plugins/typescript/features/DiagnosticsProvider.js.map +1 -0
  168. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.d.ts +17 -0
  169. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js +211 -0
  170. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js.map +1 -0
  171. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.d.ts +9 -0
  172. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js +66 -0
  173. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js.map +1 -0
  174. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.d.ts +9 -0
  175. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js +38 -0
  176. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js.map +1 -0
  177. package/dist/src/plugins/typescript/features/FindReferencesProvider.d.ts +20 -0
  178. package/dist/src/plugins/typescript/features/FindReferencesProvider.js +149 -0
  179. package/dist/src/plugins/typescript/features/FindReferencesProvider.js.map +1 -0
  180. package/dist/src/plugins/typescript/features/FoldingRangeProvider.d.ts +28 -0
  181. package/dist/src/plugins/typescript/features/FoldingRangeProvider.js +247 -0
  182. package/dist/src/plugins/typescript/features/FoldingRangeProvider.js.map +1 -0
  183. package/dist/src/plugins/typescript/features/HoverProvider.d.ts +11 -0
  184. package/dist/src/plugins/typescript/features/HoverProvider.js +75 -0
  185. package/dist/src/plugins/typescript/features/HoverProvider.js.map +1 -0
  186. package/dist/src/plugins/typescript/features/ImplementationProvider.d.ts +9 -0
  187. package/dist/src/plugins/typescript/features/ImplementationProvider.js +47 -0
  188. package/dist/src/plugins/typescript/features/ImplementationProvider.js.map +1 -0
  189. package/dist/src/plugins/typescript/features/InlayHintProvider.d.ts +22 -0
  190. package/dist/src/plugins/typescript/features/InlayHintProvider.js +225 -0
  191. package/dist/src/plugins/typescript/features/InlayHintProvider.js.map +1 -0
  192. package/dist/src/plugins/typescript/features/RenameProvider.d.ts +53 -0
  193. package/dist/src/plugins/typescript/features/RenameProvider.js +423 -0
  194. package/dist/src/plugins/typescript/features/RenameProvider.js.map +1 -0
  195. package/dist/src/plugins/typescript/features/SelectionRangeProvider.d.ts +18 -0
  196. package/dist/src/plugins/typescript/features/SelectionRangeProvider.js +62 -0
  197. package/dist/src/plugins/typescript/features/SelectionRangeProvider.js.map +1 -0
  198. package/dist/src/plugins/typescript/features/SemanticTokensProvider.d.ts +15 -0
  199. package/dist/src/plugins/typescript/features/SemanticTokensProvider.js +116 -0
  200. package/dist/src/plugins/typescript/features/SemanticTokensProvider.js.map +1 -0
  201. package/dist/src/plugins/typescript/features/SignatureHelpProvider.d.ts +22 -0
  202. package/dist/src/plugins/typescript/features/SignatureHelpProvider.js +110 -0
  203. package/dist/src/plugins/typescript/features/SignatureHelpProvider.js.map +1 -0
  204. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.d.ts +9 -0
  205. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js +35 -0
  206. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js.map +1 -0
  207. package/dist/src/plugins/typescript/features/UpdateImportsProvider.d.ts +11 -0
  208. package/dist/src/plugins/typescript/features/UpdateImportsProvider.js +109 -0
  209. package/dist/src/plugins/typescript/features/UpdateImportsProvider.js.map +1 -0
  210. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.d.ts +25 -0
  211. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js +176 -0
  212. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js.map +1 -0
  213. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.d.ts +13 -0
  214. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js +58 -0
  215. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js.map +1 -0
  216. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.d.ts +4 -0
  217. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js +57 -0
  218. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js.map +1 -0
  219. package/dist/src/plugins/typescript/features/utils.d.ts +81 -0
  220. package/dist/src/plugins/typescript/features/utils.js +331 -0
  221. package/dist/src/plugins/typescript/features/utils.js.map +1 -0
  222. package/dist/src/plugins/typescript/macroforgeAugmenter.d.ts +23 -0
  223. package/dist/src/plugins/typescript/macroforgeAugmenter.js +41 -0
  224. package/dist/src/plugins/typescript/macroforgeAugmenter.js.map +1 -0
  225. package/dist/src/plugins/typescript/module-loader.d.ts +28 -0
  226. package/dist/src/plugins/typescript/module-loader.js +254 -0
  227. package/dist/src/plugins/typescript/module-loader.js.map +1 -0
  228. package/dist/src/plugins/typescript/previewer.d.ts +7 -0
  229. package/dist/src/plugins/typescript/previewer.js +120 -0
  230. package/dist/src/plugins/typescript/previewer.js.map +1 -0
  231. package/dist/src/plugins/typescript/service.d.ts +105 -0
  232. package/dist/src/plugins/typescript/service.js +1073 -0
  233. package/dist/src/plugins/typescript/service.js.map +1 -0
  234. package/dist/src/plugins/typescript/serviceCache.d.ts +90 -0
  235. package/dist/src/plugins/typescript/serviceCache.js +50 -0
  236. package/dist/src/plugins/typescript/serviceCache.js.map +1 -0
  237. package/dist/src/plugins/typescript/svelte-ast-utils.d.ts +77 -0
  238. package/dist/src/plugins/typescript/svelte-ast-utils.js +100 -0
  239. package/dist/src/plugins/typescript/svelte-ast-utils.js.map +1 -0
  240. package/dist/src/plugins/typescript/svelte-sys.d.ts +9 -0
  241. package/dist/src/plugins/typescript/svelte-sys.js +79 -0
  242. package/dist/src/plugins/typescript/svelte-sys.js.map +1 -0
  243. package/dist/src/plugins/typescript/utils.d.ts +48 -0
  244. package/dist/src/plugins/typescript/utils.js +334 -0
  245. package/dist/src/plugins/typescript/utils.js.map +1 -0
  246. package/dist/src/server.d.ts +19 -0
  247. package/dist/src/server.js +434 -0
  248. package/dist/src/server.js.map +1 -0
  249. package/dist/src/svelte-check.d.ts +65 -0
  250. package/dist/src/svelte-check.js +288 -0
  251. package/dist/src/svelte-check.js.map +1 -0
  252. package/dist/src/utils.d.ts +111 -0
  253. package/dist/src/utils.js +337 -0
  254. package/dist/src/utils.js.map +1 -0
  255. package/dist/tsconfig.tsbuildinfo +1 -0
  256. package/package.json +79 -0
@@ -0,0 +1,434 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startServer = startServer;
4
+ const vscode_languageserver_1 = require("vscode-languageserver");
5
+ const node_1 = require("vscode-languageserver/node");
6
+ const DiagnosticsManager_1 = require("./lib/DiagnosticsManager");
7
+ const documents_1 = require("./lib/documents");
8
+ const semanticTokenLegend_1 = require("./lib/semanticToken/semanticTokenLegend");
9
+ const logger_1 = require("./logger");
10
+ const ls_config_1 = require("./ls-config");
11
+ const plugins_1 = require("./plugins");
12
+ const utils_1 = require("./utils");
13
+ const FallbackWatcher_1 = require("./lib/FallbackWatcher");
14
+ const configLoader_1 = require("./lib/documents/configLoader");
15
+ const importPackage_1 = require("./importPackage");
16
+ const CodeActionsProvider_1 = require("./plugins/typescript/features/CodeActionsProvider");
17
+ const service_1 = require("./plugins/css/service");
18
+ const FileSystemProvider_1 = require("./plugins/css/FileSystemProvider");
19
+ var TagCloseRequest;
20
+ (function (TagCloseRequest) {
21
+ TagCloseRequest.type = new vscode_languageserver_1.RequestType('html/tag');
22
+ })(TagCloseRequest || (TagCloseRequest = {}));
23
+ /**
24
+ * Starts the language server.
25
+ *
26
+ * @param options Options to customize behavior
27
+ */
28
+ function startServer(options) {
29
+ let connection = options?.connection;
30
+ if (!connection) {
31
+ if (process.argv.includes('--stdio')) {
32
+ console.log = (...args) => {
33
+ console.warn(...args);
34
+ };
35
+ connection = (0, node_1.createConnection)(process.stdin, process.stdout);
36
+ }
37
+ else {
38
+ connection = (0, node_1.createConnection)(new node_1.IPCMessageReader(process), new node_1.IPCMessageWriter(process));
39
+ }
40
+ }
41
+ if (options?.logErrorsOnly !== undefined) {
42
+ logger_1.Logger.setLogErrorsOnly(options.logErrorsOnly);
43
+ }
44
+ const docManager = new documents_1.DocumentManager((textDocument) => new documents_1.Document(textDocument.uri, textDocument.text));
45
+ const configManager = new ls_config_1.LSConfigManager();
46
+ const pluginHost = new plugins_1.PluginHost(docManager);
47
+ let sveltePlugin = undefined;
48
+ let watcher;
49
+ let pendingWatchPatterns = [];
50
+ let watchDirectory = (patterns) => {
51
+ pendingWatchPatterns = patterns;
52
+ };
53
+ // Include Svelte files to better deal with scenarios such as switching git branches
54
+ // where files that are not opened in the client could change
55
+ const watchExtensions = ['.ts', '.js', '.mts', '.mjs', '.cjs', '.cts', '.json', '.svelte'];
56
+ const nonRecursiveWatchPattern = '*.{' + watchExtensions.map((ext) => ext.slice(1)).join(',') + '}';
57
+ const recursiveWatchPattern = '**/' + nonRecursiveWatchPattern;
58
+ connection.onInitialize((evt) => {
59
+ const workspaceUris = evt.workspaceFolders?.map((folder) => folder.uri.toString()) ?? [
60
+ evt.rootUri ?? ''
61
+ ];
62
+ logger_1.Logger.log('Initialize language server at ', workspaceUris.join(', '));
63
+ if (workspaceUris.length === 0) {
64
+ logger_1.Logger.error('No workspace path set');
65
+ }
66
+ if (!evt.capabilities.workspace?.didChangeWatchedFiles?.dynamicRegistration) {
67
+ const workspacePaths = workspaceUris.map(utils_1.urlToPath).filter(utils_1.isNotNullOrUndefined);
68
+ watcher = new FallbackWatcher_1.FallbackWatcher(watchExtensions, workspacePaths);
69
+ watcher.onDidChangeWatchedFiles(onDidChangeWatchedFiles);
70
+ watchDirectory = (patterns) => {
71
+ watcher?.watchDirectory(patterns);
72
+ };
73
+ }
74
+ const isTrusted = evt.initializationOptions?.isTrusted ?? true;
75
+ configLoader_1.configLoader.setDisabled(!isTrusted);
76
+ (0, importPackage_1.setIsTrusted)(isTrusted);
77
+ configManager.updateIsTrusted(isTrusted);
78
+ if (!isTrusted) {
79
+ logger_1.Logger.log('Workspace is not trusted, running with reduced capabilities.');
80
+ }
81
+ logger_1.Logger.setDebug((evt.initializationOptions?.configuration?.svelte ||
82
+ evt.initializationOptions?.config)?.['language-server']?.debug);
83
+ // Backwards-compatible way of setting initialization options (first `||` is the old style)
84
+ configManager.update(evt.initializationOptions?.configuration?.svelte?.plugin ||
85
+ evt.initializationOptions?.config ||
86
+ {});
87
+ configManager.updateTsJsUserPreferences(evt.initializationOptions?.configuration ||
88
+ evt.initializationOptions?.typescriptConfig ||
89
+ {});
90
+ configManager.updateTsJsFormateConfig(evt.initializationOptions?.configuration ||
91
+ evt.initializationOptions?.typescriptConfig ||
92
+ {});
93
+ configManager.updateEmmetConfig(evt.initializationOptions?.configuration?.emmet ||
94
+ evt.initializationOptions?.emmetConfig ||
95
+ {});
96
+ configManager.updatePrettierConfig(evt.initializationOptions?.configuration?.prettier ||
97
+ evt.initializationOptions?.prettierConfig ||
98
+ {});
99
+ // no old style as these were added later
100
+ configManager.updateCssConfig(evt.initializationOptions?.configuration?.css);
101
+ configManager.updateScssConfig(evt.initializationOptions?.configuration?.scss);
102
+ configManager.updateLessConfig(evt.initializationOptions?.configuration?.less);
103
+ configManager.updateHTMLConfig(evt.initializationOptions?.configuration?.html);
104
+ configManager.updateClientCapabilities(evt.capabilities);
105
+ pluginHost.initialize({
106
+ filterIncompleteCompletions: !evt.initializationOptions?.dontFilterIncompleteCompletions,
107
+ definitionLinkSupport: !!evt.capabilities.textDocument?.definition?.linkSupport
108
+ });
109
+ // Order of plugin registration matters for FirstNonNull, which affects for example hover info
110
+ pluginHost.register((sveltePlugin = new plugins_1.SveltePlugin(configManager)));
111
+ pluginHost.register(new plugins_1.HTMLPlugin(docManager, configManager));
112
+ const cssLanguageServices = (0, service_1.createLanguageServices)({
113
+ clientCapabilities: evt.capabilities,
114
+ fileSystemProvider: new FileSystemProvider_1.FileSystemProvider()
115
+ });
116
+ const workspaceFolders = evt.workspaceFolders ?? [{ name: '', uri: evt.rootUri ?? '' }];
117
+ pluginHost.register(new plugins_1.CSSPlugin(docManager, configManager, workspaceFolders, cssLanguageServices));
118
+ const normalizedWorkspaceUris = workspaceUris.map(utils_1.normalizeUri);
119
+ pluginHost.register(new plugins_1.TypeScriptPlugin(configManager, new plugins_1.LSAndTSDocResolver(docManager, normalizedWorkspaceUris, configManager, {
120
+ notifyExceedSizeLimit: notifyTsServiceExceedSizeLimit,
121
+ onProjectReloaded: refreshCrossFilesSemanticFeatures,
122
+ watch: true,
123
+ nonRecursiveWatchPattern,
124
+ watchDirectory: (patterns) => watchDirectory(patterns),
125
+ reportConfigError(diagnostic) {
126
+ connection?.sendDiagnostics(diagnostic);
127
+ }
128
+ }), normalizedWorkspaceUris, docManager));
129
+ const clientSupportApplyEditCommand = !!evt.capabilities.workspace?.applyEdit;
130
+ const clientCodeActionCapabilities = evt.capabilities.textDocument?.codeAction;
131
+ const clientSupportedCodeActionKinds = clientCodeActionCapabilities?.codeActionLiteralSupport?.codeActionKind.valueSet;
132
+ return {
133
+ capabilities: {
134
+ textDocumentSync: {
135
+ openClose: true,
136
+ change: vscode_languageserver_1.TextDocumentSyncKind.Incremental,
137
+ save: {
138
+ includeText: false
139
+ }
140
+ },
141
+ hoverProvider: true,
142
+ completionProvider: {
143
+ resolveProvider: true,
144
+ triggerCharacters: [
145
+ '.',
146
+ '"',
147
+ "'",
148
+ '`',
149
+ '/',
150
+ '@',
151
+ '<',
152
+ // Emmet
153
+ '>',
154
+ '*',
155
+ '#',
156
+ '$',
157
+ '+',
158
+ '^',
159
+ '(',
160
+ '[',
161
+ '@',
162
+ '-',
163
+ // No whitespace because
164
+ // it makes for weird/too many completions
165
+ // of other completion providers
166
+ // Svelte
167
+ ':',
168
+ '|'
169
+ ],
170
+ completionItem: {
171
+ labelDetailsSupport: true
172
+ }
173
+ },
174
+ documentFormattingProvider: true,
175
+ colorProvider: true,
176
+ documentSymbolProvider: true,
177
+ definitionProvider: true,
178
+ codeActionProvider: clientCodeActionCapabilities?.codeActionLiteralSupport
179
+ ? {
180
+ codeActionKinds: [
181
+ vscode_languageserver_1.CodeActionKind.QuickFix,
182
+ vscode_languageserver_1.CodeActionKind.SourceOrganizeImports,
183
+ CodeActionsProvider_1.SORT_IMPORT_CODE_ACTION_KIND,
184
+ CodeActionsProvider_1.ADD_MISSING_IMPORTS_CODE_ACTION_KIND,
185
+ CodeActionsProvider_1.REMOVE_UNUSED_IMPORTS_CODE_ACTION_KIND,
186
+ ...(clientSupportApplyEditCommand ? [vscode_languageserver_1.CodeActionKind.Refactor] : [])
187
+ ].filter(clientSupportedCodeActionKinds &&
188
+ evt.initializationOptions?.shouldFilterCodeActionKind
189
+ ? (kind) => clientSupportedCodeActionKinds.includes(kind)
190
+ : () => true),
191
+ resolveProvider: true
192
+ }
193
+ : true,
194
+ executeCommandProvider: clientSupportApplyEditCommand
195
+ ? {
196
+ commands: [
197
+ 'function_scope_0',
198
+ 'function_scope_1',
199
+ 'function_scope_2',
200
+ 'function_scope_3',
201
+ 'constant_scope_0',
202
+ 'constant_scope_1',
203
+ 'constant_scope_2',
204
+ 'constant_scope_3',
205
+ 'extract_to_svelte_component',
206
+ 'migrate_to_svelte_5',
207
+ 'Infer function return type'
208
+ ]
209
+ }
210
+ : undefined,
211
+ renameProvider: evt.capabilities.textDocument?.rename?.prepareSupport
212
+ ? { prepareProvider: true }
213
+ : true,
214
+ referencesProvider: true,
215
+ selectionRangeProvider: true,
216
+ signatureHelpProvider: {
217
+ triggerCharacters: ['(', ',', '<'],
218
+ retriggerCharacters: [')']
219
+ },
220
+ semanticTokensProvider: {
221
+ legend: (0, semanticTokenLegend_1.getSemanticTokenLegends)(),
222
+ range: true,
223
+ full: true
224
+ },
225
+ linkedEditingRangeProvider: true,
226
+ implementationProvider: true,
227
+ typeDefinitionProvider: true,
228
+ inlayHintProvider: true,
229
+ callHierarchyProvider: true,
230
+ foldingRangeProvider: true,
231
+ codeLensProvider: {
232
+ resolveProvider: true
233
+ },
234
+ documentHighlightProvider: evt.initializationOptions?.configuration?.svelte?.plugin?.svelte
235
+ ?.documentHighlight?.enable ?? true,
236
+ workspaceSymbolProvider: true
237
+ }
238
+ };
239
+ });
240
+ connection.onInitialized(() => {
241
+ if (watcher) {
242
+ return;
243
+ }
244
+ const didChangeWatchedFiles = configManager.getClientCapabilities()?.workspace?.didChangeWatchedFiles;
245
+ if (!didChangeWatchedFiles?.dynamicRegistration) {
246
+ return;
247
+ }
248
+ // still watch the roots since some files might be referenced but not included in the project
249
+ connection?.client.register(vscode_languageserver_1.DidChangeWatchedFilesNotification.type, {
250
+ watchers: [
251
+ {
252
+ // Editors have exclude configs, such as VSCode with `files.watcherExclude`,
253
+ // which means it's safe to watch recursively here
254
+ globPattern: recursiveWatchPattern
255
+ }
256
+ ]
257
+ });
258
+ if (didChangeWatchedFiles.relativePatternSupport) {
259
+ watchDirectory = (patterns) => {
260
+ connection?.client.register(vscode_languageserver_1.DidChangeWatchedFilesNotification.type, {
261
+ watchers: patterns.map((pattern) => ({
262
+ globPattern: pattern
263
+ }))
264
+ });
265
+ };
266
+ if (pendingWatchPatterns.length) {
267
+ watchDirectory(pendingWatchPatterns);
268
+ pendingWatchPatterns = [];
269
+ }
270
+ }
271
+ });
272
+ function notifyTsServiceExceedSizeLimit() {
273
+ connection?.sendNotification(vscode_languageserver_1.ShowMessageNotification.type, {
274
+ message: 'Svelte language server detected a large amount of JS/Svelte files. ' +
275
+ 'To enable project-wide JavaScript/TypeScript language features for Svelte files, ' +
276
+ 'exclude large folders in the tsconfig.json or jsconfig.json with source files that you do not work on.',
277
+ type: vscode_languageserver_1.MessageType.Warning
278
+ });
279
+ }
280
+ connection.onExit(() => {
281
+ watcher?.dispose();
282
+ });
283
+ connection.onRenameRequest((req) => pluginHost.rename(req.textDocument, req.position, req.newName));
284
+ connection.onPrepareRename((req) => pluginHost.prepareRename(req.textDocument, req.position));
285
+ connection.onDidChangeConfiguration(({ settings }) => {
286
+ configManager.update(settings.svelte?.plugin);
287
+ configManager.updateTsJsUserPreferences(settings);
288
+ configManager.updateTsJsFormateConfig(settings);
289
+ configManager.updateEmmetConfig(settings.emmet);
290
+ configManager.updatePrettierConfig(settings.prettier);
291
+ configManager.updateCssConfig(settings.css);
292
+ configManager.updateScssConfig(settings.scss);
293
+ configManager.updateLessConfig(settings.less);
294
+ configManager.updateHTMLConfig(settings.html);
295
+ logger_1.Logger.setDebug(settings.svelte?.['language-server']?.debug);
296
+ });
297
+ connection.onDidOpenTextDocument((evt) => {
298
+ const document = docManager.openClientDocument(evt.textDocument);
299
+ diagnosticsManager.scheduleUpdate(document);
300
+ });
301
+ connection.onDidCloseTextDocument((evt) => docManager.closeDocument(evt.textDocument.uri));
302
+ connection.onDidChangeTextDocument((evt) => {
303
+ diagnosticsManager.cancelStarted(evt.textDocument.uri);
304
+ docManager.updateDocument(evt.textDocument, evt.contentChanges);
305
+ pluginHost.didUpdateDocument();
306
+ });
307
+ connection.onHover((evt) => pluginHost.doHover(evt.textDocument, evt.position));
308
+ connection.onCompletion((evt, cancellationToken) => pluginHost.getCompletions(evt.textDocument, evt.position, evt.context, cancellationToken));
309
+ connection.onDocumentFormatting((evt) => pluginHost.formatDocument(evt.textDocument, evt.options));
310
+ connection.onRequest(TagCloseRequest.type, (evt) => pluginHost.doTagComplete(evt.textDocument, evt.position));
311
+ connection.onDocumentColor((evt) => pluginHost.getDocumentColors(evt.textDocument));
312
+ connection.onColorPresentation((evt) => pluginHost.getColorPresentations(evt.textDocument, evt.range, evt.color));
313
+ connection.onDocumentSymbol((evt, cancellationToken) => {
314
+ if (configManager.getClientCapabilities()?.textDocument?.documentSymbol
315
+ ?.hierarchicalDocumentSymbolSupport) {
316
+ return pluginHost.getHierarchicalDocumentSymbols(evt.textDocument, cancellationToken);
317
+ }
318
+ else {
319
+ return pluginHost.getDocumentSymbols(evt.textDocument, cancellationToken);
320
+ }
321
+ });
322
+ connection.onDefinition((evt) => pluginHost.getDefinitions(evt.textDocument, evt.position));
323
+ connection.onReferences((evt, cancellationToken) => pluginHost.findReferences(evt.textDocument, evt.position, evt.context, cancellationToken));
324
+ connection.onCodeAction((evt, cancellationToken) => pluginHost.getCodeActions(evt.textDocument, evt.range, evt.context, cancellationToken));
325
+ connection.onExecuteCommand(async (evt) => {
326
+ const result = await pluginHost.executeCommand({ uri: evt.arguments?.[0] }, evt.command, evt.arguments);
327
+ if (vscode_languageserver_1.WorkspaceEdit.is(result)) {
328
+ const edit = { edit: result };
329
+ connection?.sendRequest(vscode_languageserver_1.ApplyWorkspaceEditRequest.type.method, edit);
330
+ }
331
+ else if (result) {
332
+ connection?.sendNotification(vscode_languageserver_1.ShowMessageNotification.type.method, {
333
+ message: result,
334
+ type: vscode_languageserver_1.MessageType.Error
335
+ });
336
+ }
337
+ });
338
+ connection.onCodeActionResolve((codeAction, cancellationToken) => {
339
+ const data = codeAction.data;
340
+ return pluginHost.resolveCodeAction(data, codeAction, cancellationToken);
341
+ });
342
+ connection.onCompletionResolve((completionItem, cancellationToken) => {
343
+ const data = completionItem.data;
344
+ if (!data) {
345
+ return completionItem;
346
+ }
347
+ return pluginHost.resolveCompletion(data, completionItem, cancellationToken);
348
+ });
349
+ connection.onSignatureHelp((evt, cancellationToken) => pluginHost.getSignatureHelp(evt.textDocument, evt.position, evt.context, cancellationToken));
350
+ connection.onSelectionRanges((evt) => pluginHost.getSelectionRanges(evt.textDocument, evt.positions));
351
+ connection.onImplementation((evt, cancellationToken) => pluginHost.getImplementation(evt.textDocument, evt.position, cancellationToken));
352
+ connection.onTypeDefinition((evt) => pluginHost.getTypeDefinition(evt.textDocument, evt.position));
353
+ connection.onFoldingRanges((evt) => pluginHost.getFoldingRanges(evt.textDocument));
354
+ connection.onCodeLens((evt) => pluginHost.getCodeLens(evt.textDocument));
355
+ connection.onCodeLensResolve((codeLens, token) => {
356
+ const data = codeLens.data;
357
+ if (!data) {
358
+ return codeLens;
359
+ }
360
+ return pluginHost.resolveCodeLens(data, codeLens, token);
361
+ });
362
+ connection.onDocumentHighlight((evt) => pluginHost.findDocumentHighlight(evt.textDocument, evt.position));
363
+ connection.onWorkspaceSymbol((evt, token) => pluginHost.getWorkspaceSymbols(evt.query, token));
364
+ const diagnosticsManager = new DiagnosticsManager_1.DiagnosticsManager(connection.sendDiagnostics, docManager, pluginHost.getDiagnostics.bind(pluginHost));
365
+ const refreshSemanticTokens = (0, utils_1.debounceThrottle)(() => {
366
+ if (configManager?.getClientCapabilities()?.workspace?.semanticTokens?.refreshSupport) {
367
+ connection?.sendRequest(vscode_languageserver_1.SemanticTokensRefreshRequest.method);
368
+ }
369
+ }, 1500);
370
+ const refreshInlayHints = (0, utils_1.debounceThrottle)(() => {
371
+ if (configManager?.getClientCapabilities()?.workspace?.inlayHint?.refreshSupport) {
372
+ connection?.sendRequest(vscode_languageserver_1.InlayHintRefreshRequest.method);
373
+ }
374
+ }, 1500);
375
+ const refreshCrossFilesSemanticFeatures = () => {
376
+ diagnosticsManager.scheduleUpdateAll();
377
+ refreshInlayHints();
378
+ refreshSemanticTokens();
379
+ };
380
+ connection.onDidChangeWatchedFiles(onDidChangeWatchedFiles);
381
+ function onDidChangeWatchedFiles(para) {
382
+ const onWatchFileChangesParas = para.changes
383
+ .map((change) => ({
384
+ fileName: (0, utils_1.urlToPath)(change.uri),
385
+ changeType: change.type
386
+ }))
387
+ .filter((change) => !!change.fileName);
388
+ pluginHost.onWatchFileChanges(onWatchFileChangesParas);
389
+ refreshCrossFilesSemanticFeatures();
390
+ }
391
+ connection.onDidSaveTextDocument(diagnosticsManager.scheduleUpdateAll.bind(diagnosticsManager));
392
+ connection.onNotification('$/onDidChangeTsOrJsFile', async (e) => {
393
+ const path = (0, utils_1.urlToPath)(e.uri);
394
+ if (path) {
395
+ pluginHost.updateTsOrJsFile(path, e.changes);
396
+ }
397
+ refreshCrossFilesSemanticFeatures();
398
+ });
399
+ connection.onRequest(vscode_languageserver_1.SemanticTokensRequest.type, (evt, cancellationToken) => pluginHost.getSemanticTokens(evt.textDocument, undefined, cancellationToken));
400
+ connection.onRequest(vscode_languageserver_1.SemanticTokensRangeRequest.type, (evt, cancellationToken) => pluginHost.getSemanticTokens(evt.textDocument, evt.range, cancellationToken));
401
+ connection.onRequest(vscode_languageserver_1.LinkedEditingRangeRequest.type, async (evt) => await pluginHost.getLinkedEditingRanges(evt.textDocument, evt.position));
402
+ connection.onRequest(vscode_languageserver_1.InlayHintRequest.type, (evt, cancellationToken) => pluginHost.getInlayHints(evt.textDocument, evt.range, cancellationToken));
403
+ connection.onRequest(vscode_languageserver_1.CallHierarchyPrepareRequest.type, async (evt, token) => await pluginHost.prepareCallHierarchy(evt.textDocument, evt.position, token));
404
+ connection.onRequest(vscode_languageserver_1.CallHierarchyIncomingCallsRequest.type, async (evt, token) => await pluginHost.getIncomingCalls(evt.item, token));
405
+ connection.onRequest(vscode_languageserver_1.CallHierarchyOutgoingCallsRequest.type, async (evt, token) => await pluginHost.getOutgoingCalls(evt.item, token));
406
+ docManager.on('documentChange', diagnosticsManager.scheduleUpdate.bind(diagnosticsManager));
407
+ docManager.on('documentClose', (document) => diagnosticsManager.removeDiagnostics(document));
408
+ // The language server protocol does not have a specific "did rename/move files" event,
409
+ // so we create our own in the extension client and handle it here
410
+ connection.onRequest('$/getEditsForFileRename', async (fileRename) => pluginHost.updateImports(fileRename));
411
+ connection.onRequest('$/getFileReferences', async (uri) => {
412
+ return pluginHost.fileReferences(uri);
413
+ });
414
+ connection.onRequest('$/getComponentReferences', async (uri) => {
415
+ return pluginHost.findComponentReferences(uri);
416
+ });
417
+ connection.onRequest('$/getCompiledCode', async (uri) => {
418
+ const doc = docManager.get(uri);
419
+ if (!doc) {
420
+ return null;
421
+ }
422
+ const compiled = await sveltePlugin.getCompiledResult(doc);
423
+ if (compiled) {
424
+ const js = compiled.js;
425
+ const css = compiled.css;
426
+ return { js, css };
427
+ }
428
+ else {
429
+ return null;
430
+ }
431
+ });
432
+ connection.listen();
433
+ }
434
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { Diagnostic } from 'vscode-languageserver';
2
+ export type SvelteCheckDiagnosticSource = 'js' | 'css' | 'svelte';
3
+ export interface SvelteCheckOptions {
4
+ compilerWarnings?: Record<string, 'ignore' | 'error'>;
5
+ diagnosticSources?: SvelteCheckDiagnosticSource[];
6
+ /**
7
+ * Path has to be absolute
8
+ */
9
+ tsconfig?: string;
10
+ onProjectReload?: () => void;
11
+ watch?: boolean;
12
+ /**
13
+ * Optional callback invoked when a new snapshot is created.
14
+ * Provides the absolute file path of the snapshot.
15
+ */
16
+ onFileSnapshotCreated?: (filePath: string) => void;
17
+ }
18
+ /**
19
+ * Small wrapper around PluginHost's Diagnostic Capabilities
20
+ * for svelte-check, without the overhead of the lsp.
21
+ */
22
+ export declare class SvelteCheck {
23
+ private options;
24
+ private docManager;
25
+ private configManager;
26
+ private pluginHost;
27
+ private lsAndTSDocResolver?;
28
+ constructor(workspacePath: string, options?: SvelteCheckOptions);
29
+ private initialize;
30
+ /**
31
+ * Creates/updates given document
32
+ *
33
+ * @param doc Text and Uri of the document
34
+ * @param isNew Whether or not this is the creation of the document
35
+ */
36
+ upsertDocument(doc: {
37
+ text: string;
38
+ uri: string;
39
+ }, isNew: boolean): Promise<void>;
40
+ /**
41
+ * Removes/closes document
42
+ *
43
+ * @param uri Uri of the document
44
+ */
45
+ removeDocument(uri: string): Promise<void>;
46
+ /**
47
+ * Gets the diagnostics for all currently open files.
48
+ */
49
+ getDiagnostics(): Promise<Array<{
50
+ filePath: string;
51
+ text: string;
52
+ diagnostics: Diagnostic[];
53
+ }>>;
54
+ private getDiagnosticsForTsconfig;
55
+ private getDiagnosticsForFile;
56
+ private getLSContainer;
57
+ /**
58
+ * Gets the watch directories based on the tsconfig include patterns.
59
+ * Returns null if no tsconfig is specified.
60
+ */
61
+ getWatchDirectories(): Promise<{
62
+ path: string;
63
+ recursive: boolean;
64
+ }[] | null>;
65
+ }