firefly-compiler 0.5.35 → 0.5.37

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 (225) hide show
  1. package/.hintrc +4 -4
  2. package/.vscode/settings.json +4 -4
  3. package/bin/Release.ff +157 -154
  4. package/bin/firefly.mjs +1 -1
  5. package/compiler/Builder.ff +275 -277
  6. package/compiler/Compiler.ff +234 -233
  7. package/compiler/Dependencies.ff +186 -187
  8. package/compiler/DependencyLock.ff +17 -17
  9. package/compiler/Deriver.ff +23 -31
  10. package/compiler/Dictionaries.ff +1 -1
  11. package/compiler/Inference.ff +43 -20
  12. package/compiler/JsEmitter.ff +1437 -1282
  13. package/compiler/LspHook.ff +202 -202
  14. package/compiler/Main.ff +25 -24
  15. package/compiler/ModuleCache.ff +178 -178
  16. package/compiler/Parser.ff +36 -109
  17. package/compiler/Resolver.ff +5 -8
  18. package/compiler/Substitution.ff +1 -1
  19. package/compiler/Syntax.ff +1 -16
  20. package/compiler/Token.ff +9 -0
  21. package/compiler/Tokenizer.ff +4 -0
  22. package/compiler/Workspace.ff +88 -88
  23. package/core/.firefly/include/package.json +5 -5
  24. package/core/.firefly/package.ff +2 -2
  25. package/core/Any.ff +26 -30
  26. package/core/Array.ff +298 -265
  27. package/core/Atomic.ff +63 -64
  28. package/core/Box.ff +7 -7
  29. package/core/BrowserSystem.ff +40 -40
  30. package/core/Buffer.ff +185 -152
  31. package/core/BuildSystem.ff +156 -148
  32. package/core/Channel.ff +95 -92
  33. package/core/Char.ff +3 -2
  34. package/core/Core.ff +16 -23
  35. package/core/Crypto.ff +94 -96
  36. package/core/Equal.ff +41 -36
  37. package/core/Error.ff +15 -10
  38. package/core/FileHandle.ff +45 -37
  39. package/core/Float.ff +176 -200
  40. package/core/HttpClient.ff +142 -148
  41. package/core/Instant.ff +6 -8
  42. package/core/Int.ff +40 -24
  43. package/core/IntMap.ff +61 -39
  44. package/core/Js.ff +305 -0
  45. package/core/JsSystem.ff +135 -114
  46. package/core/JsValue.ff +303 -159
  47. package/core/Json.ff +423 -443
  48. package/core/List.ff +482 -486
  49. package/core/Lock.ff +108 -144
  50. package/core/Log.ff +25 -14
  51. package/core/NodeSystem.ff +198 -191
  52. package/core/Ordering.ff +160 -161
  53. package/core/Path.ff +377 -409
  54. package/core/Queue.ff +90 -0
  55. package/core/Random.ff +140 -134
  56. package/core/RbMap.ff +216 -216
  57. package/core/Serializable.ff +16 -13
  58. package/core/Show.ff +44 -43
  59. package/core/SourceLocation.ff +68 -68
  60. package/core/Stream.ff +1 -1
  61. package/core/String.ff +224 -202
  62. package/core/StringMap.ff +58 -36
  63. package/core/Task.ff +165 -149
  64. package/experimental/benchmarks/ListGrab.ff +23 -23
  65. package/experimental/benchmarks/ListGrab.java +55 -55
  66. package/experimental/benchmarks/Pyrotek45.ff +30 -30
  67. package/experimental/benchmarks/Pyrotek45.java +64 -64
  68. package/experimental/bidirectional/Bidi.ff +88 -88
  69. package/experimental/lines/Main.ff +40 -0
  70. package/experimental/random/Index.ff +53 -53
  71. package/experimental/random/Process.ff +120 -120
  72. package/experimental/random/RunLength.ff +65 -65
  73. package/experimental/random/Scrape.ff +51 -51
  74. package/experimental/random/Symbols.ff +73 -73
  75. package/experimental/random/Tensor.ff +52 -52
  76. package/experimental/random/Units.ff +36 -36
  77. package/experimental/s3/S3TestAuthorizationHeader.ff +39 -39
  78. package/experimental/s3/S3TestPut.ff +16 -16
  79. package/experimental/tests/TestJson.ff +26 -26
  80. package/firefly.sh +0 -0
  81. package/fireflysite/.firefly/package.ff +4 -4
  82. package/fireflysite/CommunityOverview.ff +20 -20
  83. package/fireflysite/CountingButtonDemo.ff +58 -58
  84. package/fireflysite/DocumentParser.ff +325 -331
  85. package/fireflysite/ExamplesOverview.ff +40 -40
  86. package/fireflysite/FrontPage.ff +344 -344
  87. package/fireflysite/GettingStarted.ff +45 -45
  88. package/fireflysite/Guide.ff +456 -456
  89. package/fireflysite/Main.ff +163 -152
  90. package/fireflysite/MatchingPasswordsDemo.ff +82 -82
  91. package/fireflysite/PackagesOverview.ff +49 -49
  92. package/fireflysite/PostgresqlDemo.ff +34 -34
  93. package/fireflysite/ReferenceAll.ff +18 -18
  94. package/fireflysite/ReferenceIntroduction.ff +11 -11
  95. package/fireflysite/Styles.ff +567 -567
  96. package/fireflysite/Test.ff +121 -62
  97. package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -209
  98. package/fireflysite/assets/markdown/reference/EmittedJavascript.md +65 -65
  99. package/fireflysite/assets/markdown/reference/Exceptions.md +101 -101
  100. package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +364 -364
  101. package/fireflysite/assets/markdown/reference/JavascriptInterop.md +235 -172
  102. package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -162
  103. package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -48
  104. package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -224
  105. package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -86
  106. package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -99
  107. package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -100
  108. package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -184
  109. package/fireflysite/assets/markdown/scratch/ControlFlow.md +136 -136
  110. package/fireflysite/assets/markdown/scratch/Toc.md +40 -40
  111. package/lsp/.firefly/package.ff +1 -1
  112. package/lsp/CompletionHandler.ff +827 -827
  113. package/lsp/Handler.ff +714 -714
  114. package/lsp/HoverHandler.ff +79 -79
  115. package/lsp/LanguageServer.ff +272 -272
  116. package/lsp/SignatureHelpHandler.ff +55 -55
  117. package/lsp/SymbolHandler.ff +181 -181
  118. package/lsp/TestReferences.ff +17 -17
  119. package/lsp/TestReferencesCase.ff +7 -7
  120. package/lsp/stderr.txt +1 -1
  121. package/lsp/stdout.txt +34 -34
  122. package/lux/.firefly/package.ff +1 -1
  123. package/lux/Css.ff +648 -648
  124. package/lux/CssTest.ff +48 -48
  125. package/lux/Lux.ff +608 -617
  126. package/lux/LuxEvent.ff +79 -116
  127. package/lux/Main.ff +123 -123
  128. package/lux/Main2.ff +143 -143
  129. package/lux/TestDry.ff +28 -28
  130. package/output/js/ff/compiler/Builder.mjs +72 -71
  131. package/output/js/ff/compiler/Compiler.mjs +19 -13
  132. package/output/js/ff/compiler/Dependencies.mjs +8 -7
  133. package/output/js/ff/compiler/DependencyLock.mjs +6 -4
  134. package/output/js/ff/compiler/Deriver.mjs +26 -24
  135. package/output/js/ff/compiler/Dictionaries.mjs +14 -18
  136. package/output/js/ff/compiler/Environment.mjs +6 -4
  137. package/output/js/ff/compiler/Inference.mjs +238 -164
  138. package/output/js/ff/compiler/JsEmitter.mjs +1160 -350
  139. package/output/js/ff/compiler/JsImporter.mjs +20 -18
  140. package/output/js/ff/compiler/LspHook.mjs +12 -10
  141. package/output/js/ff/compiler/Main.mjs +61 -41
  142. package/output/js/ff/compiler/ModuleCache.mjs +10 -8
  143. package/output/js/ff/compiler/Parser.mjs +153 -669
  144. package/output/js/ff/compiler/Patterns.mjs +12 -10
  145. package/output/js/ff/compiler/Resolver.mjs +52 -78
  146. package/output/js/ff/compiler/Substitution.mjs +12 -16
  147. package/output/js/ff/compiler/Syntax.mjs +50 -341
  148. package/output/js/ff/compiler/Token.mjs +126 -4
  149. package/output/js/ff/compiler/Tokenizer.mjs +62 -52
  150. package/output/js/ff/compiler/Unification.mjs +74 -90
  151. package/output/js/ff/compiler/Wildcards.mjs +4 -2
  152. package/output/js/ff/compiler/Workspace.mjs +26 -20
  153. package/output/js/ff/core/Any.mjs +20 -20
  154. package/output/js/ff/core/Array.mjs +268 -175
  155. package/output/js/ff/core/AssetSystem.mjs +8 -6
  156. package/output/js/ff/core/Atomic.mjs +84 -52
  157. package/output/js/ff/core/Bool.mjs +6 -4
  158. package/output/js/ff/core/BrowserSystem.mjs +38 -29
  159. package/output/js/ff/core/Buffer.mjs +285 -133
  160. package/output/js/ff/core/BuildSystem.mjs +36 -56
  161. package/output/js/ff/core/Channel.mjs +250 -97
  162. package/output/js/ff/core/Char.mjs +5 -3
  163. package/output/js/ff/core/Core.mjs +28 -34
  164. package/output/js/ff/core/Crypto.mjs +30 -52
  165. package/output/js/ff/core/Duration.mjs +4 -2
  166. package/output/js/ff/core/Equal.mjs +14 -12
  167. package/output/js/ff/core/Error.mjs +17 -11
  168. package/output/js/ff/core/FileHandle.mjs +76 -38
  169. package/output/js/ff/core/Float.mjs +92 -160
  170. package/output/js/ff/core/HttpClient.mjs +208 -76
  171. package/output/js/ff/core/Instant.mjs +8 -10
  172. package/output/js/ff/core/Int.mjs +36 -26
  173. package/output/js/ff/core/IntMap.mjs +79 -33
  174. package/output/js/ff/core/Js.mjs +751 -0
  175. package/output/js/ff/core/JsSystem.mjs +54 -60
  176. package/output/js/ff/core/JsValue.mjs +294 -143
  177. package/output/js/ff/core/Json.mjs +443 -253
  178. package/output/js/ff/core/List.mjs +262 -214
  179. package/output/js/ff/core/Lock.mjs +156 -125
  180. package/output/js/ff/core/Log.mjs +20 -10
  181. package/output/js/ff/core/Map.mjs +10 -8
  182. package/output/js/ff/core/NodeSystem.mjs +189 -123
  183. package/output/js/ff/core/Nothing.mjs +4 -2
  184. package/output/js/ff/core/Option.mjs +40 -38
  185. package/output/js/ff/core/Ordering.mjs +26 -20
  186. package/output/js/ff/core/Pair.mjs +4 -2
  187. package/output/js/ff/core/Path.mjs +517 -315
  188. package/output/js/ff/core/Queue.mjs +306 -0
  189. package/output/js/ff/core/Random.mjs +141 -77
  190. package/output/js/ff/core/RbMap.mjs +36 -34
  191. package/output/js/ff/core/Serializable.mjs +44 -28
  192. package/output/js/ff/core/Set.mjs +6 -4
  193. package/output/js/ff/core/Show.mjs +8 -6
  194. package/output/js/ff/core/SourceLocation.mjs +4 -2
  195. package/output/js/ff/core/Stream.mjs +30 -50
  196. package/output/js/ff/core/String.mjs +263 -172
  197. package/output/js/ff/core/StringMap.mjs +77 -31
  198. package/output/js/ff/core/Task.mjs +91 -76
  199. package/output/js/ff/core/Try.mjs +20 -18
  200. package/output/js/ff/core/Unit.mjs +4 -2
  201. package/package.json +1 -1
  202. package/postgresql/Pg.ff +53 -59
  203. package/rpc/.firefly/package.ff +1 -1
  204. package/rpc/Rpc.ff +70 -70
  205. package/s3/.firefly/package.ff +1 -1
  206. package/s3/S3.ff +92 -94
  207. package/vscode/LICENSE.txt +21 -21
  208. package/vscode/Prepublish.ff +15 -15
  209. package/vscode/README.md +16 -16
  210. package/vscode/client/package-lock.json +544 -544
  211. package/vscode/client/package.json +22 -22
  212. package/vscode/client/src/extension.ts +104 -104
  213. package/vscode/icons/firefly-icon.svg +10 -10
  214. package/vscode/language-configuration.json +61 -61
  215. package/vscode/package-lock.json +3623 -3623
  216. package/vscode/package.json +1 -1
  217. package/vscode/snippets.json +241 -241
  218. package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
  219. package/webserver/.firefly/include/package.json +5 -5
  220. package/webserver/.firefly/package.ff +2 -2
  221. package/webserver/WebServer.ff +647 -685
  222. package/websocket/.firefly/package.ff +1 -1
  223. package/websocket/WebSocket.ff +100 -131
  224. package/core/UnsafeJs.ff +0 -42
  225. package/output/js/ff/core/UnsafeJs.mjs +0 -191
