skir-internal 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 (132) hide show
  1. package/README.md +2 -0
  2. package/dist/casing.d.ts +8 -0
  3. package/dist/casing.d.ts.map +1 -0
  4. package/dist/casing.js +43 -0
  5. package/dist/casing.js.map +1 -0
  6. package/dist/casing.test.d.ts.map +1 -0
  7. package/dist/casing.test.js +136 -0
  8. package/dist/casing.test.js.map +1 -0
  9. package/dist/command_line_parser.d.ts +33 -0
  10. package/dist/command_line_parser.d.ts.map +1 -0
  11. package/dist/command_line_parser.js +168 -0
  12. package/dist/command_line_parser.js.map +1 -0
  13. package/dist/command_line_parser.test.d.ts +2 -0
  14. package/dist/command_line_parser.test.d.ts.map +1 -0
  15. package/dist/command_line_parser.test.js +297 -0
  16. package/dist/command_line_parser.test.js.map +1 -0
  17. package/dist/compatibility_checker.d.ts +74 -0
  18. package/dist/compatibility_checker.d.ts.map +1 -0
  19. package/dist/compatibility_checker.js +341 -0
  20. package/dist/compatibility_checker.js.map +1 -0
  21. package/dist/compatibility_checker.test.d.ts +2 -0
  22. package/dist/compatibility_checker.test.d.ts.map +1 -0
  23. package/dist/compatibility_checker.test.js +582 -0
  24. package/dist/compatibility_checker.test.js.map +1 -0
  25. package/dist/compiler.d.ts.map +1 -0
  26. package/dist/compiler.js +375 -0
  27. package/dist/compiler.js.map +1 -0
  28. package/dist/config.d.ts +47 -0
  29. package/dist/config.d.ts.map +1 -0
  30. package/dist/config.js +23 -0
  31. package/dist/config.js.map +1 -0
  32. package/dist/definition_finder.d.ts +12 -0
  33. package/dist/definition_finder.d.ts.map +1 -0
  34. package/dist/definition_finder.js +180 -0
  35. package/dist/definition_finder.js.map +1 -0
  36. package/dist/definition_finder.test.d.ts +2 -0
  37. package/dist/definition_finder.test.d.ts.map +1 -0
  38. package/dist/definition_finder.test.js +164 -0
  39. package/dist/definition_finder.test.js.map +1 -0
  40. package/dist/doc_comment_parser.d.ts +3 -0
  41. package/dist/doc_comment_parser.d.ts.map +1 -0
  42. package/dist/doc_comment_parser.js +219 -0
  43. package/dist/doc_comment_parser.js.map +1 -0
  44. package/dist/doc_comment_parser.test.d.ts +2 -0
  45. package/dist/doc_comment_parser.test.d.ts.map +1 -0
  46. package/dist/doc_comment_parser.test.js +494 -0
  47. package/dist/doc_comment_parser.test.js.map +1 -0
  48. package/dist/encoding.d.ts +2 -0
  49. package/dist/encoding.d.ts.map +1 -0
  50. package/dist/encoding.js +38 -0
  51. package/dist/encoding.js.map +1 -0
  52. package/dist/encoding.test.d.ts +2 -0
  53. package/dist/encoding.test.d.ts.map +1 -0
  54. package/dist/encoding.test.js +23 -0
  55. package/dist/encoding.test.js.map +1 -0
  56. package/dist/error_renderer.d.ts +10 -0
  57. package/dist/error_renderer.d.ts.map +1 -0
  58. package/dist/error_renderer.js +266 -0
  59. package/dist/error_renderer.js.map +1 -0
  60. package/dist/formatter.d.ts +16 -0
  61. package/dist/formatter.d.ts.map +1 -0
  62. package/dist/formatter.js +220 -0
  63. package/dist/formatter.js.map +1 -0
  64. package/dist/formatter.test.d.ts +2 -0
  65. package/dist/formatter.test.d.ts.map +1 -0
  66. package/dist/formatter.test.js +390 -0
  67. package/dist/formatter.test.js.map +1 -0
  68. package/dist/formatter2.d.ts +3 -0
  69. package/dist/formatter2.d.ts.map +1 -0
  70. package/dist/formatter2.js +67 -0
  71. package/dist/formatter2.js.map +1 -0
  72. package/dist/index.d.ts +6 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +5 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/index.test.d.ts.map +1 -0
  77. package/dist/index.test.js +14 -0
  78. package/dist/index.test.js.map +1 -0
  79. package/dist/io.d.ts.map +1 -0
  80. package/dist/io.js +22 -0
  81. package/dist/io.js.map +1 -0
  82. package/dist/language_server.d.ts +15 -0
  83. package/dist/language_server.d.ts.map +1 -0
  84. package/dist/language_server.js +248 -0
  85. package/dist/language_server.js.map +1 -0
  86. package/dist/literals.d.ts +13 -0
  87. package/dist/literals.d.ts.map +1 -0
  88. package/dist/literals.js +100 -0
  89. package/dist/literals.js.map +1 -0
  90. package/dist/literals.test.d.ts.map +1 -0
  91. package/dist/literals.test.js +149 -0
  92. package/dist/literals.test.js.map +1 -0
  93. package/dist/module_collector.d.ts +3 -0
  94. package/dist/module_collector.d.ts.map +1 -0
  95. package/dist/module_collector.js +22 -0
  96. package/dist/module_collector.js.map +1 -0
  97. package/dist/module_set.d.ts +40 -0
  98. package/dist/module_set.d.ts.map +1 -0
  99. package/dist/module_set.js +1178 -0
  100. package/dist/module_set.js.map +1 -0
  101. package/dist/module_set.test.d.ts.map +1 -0
  102. package/dist/module_set.test.js +1897 -0
  103. package/dist/module_set.test.js.map +1 -0
  104. package/dist/parser.d.ts +7 -0
  105. package/dist/parser.d.ts.map +1 -0
  106. package/dist/parser.js +1075 -0
  107. package/dist/parser.js.map +1 -0
  108. package/dist/parser.test.d.ts.map +1 -0
  109. package/dist/parser.test.js +1594 -0
  110. package/dist/parser.test.js.map +1 -0
  111. package/dist/project_initializer.d.ts +2 -0
  112. package/dist/project_initializer.d.ts.map +1 -0
  113. package/dist/project_initializer.js +30 -0
  114. package/dist/project_initializer.js.map +1 -0
  115. package/dist/snapshotter.d.ts +9 -0
  116. package/dist/snapshotter.d.ts.map +1 -0
  117. package/dist/snapshotter.js +144 -0
  118. package/dist/snapshotter.js.map +1 -0
  119. package/dist/tokenizer.d.ts +10 -0
  120. package/dist/tokenizer.d.ts.map +1 -0
  121. package/dist/tokenizer.js +198 -0
  122. package/dist/tokenizer.js.map +1 -0
  123. package/dist/tokenizer.test.d.ts.map +1 -0
  124. package/dist/tokenizer.test.js +441 -0
  125. package/dist/tokenizer.test.js.map +1 -0
  126. package/dist/types.d.ts +439 -0
  127. package/dist/types.d.ts.map +1 -0
  128. package/dist/types.js +2 -0
  129. package/dist/types.js.map +1 -0
  130. package/package.json +58 -0
  131. package/src/casing.ts +53 -0
  132. package/src/types.ts +585 -0
