@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,87 @@
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.FileSet = exports.FileMap = void 0;
7
+ const typescript_1 = __importDefault(require("typescript"));
8
+ const utils_1 = require("../../utils");
9
+ /**
10
+ * wrapper around Map<string, T> for case insensitive file systems
11
+ */
12
+ class FileMap {
13
+ constructor(useCaseSensitiveFileNames = typescript_1.default.sys.useCaseSensitiveFileNames) {
14
+ this.map = new Map();
15
+ this.getCanonicalFileName = (0, utils_1.createGetCanonicalFileName)(useCaseSensitiveFileNames);
16
+ }
17
+ get(filePath) {
18
+ return this.map.get(this.getCanonicalFileName(filePath));
19
+ }
20
+ set(filePath, value) {
21
+ const canonicalFileName = this.getCanonicalFileName(filePath);
22
+ return this.map.set(canonicalFileName, value);
23
+ }
24
+ has(filePath) {
25
+ return this.map.has(this.getCanonicalFileName(filePath));
26
+ }
27
+ delete(filePath) {
28
+ return this.map.delete(this.getCanonicalFileName(filePath));
29
+ }
30
+ /**
31
+ * Returns an iterable of key, value pairs for every entry in the map.
32
+ * In case insensitive file system the key in the key-value pairs is in lowercase
33
+ */
34
+ entries() {
35
+ return this.map.entries();
36
+ }
37
+ /**
38
+ *
39
+ * @param callbackfn In case insensitive file system the key parameter for the callback is in lowercase
40
+ */
41
+ forEach(callbackfn) {
42
+ return this.map.forEach(callbackfn);
43
+ }
44
+ values() {
45
+ return this.map.values();
46
+ }
47
+ clear() {
48
+ this.map.clear();
49
+ }
50
+ /**
51
+ * Returns an iterable of values in the map.
52
+ * In case insensitive file system the key is in lowercase
53
+ */
54
+ keys() {
55
+ return this.map.keys();
56
+ }
57
+ get size() {
58
+ return this.map.size;
59
+ }
60
+ [Symbol.iterator]() {
61
+ return this.map[Symbol.iterator]();
62
+ }
63
+ }
64
+ exports.FileMap = FileMap;
65
+ class FileSet {
66
+ constructor(useCaseSensitiveFileNames = typescript_1.default.sys.useCaseSensitiveFileNames) {
67
+ this.set = new Set();
68
+ this.getCanonicalFileName = (0, utils_1.createGetCanonicalFileName)(useCaseSensitiveFileNames);
69
+ }
70
+ add(filePath) {
71
+ this.set.add(this.getCanonicalFileName(filePath));
72
+ }
73
+ has(filePath) {
74
+ return this.set.has(this.getCanonicalFileName(filePath));
75
+ }
76
+ delete(filePath) {
77
+ return this.set.delete(this.getCanonicalFileName(filePath));
78
+ }
79
+ clear() {
80
+ this.set.clear();
81
+ }
82
+ [Symbol.iterator]() {
83
+ return this.set[Symbol.iterator]();
84
+ }
85
+ }
86
+ exports.FileSet = FileSet;
87
+ //# sourceMappingURL=fileCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileCollection.js","sourceRoot":"","sources":["../../../../src/lib/documents/fileCollection.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,uCAA+E;AAE/E;;GAEG;AACH,MAAa,OAAO;IAIhB,YAAY,yBAAyB,GAAG,oBAAE,CAAC,GAAG,CAAC,yBAAyB;QAFvD,QAAG,GAAG,IAAI,GAAG,EAAa,CAAC;QAGxC,IAAI,CAAC,oBAAoB,GAAG,IAAA,kCAA0B,EAAC,yBAAyB,CAAC,CAAC;IACtF,CAAC;IAED,GAAG,CAAC,QAAgB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,GAAG,CAAC,QAAgB,EAAE,KAAQ;QAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,QAAgB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,UAA2C;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,CAAC;CACJ;AAjED,0BAiEC;AAED,MAAa,OAAO;IAIhB,YAAY,yBAAyB,GAAG,oBAAE,CAAC,GAAG,CAAC,yBAAyB;QAFvD,QAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAGrC,IAAI,CAAC,oBAAoB,GAAG,IAAA,kCAA0B,EAAC,yBAAyB,CAAC,CAAC;IACtF,CAAC;IAED,GAAG,CAAC,QAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,GAAG,CAAC,QAAgB;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,CAAC;CACJ;AA3BD,0BA2BC"}
@@ -0,0 +1,5 @@
1
+ export * from './DocumentManager';
2
+ export * from './Document';
3
+ export * from './DocumentBase';
4
+ export * from './DocumentMapper';
5
+ export * from './utils';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DocumentManager"), exports);
18
+ __exportStar(require("./Document"), exports);
19
+ __exportStar(require("./DocumentBase"), exports);
20
+ __exportStar(require("./DocumentMapper"), exports);
21
+ __exportStar(require("./utils"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/documents/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,6CAA2B;AAC3B,iDAA+B;AAC/B,mDAAiC;AACjC,0CAAwB"}
@@ -0,0 +1,13 @@
1
+ import { HTMLDocument, Node, Position } from 'vscode-html-languageservice';
2
+ import { Document } from './Document';
3
+ /**
4
+ * Parses text as HTML
5
+ */
6
+ export declare function parseHtml(text: string): HTMLDocument;
7
+ export interface AttributeContext {
8
+ name: string;
9
+ inValue: boolean;
10
+ elementTag: Node;
11
+ valueRange?: [number, number];
12
+ }
13
+ export declare function getAttributeContextAtPosition(document: Document, position: Position): AttributeContext | null;
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseHtml = parseHtml;
4
+ exports.getAttributeContextAtPosition = getAttributeContextAtPosition;
5
+ const vscode_html_languageservice_1 = require("vscode-html-languageservice");
6
+ const utils_1 = require("./utils");
7
+ const parser = (0, vscode_html_languageservice_1.getLanguageService)();
8
+ /**
9
+ * Parses text as HTML
10
+ */
11
+ function parseHtml(text) {
12
+ const preprocessed = preprocess(text);
13
+ // We can safely only set getText because only this is used for parsing
14
+ const parsedDoc = parser.parseHTMLDocument({ getText: () => preprocessed });
15
+ return parsedDoc;
16
+ }
17
+ const createScanner = parser.createScanner;
18
+ /**
19
+ * scan the text and remove any `>` or `<` that cause the tag to end short,
20
+ */
21
+ function preprocess(text) {
22
+ let scanner = createScanner(text);
23
+ let token = scanner.scan();
24
+ let currentStartTagStart = null;
25
+ let moustacheCheckStart = 0;
26
+ let moustacheCheckEnd = 0;
27
+ let lastToken = token;
28
+ while (token !== vscode_html_languageservice_1.TokenType.EOS) {
29
+ const offset = scanner.getTokenOffset();
30
+ let blanked = false;
31
+ switch (token) {
32
+ case vscode_html_languageservice_1.TokenType.StartTagOpen:
33
+ if (shouldBlankStartOrEndTagLike(offset)) {
34
+ blankStartOrEndTagLike(offset);
35
+ blanked = true;
36
+ }
37
+ else {
38
+ currentStartTagStart = offset;
39
+ }
40
+ break;
41
+ case vscode_html_languageservice_1.TokenType.StartTagClose:
42
+ if (shouldBlankStartOrEndTagLike(offset)) {
43
+ blankStartOrEndTagLike(offset);
44
+ blanked = true;
45
+ }
46
+ else {
47
+ currentStartTagStart = null;
48
+ }
49
+ break;
50
+ case vscode_html_languageservice_1.TokenType.StartTagSelfClose:
51
+ currentStartTagStart = null;
52
+ break;
53
+ // <Foo checked={a < 1}>
54
+ // https://github.com/microsoft/vscode-html-languageservice/blob/71806ef57be07e1068ee40900ef8b0899c80e68a/src/parser/htmlScanner.ts#L327
55
+ case vscode_html_languageservice_1.TokenType.Unknown:
56
+ if (scanner.getScannerState() === vscode_html_languageservice_1.ScannerState.WithinTag &&
57
+ scanner.getTokenText() === '<' &&
58
+ shouldBlankStartOrEndTagLike(offset)) {
59
+ blankStartOrEndTagLike(offset);
60
+ blanked = true;
61
+ }
62
+ break;
63
+ case vscode_html_languageservice_1.TokenType.Content: {
64
+ moustacheCheckEnd = scanner.getTokenEnd();
65
+ if (token !== lastToken) {
66
+ moustacheCheckStart = offset;
67
+ }
68
+ break;
69
+ }
70
+ }
71
+ // blanked, so the token type is invalid
72
+ if (!blanked) {
73
+ lastToken = token;
74
+ }
75
+ token = scanner.scan();
76
+ }
77
+ return text;
78
+ function shouldBlankStartOrEndTagLike(offset) {
79
+ if (currentStartTagStart != null) {
80
+ return (0, utils_1.isInsideMoustacheTag)(text, currentStartTagStart, offset);
81
+ }
82
+ const index = text
83
+ .substring(moustacheCheckStart, moustacheCheckEnd)
84
+ .lastIndexOf('{', offset);
85
+ const lastMustacheTagStart = index === -1 ? null : moustacheCheckStart + index;
86
+ if (lastMustacheTagStart == null) {
87
+ return false;
88
+ }
89
+ return (0, utils_1.isInsideMoustacheTag)(text.substring(lastMustacheTagStart), null, offset - lastMustacheTagStart);
90
+ }
91
+ function blankStartOrEndTagLike(offset) {
92
+ text = text.substring(0, offset) + ' ' + text.substring(offset + 1);
93
+ scanner = createScanner(text, offset, currentStartTagStart != null ? vscode_html_languageservice_1.ScannerState.WithinTag : vscode_html_languageservice_1.ScannerState.WithinContent);
94
+ }
95
+ }
96
+ function getAttributeContextAtPosition(document, position) {
97
+ const offset = document.offsetAt(position);
98
+ const { html } = document;
99
+ const tag = html.findNodeAt(offset);
100
+ if (!inStartTag(offset, tag) || !tag.attributes) {
101
+ return null;
102
+ }
103
+ const text = document.getText();
104
+ const beforeStartTagEnd = text.substring(0, tag.start) + preprocess(text.substring(tag.start, tag.startTagEnd));
105
+ const scanner = createScanner(beforeStartTagEnd, tag.start);
106
+ let token = scanner.scan();
107
+ let currentAttributeName;
108
+ const inTokenRange = () => scanner.getTokenOffset() <= offset && offset <= scanner.getTokenEnd();
109
+ while (token != vscode_html_languageservice_1.TokenType.EOS) {
110
+ // adopted from https://github.com/microsoft/vscode-html-languageservice/blob/2f7ae4df298ac2c299a40e9024d118f4a9dc0c68/src/services/htmlCompletion.ts#L402
111
+ if (token === vscode_html_languageservice_1.TokenType.AttributeName) {
112
+ currentAttributeName = scanner.getTokenText();
113
+ if (inTokenRange()) {
114
+ return {
115
+ elementTag: tag,
116
+ name: currentAttributeName,
117
+ inValue: false
118
+ };
119
+ }
120
+ }
121
+ else if (token === vscode_html_languageservice_1.TokenType.DelimiterAssign) {
122
+ if (scanner.getTokenEnd() === offset && currentAttributeName) {
123
+ const nextToken = scanner.scan();
124
+ return {
125
+ elementTag: tag,
126
+ name: currentAttributeName,
127
+ inValue: true,
128
+ valueRange: [
129
+ offset,
130
+ nextToken === vscode_html_languageservice_1.TokenType.AttributeValue ? scanner.getTokenEnd() : offset
131
+ ]
132
+ };
133
+ }
134
+ }
135
+ else if (token === vscode_html_languageservice_1.TokenType.AttributeValue) {
136
+ if (inTokenRange() && currentAttributeName) {
137
+ let start = scanner.getTokenOffset();
138
+ let end = scanner.getTokenEnd();
139
+ const char = text[start];
140
+ if (char === '"' || char === "'") {
141
+ start++;
142
+ end--;
143
+ }
144
+ return {
145
+ elementTag: tag,
146
+ name: currentAttributeName,
147
+ inValue: true,
148
+ valueRange: [start, end]
149
+ };
150
+ }
151
+ currentAttributeName = undefined;
152
+ }
153
+ token = scanner.scan();
154
+ }
155
+ return null;
156
+ }
157
+ function inStartTag(offset, node) {
158
+ return offset > node.start && node.startTagEnd != undefined && offset < node.startTagEnd;
159
+ }
160
+ //# sourceMappingURL=parseHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseHtml.js","sourceRoot":"","sources":["../../../../src/lib/documents/parseHtml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { Position, Range } from 'vscode-languageserver';
2
+ import { Node, HTMLDocument } from 'vscode-html-languageservice';
3
+ import { Document } from './Document';
4
+ export interface TagInformation {
5
+ content: string;
6
+ attributes: Record<string, string>;
7
+ start: number;
8
+ end: number;
9
+ startPos: Position;
10
+ endPos: Position;
11
+ container: {
12
+ start: number;
13
+ end: number;
14
+ };
15
+ }
16
+ export declare function extractScriptTags(source: string, html?: HTMLDocument): {
17
+ script?: TagInformation;
18
+ moduleScript?: TagInformation;
19
+ } | null;
20
+ export declare function extractStyleTag(source: string, html?: HTMLDocument): TagInformation | null;
21
+ export declare function extractTemplateTag(source: string, html?: HTMLDocument): TagInformation | null;
22
+ /**
23
+ * Get the line and character based on the offset
24
+ * @param offset The index of the position
25
+ * @param text The text for which the position should be retrived
26
+ * @param lineOffsets number Array with offsets for each line. Computed if not given
27
+ */
28
+ export declare function positionAt(offset: number, text: string, lineOffsets?: number[]): Position;
29
+ /**
30
+ * Get the offset of the line and character position
31
+ * @param position Line and character position
32
+ * @param text The text for which the offset should be retrived
33
+ * @param lineOffsets number Array with offsets for each line. Computed if not given
34
+ */
35
+ export declare function offsetAt(position: Position, text: string, lineOffsets?: number[]): number;
36
+ export declare function getLineOffsets(text: string): number[];
37
+ export declare function isInTag(position: Position, tagInfo: TagInformation | null): tagInfo is TagInformation;
38
+ export declare function isRangeInTag(range: Range, tagInfo: TagInformation | null): tagInfo is TagInformation;
39
+ export declare function getTextInRange(range: Range, text: string): string;
40
+ export declare function getLineAtPosition(position: Position, text: string): string;
41
+ /**
42
+ * Assumption: Is called with a line. A line does only contain line break characters
43
+ * at its end.
44
+ */
45
+ export declare function isAtEndOfLine(line: string, offset: number): boolean;
46
+ /**
47
+ * Updates a relative import
48
+ *
49
+ * @param oldPath Old absolute path
50
+ * @param newPath New absolute path
51
+ * @param relativeImportPath Import relative to the old path
52
+ */
53
+ export declare function updateRelativeImport(oldPath: string, newPath: string, relativeImportPath: string): string;
54
+ /**
55
+ * Returns the node if offset is inside a component's starttag
56
+ */
57
+ export declare function getNodeIfIsInComponentStartTag(html: HTMLDocument, document: Document, offset: number): Node | undefined;
58
+ /**
59
+ * Returns the node if offset is inside a HTML starttag
60
+ */
61
+ export declare function getNodeIfIsInHTMLStartTag(html: HTMLDocument, offset: number): Node | undefined;
62
+ /**
63
+ * Returns the node if offset is inside a starttag (HTML or component)
64
+ */
65
+ export declare function getNodeIfIsInStartTag(html: HTMLDocument, offset: number): Node | undefined;
66
+ /**
67
+ * Returns `true` if `offset` is a html tag and within the name of the start tag or end tag
68
+ */
69
+ export declare function isInHTMLTagRange(html: HTMLDocument, offset: number): boolean;
70
+ /**
71
+ * Gets word range at position.
72
+ * Delimiter is by default a whitespace, but can be adjusted.
73
+ */
74
+ export declare function getWordRangeAt(str: string, pos: number, delimiterRegex?: {
75
+ left: RegExp;
76
+ right: RegExp;
77
+ }): {
78
+ start: number;
79
+ end: number;
80
+ };
81
+ /**
82
+ * Gets word at position.
83
+ * Delimiter is by default a whitespace, but can be adjusted.
84
+ */
85
+ export declare function getWordAt(str: string, pos: number, delimiterRegex?: {
86
+ left: RegExp;
87
+ right: RegExp;
88
+ }): string;
89
+ /**
90
+ * Returns start/end offset of a text into a range
91
+ */
92
+ export declare function toRange(str: string, start: number, end: number): Range;
93
+ export declare function toRange(str: Document, start: number, end: number): Range;
94
+ /**
95
+ * Returns the language from the given tags, return the first from which a language is found.
96
+ * Searches inside lang and type and removes leading 'text/'
97
+ */
98
+ export declare function getLangAttribute(...tags: Array<TagInformation | null>): string | null;
99
+ /**
100
+ * Checks whether given position is inside a moustache tag (which includes control flow tags)
101
+ * using a simple bracket matching heuristic which might fail under conditions like
102
+ * `{#if {a: true}.a}`
103
+ */
104
+ export declare function isInsideMoustacheTag(html: string, tagStart: number | null, position: number): boolean;
105
+ export declare function inStyleOrScript(document: Document, position: Position): boolean;