runescript-lsp 0.0.1

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 (192) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/cache/CompletionCache.d.ts +15 -0
  4. package/dist/cache/CompletionCache.js +58 -0
  5. package/dist/cache/CompletionCache.js.map +1 -0
  6. package/dist/cache/FileCache.d.ts +25 -0
  7. package/dist/cache/FileCache.js +101 -0
  8. package/dist/cache/FileCache.js.map +1 -0
  9. package/dist/cache/IdCache.d.ts +28 -0
  10. package/dist/cache/IdCache.js +47 -0
  11. package/dist/cache/IdCache.js.map +1 -0
  12. package/dist/cache/SymbolCache.d.ts +76 -0
  13. package/dist/cache/SymbolCache.js +205 -0
  14. package/dist/cache/SymbolCache.js.map +1 -0
  15. package/dist/cache/Trie.d.ts +22 -0
  16. package/dist/cache/Trie.js +122 -0
  17. package/dist/cache/Trie.js.map +1 -0
  18. package/dist/cache/WorkspaceCache.d.ts +32 -0
  19. package/dist/cache/WorkspaceCache.js +60 -0
  20. package/dist/cache/WorkspaceCache.js.map +1 -0
  21. package/dist/cache/cacheManager.d.ts +16 -0
  22. package/dist/cache/cacheManager.js +47 -0
  23. package/dist/cache/cacheManager.js.map +1 -0
  24. package/dist/handler/colorProvider.d.ts +2 -0
  25. package/dist/handler/colorProvider.js +103 -0
  26. package/dist/handler/colorProvider.js.map +1 -0
  27. package/dist/handler/commands.d.ts +6 -0
  28. package/dist/handler/commands.js +25 -0
  29. package/dist/handler/commands.js.map +1 -0
  30. package/dist/handler/completion.d.ts +3 -0
  31. package/dist/handler/completion.js +25 -0
  32. package/dist/handler/completion.js.map +1 -0
  33. package/dist/handler/definition.d.ts +2 -0
  34. package/dist/handler/definition.js +20 -0
  35. package/dist/handler/definition.js.map +1 -0
  36. package/dist/handler/fileEvents.d.ts +3 -0
  37. package/dist/handler/fileEvents.js +107 -0
  38. package/dist/handler/fileEvents.js.map +1 -0
  39. package/dist/handler/gitEvents.d.ts +6 -0
  40. package/dist/handler/gitEvents.js +22 -0
  41. package/dist/handler/gitEvents.js.map +1 -0
  42. package/dist/handler/hover.d.ts +2 -0
  43. package/dist/handler/hover.js +125 -0
  44. package/dist/handler/hover.js.map +1 -0
  45. package/dist/handler/references.d.ts +2 -0
  46. package/dist/handler/references.js +33 -0
  47. package/dist/handler/references.js.map +1 -0
  48. package/dist/handler/rename.d.ts +2 -0
  49. package/dist/handler/rename.js +6 -0
  50. package/dist/handler/rename.js.map +1 -0
  51. package/dist/handler/semanticTokens.d.ts +4 -0
  52. package/dist/handler/semanticTokens.js +40 -0
  53. package/dist/handler/semanticTokens.js.map +1 -0
  54. package/dist/handler/settingsEvents.d.ts +2 -0
  55. package/dist/handler/settingsEvents.js +11 -0
  56. package/dist/handler/settingsEvents.js.map +1 -0
  57. package/dist/handler/signatureHelp.d.ts +2 -0
  58. package/dist/handler/signatureHelp.js +6 -0
  59. package/dist/handler/signatureHelp.js.map +1 -0
  60. package/dist/handler/workspaceEvents.d.ts +2 -0
  61. package/dist/handler/workspaceEvents.js +30 -0
  62. package/dist/handler/workspaceEvents.js.map +1 -0
  63. package/dist/manager.d.ts +6 -0
  64. package/dist/manager.js +126 -0
  65. package/dist/manager.js.map +1 -0
  66. package/dist/parser/configParser.d.ts +29 -0
  67. package/dist/parser/configParser.js +216 -0
  68. package/dist/parser/configParser.js.map +1 -0
  69. package/dist/parser/constantParser.d.ts +14 -0
  70. package/dist/parser/constantParser.js +40 -0
  71. package/dist/parser/constantParser.js.map +1 -0
  72. package/dist/parser/dbtableParser.d.ts +18 -0
  73. package/dist/parser/dbtableParser.js +114 -0
  74. package/dist/parser/dbtableParser.js.map +1 -0
  75. package/dist/parser/packParser.d.ts +11 -0
  76. package/dist/parser/packParser.js +13 -0
  77. package/dist/parser/packParser.js.map +1 -0
  78. package/dist/parser/parser.d.ts +44 -0
  79. package/dist/parser/parser.js +34 -0
  80. package/dist/parser/parser.js.map +1 -0
  81. package/dist/parser/runescriptParser.d.ts +13 -0
  82. package/dist/parser/runescriptParser.js +28 -0
  83. package/dist/parser/runescriptParser.js.map +1 -0
  84. package/dist/public/commands.d.ts +1 -0
  85. package/dist/public/commands.js +2 -0
  86. package/dist/public/commands.js.map +1 -0
  87. package/dist/public/settings.d.ts +2 -0
  88. package/dist/public/settings.js +2 -0
  89. package/dist/public/settings.js.map +1 -0
  90. package/dist/public/types.d.ts +2 -0
  91. package/dist/public/types.js +2 -0
  92. package/dist/public/types.js.map +1 -0
  93. package/dist/resolver/configResolver.d.ts +2 -0
  94. package/dist/resolver/configResolver.js +102 -0
  95. package/dist/resolver/configResolver.js.map +1 -0
  96. package/dist/resolver/constantResolver.d.ts +2 -0
  97. package/dist/resolver/constantResolver.js +37 -0
  98. package/dist/resolver/constantResolver.js.map +1 -0
  99. package/dist/resolver/dbtableResolver.d.ts +2 -0
  100. package/dist/resolver/dbtableResolver.js +28 -0
  101. package/dist/resolver/dbtableResolver.js.map +1 -0
  102. package/dist/resolver/packResolver.d.ts +2 -0
  103. package/dist/resolver/packResolver.js +32 -0
  104. package/dist/resolver/packResolver.js.map +1 -0
  105. package/dist/resolver/resolver.d.ts +15 -0
  106. package/dist/resolver/resolver.js +95 -0
  107. package/dist/resolver/resolver.js.map +1 -0
  108. package/dist/resolver/runescriptResolver.d.ts +2 -0
  109. package/dist/resolver/runescriptResolver.js +347 -0
  110. package/dist/resolver/runescriptResolver.js.map +1 -0
  111. package/dist/resource/configKeys.d.ts +21 -0
  112. package/dist/resource/configKeys.js +86 -0
  113. package/dist/resource/configKeys.js.map +1 -0
  114. package/dist/resource/enum/displayItems.d.ts +13 -0
  115. package/dist/resource/enum/displayItems.js +23 -0
  116. package/dist/resource/enum/displayItems.js.map +1 -0
  117. package/dist/resource/enum/fileTypes.d.ts +26 -0
  118. package/dist/resource/enum/fileTypes.js +28 -0
  119. package/dist/resource/enum/fileTypes.js.map +1 -0
  120. package/dist/resource/enum/languages.d.ts +25 -0
  121. package/dist/resource/enum/languages.js +27 -0
  122. package/dist/resource/enum/languages.js.map +1 -0
  123. package/dist/resource/enum/regex.d.ts +24 -0
  124. package/dist/resource/enum/regex.js +25 -0
  125. package/dist/resource/enum/regex.js.map +1 -0
  126. package/dist/resource/enum/semanticTokens.d.ts +24 -0
  127. package/dist/resource/enum/semanticTokens.js +26 -0
  128. package/dist/resource/enum/semanticTokens.js.map +1 -0
  129. package/dist/resource/enum/symbolTypes.d.ts +49 -0
  130. package/dist/resource/enum/symbolTypes.js +51 -0
  131. package/dist/resource/enum/symbolTypes.js.map +1 -0
  132. package/dist/resource/enum/types.d.ts +47 -0
  133. package/dist/resource/enum/types.js +49 -0
  134. package/dist/resource/enum/types.js.map +1 -0
  135. package/dist/resource/scriptTriggers.d.ts +8 -0
  136. package/dist/resource/scriptTriggers.js +72 -0
  137. package/dist/resource/scriptTriggers.js.map +1 -0
  138. package/dist/resource/symbolConfig.d.ts +10 -0
  139. package/dist/resource/symbolConfig.js +234 -0
  140. package/dist/resource/symbolConfig.js.map +1 -0
  141. package/dist/resource/symbolPostProcessors.d.ts +15 -0
  142. package/dist/resource/symbolPostProcessors.js +70 -0
  143. package/dist/resource/symbolPostProcessors.js.map +1 -0
  144. package/dist/server.d.ts +1 -0
  145. package/dist/server.js +110 -0
  146. package/dist/server.js.map +1 -0
  147. package/dist/types.d.ts +214 -0
  148. package/dist/types.js +6 -0
  149. package/dist/types.js.map +1 -0
  150. package/dist/utils/cacheUtils.d.ts +12 -0
  151. package/dist/utils/cacheUtils.js +26 -0
  152. package/dist/utils/cacheUtils.js.map +1 -0
  153. package/dist/utils/connectionUtils.d.ts +3 -0
  154. package/dist/utils/connectionUtils.js +8 -0
  155. package/dist/utils/connectionUtils.js.map +1 -0
  156. package/dist/utils/diagnosticsUtils.d.ts +4 -0
  157. package/dist/utils/diagnosticsUtils.js +11 -0
  158. package/dist/utils/diagnosticsUtils.js.map +1 -0
  159. package/dist/utils/documentUtils.d.ts +5 -0
  160. package/dist/utils/documentUtils.js +14 -0
  161. package/dist/utils/documentUtils.js.map +1 -0
  162. package/dist/utils/fileUtils.d.ts +42 -0
  163. package/dist/utils/fileUtils.js +82 -0
  164. package/dist/utils/fileUtils.js.map +1 -0
  165. package/dist/utils/handlerUtils.d.ts +1 -0
  166. package/dist/utils/handlerUtils.js +5 -0
  167. package/dist/utils/handlerUtils.js.map +1 -0
  168. package/dist/utils/highlightUtils.d.ts +7 -0
  169. package/dist/utils/highlightUtils.js +52 -0
  170. package/dist/utils/highlightUtils.js.map +1 -0
  171. package/dist/utils/initUtils.d.ts +3 -0
  172. package/dist/utils/initUtils.js +18 -0
  173. package/dist/utils/initUtils.js.map +1 -0
  174. package/dist/utils/logger.d.ts +11 -0
  175. package/dist/utils/logger.js +38 -0
  176. package/dist/utils/logger.js.map +1 -0
  177. package/dist/utils/progressUtils.d.ts +7 -0
  178. package/dist/utils/progressUtils.js +31 -0
  179. package/dist/utils/progressUtils.js.map +1 -0
  180. package/dist/utils/resolverUtils.d.ts +17 -0
  181. package/dist/utils/resolverUtils.js +97 -0
  182. package/dist/utils/resolverUtils.js.map +1 -0
  183. package/dist/utils/settingsUtils.d.ts +19 -0
  184. package/dist/utils/settingsUtils.js +88 -0
  185. package/dist/utils/settingsUtils.js.map +1 -0
  186. package/dist/utils/symbolBuilder.d.ts +10 -0
  187. package/dist/utils/symbolBuilder.js +135 -0
  188. package/dist/utils/symbolBuilder.js.map +1 -0
  189. package/dist/utils/workspaceUtils.d.ts +11 -0
  190. package/dist/utils/workspaceUtils.js +52 -0
  191. package/dist/utils/workspaceUtils.js.map +1 -0
  192. package/package.json +51 -0
