firefly-compiler 0.4.4

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 (221) hide show
  1. package/.firefly-workspace +1 -0
  2. package/.vscode/settings.json +5 -0
  3. package/LICENSE.txt +21 -0
  4. package/README.md +96 -0
  5. package/bin/firefly.mjs +2 -0
  6. package/compiler/.firefly/package.ff +1 -0
  7. package/compiler/Builder.ff +218 -0
  8. package/compiler/Compiler.ff +241 -0
  9. package/compiler/Dependencies.ff +179 -0
  10. package/compiler/Deriver.ff +647 -0
  11. package/compiler/Dictionaries.ff +205 -0
  12. package/compiler/Environment.ff +166 -0
  13. package/compiler/Inference.ff +1117 -0
  14. package/compiler/JsEmitter.ff +861 -0
  15. package/compiler/JsImporter.ff +56 -0
  16. package/compiler/LspHook.ff +188 -0
  17. package/compiler/Main.ff +237 -0
  18. package/compiler/Parser.ff +1383 -0
  19. package/compiler/Patterns.ff +111 -0
  20. package/compiler/Resolver.ff +620 -0
  21. package/compiler/Substitution.ff +178 -0
  22. package/compiler/Syntax.ff +299 -0
  23. package/compiler/Token.ff +180 -0
  24. package/compiler/Tokenizer.ff +278 -0
  25. package/compiler/Unification.ff +220 -0
  26. package/compiler/Wildcards.ff +50 -0
  27. package/compiler/Workspace.ff +88 -0
  28. package/core/.firefly/package.ff +2 -0
  29. package/core/Any.ff +30 -0
  30. package/core/Array.ff +249 -0
  31. package/core/AssetSystem.ff +61 -0
  32. package/core/Atomic.ff +64 -0
  33. package/core/Bool.ff +13 -0
  34. package/core/BrowserSystem.ff +14 -0
  35. package/core/Buffer.ff +211 -0
  36. package/core/BuildSystem.ff +144 -0
  37. package/core/Channel.ff +131 -0
  38. package/core/Char.ff +18 -0
  39. package/core/Core.ff +58 -0
  40. package/core/Duration.ff +15 -0
  41. package/core/Equal.ff +52 -0
  42. package/core/Error.ff +20 -0
  43. package/core/FileHandle.ff +41 -0
  44. package/core/Float.ff +41 -0
  45. package/core/HttpClient.ff +84 -0
  46. package/core/Instant.ff +9 -0
  47. package/core/Int.ff +61 -0
  48. package/core/IntMap.ff +85 -0
  49. package/core/JsSystem.ff +66 -0
  50. package/core/JsValue.ff +240 -0
  51. package/core/List.ff +440 -0
  52. package/core/Lock.ff +144 -0
  53. package/core/Log.ff +24 -0
  54. package/core/Map.ff +126 -0
  55. package/core/NodeSystem.ff +88 -0
  56. package/core/Nothing.ff +1 -0
  57. package/core/Option.ff +133 -0
  58. package/core/Ordering.ff +157 -0
  59. package/core/Pair.ff +55 -0
  60. package/core/Path.ff +393 -0
  61. package/core/RbMap.ff +216 -0
  62. package/core/Serializable.ff +173 -0
  63. package/core/Set.ff +38 -0
  64. package/core/Show.ff +43 -0
  65. package/core/Stack.ff +263 -0
  66. package/core/Stream.ff +406 -0
  67. package/core/String.ff +175 -0
  68. package/core/StringMap.ff +85 -0
  69. package/core/Task.ff +138 -0
  70. package/core/Try.ff +81 -0
  71. package/core/Unit.ff +3 -0
  72. package/experimental/random/AltGeneric.ff +44 -0
  73. package/experimental/random/Async.ff +68 -0
  74. package/experimental/random/Buffer2.ff +77 -0
  75. package/experimental/random/Cat.ff +12 -0
  76. package/experimental/random/Dictionary.ff +52 -0
  77. package/experimental/random/Example.ff +46 -0
  78. package/experimental/random/Generic.ff +102 -0
  79. package/experimental/random/HappyEyeballs.ff +40 -0
  80. package/experimental/random/HashMap.ff +72 -0
  81. package/experimental/random/IfElseUnit.ff +9 -0
  82. package/experimental/random/InputOutput.ff +23 -0
  83. package/experimental/random/ListVsArray.ff +45 -0
  84. package/experimental/random/Main.ff +44 -0
  85. package/experimental/random/MapTest.ff +67 -0
  86. package/experimental/random/OldTaskSystem.ff +210 -0
  87. package/experimental/random/PatternTest.ff +39 -0
  88. package/experimental/random/Patterns.ff +226 -0
  89. package/experimental/random/ReadBytesTest.ff +10 -0
  90. package/experimental/random/RunLength.ff +65 -0
  91. package/experimental/random/Scrape.ff +51 -0
  92. package/experimental/random/Serialization.ff +217 -0
  93. package/experimental/random/SerializationTest.ff +46 -0
  94. package/experimental/random/Serializer.ff +36 -0
  95. package/experimental/random/StdInOutErr.ff +4 -0
  96. package/experimental/random/Symbols.ff +74 -0
  97. package/experimental/random/Tag.ff +49 -0
  98. package/experimental/random/Tensor.ff +52 -0
  99. package/experimental/random/Try.ff +56 -0
  100. package/experimental/random/Tsv.ff +9 -0
  101. package/experimental/random/TypesAreModules.ff +87 -0
  102. package/experimental/random/blueprints/Blueprint.ff +52 -0
  103. package/experimental/random/blueprints/Main.ff +11 -0
  104. package/experimental/random/blueprints/Pretty.ff +58 -0
  105. package/experimental/random/blueprints/User.ff +64 -0
  106. package/experimental/random/blueprintsystem/BlueprintSystem.ff +48 -0
  107. package/experimental/random/blueprintsystem/Deserialize.ff +53 -0
  108. package/experimental/random/blueprintsystem/ReadJs.ff +13 -0
  109. package/experimental/random/blueprintsystem/User.ff +2 -0
  110. package/experimental/random/kahrs/Kahrs.ff +112 -0
  111. package/experimental/random/kahrs/TestKahrs.ff +22 -0
  112. package/experimental/random/kahrs/TestMap.ff +18 -0
  113. package/experimental/random/streaming/Gzip.ff +3 -0
  114. package/experimental/random/streaming/Main.ff +34 -0
  115. package/experimental/random/streaming/S3Bucket.ff +11 -0
  116. package/experimental/random/streaming/Tar.ff +5 -0
  117. package/experimental/rhymeapp/Main.ff +81 -0
  118. package/experimental/rhymeapp/index.html +14 -0
  119. package/firefly.sh +5 -0
  120. package/fireflysite/Main.ff +13 -0
  121. package/httpserver/.firefly/package.ff +1 -0
  122. package/httpserver/HttpServer.ff +184 -0
  123. package/lsp/.firefly/package.ff +1 -0
  124. package/lsp/CompletionHandler.ff +814 -0
  125. package/lsp/Handler.ff +551 -0
  126. package/lsp/HoverHandler.ff +82 -0
  127. package/lsp/LanguageServer.ff +229 -0
  128. package/lsp/SignatureHelpHandler.ff +55 -0
  129. package/lsp/SymbolHandler.ff +167 -0
  130. package/output/js/ff/compiler/Builder.mjs +483 -0
  131. package/output/js/ff/compiler/Compiler.mjs +410 -0
  132. package/output/js/ff/compiler/Dependencies.mjs +388 -0
  133. package/output/js/ff/compiler/Deriver.mjs +1166 -0
  134. package/output/js/ff/compiler/Dictionaries.mjs +1305 -0
  135. package/output/js/ff/compiler/Environment.mjs +1005 -0
  136. package/output/js/ff/compiler/Inference.mjs +4264 -0
  137. package/output/js/ff/compiler/JsEmitter.mjs +5353 -0
  138. package/output/js/ff/compiler/JsImporter.mjs +262 -0
  139. package/output/js/ff/compiler/LspHook.mjs +789 -0
  140. package/output/js/ff/compiler/Main.mjs +1695 -0
  141. package/output/js/ff/compiler/Parser.mjs +4004 -0
  142. package/output/js/ff/compiler/Patterns.mjs +923 -0
  143. package/output/js/ff/compiler/Resolver.mjs +2303 -0
  144. package/output/js/ff/compiler/Substitution.mjs +1146 -0
  145. package/output/js/ff/compiler/Syntax.mjs +12430 -0
  146. package/output/js/ff/compiler/Token.mjs +3092 -0
  147. package/output/js/ff/compiler/Tokenizer.mjs +589 -0
  148. package/output/js/ff/compiler/Unification.mjs +1748 -0
  149. package/output/js/ff/compiler/Wildcards.mjs +604 -0
  150. package/output/js/ff/compiler/Workspace.mjs +683 -0
  151. package/output/js/ff/core/Any.mjs +139 -0
  152. package/output/js/ff/core/Array.mjs +594 -0
  153. package/output/js/ff/core/AssetSystem.mjs +270 -0
  154. package/output/js/ff/core/Atomic.mjs +186 -0
  155. package/output/js/ff/core/Bool.mjs +141 -0
  156. package/output/js/ff/core/BrowserSystem.mjs +122 -0
  157. package/output/js/ff/core/Buffer.mjs +467 -0
  158. package/output/js/ff/core/BuildSystem.mjs +320 -0
  159. package/output/js/ff/core/Channel.mjs +268 -0
  160. package/output/js/ff/core/Char.mjs +145 -0
  161. package/output/js/ff/core/Core.mjs +300 -0
  162. package/output/js/ff/core/Duration.mjs +112 -0
  163. package/output/js/ff/core/Equal.mjs +175 -0
  164. package/output/js/ff/core/Error.mjs +138 -0
  165. package/output/js/ff/core/FileHandle.mjs +164 -0
  166. package/output/js/ff/core/Float.mjs +214 -0
  167. package/output/js/ff/core/HttpClient.mjs +210 -0
  168. package/output/js/ff/core/Instant.mjs +105 -0
  169. package/output/js/ff/core/Int.mjs +254 -0
  170. package/output/js/ff/core/IntMap.mjs +282 -0
  171. package/output/js/ff/core/JsSystem.mjs +234 -0
  172. package/output/js/ff/core/JsValue.mjs +678 -0
  173. package/output/js/ff/core/List.mjs +2335 -0
  174. package/output/js/ff/core/Lock.mjs +322 -0
  175. package/output/js/ff/core/Log.mjs +159 -0
  176. package/output/js/ff/core/Map.mjs +358 -0
  177. package/output/js/ff/core/NodeSystem.mjs +288 -0
  178. package/output/js/ff/core/Nothing.mjs +100 -0
  179. package/output/js/ff/core/Option.mjs +1002 -0
  180. package/output/js/ff/core/Ordering.mjs +734 -0
  181. package/output/js/ff/core/Pair.mjs +318 -0
  182. package/output/js/ff/core/Path.mjs +768 -0
  183. package/output/js/ff/core/RbMap.mjs +1936 -0
  184. package/output/js/ff/core/Serializable.mjs +434 -0
  185. package/output/js/ff/core/Set.mjs +250 -0
  186. package/output/js/ff/core/Show.mjs +201 -0
  187. package/output/js/ff/core/Stack.mjs +595 -0
  188. package/output/js/ff/core/Stream.mjs +1300 -0
  189. package/output/js/ff/core/String.mjs +433 -0
  190. package/output/js/ff/core/StringMap.mjs +282 -0
  191. package/output/js/ff/core/Task.mjs +345 -0
  192. package/output/js/ff/core/Try.mjs +503 -0
  193. package/output/js/ff/core/Unit.mjs +103 -0
  194. package/package.json +29 -0
  195. package/postgresql/.firefly/include/package-lock.json +250 -0
  196. package/postgresql/.firefly/include/package.json +5 -0
  197. package/postgresql/.firefly/include/prepare.sh +2 -0
  198. package/postgresql/.firefly/package.ff +3 -0
  199. package/postgresql/Pg.ff +530 -0
  200. package/unsafejs/.firefly/package.ff +1 -0
  201. package/unsafejs/UnsafeJs.ff +19 -0
  202. package/vscode/.vscode/launch.json +18 -0
  203. package/vscode/.vscode/tasks.json +33 -0
  204. package/vscode/LICENSE.txt +21 -0
  205. package/vscode/Prepublish.ff +15 -0
  206. package/vscode/README.md +17 -0
  207. package/vscode/client/package-lock.json +544 -0
  208. package/vscode/client/package.json +22 -0
  209. package/vscode/client/src/extension.ts +64 -0
  210. package/vscode/client/tsconfig.json +12 -0
  211. package/vscode/icons/firefly-icon.png +0 -0
  212. package/vscode/icons/firefly-icon.svg +10 -0
  213. package/vscode/icons/firefly-logo-notext.png +0 -0
  214. package/vscode/icons/firefly-logo.png +0 -0
  215. package/vscode/language-configuration.json +39 -0
  216. package/vscode/package-lock.json +3623 -0
  217. package/vscode/package.json +144 -0
  218. package/vscode/snippets-none.json +1 -0
  219. package/vscode/snippets.json +241 -0
  220. package/vscode/syntaxes/firefly.tmLanguage.json +294 -0
  221. package/vscode/tsconfig.json +20 -0
