@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,247 @@
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.FoldingRangeProviderImpl = void 0;
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const vscode_languageserver_1 = require("vscode-languageserver");
9
+ const documents_1 = require("../../../lib/documents");
10
+ const utils_1 = require("../../../utils");
11
+ const utils_2 = require("../utils");
12
+ const utils_3 = require("./utils");
13
+ const indentFolding_1 = require("../../../lib/foldingRange/indentFolding");
14
+ const svelte_ast_utils_1 = require("../svelte-ast-utils");
15
+ class FoldingRangeProviderImpl {
16
+ constructor(lsAndTsDocResolver, configManager) {
17
+ this.lsAndTsDocResolver = lsAndTsDocResolver;
18
+ this.configManager = configManager;
19
+ this.foldEndPairCharacters = ['}', ']', ')', '`', '>'];
20
+ }
21
+ async getFoldingRanges(document) {
22
+ // don't use ls.getProgram unless it's necessary
23
+ // this feature is pure syntactic and doesn't need type information
24
+ const { lang, tsDoc } = await this.lsAndTsDocResolver.getLsForSyntheticOperations(document);
25
+ const foldingRanges = tsDoc.parserError && !document.moduleScriptInfo && !document.scriptInfo
26
+ ? []
27
+ : lang.getOutliningSpans(tsDoc.filePath);
28
+ const lineFoldingOnly = !!this.configManager.getClientCapabilities()?.textDocument?.foldingRange
29
+ ?.lineFoldingOnly;
30
+ const result = foldingRanges
31
+ .filter((span) => !(0, utils_3.isTextSpanInGeneratedCode)(tsDoc.getFullText(), span.textSpan))
32
+ .map((span) => ({
33
+ originalRange: this.mapToOriginalRange(tsDoc, span.textSpan, document),
34
+ span
35
+ }))
36
+ .map(({ originalRange, span }) => this.convertOutliningSpan(span, document, originalRange, lineFoldingOnly))
37
+ .filter(utils_1.isNotNullOrUndefined)
38
+ .concat(this.collectSvelteBlockFolding(document, tsDoc, lineFoldingOnly))
39
+ .concat(this.getSvelteTagFoldingIfParserError(document, tsDoc))
40
+ .filter((r) => (lineFoldingOnly ? r.startLine < r.endLine : r.startLine <= r.endLine));
41
+ return result;
42
+ }
43
+ mapToOriginalRange(tsDoc, textSpan, document) {
44
+ const range = (0, documents_1.mapRangeToOriginal)(tsDoc, (0, utils_2.convertRange)(tsDoc, textSpan));
45
+ const startOffset = document.offsetAt(range.start);
46
+ if (range.start.line < 0 || range.end.line < 0 || range.start.line > range.end.line) {
47
+ return;
48
+ }
49
+ if ((0, documents_1.isInTag)(range.start, document.scriptInfo) ||
50
+ (0, documents_1.isInTag)(range.start, document.moduleScriptInfo)) {
51
+ return range;
52
+ }
53
+ const endOffset = document.offsetAt(range.end);
54
+ const originalText = document.getText().slice(startOffset, endOffset);
55
+ if (originalText.length === 0) {
56
+ return;
57
+ }
58
+ const generatedText = tsDoc.getText(textSpan.start, textSpan.start + textSpan.length);
59
+ const oneToOne = originalText.trim() === generatedText.trim();
60
+ if (oneToOne) {
61
+ return range;
62
+ }
63
+ }
64
+ /**
65
+ * Doing this here with the svelte2tsx's svelte ast is slightly
66
+ * less prone to error and faster than
67
+ * using the svelte ast in the svelte plugins.
68
+ */
69
+ collectSvelteBlockFolding(document, tsDoc, lineFoldingOnly) {
70
+ if (tsDoc.parserError) {
71
+ return [];
72
+ }
73
+ const ranges = [];
74
+ const provider = this;
75
+ const enter = function (node, parent, key) {
76
+ if (key === 'attributes') {
77
+ this.skip();
78
+ }
79
+ // use sub-block for await block
80
+ if (!node.type.endsWith('Block') || node.type === 'AwaitBlock') {
81
+ return;
82
+ }
83
+ if (node.type === 'IfBlock') {
84
+ provider.getIfBlockFolding(node, document, ranges);
85
+ return;
86
+ }
87
+ if ((0, svelte_ast_utils_1.isElseBlockWithElseIf)(node)) {
88
+ return;
89
+ }
90
+ if ((node.type === 'CatchBlock' || node.type === 'ThenBlock') && (0, svelte_ast_utils_1.isAwaitBlock)(parent)) {
91
+ const expressionEnd = (node.type === 'CatchBlock' ? parent.error?.end : parent.value?.end) ??
92
+ document.getText().indexOf('}', node.start);
93
+ const beforeBlockStartTagEnd = document.getText().indexOf('}', expressionEnd);
94
+ if (beforeBlockStartTagEnd == -1) {
95
+ return;
96
+ }
97
+ ranges.push(provider.createFoldingRange(document, beforeBlockStartTagEnd + 1, node.end));
98
+ return;
99
+ }
100
+ if ((0, svelte_ast_utils_1.isEachBlock)(node)) {
101
+ const start = document.getText().indexOf('}', (node.key ?? node.expression).end);
102
+ const elseStart = node.else
103
+ ? (0, svelte_ast_utils_1.findElseBlockTagStart)(document.getText(), node.else)
104
+ : -1;
105
+ ranges.push(provider.createFoldingRange(document, start, elseStart === -1 ? node.end : elseStart));
106
+ return;
107
+ }
108
+ if ('expression' in node && node.expression && typeof node.expression === 'object') {
109
+ const start = provider.getStartForNodeWithExpression(node, document);
110
+ const end = node.end;
111
+ ranges.push(provider.createFoldingRange(document, start, end));
112
+ return;
113
+ }
114
+ if (node.start != null && node.end != null) {
115
+ const start = node.start;
116
+ const end = node.end;
117
+ ranges.push(provider.createFoldingRange(document, start, end));
118
+ }
119
+ };
120
+ tsDoc.walkSvelteAst({
121
+ enter
122
+ });
123
+ if (lineFoldingOnly) {
124
+ return ranges.map((r) => ({
125
+ startLine: r.startLine,
126
+ endLine: this.previousLineOfEndLine(r.startLine, r.endLine)
127
+ }));
128
+ }
129
+ return ranges;
130
+ }
131
+ getIfBlockFolding(node, document, ranges) {
132
+ const typed = node;
133
+ const documentText = document.getText();
134
+ const start = this.getStartForNodeWithExpression(typed, document);
135
+ const end = (0, svelte_ast_utils_1.hasElseBlock)(typed)
136
+ ? (0, svelte_ast_utils_1.findElseBlockTagStart)(documentText, typed.else)
137
+ : (0, svelte_ast_utils_1.findIfBlockEndTagStart)(documentText, typed);
138
+ ranges.push(this.createFoldingRange(document, start, end));
139
+ }
140
+ getStartForNodeWithExpression(node, document) {
141
+ return document.getText().indexOf('}', node.expression.end) + 1;
142
+ }
143
+ createFoldingRange(document, start, end) {
144
+ const range = (0, documents_1.toRange)(document, start, end);
145
+ return {
146
+ startLine: range.start.line,
147
+ startCharacter: range.start.character,
148
+ endLine: range.end.line,
149
+ endCharacter: range.end.character
150
+ };
151
+ }
152
+ convertOutliningSpan(span, document, originalRange, lineFoldingOnly) {
153
+ if (!originalRange) {
154
+ return null;
155
+ }
156
+ const end = lineFoldingOnly
157
+ ? this.adjustFoldingEndToNotHideEnd(originalRange, document)
158
+ : originalRange.end;
159
+ const result = {
160
+ startLine: originalRange.start.line,
161
+ endLine: end.line,
162
+ kind: this.getFoldingRangeKind(span),
163
+ startCharacter: lineFoldingOnly ? undefined : originalRange.start.character,
164
+ endCharacter: lineFoldingOnly ? undefined : end.character
165
+ };
166
+ return result;
167
+ }
168
+ getFoldingRangeKind(span) {
169
+ switch (span.kind) {
170
+ case typescript_1.default.OutliningSpanKind.Comment:
171
+ return vscode_languageserver_1.FoldingRangeKind.Comment;
172
+ case typescript_1.default.OutliningSpanKind.Region:
173
+ return vscode_languageserver_1.FoldingRangeKind.Region;
174
+ case typescript_1.default.OutliningSpanKind.Imports:
175
+ return vscode_languageserver_1.FoldingRangeKind.Imports;
176
+ case typescript_1.default.OutliningSpanKind.Code:
177
+ default:
178
+ return undefined;
179
+ }
180
+ }
181
+ adjustFoldingEndToNotHideEnd(range, document) {
182
+ // don't fold end bracket, brace...
183
+ if (range.end.character > 0) {
184
+ const text = document.getText();
185
+ const offsetBeforeEnd = document.offsetAt({
186
+ line: range.end.line,
187
+ character: range.end.character - 1
188
+ });
189
+ const foldEndCharacter = text[offsetBeforeEnd];
190
+ if (this.foldEndPairCharacters.includes(foldEndCharacter)) {
191
+ return { line: this.previousLineOfEndLine(range.start.line, range.end.line) };
192
+ }
193
+ }
194
+ return range.end;
195
+ }
196
+ getSvelteTagFoldingIfParserError(document, tsDoc) {
197
+ if (!tsDoc.parserError) {
198
+ return [];
199
+ }
200
+ const htmlTemplateRanges = this.getHtmlTemplateRangesForChecking(document);
201
+ return (0, indentFolding_1.indentBasedFoldingRange)({
202
+ document,
203
+ skipFold: (_, lineContent) => {
204
+ return !/{\s*(#|\/|:)/.test(lineContent);
205
+ },
206
+ ranges: htmlTemplateRanges
207
+ });
208
+ }
209
+ getHtmlTemplateRangesForChecking(document) {
210
+ const ranges = [];
211
+ const excludeTags = [
212
+ document.templateInfo,
213
+ document.moduleScriptInfo,
214
+ document.scriptInfo,
215
+ document.styleInfo
216
+ ]
217
+ .filter(utils_1.isNotNullOrUndefined)
218
+ .map((info) => ({
219
+ startLine: document.positionAt(info.container.start).line,
220
+ endLine: document.positionAt(info.container.end).line
221
+ }))
222
+ .sort((a, b) => a.startLine - b.startLine);
223
+ if (excludeTags.length === 0) {
224
+ return [{ startLine: 0, endLine: document.lineCount - 1 }];
225
+ }
226
+ if (excludeTags[0].startLine > 0) {
227
+ ranges.push({
228
+ startLine: 0,
229
+ endLine: excludeTags[0].startLine - 1
230
+ });
231
+ }
232
+ for (let index = 0; index < excludeTags.length; index++) {
233
+ const element = excludeTags[index];
234
+ const next = excludeTags[index + 1];
235
+ ranges.push({
236
+ startLine: element.endLine + 1,
237
+ endLine: next ? next.startLine - 1 : document.lineCount - 1
238
+ });
239
+ }
240
+ return ranges;
241
+ }
242
+ previousLineOfEndLine(startLine, endLine) {
243
+ return Math.max(endLine - 1, startLine);
244
+ }
245
+ }
246
+ exports.FoldingRangeProviderImpl = FoldingRangeProviderImpl;
247
+ //# sourceMappingURL=FoldingRangeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoldingRangeProvider.js","sourceRoot":"","sources":["../../../../../src/plugins/typescript/features/FoldingRangeProvider.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,iEAAgE;AAEhE,sDAAwF;AACxF,0CAAsD;AAGtD,oCAAwC;AACxC,mCAAoD;AAEpD,2EAA6F;AAE7F,0DAS6B;AAE7B,MAAa,wBAAwB;IACjC,YACqB,kBAAsC,EACtC,aAA8B;QAD9B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,kBAAa,GAAb,aAAa,CAAiB;QAElC,0BAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IADhE,CAAC;IAGJ,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QACrC,gDAAgD;QAChD,mEAAmE;QAEnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAE5F,MAAM,aAAa,GACf,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,UAAU;YACnE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,eAAe,GACjB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,YAAY;YACpE,EAAE,eAAe,CAAC;QAE1B,MAAM,MAAM,GAAG,aAAa;aACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,iCAAyB,EAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChF,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACZ,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACtE,IAAI;SACP,CAAC,CAAC;aACF,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAC5E;aACA,MAAM,CAAC,4BAAoB,CAAC;aAC5B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;aACxE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAE3F,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,kBAAkB,CACtB,KAA6B,EAC7B,QAAqB,EACrB,QAAkB;QAElB,MAAM,KAAK,GAAG,IAAA,8BAAkB,EAAC,KAAK,EAAE,IAAA,oBAAY,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAClF,OAAO;QACX,CAAC;QAED,IACI,IAAA,mBAAO,EAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;YACzC,IAAA,mBAAO,EAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACjD,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEtE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;QAE9D,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAC7B,QAAkB,EAClB,KAA6B,EAC7B,eAAwB;QAExB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,MAAM,KAAK,GAA8B,UAAU,IAAI,EAAE,MAAM,EAAE,GAAG;YAChE,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC7D,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACnD,OAAO;YACX,CAAC;YAED,IAAI,IAAA,wCAAqB,EAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAA,+BAAY,EAAC,MAAM,CAAC,EAAE,CAAC;gBACpF,MAAM,aAAa,GACf,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;oBACpE,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAC9E,IAAI,sBAAsB,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC/B,OAAO;gBACX,CAAC;gBACD,MAAM,CAAC,IAAI,CACP,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAC9E,CAAC;gBAEF,OAAO;YACX,CAAC;YAED,IAAI,IAAA,8BAAW,EAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI;oBACvB,CAAC,CAAC,IAAA,wCAAqB,EAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;oBACtD,CAAC,CAAC,CAAC,CAAC,CAAC;gBAET,MAAM,CAAC,IAAI,CACP,QAAQ,CAAC,kBAAkB,CACvB,QAAQ,EACR,KAAK,EACL,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAC1C,CACJ,CAAC;gBAEF,OAAO;YACX,CAAC;YAED,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjF,MAAM,KAAK,GAAG,QAAQ,CAAC,6BAA6B,CAChD,IAA+C,EAC/C,QAAQ,CACX,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAErB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBAErB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC;QACL,CAAC,CAAC;QAEF,KAAK,CAAC,aAAa,CAAC;YAChB,KAAK;SACR,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;aAC9D,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,iBAAiB,CAAC,IAAgB,EAAE,QAAkB,EAAE,MAAsB;QAClF,MAAM,KAAK,GAAG,IAGb,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,6BAA6B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAA,+BAAY,EAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,IAAA,wCAAqB,EAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC;YACjD,CAAC,CAAC,IAAA,yCAAsB,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAElD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,6BAA6B,CACjC,IAA6C,EAC7C,QAAkB;QAElB,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAEO,kBAAkB,CAAC,QAAkB,EAAE,KAAa,EAAE,GAAW;QACrE,MAAM,KAAK,GAAG,IAAA,mBAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO;YACH,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC3B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YACrC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACvB,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS;SACpC,CAAC;IACN,CAAC;IAEO,oBAAoB,CACxB,IAAsB,EACtB,QAAkB,EAClB,aAAgC,EAChC,eAAwB;QAExB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,eAAe;YACvB,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC5D,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;QAExB,MAAM,MAAM,GAAG;YACX,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI;YACnC,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS;YAC3E,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS;SAC5D,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,mBAAmB,CAAC,IAAsB;QAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,oBAAE,CAAC,iBAAiB,CAAC,OAAO;gBAC7B,OAAO,wCAAgB,CAAC,OAAO,CAAC;YACpC,KAAK,oBAAE,CAAC,iBAAiB,CAAC,MAAM;gBAC5B,OAAO,wCAAgB,CAAC,MAAM,CAAC;YACnC,KAAK,oBAAE,CAAC,iBAAiB,CAAC,OAAO;gBAC7B,OAAO,wCAAgB,CAAC,OAAO,CAAC;YACpC,KAAK,oBAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC/B;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAEO,4BAA4B,CAChC,KAAY,EACZ,QAAkB;QAElB,mCAAmC;QACnC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACtC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;gBACpB,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC;aACrC,CAAC,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClF,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC;IACrB,CAAC;IAEO,gCAAgC,CAAC,QAAkB,EAAE,KAA6B;QACtF,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;QAE3E,OAAO,IAAA,uCAAuB,EAAC;YAC3B,QAAQ;YACR,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE;gBACzB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACP,CAAC;IAEO,gCAAgC,CAAC,QAAkB;QACvD,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,MAAM,WAAW,GAAG;YAChB,QAAQ,CAAC,YAAY;YACrB,QAAQ,CAAC,gBAAgB;YACzB,QAAQ,CAAC,UAAU;YACnB,QAAQ,CAAC,SAAS;SACrB;aACI,MAAM,CAAC,4BAAoB,CAAC;aAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACZ,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI;YACzD,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;SACxD,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC;aACxC,CAAC,CAAC;QACP,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAEpC,MAAM,CAAC,IAAI,CAAC;gBACR,SAAS,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC;gBAC9B,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,qBAAqB,CAAC,SAAiB,EAAE,OAAe;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;CACJ;AArUD,4DAqUC"}
@@ -0,0 +1,11 @@
1
+ import { Hover, Position } from 'vscode-languageserver';
2
+ import { Document } from '../../../lib/documents';
3
+ import { HoverProvider } from '../../interfaces';
4
+ import { LSAndTSDocResolver } from '../LSAndTSDocResolver';
5
+ export declare class HoverProviderImpl implements HoverProvider {
6
+ private readonly lsAndTsDocResolver;
7
+ constructor(lsAndTsDocResolver: LSAndTSDocResolver);
8
+ doHover(document: Document, position: Position): Promise<Hover | null>;
9
+ private getEventHoverInfo;
10
+ private getLSAndTSDoc;
11
+ }
@@ -0,0 +1,75 @@
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.HoverProviderImpl = void 0;
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const documents_1 = require("../../../lib/documents");
9
+ const previewer_1 = require("../previewer");
10
+ const utils_1 = require("../utils");
11
+ const utils_2 = require("./utils");
12
+ class HoverProviderImpl {
13
+ constructor(lsAndTsDocResolver) {
14
+ this.lsAndTsDocResolver = lsAndTsDocResolver;
15
+ }
16
+ async doHover(document, position) {
17
+ const { lang, tsDoc, userPreferences } = await this.getLSAndTSDoc(document);
18
+ const eventHoverInfo = this.getEventHoverInfo(lang, document, tsDoc, position);
19
+ if (eventHoverInfo) {
20
+ return eventHoverInfo;
21
+ }
22
+ const offset = tsDoc.offsetAt(tsDoc.getGeneratedPosition(position));
23
+ const info = lang.getQuickInfoAtPosition(tsDoc.filePath, offset, userPreferences.maximumHoverLength);
24
+ if (!info) {
25
+ return null;
26
+ }
27
+ let declaration = typescript_1.default.displayPartsToString(info.displayParts);
28
+ if (tsDoc.isSvelte5Plus &&
29
+ declaration.includes('(alias)') &&
30
+ declaration.includes('__sveltets_2_IsomorphicComponent')) {
31
+ // info ends with "import ComponentName"
32
+ declaration = declaration.substring(declaration.lastIndexOf('import'));
33
+ }
34
+ const documentation = (0, previewer_1.getMarkdownDocumentation)(info.documentation, info.tags);
35
+ // https://microsoft.github.io/language-server-protocol/specification#textDocument_hover
36
+ const contents = ['```typescript', declaration, '```']
37
+ .concat(documentation ? ['---', documentation] : [])
38
+ .join('\n');
39
+ return (0, documents_1.mapObjWithRangeToOriginal)(tsDoc, {
40
+ range: (0, utils_1.convertRange)(tsDoc, info.textSpan),
41
+ contents
42
+ });
43
+ }
44
+ getEventHoverInfo(lang, doc, tsDoc, originalPosition) {
45
+ const possibleEventName = (0, documents_1.getWordAt)(doc.getText(), doc.offsetAt(originalPosition), {
46
+ left: /\S+$/,
47
+ right: /[\s=]/
48
+ });
49
+ if (!possibleEventName.startsWith('on:')) {
50
+ return null;
51
+ }
52
+ const component = (0, utils_2.getComponentAtPosition)(lang, doc, tsDoc, originalPosition);
53
+ if (!component) {
54
+ return null;
55
+ }
56
+ const eventName = possibleEventName.substr('on:'.length);
57
+ const event = component.getEvents().find((event) => event.name === eventName);
58
+ if (!event) {
59
+ return null;
60
+ }
61
+ return {
62
+ contents: [
63
+ '```typescript',
64
+ `${event.name}: ${event.type}`,
65
+ '```',
66
+ event.doc || ''
67
+ ].join('\n')
68
+ };
69
+ }
70
+ async getLSAndTSDoc(document) {
71
+ return this.lsAndTsDocResolver.getLSAndTSDoc(document);
72
+ }
73
+ }
74
+ exports.HoverProviderImpl = HoverProviderImpl;
75
+ //# sourceMappingURL=HoverProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HoverProvider.js","sourceRoot":"","sources":["../../../../../src/plugins/typescript/features/HoverProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Position, Location, CancellationToken } from 'vscode-languageserver-protocol';
2
+ import { Document } from '../../../lib/documents';
3
+ import { ImplementationProvider } from '../../interfaces';
4
+ import { LSAndTSDocResolver } from '../LSAndTSDocResolver';
5
+ export declare class ImplementationProviderImpl implements ImplementationProvider {
6
+ private readonly lsAndTsDocResolver;
7
+ constructor(lsAndTsDocResolver: LSAndTSDocResolver);
8
+ getImplementation(document: Document, position: Position, cancellationToken?: CancellationToken): Promise<Location[] | null>;
9
+ }
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImplementationProviderImpl = void 0;
4
+ const documents_1 = require("../../../lib/documents");
5
+ const utils_1 = require("../../../utils");
6
+ const utils_2 = require("../utils");
7
+ const utils_3 = require("./utils");
8
+ class ImplementationProviderImpl {
9
+ constructor(lsAndTsDocResolver) {
10
+ this.lsAndTsDocResolver = lsAndTsDocResolver;
11
+ }
12
+ async getImplementation(document, position, cancellationToken) {
13
+ const { tsDoc, lang, lsContainer } = await this.lsAndTsDocResolver.getLSAndTSDoc(document);
14
+ if (cancellationToken?.isCancellationRequested) {
15
+ return null;
16
+ }
17
+ const offset = tsDoc.offsetAt(tsDoc.getGeneratedPosition(position));
18
+ const implementations = lang.getImplementationAtPosition(tsDoc.filePath, offset);
19
+ const snapshots = new utils_3.SnapshotMap(this.lsAndTsDocResolver, lsContainer);
20
+ snapshots.set(tsDoc.filePath, tsDoc);
21
+ if (!implementations) {
22
+ return null;
23
+ }
24
+ const result = await Promise.all(implementations.map(async (implementation) => {
25
+ let snapshot = await snapshots.retrieve(implementation.fileName);
26
+ // Go from generated $store to store if user wants to find implementation for $store
27
+ if ((0, utils_3.isTextSpanInGeneratedCode)(snapshot.getFullText(), implementation.textSpan)) {
28
+ if (!(0, utils_3.is$storeVariableIn$storeDeclaration)(snapshot.getFullText(), implementation.textSpan.start)) {
29
+ return;
30
+ }
31
+ // there will be exactly one definition, the store
32
+ implementation = lang.getImplementationAtPosition(tsDoc.filePath, tsDoc.getFullText().indexOf(');', implementation.textSpan.start) - 1)[0];
33
+ snapshot = await snapshots.retrieve(implementation.fileName);
34
+ }
35
+ if (cancellationToken?.isCancellationRequested) {
36
+ return null;
37
+ }
38
+ const location = (0, documents_1.mapLocationToOriginal)(snapshot, (0, utils_2.convertRange)(snapshot, implementation.textSpan));
39
+ if (location.range.start.line >= 0 && location.range.end.line >= 0) {
40
+ return location;
41
+ }
42
+ }));
43
+ return result.filter(utils_1.isNotNullOrUndefined);
44
+ }
45
+ }
46
+ exports.ImplementationProviderImpl = ImplementationProviderImpl;
47
+ //# sourceMappingURL=ImplementationProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImplementationProvider.js","sourceRoot":"","sources":["../../../../../src/plugins/typescript/features/ImplementationProvider.ts"],"names":[],"mappings":";;;AACA,sDAAyE;AACzE,0CAAsD;AAGtD,oCAAwC;AACxC,mCAIiB;AAEjB,MAAa,0BAA0B;IACnC,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE,KAAK,CAAC,iBAAiB,CACnB,QAAkB,EAClB,QAAkB,EAClB,iBAAqC;QAErC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE3F,IAAI,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEjF,MAAM,SAAS,GAAG,IAAI,mBAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACxE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YACzC,IAAI,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAEjE,oFAAoF;YACpF,IAAI,IAAA,iCAAyB,EAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7E,IACI,CAAC,IAAA,2CAAmC,EAChC,QAAQ,CAAC,WAAW,EAAE,EACtB,cAAc,CAAC,QAAQ,CAAC,KAAK,CAChC,EACH,CAAC;oBACC,OAAO;gBACX,CAAC;gBACD,kDAAkD;gBAClD,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAC7C,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CACtE,CAAC,CAAC,CAAC,CAAC;gBACN,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,iCAAqB,EAClC,QAAQ,EACR,IAAA,oBAAY,EAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,CAClD,CAAC;YAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBACjE,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC,CAAC,CACL,CAAC;QAEF,OAAO,MAAM,CAAC,MAAM,CAAC,4BAAoB,CAAC,CAAC;IAC/C,CAAC;CACJ;AA/DD,gEA+DC"}
@@ -0,0 +1,22 @@
1
+ import { CancellationToken } from 'vscode-languageserver';
2
+ import { Range, InlayHint } from 'vscode-languageserver-types';
3
+ import { Document } from '../../../lib/documents';
4
+ import { InlayHintProvider } from '../../interfaces';
5
+ import { LSAndTSDocResolver } from '../LSAndTSDocResolver';
6
+ export declare class InlayHintProviderImpl implements InlayHintProvider {
7
+ private readonly lsAndTsDocResolver;
8
+ constructor(lsAndTsDocResolver: LSAndTSDocResolver);
9
+ getInlayHints(document: Document, range: Range, cancellationToken?: CancellationToken): Promise<InlayHint[] | null>;
10
+ private areInlayHintsEnabled;
11
+ private convertToTargetTextSpan;
12
+ private convertInlayHintLabelParts;
13
+ private getOriginalPosition;
14
+ private convertInlayHintKind;
15
+ private isSvelte2tsxFunctionHints;
16
+ private isGeneratedVariableTypeHint;
17
+ /** `true` if is one of the `async () => {...}` functions svelte2tsx generates */
18
+ private isGeneratedAsyncFunctionReturnType;
19
+ private isGeneratedFunctionReturnType;
20
+ private getTypeAnnotationPosition;
21
+ private checkGeneratedFunctionHintWithSource;
22
+ }