@@ -0,0 +1,390 @@
1
+ import { expect } from "buckwheat";
2
+ import { describe, it } from "mocha";
3
+ import { formatModule } from "./formatter.js";
4
+ import { parseModule } from "./parser.js";
5
+ import { tokenizeModule } from "./tokenizer.js";
6
+ const UNFORMATTED_MODULE = `//module
7
+ import A from 'module.skir'; import * as foo from 'module.skir';
8
+
9
+ struct Empty1 { }
10
+ struct Empty2 { //
11
+ } //
12
+
13
+ struct S1 {
14
+ a: int32;
15
+ c: double?;
16
+
17
+ //
18
+ //a
19
+ // b
20
+ ///a
21
+ /// b
22
+ ///
23
+ b: string;
24
+ removed;
25
+ enum E {
26
+
27
+
28
+ }
29
+ }
30
+
31
+ // doc for
32
+ /* foo
33
+ */
34
+ // s2
35
+ struct S2 {
36
+ a : int32=0 ;
37
+ b : string=1;//
38
+ c:[[x|foo.a.kind]?] ?=2;
39
+ removed 3, 4..12, 13;
40
+ /*
41
+ *
42
+ */
43
+ /// foo
44
+ struct Nested {
45
+ }
46
+ }
47
+
48
+ enum E1 {
49
+ A;
50
+ B;
51
+ c: bool;
52
+ }
53
+ enum E2 {
54
+ A=1;
55
+ B=2;
56
+ }
57
+
58
+ method M(Request):Response;
59
+
60
+ const CONST: [Type] = [
61
+ 1, [], {}, {
62
+ a : true,
63
+ b: null,
64
+ c: 'n\\\\"',
65
+ d: 'n\\"',
66
+ // c doc
67
+ e: [ ] //c
68
+ },
69
+ {||}, {|
70
+ a: true,
71
+ b://
72
+ 3.14
73
+ ,
74
+ |},
75
+ [
76
+ 'fo',"fo'",
77
+ "fo\\"",
78
+ 'fo"',
79
+ 'fo\\"',
80
+ 'fo\\\\"',
81
+ ]
82
+
83
+ ];
84
+
85
+ const F: Foo? = {
86
+ a: null,b: 3.14,c:false
87
+ }
88
+
89
+ ;struct S {
90
+ // a
91
+ }
92
+
93
+ struct So ( 100 ) { // a
94
+ // b
95
+ } // d
96
+
97
+ // a
98
+
99
+ // c
100
+
101
+ //d
102
+
103
+ method GetFoo(struct {a: enum { z: int32; g
104
+ :
105
+ bool;
106
+ h: //
107
+ [
108
+ int32 //
109
+ ?];}; b: bool; }): struct {
110
+ x: int32; y: int32;};
111
+
112
+ struct G {
113
+ // a
114
+
115
+ // b
116
+ // b2
117
+
118
+
119
+ // c
120
+
121
+
122
+ }`;
123
+ const EXPECTED_FORMATTED_MODULE = [
124
+ "// module",
125
+ 'import A from "module.skir";',
126
+ 'import * as foo from "module.skir";',
127
+ "",
128
+ "struct Empty1 {}",
129
+ "struct Empty2 { //",
130
+ "} //",
131
+ "",
132
+ "struct S1 {",
133
+ " a: int32;",
134
+ " c: double?;",
135
+ "",
136
+ " //",
137
+ " // a",
138
+ " // b",
139
+ " /// a",
140
+ " /// b",
141
+ " ///",
142
+ " b: string;",
143
+ " removed;",
144
+ " enum E {}",
145
+ "}",
146
+ "",
147
+ "// doc for",
148
+ "/* foo",
149
+ " */",
150
+ "// s2",
151
+ "struct S2 {",
152
+ " a: int32 = 0;",
153
+ " b: string = 1; //",
154
+ " c: [[x|foo.a.kind]?]? = 2;",
155
+ " removed 3, 4..12, 13;",
156
+ " /*",
157
+ "*",
158
+ "*/",
159
+ " /// foo",
160
+ " struct Nested {}",
161
+ "}",
162
+ "",
163
+ "enum E1 {",
164
+ " A;",
165
+ " B;",
166
+ " c: bool;",
167
+ "}",
168
+ "enum E2 {",
169
+ " A = 1;",
170
+ " B = 2;",
171
+ "}",
172
+ "",
173
+ "method M(Request): Response;",
174
+ "",
175
+ "const CONST: [Type] = [",
176
+ " 1,",
177
+ " [],",
178
+ " {},",
179
+ " {",
180
+ " a: true,",
181
+ " b: null,",
182
+ " c: 'n\\\\\"',",
183
+ " d: 'n\\\"',",
184
+ " // c doc",
185
+ " e: [], // c,",
186
+ " },",
187
+ " {||},",
188
+ " {|",
189
+ " a: true,",
190
+ " b: //",
191
+ " 3.14,",
192
+ " |},",
193
+ " [",
194
+ ' "fo",',
195
+ ' "fo\'",',
196
+ ' "fo\\"",',
197
+ " 'fo\"',",
198
+ " 'fo\\\"',",
199
+ " 'fo\\\\\"',",
200
+ " ],",
201
+ "];",
202
+ "",
203
+ "const F: Foo? = {",
204
+ " a: null,",
205
+ " b: 3.14,",
206
+ " c: false,",
207
+ "};",
208
+ "struct S {",
209
+ " // a",
210
+ "}",
211
+ "",
212
+ "struct So(100) { // a",
213
+ " // b",
214
+ "} // d",
215
+ "",
216
+ "// a",
217
+ "",
218
+ "// c",
219
+ "",
220
+ "// d",
221
+ "",
222
+ "method GetFoo(",
223
+ " struct {",
224
+ " a: enum {",
225
+ " z: int32;",
226
+ " g: bool;",
227
+ " h: //",
228
+ " [int32 //",
229
+ " ?];",
230
+ " };",
231
+ " b: bool;",
232
+ " }",
233
+ "): struct {",
234
+ " x: int32;",
235
+ " y: int32;",
236
+ "};",
237
+ "",
238
+ "struct G {",
239
+ " // a",
240
+ "",
241
+ " // b",
242
+ " // b2",
243
+ "",
244
+ " // c",
245
+ "}",
246
+ "",
247
+ ].join("\n");
248
+ describe("formatModule", () => {
249
+ it("works", () => {
250
+ const tokens = tokenizeModule(UNFORMATTED_MODULE, "path/to/module");
251
+ expect(tokens.errors).toMatch([]);
252
+ const parsedModule = parseModule(tokens.result);
253
+ expect(parsedModule.errors).toMatch([]);
254
+ const formatted = formatModule(tokens.result);
255
+ expect(formatted).toMatch({
256
+ newSourceCode: EXPECTED_FORMATTED_MODULE,
257
+ textEdits: [
258
+ {
259
+ oldStart: 0,
260
+ oldEnd: 8,
261
+ newText: "// module",
262
+ },
263
+ {
264
+ oldStart: 23,
265
+ oldEnd: 36,
266
+ newText: '"module.skir"',
267
+ },
268
+ {
269
+ oldStart: 37,
270
+ oldEnd: 39,
271
+ newText: "\n",
272
+ },
273
+ {
274
+ oldStart: 60,
275
+ oldEnd: 73,
276
+ },
277
+ {
278
+ oldStart: 74,
279
+ oldEnd: 78,
280
+ newText: "\n\n",
281
+ },
282
+ {
283
+ oldStart: 93,
284
+ oldEnd: 94,
285
+ newText: "",
286
+ },
287
+ {
288
+ oldStart: 111,
289
+ oldEnd: 112,
290
+ newText: " ",
291
+ },
292
+ {},
293
+ {},
294
+ {},
295
+ {},
296
+ {},
297
+ {},
298
+ {},
299
+ {},
300
+ {},
301
+ {},
302
+ {},
303
+ {},
304
+ {},
305
+ {},
306
+ {},
307
+ {},
308
+ {},
309
+ {},
310
+ {},
311
+ {},
312
+ {},
313
+ {},
314
+ {},
315
+ {},
316
+ {},
317
+ {},
318
+ {},
319
+ {},
320
+ {},
321
+ {},
322
+ {},
323
+ {},
324
+ {},
325
+ {},
326
+ {},
327
+ {},
328
+ {},
329
+ {},
330
+ {},
331
+ {},
332
+ {},
333
+ {},
334
+ {},
335
+ {},
336
+ {},
337
+ {},
338
+ {},
339
+ {},
340
+ {},
341
+ {},
342
+ {},
343
+ {},
344
+ {},
345
+ {},
346
+ {},
347
+ {},
348
+ {},
349
+ {},
350
+ {},
351
+ {},
352
+ {},
353
+ {},
354
+ {},
355
+ {},
356
+ {},
357
+ {},
358
+ {},
359
+ {},
360
+ {},
361
+ {},
362
+ {},
363
+ {},
364
+ {},
365
+ {},
366
+ {},
367
+ {},
368
+ {},
369
+ {},
370
+ {},
371
+ {},
372
+ {},
373
+ {},
374
+ {},
375
+ {},
376
+ {},
377
+ {},
378
+ {},
379
+ {},
380
+ {},
381
+ {},
382
+ {},
383
+ {},
384
+ {},
385
+ {},
386
+ ],
387
+ });
388
+ });
389
+ });
390
+ //# sourceMappingURL=formatter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.test.js","sourceRoot":"","sources":["../src/formatter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Token } from "./types.js";
2
+ export declare function formatModule(tokens: readonly Token[]): string;
3
+ //# sourceMappingURL=formatter2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter2.d.ts","sourceRoot":"","sources":["../src/formatter2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,MAAM,CAK7D"}
@@ -0,0 +1,67 @@
1
+ // REWRITE ALL OF THIS AS A FUNCTION WHICH EXPECTS 2 CONSECUTIVE TOKENS, A CONTEXT, AND RETURNS THE WHITESPACES BETWEEN THESE TOKENS AND A NEW CONTEXT
2
+ export function formatModule(tokens) {
3
+ const context = {
4
+ context: null,
5
+ eolAndIndent: "\n",
6
+ };
7
+ }
8
+ function getDesiredSpaceBetweenTokens(first, second,
9
+ // If 'second' is a comment, the next non-comment token after 'second'.
10
+ // Otherwise, 'second' itself.
11
+ nextNonComment, context) {
12
+ if (first.text.startsWith("//")) {
13
+ return context.eolAndIndent;
14
+ }
15
+ if (second.text.startsWith("//")) {
16
+ // TODO: address end value???
17
+ // TODO: be smart about same-line comments vs next line etc.
18
+ return " ";
19
+ }
20
+ else if (first.text === ":") {
21
+ return " ";
22
+ }
23
+ else if (first.text === ";") {
24
+ return oneOrTwoLineBreaks(first, second, context);
25
+ }
26
+ else if (second.text === ";") {
27
+ context.context = null;
28
+ return "";
29
+ }
30
+ else if (first.text === "[") {
31
+ if (context.context === "in-value" && second.text !== "]") {
32
+ context.eolAndIndent += " ";
33
+ return context.eolAndIndent;
34
+ }
35
+ else {
36
+ return "";
37
+ }
38
+ }
39
+ else if (context.context === "in-value" &&
40
+ ["]", "}", "|}"].includes(nextNonComment.text) &&
41
+ first.text !== ",") {
42
+ context.eolAndIndent = context.eolAndIndent.slice(0, -2);
43
+ return `,${context.eolAndIndent}`;
44
+ }
45
+ else if (first.text === "=") {
46
+ if (context.context === "const") {
47
+ context.context = "in-value";
48
+ }
49
+ return " ";
50
+ }
51
+ else if (first.text === "const") {
52
+ context.context = "const";
53
+ return " ";
54
+ }
55
+ else if (first.text === "struct" || first.text === "enum") {
56
+ return " ";
57
+ }
58
+ else {
59
+ return "";
60
+ }
61
+ }
62
+ function oneOrTwoLineBreaks(first, second, context) {
63
+ return second.line.lineNumber <= first.line.lineNumber + 1
64
+ ? context.eolAndIndent
65
+ : "\n" + context.eolAndIndent;
66
+ }
67
+ //# sourceMappingURL=formatter2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter2.js","sourceRoot":"","sources":["../src/formatter2.ts"],"names":[],"mappings":"AAAA,sJAAsJ;AAItJ,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,MAAM,OAAO,GAAY;QACvB,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAUD,SAAS,4BAA4B,CACnC,KAAY,EACZ,MAAa;AACb,uEAAuE;AACvE,8BAA8B;AAC9B,cAAqB,EACrB,OAAgB;IAEhB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,6BAA6B;QAC7B,4DAA4D;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC9B,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC1D,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;YAC7B,OAAO,OAAO,CAAC,YAAY,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,IACL,OAAO,CAAC,OAAO,KAAK,UAAU;QAC9B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;QAC9C,KAAK,CAAC,IAAI,KAAK,GAAG,EAClB,CAAC;QACD,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAY,EACZ,MAAa,EACb,OAAgB;IAEhB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,YAAY;QACtB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;AAClC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type * from "./types.js";
2
+ export { capitalize, convertCase } from "./casing.js";
3
+ export { encodeInt32 } from "./encoding.js";
4
+ export { unquoteAndUnescape } from "./literals.js";
5
+ export { simpleHash } from "./parser.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { capitalize, convertCase } from "./casing.js";
2
+ export { encodeInt32 } from "./encoding.js";
3
+ export { unquoteAndUnescape } from "./literals.js";
4
+ export { simpleHash } from "./parser.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { expect } from "buckwheat";
2
+ import { describe, it } from "mocha";
3
+ import * as exports from "./index.js";
4
+ describe("index.ts", () => {
5
+ it("exports the right symbols", () => {
6
+ // The actual logic is covered in other unit tests.
7
+ // Here we just want to make sure the right symbols are exported.
8
+ let _;
9
+ expect(exports.convertCase("foo", "UPPER_UNDERSCORE")).toBe("FOO");
10
+ expect(exports.capitalize("foo")).toBe("Foo");
11
+ expect(exports.unquoteAndUnescape('"foo"')).toBe("foo");
12
+ });
13
+ });
14
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,mDAAmD;QACnD,iEAAiE;QACjE,IAAI,CAAiB,CAAC;QACtB,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD;AAED,cAAM,cAAe,YAAW,UAAU,EAAE,UAAU;IACpD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAgB9C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAGpD;AAED,eAAO,MAAM,gBAAgB,gBAAuB,CAAC"}
package/dist/io.js ADDED
@@ -0,0 +1,22 @@
1
+ import * as fs from "fs";
2
+ class RealFileSystem {
3
+ readTextFile(path) {
4
+ try {
5
+ return fs.readFileSync(path, "utf-8");
6
+ }
7
+ catch (error) {
8
+ if (error &&
9
+ typeof error === "object" &&
10
+ "code" in error &&
11
+ error.code === "ENOENT") {
12
+ return undefined;
13
+ }
14
+ throw error;
15
+ }
16
+ }
17
+ writeTextFile(path, contents) {
18
+ fs.writeFileSync(path, contents, "utf-8");
19
+ }
20
+ }
21
+ export const REAL_FILE_SYSTEM = new RealFileSystem();
22
+ //# sourceMappingURL=io.js.map
package/dist/io.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAUzB,MAAM,cAAc;IAClB,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,KAAK,CAAC,IAAI,KAAK,QAAQ,EACvB,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,QAAgB;QAC1C,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare class LanguageServerModuleSet {
2
+ private readonly rootPath;
3
+ constructor(rootPath: string);
4
+ setFileContent(uri: string, content: string): void;
5
+ deleteFile(uri: string): void;
6
+ private reassignModulesToWorkspaces;
7
+ private parseSkirConfig;
8
+ private parseSkirModule;
9
+ /** Finds the workspace which contains the given module URI. */
10
+ private findModuleWorkspace;
11
+ private reassigneModulesTimeout?;
12
+ private readonly moduleBundles;
13
+ private readonly workspaces;
14
+ }
15
+ //# sourceMappingURL=language_server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language_server.d.ts","sourceRoot":"","sources":["../src/language_server.ts"],"names":[],"mappings":"AAeA,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA2BlD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAuB7B,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,eAAe;IAmBvB,+DAA+D;IAC/D,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;CAC5D"}