@@ -0,0 +1,544 @@
1
+ {
2
+ "name": "firefly-client",
3
+ "version": "0.0.1",
4
+ "lockfileVersion": 2,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "firefly-client",
9
+ "version": "0.0.1",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "vscode-languageclient": "^8.1.0"
13
+ },
14
+ "devDependencies": {
15
+ "@types/vscode": "^1.75.1",
16
+ "@vscode/test-electron": "^2.2.3"
17
+ },
18
+ "engines": {
19
+ "vscode": "^1.75.0"
20
+ }
21
+ },
22
+ "node_modules/@tootallnate/once": {
23
+ "version": "1.1.2",
24
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
25
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
26
+ "dev": true,
27
+ "engines": {
28
+ "node": ">= 6"
29
+ }
30
+ },
31
+ "node_modules/@types/vscode": {
32
+ "version": "1.76.0",
33
+ "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz",
34
+ "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==",
35
+ "dev": true
36
+ },
37
+ "node_modules/@vscode/test-electron": {
38
+ "version": "2.3.0",
39
+ "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.0.tgz",
40
+ "integrity": "sha512-fwzA9RtazH1GT/sckYlbxu6t5e4VaMXwCVtyLv4UAG0hP6NTfnMaaG25XCfWqlVwFhBMcQXHBCy5dmz2eLUnkw==",
41
+ "dev": true,
42
+ "dependencies": {
43
+ "http-proxy-agent": "^4.0.1",
44
+ "https-proxy-agent": "^5.0.0",
45
+ "jszip": "^3.10.1",
46
+ "semver": "^7.3.8"
47
+ },
48
+ "engines": {
49
+ "node": ">=16"
50
+ }
51
+ },
52
+ "node_modules/agent-base": {
53
+ "version": "6.0.2",
54
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
55
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
56
+ "dev": true,
57
+ "dependencies": {
58
+ "debug": "4"
59
+ },
60
+ "engines": {
61
+ "node": ">= 6.0.0"
62
+ }
63
+ },
64
+ "node_modules/balanced-match": {
65
+ "version": "1.0.2",
66
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
67
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
68
+ },
69
+ "node_modules/brace-expansion": {
70
+ "version": "2.0.1",
71
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
72
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
73
+ "dependencies": {
74
+ "balanced-match": "^1.0.0"
75
+ }
76
+ },
77
+ "node_modules/core-util-is": {
78
+ "version": "1.0.3",
79
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
80
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
81
+ "dev": true
82
+ },
83
+ "node_modules/debug": {
84
+ "version": "4.3.4",
85
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
86
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
87
+ "dev": true,
88
+ "dependencies": {
89
+ "ms": "2.1.2"
90
+ },
91
+ "engines": {
92
+ "node": ">=6.0"
93
+ },
94
+ "peerDependenciesMeta": {
95
+ "supports-color": {
96
+ "optional": true
97
+ }
98
+ }
99
+ },
100
+ "node_modules/http-proxy-agent": {
101
+ "version": "4.0.1",
102
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
103
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
104
+ "dev": true,
105
+ "dependencies": {
106
+ "@tootallnate/once": "1",
107
+ "agent-base": "6",
108
+ "debug": "4"
109
+ },
110
+ "engines": {
111
+ "node": ">= 6"
112
+ }
113
+ },
114
+ "node_modules/https-proxy-agent": {
115
+ "version": "5.0.1",
116
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
117
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
118
+ "dev": true,
119
+ "dependencies": {
120
+ "agent-base": "6",
121
+ "debug": "4"
122
+ },
123
+ "engines": {
124
+ "node": ">= 6"
125
+ }
126
+ },
127
+ "node_modules/immediate": {
128
+ "version": "3.0.6",
129
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
130
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
131
+ "dev": true
132
+ },
133
+ "node_modules/inherits": {
134
+ "version": "2.0.4",
135
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
136
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
137
+ "dev": true
138
+ },
139
+ "node_modules/isarray": {
140
+ "version": "1.0.0",
141
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
142
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
143
+ "dev": true
144
+ },
145
+ "node_modules/jszip": {
146
+ "version": "3.10.1",
147
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
148
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
149
+ "dev": true,
150
+ "dependencies": {
151
+ "lie": "~3.3.0",
152
+ "pako": "~1.0.2",
153
+ "readable-stream": "~2.3.6",
154
+ "setimmediate": "^1.0.5"
155
+ }
156
+ },
157
+ "node_modules/lie": {
158
+ "version": "3.3.0",
159
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
160
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
161
+ "dev": true,
162
+ "dependencies": {
163
+ "immediate": "~3.0.5"
164
+ }
165
+ },
166
+ "node_modules/lru-cache": {
167
+ "version": "6.0.0",
168
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
169
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
170
+ "dependencies": {
171
+ "yallist": "^4.0.0"
172
+ },
173
+ "engines": {
174
+ "node": ">=10"
175
+ }
176
+ },
177
+ "node_modules/minimatch": {
178
+ "version": "5.1.6",
179
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
180
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
181
+ "dependencies": {
182
+ "brace-expansion": "^2.0.1"
183
+ },
184
+ "engines": {
185
+ "node": ">=10"
186
+ }
187
+ },
188
+ "node_modules/ms": {
189
+ "version": "2.1.2",
190
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
191
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
192
+ "dev": true
193
+ },
194
+ "node_modules/pako": {
195
+ "version": "1.0.11",
196
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
197
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
198
+ "dev": true
199
+ },
200
+ "node_modules/process-nextick-args": {
201
+ "version": "2.0.1",
202
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
203
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
204
+ "dev": true
205
+ },
206
+ "node_modules/readable-stream": {
207
+ "version": "2.3.8",
208
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
209
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
210
+ "dev": true,
211
+ "dependencies": {
212
+ "core-util-is": "~1.0.0",
213
+ "inherits": "~2.0.3",
214
+ "isarray": "~1.0.0",
215
+ "process-nextick-args": "~2.0.0",
216
+ "safe-buffer": "~5.1.1",
217
+ "string_decoder": "~1.1.1",
218
+ "util-deprecate": "~1.0.1"
219
+ }
220
+ },
221
+ "node_modules/safe-buffer": {
222
+ "version": "5.1.2",
223
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
224
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
225
+ "dev": true
226
+ },
227
+ "node_modules/semver": {
228
+ "version": "7.3.8",
229
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
230
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
231
+ "dependencies": {
232
+ "lru-cache": "^6.0.0"
233
+ },
234
+ "bin": {
235
+ "semver": "bin/semver.js"
236
+ },
237
+ "engines": {
238
+ "node": ">=10"
239
+ }
240
+ },
241
+ "node_modules/setimmediate": {
242
+ "version": "1.0.5",
243
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
244
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
245
+ "dev": true
246
+ },
247
+ "node_modules/string_decoder": {
248
+ "version": "1.1.1",
249
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
250
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
251
+ "dev": true,
252
+ "dependencies": {
253
+ "safe-buffer": "~5.1.0"
254
+ }
255
+ },
256
+ "node_modules/util-deprecate": {
257
+ "version": "1.0.2",
258
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
259
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
260
+ "dev": true
261
+ },
262
+ "node_modules/vscode-jsonrpc": {
263
+ "version": "8.1.0",
264
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
265
+ "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==",
266
+ "engines": {
267
+ "node": ">=14.0.0"
268
+ }
269
+ },
270
+ "node_modules/vscode-languageclient": {
271
+ "version": "8.1.0",
272
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz",
273
+ "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==",
274
+ "dependencies": {
275
+ "minimatch": "^5.1.0",
276
+ "semver": "^7.3.7",
277
+ "vscode-languageserver-protocol": "3.17.3"
278
+ },
279
+ "engines": {
280
+ "vscode": "^1.67.0"
281
+ }
282
+ },
283
+ "node_modules/vscode-languageserver-protocol": {
284
+ "version": "3.17.3",
285
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz",
286
+ "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==",
287
+ "dependencies": {
288
+ "vscode-jsonrpc": "8.1.0",
289
+ "vscode-languageserver-types": "3.17.3"
290
+ }
291
+ },
292
+ "node_modules/vscode-languageserver-types": {
293
+ "version": "3.17.3",
294
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz",
295
+ "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="
296
+ },
297
+ "node_modules/yallist": {
298
+ "version": "4.0.0",
299
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
300
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
301
+ }
302
+ },
303
+ "dependencies": {
304
+ "@tootallnate/once": {
305
+ "version": "1.1.2",
306
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
307
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
308
+ "dev": true
309
+ },
310
+ "@types/vscode": {
311
+ "version": "1.76.0",
312
+ "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.76.0.tgz",
313
+ "integrity": "sha512-CQcY3+Fe5hNewHnOEAVYj4dd1do/QHliXaknAEYSXx2KEHUzFibDZSKptCon+HPgK55xx20pR+PBJjf0MomnBA==",
314
+ "dev": true
315
+ },
316
+ "@vscode/test-electron": {
317
+ "version": "2.3.0",
318
+ "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.0.tgz",
319
+ "integrity": "sha512-fwzA9RtazH1GT/sckYlbxu6t5e4VaMXwCVtyLv4UAG0hP6NTfnMaaG25XCfWqlVwFhBMcQXHBCy5dmz2eLUnkw==",
320
+ "dev": true,
321
+ "requires": {
322
+ "http-proxy-agent": "^4.0.1",
323
+ "https-proxy-agent": "^5.0.0",
324
+ "jszip": "^3.10.1",
325
+ "semver": "^7.3.8"
326
+ }
327
+ },
328
+ "agent-base": {
329
+ "version": "6.0.2",
330
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
331
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
332
+ "dev": true,
333
+ "requires": {
334
+ "debug": "4"
335
+ }
336
+ },
337
+ "balanced-match": {
338
+ "version": "1.0.2",
339
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
340
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
341
+ },
342
+ "brace-expansion": {
343
+ "version": "2.0.1",
344
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
345
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
346
+ "requires": {
347
+ "balanced-match": "^1.0.0"
348
+ }
349
+ },
350
+ "core-util-is": {
351
+ "version": "1.0.3",
352
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
353
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
354
+ "dev": true
355
+ },
356
+ "debug": {
357
+ "version": "4.3.4",
358
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
359
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
360
+ "dev": true,
361
+ "requires": {
362
+ "ms": "2.1.2"
363
+ }
364
+ },
365
+ "http-proxy-agent": {
366
+ "version": "4.0.1",
367
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
368
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
369
+ "dev": true,
370
+ "requires": {
371
+ "@tootallnate/once": "1",
372
+ "agent-base": "6",
373
+ "debug": "4"
374
+ }
375
+ },
376
+ "https-proxy-agent": {
377
+ "version": "5.0.1",
378
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
379
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
380
+ "dev": true,
381
+ "requires": {
382
+ "agent-base": "6",
383
+ "debug": "4"
384
+ }
385
+ },
386
+ "immediate": {
387
+ "version": "3.0.6",
388
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
389
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
390
+ "dev": true
391
+ },
392
+ "inherits": {
393
+ "version": "2.0.4",
394
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
395
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
396
+ "dev": true
397
+ },
398
+ "isarray": {
399
+ "version": "1.0.0",
400
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
401
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
402
+ "dev": true
403
+ },
404
+ "jszip": {
405
+ "version": "3.10.1",
406
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
407
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
408
+ "dev": true,
409
+ "requires": {
410
+ "lie": "~3.3.0",
411
+ "pako": "~1.0.2",
412
+ "readable-stream": "~2.3.6",
413
+ "setimmediate": "^1.0.5"
414
+ }
415
+ },
416
+ "lie": {
417
+ "version": "3.3.0",
418
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
419
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
420
+ "dev": true,
421
+ "requires": {
422
+ "immediate": "~3.0.5"
423
+ }
424
+ },
425
+ "lru-cache": {
426
+ "version": "6.0.0",
427
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
428
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
429
+ "requires": {
430
+ "yallist": "^4.0.0"
431
+ }
432
+ },
433
+ "minimatch": {
434
+ "version": "5.1.6",
435
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
436
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
437
+ "requires": {
438
+ "brace-expansion": "^2.0.1"
439
+ }
440
+ },
441
+ "ms": {
442
+ "version": "2.1.2",
443
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
444
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
445
+ "dev": true
446
+ },
447
+ "pako": {
448
+ "version": "1.0.11",
449
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
450
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
451
+ "dev": true
452
+ },
453
+ "process-nextick-args": {
454
+ "version": "2.0.1",
455
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
456
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
457
+ "dev": true
458
+ },
459
+ "readable-stream": {
460
+ "version": "2.3.8",
461
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
462
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
463
+ "dev": true,
464
+ "requires": {
465
+ "core-util-is": "~1.0.0",
466
+ "inherits": "~2.0.3",
467
+ "isarray": "~1.0.0",
468
+ "process-nextick-args": "~2.0.0",
469
+ "safe-buffer": "~5.1.1",
470
+ "string_decoder": "~1.1.1",
471
+ "util-deprecate": "~1.0.1"
472
+ }
473
+ },
474
+ "safe-buffer": {
475
+ "version": "5.1.2",
476
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
477
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
478
+ "dev": true
479
+ },
480
+ "semver": {
481
+ "version": "7.3.8",
482
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
483
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
484
+ "requires": {
485
+ "lru-cache": "^6.0.0"
486
+ }
487
+ },
488
+ "setimmediate": {
489
+ "version": "1.0.5",
490
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
491
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
492
+ "dev": true
493
+ },
494
+ "string_decoder": {
495
+ "version": "1.1.1",
496
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
497
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
498
+ "dev": true,
499
+ "requires": {
500
+ "safe-buffer": "~5.1.0"
501
+ }
502
+ },
503
+ "util-deprecate": {
504
+ "version": "1.0.2",
505
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
506
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
507
+ "dev": true
508
+ },
509
+ "vscode-jsonrpc": {
510
+ "version": "8.1.0",
511
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz",
512
+ "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw=="
513
+ },
514
+ "vscode-languageclient": {
515
+ "version": "8.1.0",
516
+ "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz",
517
+ "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==",
518
+ "requires": {
519
+ "minimatch": "^5.1.0",
520
+ "semver": "^7.3.7",
521
+ "vscode-languageserver-protocol": "3.17.3"
522
+ }
523
+ },
524
+ "vscode-languageserver-protocol": {
525
+ "version": "3.17.3",
526
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz",
527
+ "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==",
528
+ "requires": {
529
+ "vscode-jsonrpc": "8.1.0",
530
+ "vscode-languageserver-types": "3.17.3"
531
+ }
532
+ },
533
+ "vscode-languageserver-types": {
534
+ "version": "3.17.3",
535
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz",
536
+ "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA=="
537
+ },
538
+ "yallist": {
539
+ "version": "4.0.0",
540
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
541
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
542
+ }
543
+ }
544
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "firefly-client",
3
+ "description": "Firefly language server client",
4
+ "author": "Firefly team",
5
+ "license": "MIT",
6
+ "version": "0.0.1",
7
+ "publisher": "Firefly team",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/Ahnfelt/firefly-boot"
11
+ },
12
+ "engines": {
13
+ "vscode": "^1.75.0"
14
+ },
15
+ "dependencies": {
16
+ "vscode-languageclient": "^8.1.0"
17
+ },
18
+ "devDependencies": {
19
+ "@types/vscode": "^1.75.1",
20
+ "@vscode/test-electron": "^2.2.3"
21
+ }
22
+ }
@@ -0,0 +1,64 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as vscode from 'vscode';
4
+
5
+ import {
6
+ LanguageClient,
7
+ LanguageClientOptions,
8
+ ServerOptions,
9
+ TransportKind
10
+ } from 'vscode-languageclient/node';
11
+
12
+ let client: LanguageClient;
13
+
14
+ export function activate(context: vscode.ExtensionContext) {
15
+
16
+ const fireflyPath = fs.existsSync(path.join(context.extensionPath, '.vsixmanifest'))
17
+ ? path.join(context.extensionPath, 'firefly')
18
+ : path.join(context.extensionPath, '..')
19
+
20
+ const fireflyCompiler = fireflyPath + '/output/js/ff/compiler/Main.mjs';
21
+
22
+ context.subscriptions.push(vscode.commands.registerCommand('extension.firefly-lang.getFireflyPath', config => {
23
+ return fireflyPath;
24
+ }));
25
+
26
+ context.subscriptions.push(vscode.commands.registerCommand('extension.firefly-lang.getFireflyCompiler', config => {
27
+ return fireflyCompiler;
28
+ }));
29
+
30
+ const runOrDebug = {
31
+ module: fireflyCompiler,
32
+ args: ['LanguageServer.ff'],
33
+ options: {cwd: fireflyPath + '/lsp'},
34
+ transport: TransportKind.stdio // ipc
35
+ };
36
+
37
+ const serverOptions: ServerOptions = {
38
+ run: runOrDebug,
39
+ debug: runOrDebug
40
+ };
41
+
42
+ const clientOptions: LanguageClientOptions = {
43
+ documentSelector: [{ scheme: 'file', language: 'firefly' }],
44
+ //synchronize: {
45
+ // fileEvents: vscode.workspace.createFileSystemWatcher('**/.clientrc')
46
+ //}
47
+ };
48
+
49
+ client = new LanguageClient(
50
+ 'firefly',
51
+ 'Firefly Language Server',
52
+ serverOptions,
53
+ clientOptions
54
+ );
55
+
56
+ client.start();
57
+ }
58
+
59
+ export function deactivate(): Thenable<void> | undefined {
60
+ if (!client) {
61
+ return undefined;
62
+ }
63
+ return client.stop();
64
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "target": "es2020",
5
+ "lib": ["es2020"],
6
+ "outDir": "out",
7
+ "rootDir": "src",
8
+ "sourceMap": true
9
+ },
10
+ "include": ["src"],
11
+ "exclude": ["node_modules", ".vscode-test"]
12
+ }
Binary file
@@ -0,0 +1,10 @@
1
+ <svg width="19" height="19" viewBox="0 0 19 19" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_1_3)">
3
+ <path d="M6.38484 13.7081V4.98083H11.9758V6.30611H7.96581V8.67543H11.5922V10.0007H7.96581V13.7081H6.38484ZM13.4161 13.7081V4.98083H19.007V6.30611H14.9971V8.67543H18.6235V10.0007H14.9971V13.7081H13.4161Z" fill="#D28E3D"/>
4
+ </g>
5
+ <defs>
6
+ <clipPath id="clip0_1_3">
7
+ <rect width="19" height="19" fill="white"/>
8
+ </clipPath>
9
+ </defs>
10
+ </svg>
Binary file