@@ -4,7 +4,7 @@
4
4
  "description": "Firefly language support",
5
5
  "author": "Firefly team",
6
6
  "license": "MIT",
7
- "version": "0.5.35",
7
+ "version": "0.5.37",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/Ahnfelt/firefly-boot"
@@ -1,241 +1,241 @@
1
- {
2
- "main": {
3
- "prefix": "_main",
4
- "body": [
5
- "main(system: NodeSystem) {",
6
- " $0",
7
- "}"
8
- ],
9
- "description": "Main function"
10
- },
11
- "nodeMain": {
12
- "prefix": "_nodeMain",
13
- "body": [
14
- "nodeMain(system: NodeSystem) {",
15
- " $0",
16
- "}"
17
- ],
18
- "description": "Node main function"
19
- },
20
- "browserMain": {
21
- "prefix": "_browserMain",
22
- "body": [
23
- "browserMain(system: BrowserSystem) {",
24
- " $0",
25
- "}"
26
- ],
27
- "description": "Browser main function"
28
- },
29
- "buildMain": {
30
- "prefix": "_buildMain",
31
- "body": [
32
- "buildMain(system: BuildSystem) {",
33
- " $0",
34
- "}"
35
- ],
36
- "description": "Build main function"
37
- },
38
- "webapp": {
39
- "prefix": "_webapp",
40
- "body": [
41
- "dependency ff:httpserver:0.0.0",
42
- "import HttpServer from ff:httpserver",
43
- "",
44
- "browserMain(system: BrowserSystem): Unit {",
45
- " let response = system.httpClient().fetch(\"http://localhost:8080/hello\")",
46
- " let window = system.js().globalThis().get(\"window\")",
47
- " window.call1(\"alert\", response.readText())",
48
- "}",
49
- "",
50
- "nodeMain(system: NodeSystem): Unit {",
51
- " HttpServer.listen(system, \"localhost\", 8080) {request, response =>",
52
- " if(request.path() == \"/\") {",
53
- " response.setHeader(\"Content-Type\", [\"text/html; charset=UTF-8\"])",
54
- " response.writeText(\"<!doctype html>\")",
55
- " response.writeText(\"<script type='module' src='/js/script/script/WebApp.mjs'></script>\")",
56
- " } elseIf {request.path() == \"/hello\"} {",
57
- " response.setHeader(\"Content-Type\", [\"text/plain; charset=UTF-8\"])",
58
- " response.writeText(\"Hello from server!\")",
59
- " } elseIf {request.path().startsWith(\"/js/\") && !request.path().contains(\"..\")} {",
60
- " response.setHeader(\"Content-Type\", [\"text/javascript; charset=UTF-8\"])",
61
- " response.writeText(system.assets().readText(request.path()))",
62
- " } else {",
63
- " response.writeStatus(404, Some(\"Not found\"))",
64
- " }",
65
- " }",
66
- "}",
67
- "",
68
- "buildMain(system: BuildSystem) {",
69
- " let browser = system.compileForBrowser(\"WebApp.ff\")",
70
- " let assets = AssetSystem.create().addAssets(\"/js\", browser.assets())",
71
- " system.setAssets(assets)",
72
- "}",
73
- "",
74
- "// To run this, name your file WebApp.ff and type:",
75
- "// firefly WebApp.ff"
76
- ],
77
- "description": "A tiny client + server webapp"
78
- },
79
- "extend": {
80
- "prefix": "_extend",
81
- "body": [
82
- "extend ${1:self}: $2 {",
83
- " $0",
84
- "}"
85
- ],
86
- "description": "Extend a type with methods"
87
- },
88
- "data": {
89
- "prefix": "_data",
90
- "body": [
91
- "data ${1}($2) {$0}"
92
- ],
93
- "description": "Data type declaration"
94
- },
95
- "class": {
96
- "prefix": "_class",
97
- "body": [
98
- "class ${1}($2) {$0}"
99
- ],
100
- "description": "Class type declaration"
101
- },
102
- "capability": {
103
- "prefix": "_capability",
104
- "body": [
105
- "capability ${1}($2) {$0}"
106
- ],
107
- "description": "Capability type declaration"
108
- },
109
- "package": {
110
- "prefix": "_package",
111
- "body": [
112
- "package $1:$2:$3"
113
- ],
114
- "description": "Package declaration"
115
- },
116
- "dependency": {
117
- "prefix": "_dependency",
118
- "body": [
119
- "dependency $1:$2:$3"
120
- ],
121
- "description": "Dependency declaration"
122
- },
123
- "import": {
124
- "prefix": "_import",
125
- "body": [
126
- "import $1 from $2:$3"
127
- ],
128
- "description": "Import declaration"
129
- },
130
- "function": {
131
- "prefix": "_function",
132
- "body": [
133
- "function $1($2): $3 {",
134
- " $0",
135
- "}"
136
- ],
137
- "description": "Function definition"
138
- },
139
- "let": {
140
- "prefix": "_let",
141
- "body": [
142
- "let $1 = $0"
143
- ],
144
- "description": "Immutable variable definition"
145
- },
146
- "mutable": {
147
- "prefix": "_mutable",
148
- "body": [
149
- "mutable $1 = $0"
150
- ],
151
- "description": "Mutable variable definition"
152
- },
153
- "if": {
154
- "prefix": "_if",
155
- "body": [
156
- "if($1) {",
157
- " $0",
158
- "}"
159
- ],
160
- "description": "If expression"
161
- },
162
- "else": {
163
- "prefix": "_else",
164
- "body": [
165
- "else {",
166
- " $0",
167
- "}"
168
- ],
169
- "description": "Else expression part"
170
- },
171
- "elseif": {
172
- "prefix": "_elseif",
173
- "body": [
174
- "elseIf {$1} {",
175
- " $0",
176
- "}"
177
- ],
178
- "description": "ElseIf expression part"
179
- },
180
- "try": {
181
- "prefix": "_try",
182
- "body": [
183
- "try {",
184
- " $1",
185
- "} catch {| ${2:MyException e}, error =>",
186
- " $3",
187
- "} finally {",
188
- " $0",
189
- "} grab()"
190
- ],
191
- "description": "Try catch finanlly expression"
192
- },
193
- "throw": {
194
- "prefix": "_throw",
195
- "body": [
196
- "throw(${1:MyException()})"
197
- ],
198
- "description": "Throw expression"
199
- },
200
- "while": {
201
- "prefix": "_while",
202
- "body": [
203
- "while {$1} {",
204
- " $0",
205
- "}"
206
- ],
207
- "description": "While expression"
208
- },
209
- "do": {
210
- "prefix": "_do",
211
- "body": [
212
- "do {",
213
- " $0",
214
- "}"
215
- ],
216
- "description": "Do expression"
217
- },
218
- "dowhile": {
219
- "prefix": "_dowhile",
220
- "body": [
221
- "doWhile {",
222
- " $0",
223
- "}"
224
- ],
225
- "description": "Do while expression"
226
- },
227
- "log": {
228
- "prefix": "_log",
229
- "body": [
230
- "Log.trace(\"$1: \" + $1)"
231
- ],
232
- "description": "Trace expression"
233
- },
234
- "logg": {
235
- "prefix": "_logg",
236
- "body": [
237
- "Log.trace(\"$TM_FILENAME_BASE $RANDOM_HEX\")"
238
- ],
239
- "description": "Trace location"
240
- }
241
- }
1
+ {
2
+ "main": {
3
+ "prefix": "_main",
4
+ "body": [
5
+ "main(system: NodeSystem) {",
6
+ " $0",
7
+ "}"
8
+ ],
9
+ "description": "Main function"
10
+ },
11
+ "nodeMain": {
12
+ "prefix": "_nodeMain",
13
+ "body": [
14
+ "nodeMain(system: NodeSystem) {",
15
+ " $0",
16
+ "}"
17
+ ],
18
+ "description": "Node main function"
19
+ },
20
+ "browserMain": {
21
+ "prefix": "_browserMain",
22
+ "body": [
23
+ "browserMain(system: BrowserSystem) {",
24
+ " $0",
25
+ "}"
26
+ ],
27
+ "description": "Browser main function"
28
+ },
29
+ "buildMain": {
30
+ "prefix": "_buildMain",
31
+ "body": [
32
+ "buildMain(system: BuildSystem) {",
33
+ " $0",
34
+ "}"
35
+ ],
36
+ "description": "Build main function"
37
+ },
38
+ "webapp": {
39
+ "prefix": "_webapp",
40
+ "body": [
41
+ "dependency ff:httpserver:0.0.0",
42
+ "import HttpServer from ff:httpserver",
43
+ "",
44
+ "browserMain(system: BrowserSystem): Unit {",
45
+ " let response = system.httpClient().fetch(\"http://localhost:8080/hello\")",
46
+ " let window = system.js().globalThis().get(\"window\")",
47
+ " window.call1(\"alert\", response.readText())",
48
+ "}",
49
+ "",
50
+ "nodeMain(system: NodeSystem): Unit {",
51
+ " HttpServer.listen(system, \"localhost\", 8080) {request, response =>",
52
+ " if(request.path() == \"/\") {",
53
+ " response.setHeader(\"Content-Type\", [\"text/html; charset=UTF-8\"])",
54
+ " response.writeText(\"<!doctype html>\")",
55
+ " response.writeText(\"<script type='module' src='/js/script/script/WebApp.mjs'></script>\")",
56
+ " } elseIf {request.path() == \"/hello\"} {",
57
+ " response.setHeader(\"Content-Type\", [\"text/plain; charset=UTF-8\"])",
58
+ " response.writeText(\"Hello from server!\")",
59
+ " } elseIf {request.path().startsWith(\"/js/\") && !request.path().contains(\"..\")} {",
60
+ " response.setHeader(\"Content-Type\", [\"text/javascript; charset=UTF-8\"])",
61
+ " response.writeText(system.assets().readText(request.path()))",
62
+ " } else {",
63
+ " response.writeStatus(404, Some(\"Not found\"))",
64
+ " }",
65
+ " }",
66
+ "}",
67
+ "",
68
+ "buildMain(system: BuildSystem) {",
69
+ " let browser = system.compileForBrowser(\"WebApp.ff\")",
70
+ " let assets = AssetSystem.create().addAssets(\"/js\", browser.assets())",
71
+ " system.setAssets(assets)",
72
+ "}",
73
+ "",
74
+ "// To run this, name your file WebApp.ff and type:",
75
+ "// firefly WebApp.ff"
76
+ ],
77
+ "description": "A tiny client + server webapp"
78
+ },
79
+ "extend": {
80
+ "prefix": "_extend",
81
+ "body": [
82
+ "extend ${1:self}: $2 {",
83
+ " $0",
84
+ "}"
85
+ ],
86
+ "description": "Extend a type with methods"
87
+ },
88
+ "data": {
89
+ "prefix": "_data",
90
+ "body": [
91
+ "data ${1}($2) {$0}"
92
+ ],
93
+ "description": "Data type declaration"
94
+ },
95
+ "class": {
96
+ "prefix": "_class",
97
+ "body": [
98
+ "class ${1}($2) {$0}"
99
+ ],
100
+ "description": "Class type declaration"
101
+ },
102
+ "capability": {
103
+ "prefix": "_capability",
104
+ "body": [
105
+ "capability ${1}($2) {$0}"
106
+ ],
107
+ "description": "Capability type declaration"
108
+ },
109
+ "package": {
110
+ "prefix": "_package",
111
+ "body": [
112
+ "package $1:$2:$3"
113
+ ],
114
+ "description": "Package declaration"
115
+ },
116
+ "dependency": {
117
+ "prefix": "_dependency",
118
+ "body": [
119
+ "dependency $1:$2:$3"
120
+ ],
121
+ "description": "Dependency declaration"
122
+ },
123
+ "import": {
124
+ "prefix": "_import",
125
+ "body": [
126
+ "import $1 from $2:$3"
127
+ ],
128
+ "description": "Import declaration"
129
+ },
130
+ "function": {
131
+ "prefix": "_function",
132
+ "body": [
133
+ "function $1($2): $3 {",
134
+ " $0",
135
+ "}"
136
+ ],
137
+ "description": "Function definition"
138
+ },
139
+ "let": {
140
+ "prefix": "_let",
141
+ "body": [
142
+ "let $1 = $0"
143
+ ],
144
+ "description": "Immutable variable definition"
145
+ },
146
+ "mutable": {
147
+ "prefix": "_mutable",
148
+ "body": [
149
+ "mutable $1 = $0"
150
+ ],
151
+ "description": "Mutable variable definition"
152
+ },
153
+ "if": {
154
+ "prefix": "_if",
155
+ "body": [
156
+ "if($1) {",
157
+ " $0",
158
+ "}"
159
+ ],
160
+ "description": "If expression"
161
+ },
162
+ "else": {
163
+ "prefix": "_else",
164
+ "body": [
165
+ "else {",
166
+ " $0",
167
+ "}"
168
+ ],
169
+ "description": "Else expression part"
170
+ },
171
+ "elseif": {
172
+ "prefix": "_elseif",
173
+ "body": [
174
+ "elseIf {$1} {",
175
+ " $0",
176
+ "}"
177
+ ],
178
+ "description": "ElseIf expression part"
179
+ },
180
+ "try": {
181
+ "prefix": "_try",
182
+ "body": [
183
+ "try {",
184
+ " $1",
185
+ "} catch {| ${2:MyException e}, error =>",
186
+ " $3",
187
+ "} finally {",
188
+ " $0",
189
+ "} grab()"
190
+ ],
191
+ "description": "Try catch finanlly expression"
192
+ },
193
+ "throw": {
194
+ "prefix": "_throw",
195
+ "body": [
196
+ "throw(${1:MyException()})"
197
+ ],
198
+ "description": "Throw expression"
199
+ },
200
+ "while": {
201
+ "prefix": "_while",
202
+ "body": [
203
+ "while {$1} {",
204
+ " $0",
205
+ "}"
206
+ ],
207
+ "description": "While expression"
208
+ },
209
+ "do": {
210
+ "prefix": "_do",
211
+ "body": [
212
+ "do {",
213
+ " $0",
214
+ "}"
215
+ ],
216
+ "description": "Do expression"
217
+ },
218
+ "dowhile": {
219
+ "prefix": "_dowhile",
220
+ "body": [
221
+ "doWhile {",
222
+ " $0",
223
+ "}"
224
+ ],
225
+ "description": "Do while expression"
226
+ },
227
+ "log": {
228
+ "prefix": "_log",
229
+ "body": [
230
+ "Log.trace(\"$1: \" + $1)"
231
+ ],
232
+ "description": "Trace expression"
233
+ },
234
+ "logg": {
235
+ "prefix": "_logg",
236
+ "body": [
237
+ "Log.trace(\"$TM_FILENAME_BASE $RANDOM_HEX\")"
238
+ ],
239
+ "description": "Trace location"
240
+ }
241
+ }
@@ -1,45 +1,45 @@
1
- {
2
- "fileTypes": [],
3
- "injectionSelector": "L:text.html.markdown",
4
- "patterns": [
5
- {
6
- "include": "#firefly-code-block"
7
- }
8
- ],
9
- "repository": {
10
- "firefly-code-block": {
11
- "begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(firefly)(\\s+[^`~]*)?$)",
12
- "name": "markup.fenced_code.block.markdown",
13
- "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
14
- "beginCaptures": {
15
- "3": {
16
- "name": "punctuation.definition.markdown"
17
- },
18
- "4": {
19
- "name": "fenced_code.block.language.markdown"
20
- },
21
- "5": {
22
- "name": "fenced_code.block.language.attributes.markdown"
23
- }
24
- },
25
- "endCaptures": {
26
- "3": {
27
- "name": "punctuation.definition.markdown"
28
- }
29
- },
30
- "patterns": [
31
- {
32
- "begin": "(^|\\G)(\\s*)(.*)",
33
- "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
34
- "contentName": "meta.embedded.block.firefly",
35
- "patterns": [
36
- {
37
- "include": "source.firefly"
38
- }
39
- ]
40
- }
41
- ]
42
- }
43
- },
44
- "scopeName": "markdown.firefly.codeblock"
45
- }
1
+ {
2
+ "fileTypes": [],
3
+ "injectionSelector": "L:text.html.markdown",
4
+ "patterns": [
5
+ {
6
+ "include": "#firefly-code-block"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "firefly-code-block": {
11
+ "begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(firefly)(\\s+[^`~]*)?$)",
12
+ "name": "markup.fenced_code.block.markdown",
13
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
14
+ "beginCaptures": {
15
+ "3": {
16
+ "name": "punctuation.definition.markdown"
17
+ },
18
+ "4": {
19
+ "name": "fenced_code.block.language.markdown"
20
+ },
21
+ "5": {
22
+ "name": "fenced_code.block.language.attributes.markdown"
23
+ }
24
+ },
25
+ "endCaptures": {
26
+ "3": {
27
+ "name": "punctuation.definition.markdown"
28
+ }
29
+ },
30
+ "patterns": [
31
+ {
32
+ "begin": "(^|\\G)(\\s*)(.*)",
33
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
34
+ "contentName": "meta.embedded.block.firefly",
35
+ "patterns": [
36
+ {
37
+ "include": "source.firefly"
38
+ }
39
+ ]
40
+ }
41
+ ]
42
+ }
43
+ },
44
+ "scopeName": "markdown.firefly.codeblock"
45
+ }
@@ -1,5 +1,5 @@
1
- {
2
- "dependencies": {
3
- "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.41.0"
4
- }
5
- }
1
+ {
2
+ "dependencies": {
3
+ "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.51.0"
4
+ }
5
+ }
@@ -1,2 +1,2 @@
1
- package ff:webserver:0.0.0
2
- include "node_modules"
1
+ package ff:webserver:0.0.0
2
+ include "node_modules"