@@ -0,0 +1,122 @@
1
+ class TrieNode {
2
+ children;
3
+ value;
4
+ endOfWord;
5
+ constructor(value = '') {
6
+ this.children = new Map();
7
+ this.value = value;
8
+ this.endOfWord = false;
9
+ }
10
+ }
11
+ export class Trie {
12
+ root;
13
+ constructor() {
14
+ this.root = new TrieNode();
15
+ }
16
+ insert(word) {
17
+ if (!word)
18
+ return false;
19
+ let currNode = this.root;
20
+ for (const letter of word) {
21
+ if (!currNode.children.has(letter)) {
22
+ currNode.children.set(letter, new TrieNode(letter));
23
+ }
24
+ currNode = currNode.children.get(letter);
25
+ }
26
+ currNode.endOfWord = true;
27
+ return currNode;
28
+ }
29
+ getLastNode(letters, start = this.root) {
30
+ let currNode = start;
31
+ for (const letter of letters) {
32
+ if (!currNode.children.has(letter))
33
+ return false;
34
+ currNode = currNode.children.get(letter);
35
+ }
36
+ return currNode;
37
+ }
38
+ hasWord(word, start = this.root) {
39
+ let node = this.getLastNode(word, start);
40
+ return node && node !== this.root ? node.endOfWord : false;
41
+ }
42
+ findAllWithPrefix(prefix, start = this.root) {
43
+ let words = [];
44
+ let currNode = this.getLastNode(prefix, start);
45
+ if (currNode) {
46
+ if (currNode.endOfWord)
47
+ words.push(prefix);
48
+ currNode.children.forEach((child) => this.getWordsFrom(child, prefix, words));
49
+ }
50
+ return words;
51
+ }
52
+ getWordsFrom(node = this.root, stringAcc = '', array = []) {
53
+ if (!node)
54
+ return undefined;
55
+ stringAcc += node.value;
56
+ if (node.endOfWord)
57
+ array.push(stringAcc);
58
+ node.children.forEach((child) => {
59
+ this.getWordsFrom(child, stringAcc, array);
60
+ });
61
+ return array;
62
+ }
63
+ removeWord(word) {
64
+ if (!word)
65
+ return false;
66
+ let currNode = this.root;
67
+ let stack = [];
68
+ for (const letter of word) {
69
+ if (!currNode.children.has(letter))
70
+ return false;
71
+ currNode = currNode.children.get(letter);
72
+ if (word[word.length - 1] !== currNode.value)
73
+ stack.push(currNode);
74
+ }
75
+ currNode.endOfWord = false;
76
+ while (stack.length > 0 && !currNode.endOfWord) {
77
+ let prevNode = currNode;
78
+ currNode = stack.pop();
79
+ if (prevNode.children.size > 0) {
80
+ break;
81
+ }
82
+ currNode.children.delete(prevNode.value);
83
+ }
84
+ return true;
85
+ }
86
+ clear() {
87
+ this.root.children.clear();
88
+ }
89
+ getAllWords() {
90
+ return this.getWordsFrom(this.root, '', []) ?? [];
91
+ }
92
+ getAllWordsCount() {
93
+ return this.countWordsFrom(this.root);
94
+ }
95
+ countWordsFrom(node) {
96
+ let count = node.endOfWord ? 1 : 0;
97
+ node.children.forEach((child) => {
98
+ count += this.countWordsFrom(child);
99
+ });
100
+ return count;
101
+ }
102
+ matchLongest(text, startIndex = 0) {
103
+ if (!text || startIndex < 0 || startIndex >= text.length)
104
+ return 0;
105
+ let currNode = this.root;
106
+ let maxLen = 0;
107
+ let length = 0;
108
+ for (let i = startIndex; i < text.length; i++) {
109
+ const ch = text[i];
110
+ if (!currNode.children.has(ch)) {
111
+ break;
112
+ }
113
+ currNode = currNode.children.get(ch);
114
+ length++;
115
+ if (currNode.endOfWord) {
116
+ maxLen = length;
117
+ }
118
+ }
119
+ return maxLen;
120
+ }
121
+ }
122
+ //# sourceMappingURL=Trie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Trie.js","sourceRoot":"","sources":["../../src/cache/Trie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { FileInfo, FileSymbols } from "../types.js";
2
+ import { CompletionCache } from "./CompletionCache.js";
3
+ import { FileCache } from "./FileCache.js";
4
+ import { IdCache } from "./IdCache.js";
5
+ import { SymbolCache } from "./SymbolCache.js";
6
+ export declare class WorkspaceCache {
7
+ /**
8
+ * symbol cache is the index of all symbols within the workspace
9
+ * also holds the completion cache which is used for quicker code completions
10
+ * also holds the fileToSymbol map which allows quick lookup of which symbols are in a file
11
+ */
12
+ private readonly symbolCache;
13
+ /**
14
+ * id cache stores ids for symbol types (input: symbolType + name, output: id)
15
+ */
16
+ private readonly idCache;
17
+ /**
18
+ * file caches save symbol data for word ranges within a file, and only exists on files that are opened
19
+ */
20
+ private readonly fileCaches;
21
+ clear(): void;
22
+ clearFile(fsPath: string): void;
23
+ getSymbolCache(): SymbolCache;
24
+ getCompletionCache(): CompletionCache;
25
+ getFileSymbols(fsPath: string): FileSymbols;
26
+ getIdCache(): IdCache;
27
+ getFileCaches(): Map<string, FileCache>;
28
+ addFileCache(fileInfo: FileInfo): FileCache | undefined;
29
+ deleteFileCache(fsPath: string): void;
30
+ getFileCache(fsPath: string): FileCache | undefined;
31
+ getOrCreateFileCache(fileInfo: FileInfo): FileCache | undefined;
32
+ }
@@ -0,0 +1,60 @@
1
+ import { FileCache } from "./FileCache.js";
2
+ import { IdCache } from "./IdCache.js";
3
+ import { SymbolCache } from "./SymbolCache.js";
4
+ export class WorkspaceCache {
5
+ /**
6
+ * symbol cache is the index of all symbols within the workspace
7
+ * also holds the completion cache which is used for quicker code completions
8
+ * also holds the fileToSymbol map which allows quick lookup of which symbols are in a file
9
+ */
10
+ symbolCache = new SymbolCache();
11
+ /**
12
+ * id cache stores ids for symbol types (input: symbolType + name, output: id)
13
+ */
14
+ idCache = new IdCache();
15
+ /**
16
+ * file caches save symbol data for word ranges within a file, and only exists on files that are opened
17
+ */
18
+ fileCaches = new Map();
19
+ clear() {
20
+ this.idCache.clearAll();
21
+ this.symbolCache.clearAll();
22
+ this.fileCaches.clear();
23
+ }
24
+ clearFile(fsPath) {
25
+ this.symbolCache.clearFile(fsPath);
26
+ this.fileCaches.delete(fsPath);
27
+ }
28
+ getSymbolCache() {
29
+ return this.symbolCache;
30
+ }
31
+ getCompletionCache() {
32
+ return this.symbolCache.getCompletionCache();
33
+ }
34
+ getFileSymbols(fsPath) {
35
+ return this.symbolCache.getFileSymbols(fsPath);
36
+ }
37
+ getIdCache() {
38
+ return this.idCache;
39
+ }
40
+ getFileCaches() {
41
+ return this.fileCaches;
42
+ }
43
+ addFileCache(fileInfo) {
44
+ if (fileInfo.isOpen()) { // only build file caches for opened files
45
+ const fileCache = new FileCache(fileInfo);
46
+ this.fileCaches.set(fileInfo.fsPath, fileCache);
47
+ return fileCache;
48
+ }
49
+ }
50
+ deleteFileCache(fsPath) {
51
+ this.fileCaches.delete(fsPath);
52
+ }
53
+ getFileCache(fsPath) {
54
+ return this.fileCaches.get(fsPath);
55
+ }
56
+ getOrCreateFileCache(fileInfo) {
57
+ return this.getFileCache(fileInfo.fsPath) ?? this.addFileCache(fileInfo);
58
+ }
59
+ }
60
+ //# sourceMappingURL=WorkspaceCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceCache.js","sourceRoot":"","sources":["../../src/cache/WorkspaceCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,cAAc;IACzB;;;;OAIG;IACc,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEjD;;OAEG;IACc,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAEzC;;OAEG;IACc,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE3D,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,QAAkB;QAC7B,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,0CAA0C;YACjE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB,CAAC,QAAkB;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { CompletionCache } from "./CompletionCache.js";
2
+ import { FileCache } from "./FileCache.js";
3
+ import { IdCache } from "./IdCache.js";
4
+ import { SymbolCache } from "./SymbolCache.js";
5
+ import { WorkspaceCache } from "./WorkspaceCache.js";
6
+ export declare function addWorkspaceCache(workspace: string): WorkspaceCache;
7
+ export declare function removeWorkspaceCache(workspace: string): void;
8
+ export declare function clearAllCaches(): void;
9
+ export declare function clearWorkspaceCache(workspace: string): WorkspaceCache | undefined;
10
+ export declare function clearFile(workspace: string, fsPath: string): void;
11
+ export declare function getWorkspaceCache(workspace: string): WorkspaceCache;
12
+ export declare function getSymbolCache(workspace: string): SymbolCache;
13
+ export declare function getCompletionCache(workspace: string): CompletionCache;
14
+ export declare function getIdCache(workspace: string): IdCache;
15
+ export declare function getFileCaches(workspace: string): Map<string, FileCache>;
16
+ export declare function getFileCache(workspace: string, fsPath: string): FileCache | undefined;
@@ -0,0 +1,47 @@
1
+ import { WorkspaceCache } from "./WorkspaceCache.js";
2
+ const caches = new Map();
3
+ export function addWorkspaceCache(workspace) {
4
+ if (caches.has(workspace)) {
5
+ return caches.get(workspace);
6
+ }
7
+ const workspaceCache = new WorkspaceCache();
8
+ caches.set(workspace, workspaceCache);
9
+ return workspaceCache;
10
+ }
11
+ export function removeWorkspaceCache(workspace) {
12
+ caches.delete(workspace);
13
+ }
14
+ export function clearAllCaches() {
15
+ caches.clear();
16
+ }
17
+ export function clearWorkspaceCache(workspace) {
18
+ if (caches.has(workspace)) {
19
+ const workspaceCache = caches.get(workspace);
20
+ workspaceCache.clear();
21
+ return workspaceCache;
22
+ }
23
+ }
24
+ export function clearFile(workspace, fsPath) {
25
+ if (caches.has(workspace)) {
26
+ caches.get(workspace).clearFile(fsPath);
27
+ }
28
+ }
29
+ export function getWorkspaceCache(workspace) {
30
+ return caches.get(workspace) ?? addWorkspaceCache(workspace);
31
+ }
32
+ export function getSymbolCache(workspace) {
33
+ return getWorkspaceCache(workspace).getSymbolCache();
34
+ }
35
+ export function getCompletionCache(workspace) {
36
+ return getWorkspaceCache(workspace).getSymbolCache().getCompletionCache();
37
+ }
38
+ export function getIdCache(workspace) {
39
+ return getWorkspaceCache(workspace).getIdCache();
40
+ }
41
+ export function getFileCaches(workspace) {
42
+ return getWorkspaceCache(workspace).getFileCaches();
43
+ }
44
+ export function getFileCache(workspace, fsPath) {
45
+ return getWorkspaceCache(workspace).getFileCaches().get(fsPath);
46
+ }
47
+ //# sourceMappingURL=cacheManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheManager.js","sourceRoot":"","sources":["../../src/cache/cacheManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;AAEtD,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAChC,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAC9C,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB,EAAE,MAAc;IACzD,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,MAAc;IAC5D,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Connection } from "vscode-languageserver/node.js";
2
+ export declare function registerColorProviderHandler(connection: Connection): void;
@@ -0,0 +1,103 @@
1
+ import { Color, Range, TextEdit } from "vscode-languageserver-types";
2
+ import { getDocuments } from "../utils/documentUtils.js";
3
+ import { COLOR24_REGEX, RECOLOR_REGEX } from "../resource/enum/regex.js";
4
+ import { getLanguage } from "../utils/handlerUtils.js";
5
+ export function registerColorProviderHandler(connection) {
6
+ connection.onDocumentColor((params) => {
7
+ const language = getLanguage(params);
8
+ if (!language)
9
+ return [];
10
+ if (language === 'floconfig' || language === 'interface') {
11
+ return color24Provider(params);
12
+ }
13
+ else if (language.endsWith('config')) {
14
+ return recolorProvider(params);
15
+ }
16
+ return [];
17
+ });
18
+ connection.onColorPresentation((params) => {
19
+ const language = getLanguage(params);
20
+ if (!language)
21
+ return [];
22
+ if (language === 'floconfig' || language === 'interface') {
23
+ return color24Presentation(params);
24
+ }
25
+ else if (language.endsWith('config')) {
26
+ return recolorPresentation(params);
27
+ }
28
+ return [];
29
+ });
30
+ }
31
+ function color24Provider(params) {
32
+ const doc = getDocuments().get(params.textDocument.uri);
33
+ if (!doc)
34
+ return [];
35
+ const text = doc.getText();
36
+ COLOR24_REGEX.lastIndex = 0;
37
+ const colorInfos = [];
38
+ let match;
39
+ while ((match = COLOR24_REGEX.exec(text)) !== null) {
40
+ const rgb = parseInt(match[2], 16);
41
+ if (Number.isNaN(rgb))
42
+ continue;
43
+ const r = (rgb >> 16) & 0xff;
44
+ const g = (rgb >> 8) & 0xff;
45
+ const b = rgb & 0xff;
46
+ const valueStart = match.index + match[1].length + 1;
47
+ const valueEnd = valueStart + match[2].length;
48
+ colorInfos.push({
49
+ color: Color.create(r / 255, g / 255, b / 255, 1),
50
+ range: Range.create(doc.positionAt(valueStart), doc.positionAt(valueEnd)),
51
+ });
52
+ }
53
+ return colorInfos;
54
+ }
55
+ function recolorProvider(params) {
56
+ const doc = getDocuments().get(params.textDocument.uri);
57
+ if (!doc)
58
+ return [];
59
+ const text = doc.getText();
60
+ RECOLOR_REGEX.lastIndex = 0;
61
+ const colorInfos = [];
62
+ let match;
63
+ while ((match = RECOLOR_REGEX.exec(text)) !== null) {
64
+ const rgb = parseInt(match[2], 10);
65
+ if (Number.isNaN(rgb))
66
+ continue;
67
+ const r = (rgb >> 10) & 0x1f;
68
+ const g = (rgb >> 5) & 0x1f;
69
+ const b = rgb & 0x1f;
70
+ const valueStart = match.index + match[1].length + 1;
71
+ const valueEnd = valueStart + match[2].length;
72
+ colorInfos.push({
73
+ color: Color.create(r / 31, g / 31, b / 31, 1),
74
+ range: Range.create(doc.positionAt(valueStart), doc.positionAt(valueEnd)),
75
+ });
76
+ }
77
+ return colorInfos;
78
+ }
79
+ function color24Presentation(params) {
80
+ const r = Math.round(params.color.red * 255);
81
+ const g = Math.round(params.color.green * 255);
82
+ const b = Math.round(params.color.blue * 255);
83
+ const rgb = (r << 16) | (g << 8) | b;
84
+ return [
85
+ {
86
+ label: "Color Picker",
87
+ textEdit: TextEdit.replace(params.range, "0x" + rgb.toString(16).toUpperCase().padStart(6, "0")),
88
+ },
89
+ ];
90
+ }
91
+ function recolorPresentation(params) {
92
+ const r = Math.round(params.color.red * 31);
93
+ const g = Math.round(params.color.green * 31);
94
+ const b = Math.round(params.color.blue * 31);
95
+ const rgb = (r << 10) | (g << 5) | b;
96
+ return [
97
+ {
98
+ label: "Model Recolor",
99
+ textEdit: TextEdit.replace(params.range, rgb.toString()),
100
+ },
101
+ ];
102
+ }
103
+ //# sourceMappingURL=colorProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorProvider.js","sourceRoot":"","sources":["../../src/handler/colorProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Connection } from "vscode-languageserver/node.js";
2
+ export declare const COMMANDS: {
3
+ readonly RESCAN_WORKSPACE: "runescript.rescanWorkspace";
4
+ };
5
+ export declare const COMMAND_IDS: "runescript.rescanWorkspace"[];
6
+ export declare function registerCommandHandlers(connection: Connection): void;
@@ -0,0 +1,25 @@
1
+ import { rebuildWorkspace } from "../manager.js";
2
+ import { mapUri } from "../utils/fileUtils.js";
3
+ import { findWorkspaceFolder, getWorkspaceFolders } from "../utils/workspaceUtils.js";
4
+ export const COMMANDS = {
5
+ RESCAN_WORKSPACE: "runescript.rescanWorkspace"
6
+ };
7
+ export const COMMAND_IDS = Object.values(COMMANDS);
8
+ export function registerCommandHandlers(connection) {
9
+ connection.onExecuteCommand(async (params) => {
10
+ if (params.command === COMMANDS.RESCAN_WORKSPACE) {
11
+ const workspaceArg = params.arguments?.[0];
12
+ if (typeof workspaceArg === "string") {
13
+ const fsPath = workspaceArg.startsWith("file:") ? mapUri(workspaceArg) : workspaceArg;
14
+ const workspace = findWorkspaceFolder(fsPath) ?? fsPath;
15
+ await rebuildWorkspace(workspace);
16
+ return;
17
+ }
18
+ for (const workspace of getWorkspaceFolders()) {
19
+ await rebuildWorkspace(workspace);
20
+ }
21
+ return;
22
+ }
23
+ });
24
+ }
25
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/handler/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,gBAAgB,EAAE,4BAA4B;CACtC,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CAAC,UAAsB;IAC5D,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBACtF,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;gBACxD,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,EAAE,CAAC;gBAC9C,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Connection } from "vscode-languageserver/node.js";
2
+ export declare const allTriggers: string[];
3
+ export declare function registerCompletionHandler(connection: Connection): void;
@@ -0,0 +1,25 @@
1
+ import { getLanguage } from "../utils/handlerUtils.js";
2
+ const runescriptCompletionTriggers = ['$', '^', '%', '~', '@', '`', '>', ',', '[', '(', ' '];
3
+ const configCompletionTriggers = ['=', ',', '`', '>'];
4
+ export const allTriggers = [...new Set([...runescriptCompletionTriggers, ...configCompletionTriggers])];
5
+ export function registerCompletionHandler(connection) {
6
+ connection.onCompletion((params) => {
7
+ const language = getLanguage(params);
8
+ if (!language)
9
+ return [];
10
+ if (language === 'runescript') {
11
+ return runescriptCompletionHandler(params);
12
+ }
13
+ else if (language.endsWith('config') || language === 'interface') {
14
+ return configCompletionHandler(params);
15
+ }
16
+ return [];
17
+ });
18
+ }
19
+ function configCompletionHandler(params) {
20
+ return [];
21
+ }
22
+ function runescriptCompletionHandler(params) {
23
+ return [];
24
+ }
25
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/handler/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7F,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,4BAA4B,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAExG,MAAM,UAAU,yBAAyB,CAAC,UAAsB;IAC9D,UAAU,CAAC,YAAY,CAAC,CAAC,MAAwB,EAAoB,EAAE;QACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACnE,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAwB;IACvD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAwB;IAC3D,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Connection } from "vscode-languageserver/node.js";
2
+ export declare function registerDefinitionHandler(connection: Connection): void;
@@ -0,0 +1,20 @@
1
+ import { fsPathToUri, uriToFileInfo } from "../utils/fileUtils.js";
2
+ import { buildLocation, resolveAtHandlerPosition } from "../utils/resolverUtils.js";
3
+ import { decodeToLocation } from "../utils/cacheUtils.js";
4
+ export function registerDefinitionHandler(connection) {
5
+ connection.onDefinition((params) => {
6
+ const fileInfo = uriToFileInfo(params.textDocument.uri);
7
+ const resolvedDataRange = resolveAtHandlerPosition(params.position, fileInfo);
8
+ if (!resolvedDataRange)
9
+ return null;
10
+ const resolved = resolvedDataRange.data;
11
+ // If we are already on a declaration, return its location to indicate use find all references instead
12
+ if (resolved.declaration || resolved.symbolConfig.referenceOnly) {
13
+ return buildLocation(resolvedDataRange.start, resolvedDataRange.end, params.position.line, fileInfo.uri);
14
+ }
15
+ if (resolved.symbol.declaration) {
16
+ return decodeToLocation(fsPathToUri(resolved.symbol.declaration.fsPath), resolved.symbol.declaration.ref) ?? null;
17
+ }
18
+ });
19
+ }
20
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/handler/definition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,UAAU,yBAAyB,CAAC,UAAsB;IAC9D,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC;QAExC,sGAAsG;QACtG,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YAChE,OAAO,aAAa,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QACpH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Connection, TextDocuments } from "vscode-languageserver/node.js";
2
+ import type { TextDocument } from "vscode-languageserver-textdocument";
3
+ export declare function registerFileEventHandlers(documents: TextDocuments<TextDocument>, connection: Connection): void;
@@ -0,0 +1,107 @@
1
+ import { FileChangeType } from "vscode-languageserver/node.js";
2
+ import { getDocuments, isOpenDocument } from "../utils/documentUtils.js";
3
+ import { uriToFileInfo } from "../utils/fileUtils.js";
4
+ import { logFileEvent } from "../utils/logger.js";
5
+ import { disposeFile, rebuildFile } from "../manager.js";
6
+ import { getIsInitializing } from "../utils/initUtils.js";
7
+ const lastHandledVersions = new Map();
8
+ const pendingChangeTimers = new Map();
9
+ const CHANGE_DEDUP_MS = 200;
10
+ export function registerFileEventHandlers(documents, connection) {
11
+ documents.onDidOpen(handleDocumentOpened);
12
+ documents.onDidChangeContent(handleDocumentChanged);
13
+ documents.onDidSave(handleDocumentSaved);
14
+ documents.onDidClose(handleDocumentClosed);
15
+ connection.onDidChangeWatchedFiles((event) => {
16
+ for (const change of event.changes) {
17
+ if (change.type === FileChangeType.Changed)
18
+ handleFileChanged(change);
19
+ if (change.type === FileChangeType.Created)
20
+ handleFileCreated(change);
21
+ if (change.type === FileChangeType.Deleted)
22
+ handleFileDeleted(change);
23
+ }
24
+ });
25
+ }
26
+ function handleDocumentClosed(event) {
27
+ if (getIsInitializing())
28
+ return;
29
+ const fileInfo = uriToFileInfo(event.document.uri);
30
+ if (!fileInfo.isMonitored)
31
+ return;
32
+ logFileEvent('file closed', fileInfo);
33
+ //disposeFile(fileInfo);
34
+ }
35
+ function handleDocumentOpened(event) {
36
+ if (getIsInitializing())
37
+ return;
38
+ // This fires along with the active file changed event
39
+ const fileInfo = uriToFileInfo(event.document.uri);
40
+ if (!fileInfo.isMonitored)
41
+ return;
42
+ logFileEvent('file opened', fileInfo);
43
+ //rebuildFile(fileInfo, event.document.getText());
44
+ }
45
+ function handleDocumentSaved(event) {
46
+ if (getIsInitializing())
47
+ return;
48
+ const fileInfo = uriToFileInfo(event.document.uri);
49
+ if (!fileInfo.isMonitored)
50
+ return;
51
+ logFileEvent('file saved', fileInfo);
52
+ rebuildFile(fileInfo, event.document.getText());
53
+ }
54
+ function handleDocumentChanged(event) {
55
+ if (getIsInitializing())
56
+ return;
57
+ const lastVersion = lastHandledVersions.get(event.document.uri);
58
+ if (lastVersion === event.document.version)
59
+ return;
60
+ lastHandledVersions.set(event.document.uri, event.document.version);
61
+ const existing = pendingChangeTimers.get(event.document.uri);
62
+ if (existing)
63
+ clearTimeout(existing);
64
+ pendingChangeTimers.set(event.document.uri, setTimeout(() => {
65
+ pendingChangeTimers.delete(event.document.uri);
66
+ if (getIsInitializing())
67
+ return;
68
+ const fileInfo = uriToFileInfo(event.document.uri);
69
+ if (!fileInfo.isMonitored)
70
+ return;
71
+ const latestDoc = getDocuments().get(event.document.uri);
72
+ if (!latestDoc)
73
+ return;
74
+ logFileEvent('active file changed', fileInfo);
75
+ rebuildFile(fileInfo, latestDoc.getText());
76
+ }, CHANGE_DEDUP_MS));
77
+ }
78
+ function handleFileChanged(event) {
79
+ if (getIsInitializing())
80
+ return;
81
+ if (isOpenDocument(event.uri))
82
+ return; // Opened document changes are covered by handleDocumentChanged
83
+ const fileInfo = uriToFileInfo(event.uri);
84
+ if (!fileInfo.isMonitored)
85
+ return;
86
+ logFileEvent('inactive file changed', fileInfo);
87
+ rebuildFile(fileInfo);
88
+ }
89
+ function handleFileDeleted(event) {
90
+ if (getIsInitializing())
91
+ return;
92
+ const fileInfo = uriToFileInfo(event.uri);
93
+ if (!fileInfo.isMonitored)
94
+ return;
95
+ logFileEvent('file deleted', fileInfo);
96
+ disposeFile(fileInfo);
97
+ }
98
+ function handleFileCreated(event) {
99
+ if (getIsInitializing())
100
+ return;
101
+ const fileInfo = uriToFileInfo(event.uri);
102
+ if (!fileInfo.isMonitored)
103
+ return;
104
+ logFileEvent('file created', fileInfo);
105
+ rebuildFile(fileInfo);
106
+ }
107
+ //# sourceMappingURL=fileEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileEvents.js","sourceRoot":"","sources":["../../src/handler/fileEvents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Connection } from "vscode-languageserver/node.js";
2
+ import { NotificationType } from "vscode-languageserver/node.js";
3
+ export declare const GitBranchChanged: NotificationType<{
4
+ workspaceUri?: string;
5
+ }>;
6
+ export declare function registerGitEventHandlers(connection: Connection): void;