@lvce-editor/shared-process 0.18.8 → 0.18.10

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 (187) hide show
  1. package/package.json +4 -4
  2. package/src/parts/ExportStatic/ExportStatic.js +5 -5
  3. package/src/parts/Platform/Platform.js +3 -3
  4. package/extensions/builtin.language-basics-bat/README.md +0 -14
  5. package/extensions/builtin.language-basics-bat/extension.json +0 -12
  6. package/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -33
  7. package/extensions/builtin.language-basics-c/README.md +0 -14
  8. package/extensions/builtin.language-basics-c/extension.json +0 -12
  9. package/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -211
  10. package/extensions/builtin.language-basics-coffeescript/README.md +0 -14
  11. package/extensions/builtin.language-basics-coffeescript/extension.json +0 -12
  12. package/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -257
  13. package/extensions/builtin.language-basics-cpp/README.md +0 -14
  14. package/extensions/builtin.language-basics-cpp/extension.json +0 -32
  15. package/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -5
  16. package/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -317
  17. package/extensions/builtin.language-basics-cson/README.md +0 -16
  18. package/extensions/builtin.language-basics-cson/extension.json +0 -13
  19. package/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -21
  20. package/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -207
  21. package/extensions/builtin.language-basics-css/README.md +0 -16
  22. package/extensions/builtin.language-basics-css/extension.json +0 -13
  23. package/extensions/builtin.language-basics-css/languageConfiguration.json +0 -21
  24. package/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -659
  25. package/extensions/builtin.language-basics-dart/README.md +0 -14
  26. package/extensions/builtin.language-basics-dart/extension.json +0 -12
  27. package/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -133
  28. package/extensions/builtin.language-basics-desktop/README.md +0 -14
  29. package/extensions/builtin.language-basics-desktop/extension.json +0 -12
  30. package/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -166
  31. package/extensions/builtin.language-basics-docker/README.md +0 -14
  32. package/extensions/builtin.language-basics-docker/extension.json +0 -24
  33. package/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -131
  34. package/extensions/builtin.language-basics-dotenv/README.md +0 -14
  35. package/extensions/builtin.language-basics-dotenv/extension.json +0 -26
  36. package/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -301
  37. package/extensions/builtin.language-basics-editorconfig/README.md +0 -14
  38. package/extensions/builtin.language-basics-editorconfig/extension.json +0 -12
  39. package/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -173
  40. package/extensions/builtin.language-basics-elixir/README.md +0 -14
  41. package/extensions/builtin.language-basics-elixir/extension.json +0 -12
  42. package/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -150
  43. package/extensions/builtin.language-basics-elm/README.md +0 -14
  44. package/extensions/builtin.language-basics-elm/extension.json +0 -12
  45. package/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -298
  46. package/extensions/builtin.language-basics-gitattributes/README.md +0 -14
  47. package/extensions/builtin.language-basics-gitattributes/extension.json +0 -12
  48. package/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -159
  49. package/extensions/builtin.language-basics-gn/README.md +0 -14
  50. package/extensions/builtin.language-basics-gn/extension.json +0 -12
  51. package/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -178
  52. package/extensions/builtin.language-basics-go/README.md +0 -14
  53. package/extensions/builtin.language-basics-go/extension.json +0 -13
  54. package/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -295
  55. package/extensions/builtin.language-basics-graphql/README.md +0 -14
  56. package/extensions/builtin.language-basics-graphql/extension.json +0 -12
  57. package/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -432
  58. package/extensions/builtin.language-basics-html/README.md +0 -14
  59. package/extensions/builtin.language-basics-html/extension.json +0 -13
  60. package/extensions/builtin.language-basics-html/languageConfiguration.json +0 -66
  61. package/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -551
  62. package/extensions/builtin.language-basics-java/README.md +0 -14
  63. package/extensions/builtin.language-basics-java/extension.json +0 -13
  64. package/extensions/builtin.language-basics-java/languageConfiguration.json +0 -31
  65. package/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -253
  66. package/extensions/builtin.language-basics-javascript/README.md +0 -14
  67. package/extensions/builtin.language-basics-javascript/extension.json +0 -14
  68. package/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -40
  69. package/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -614
  70. package/extensions/builtin.language-basics-json/README.md +0 -14
  71. package/extensions/builtin.language-basics-json/extension.json +0 -60
  72. package/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -356
  73. package/extensions/builtin.language-basics-jsx/README.md +0 -14
  74. package/extensions/builtin.language-basics-jsx/extension.json +0 -13
  75. package/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -661
  76. package/extensions/builtin.language-basics-julia/README.md +0 -18
  77. package/extensions/builtin.language-basics-julia/extension.json +0 -12
  78. package/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -181
  79. package/extensions/builtin.language-basics-kotlin/README.md +0 -14
  80. package/extensions/builtin.language-basics-kotlin/extension.json +0 -12
  81. package/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -274
  82. package/extensions/builtin.language-basics-less/LICENSE +0 -21
  83. package/extensions/builtin.language-basics-less/README.md +0 -14
  84. package/extensions/builtin.language-basics-less/extension.json +0 -12
  85. package/extensions/builtin.language-basics-less/languageConfiguration.json +0 -17
  86. package/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -609
  87. package/extensions/builtin.language-basics-markdown/README.md +0 -14
  88. package/extensions/builtin.language-basics-markdown/extension.json +0 -12
  89. package/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -441
  90. package/extensions/builtin.language-basics-mdx/README.md +0 -14
  91. package/extensions/builtin.language-basics-mdx/extension.json +0 -12
  92. package/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -395
  93. package/extensions/builtin.language-basics-nvmrc/README.md +0 -14
  94. package/extensions/builtin.language-basics-nvmrc/extension.json +0 -12
  95. package/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -30
  96. package/extensions/builtin.language-basics-perl/README.md +0 -14
  97. package/extensions/builtin.language-basics-perl/extension.json +0 -13
  98. package/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -200
  99. package/extensions/builtin.language-basics-plaintext/README.md +0 -14
  100. package/extensions/builtin.language-basics-plaintext/extension.json +0 -12
  101. package/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -28
  102. package/extensions/builtin.language-basics-powershell/README.md +0 -14
  103. package/extensions/builtin.language-basics-powershell/extension.json +0 -12
  104. package/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -141
  105. package/extensions/builtin.language-basics-python/README.md +0 -14
  106. package/extensions/builtin.language-basics-python/extension.json +0 -15
  107. package/extensions/builtin.language-basics-python/languageConfiguration.json +0 -5
  108. package/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -304
  109. package/extensions/builtin.language-basics-r/README.md +0 -14
  110. package/extensions/builtin.language-basics-r/extension.json +0 -12
  111. package/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -71
  112. package/extensions/builtin.language-basics-ruby/README.md +0 -14
  113. package/extensions/builtin.language-basics-ruby/extension.json +0 -48
  114. package/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -248
  115. package/extensions/builtin.language-basics-rust/LICENSE +0 -21
  116. package/extensions/builtin.language-basics-rust/README.md +0 -14
  117. package/extensions/builtin.language-basics-rust/extension.json +0 -12
  118. package/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -17
  119. package/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -158
  120. package/extensions/builtin.language-basics-scss/README.md +0 -14
  121. package/extensions/builtin.language-basics-scss/extension.json +0 -12
  122. package/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -28
  123. package/extensions/builtin.language-basics-shellscript/README.md +0 -14
  124. package/extensions/builtin.language-basics-shellscript/extension.json +0 -56
  125. package/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -569
  126. package/extensions/builtin.language-basics-svelte/README.md +0 -14
  127. package/extensions/builtin.language-basics-svelte/extension.json +0 -13
  128. package/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -428
  129. package/extensions/builtin.language-basics-toml/README.md +0 -14
  130. package/extensions/builtin.language-basics-toml/extension.json +0 -14
  131. package/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -299
  132. package/extensions/builtin.language-basics-typescript/README.md +0 -14
  133. package/extensions/builtin.language-basics-typescript/extension.json +0 -17
  134. package/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -1602
  135. package/extensions/builtin.language-basics-vue/README.md +0 -14
  136. package/extensions/builtin.language-basics-vue/extension.json +0 -13
  137. package/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -327
  138. package/extensions/builtin.language-basics-wgsl/README.md +0 -16
  139. package/extensions/builtin.language-basics-wgsl/extension.json +0 -13
  140. package/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -21
  141. package/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -226
  142. package/extensions/builtin.language-basics-xml/README.md +0 -14
  143. package/extensions/builtin.language-basics-xml/extension.json +0 -85
  144. package/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -328
  145. package/extensions/builtin.language-basics-yaml/README.md +0 -14
  146. package/extensions/builtin.language-basics-yaml/extension.json +0 -13
  147. package/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -405
  148. package/extensions/builtin.theme-atom-one-dark/README.md +0 -11
  149. package/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -216
  150. package/extensions/builtin.theme-atom-one-dark/extension.json +0 -12
  151. package/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  152. package/extensions/builtin.theme-ayu/README.md +0 -11
  153. package/extensions/builtin.theme-ayu/color-theme.json +0 -217
  154. package/extensions/builtin.theme-ayu/extension.json +0 -12
  155. package/extensions/builtin.theme-cobalt2/README.md +0 -20
  156. package/extensions/builtin.theme-cobalt2/color-theme.json +0 -202
  157. package/extensions/builtin.theme-cobalt2/extension.json +0 -13
  158. package/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  159. package/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  160. package/extensions/builtin.theme-gruvbox/README.md +0 -20
  161. package/extensions/builtin.theme-gruvbox/color-theme.json +0 -217
  162. package/extensions/builtin.theme-gruvbox/extension.json +0 -12
  163. package/extensions/builtin.theme-high-contrast/README.md +0 -9
  164. package/extensions/builtin.theme-high-contrast/color-theme.json +0 -86
  165. package/extensions/builtin.theme-high-contrast/extension.json +0 -11
  166. package/extensions/builtin.theme-material/README.md +0 -9
  167. package/extensions/builtin.theme-material/color-theme.json +0 -183
  168. package/extensions/builtin.theme-material/extension.json +0 -12
  169. package/extensions/builtin.theme-monokai/README.md +0 -10
  170. package/extensions/builtin.theme-monokai/color-theme.json +0 -151
  171. package/extensions/builtin.theme-monokai/extension.json +0 -11
  172. package/extensions/builtin.theme-noctis-uva/README.md +0 -11
  173. package/extensions/builtin.theme-noctis-uva/color-theme.json +0 -204
  174. package/extensions/builtin.theme-noctis-uva/extension.json +0 -12
  175. package/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  176. package/extensions/builtin.theme-palenight/README.md +0 -11
  177. package/extensions/builtin.theme-palenight/color-theme.json +0 -209
  178. package/extensions/builtin.theme-palenight/extension.json +0 -12
  179. package/extensions/builtin.theme-palenight/images/demo.png +0 -0
  180. package/extensions/builtin.theme-slime/README.md +0 -5
  181. package/extensions/builtin.theme-slime/color-theme.json +0 -290
  182. package/extensions/builtin.theme-slime/extension.json +0 -13
  183. package/extensions/builtin.theme-slime/icon.png +0 -0
  184. package/extensions/builtin.vscode-icons/README.md +0 -20
  185. package/extensions/builtin.vscode-icons/extension.json +0 -13
  186. package/extensions/builtin.vscode-icons/icon-theme.json +0 -3815
  187. package/extensions/builtin.vscode-icons/icon.png +0 -0
@@ -1,301 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- export const State = {
5
- TopLevelContent: 1,
6
- InsideLineComment: 2,
7
- AfterVariableName: 3,
8
- AfterAssignmentEqualSign: 4,
9
- AfterVariableValue: 5,
10
- AfterKeyword: 6,
11
- AfterKeywordAndHasSeenWhitespace: 7,
12
- InsideDoubleQuoteString: 8,
13
- InsideSingleQuoteString: 9,
14
- InsideDoubleQuoteStringAfterBackslash: 10,
15
- InsideSingleQuoteStringAfterBackslash: 11,
16
- }
17
-
18
- /**
19
- * @enum {number}
20
- */
21
- export const TokenType = {
22
- Whitespace /* Whitespace */: 0,
23
- TypeName /* TypeName */: 35,
24
- PlainText /* Text */: 117,
25
- Comment /* Comment */: 60,
26
- String /* String */: 50,
27
- Numeric /* Numeric */: 30,
28
- FunctionName /* FunctionName */: 112,
29
- TypeNamePrimitive /* TypeNamePrimitive */: 36,
30
- Text /* Text */: 117,
31
- PunctuationTag /* PunctuationTag */: 228,
32
- TagName /* TagName */: 118,
33
- AttributeName /* AttributeName */: 119,
34
- Punctuation /* Punctuation */: 10,
35
- Error /* Error */: 141,
36
- PunctuationString /* PunctuationString */: 11,
37
- Keyword: /* Keyword */ 951,
38
- VariableName: /* VariableName */ 952,
39
- None: 57,
40
- KeywordExport: 90,
41
- VariableValueString: 91,
42
- LanguageConstant: 92,
43
- VariableValue: 93,
44
- NewLine: 94,
45
- }
46
-
47
- export const TokenMap = {
48
- [TokenType.Whitespace]: 'Whitespace',
49
- [TokenType.TypeName]: 'TypeName',
50
- [TokenType.PlainText]: 'PlainText',
51
- [TokenType.Comment]: 'Comment',
52
- [TokenType.String]: 'String',
53
- [TokenType.Numeric]: 'Numeric',
54
- [TokenType.FunctionName]: 'FunctionName',
55
- [TokenType.TypeNamePrimitive]: 'TypeNamePrimitive',
56
- [TokenType.Text]: 'Text',
57
- [TokenType.PunctuationTag]: 'PunctuationTag',
58
- [TokenType.TagName]: 'TagName',
59
- [TokenType.AttributeName]: 'AttributeName',
60
- [TokenType.Punctuation]: 'Punctuation',
61
- [TokenType.Error]: 'Error',
62
- [TokenType.PunctuationString]: 'PunctuationString',
63
- [TokenType.Keyword]: 'Keyword',
64
- [TokenType.None]: 'None',
65
- [TokenType.KeywordExport]: 'KeywordExport',
66
- [TokenType.VariableValueString]: 'String',
67
- [TokenType.LanguageConstant]: 'LanguageConstant',
68
- [TokenType.VariableValue]: 'String',
69
- [TokenType.VariableName]: 'JsonPropertyName',
70
- [TokenType.NewLine]: 'NewLine',
71
- }
72
-
73
- const RE_WHITESPACE_NEWLINE = /^\n/
74
- const RE_CURLY_OPEN = /^\{/
75
- const RE_CURLY_CLOSE = /^\}/
76
- const RE_SQUARE_OPEN = /^\[/
77
- const RE_SQUARE_CLOSE = /^\]/
78
- const RE_COMMA = /^,/
79
- const RE_COLON = /^:/
80
- const RE_NUMERIC =
81
- /^((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/
82
- const RE_NEWLINE_WHITESPACE = /^\n\s*/
83
- const RE_BLOCK_COMMENT_START = /^\/\*/
84
- const RE_BLOCK_COMMENT_CONTENT = /^.+(?=\*\/|$)/s
85
- const RE_BLOCK_COMMENT_END = /^\*\//
86
- const RE_UNKNOWN_VALUE = /^[^\}\{\s,"]+/
87
- const RE_IMPORT = /^[a-zA-Z\.]+/
88
- const RE_SEMICOLON = /^;/
89
- const RE_LINE_COMMENT = /^\/\//
90
- const RE_ROUND_OPEN = /^\(/
91
- const RE_ROUND_CLOSE = /^\)/
92
- const RE_DOT = /^\./
93
- const RE_PUNCTUATION = /^[\(\)=\+\-><\.,\/\*\^\[\]\{\}\|:]/
94
- const RE_ANYTHING_UNTIL_END = /^.+/s
95
- const RE_START_OF_FUNCTION = /^( )*\(/
96
- const RE_COLON_COLON = /^::/
97
- const RE_BASH_SLASH = /^\\/
98
- const RE_ANY_CHAR = /^./
99
- const RE_SQUARE_OPEN_SQUARE_OPEN = /^\[\[/
100
- const RE_SQUARE_CLOSE_SQUARE_CLOSE = /^\]\]/
101
- const RE_STRING_MULTILINE_CONTENT = /^.+?(?=\]\]|$)/s
102
- const RE_KEYWORD =
103
- /^(?:var|type|switch|struct|select|return|range|package|map|interface|import|if|goto|go|func|default|continue|const|chan|case|break)\b/
104
- const RE_TEXT = /^.+/s
105
- const RE_WHITESPACE = /^\s+/
106
- const RE_WHITESPACE_SINGLE_LINE = /^( |\t)+/
107
- const RE_DOUBLE_QUOTE = /^"/
108
- const RE_LINE_COMMENT_START = /^#/
109
- const RE_LINE_COMMENT_CONTENT = /^[^\n]+/
110
- const RE_VARIABLE_NAME = /^[a-zA-Z\_]+/
111
- const RE_EQUAL_SIGN = /^=/
112
- const RE_NUMBER =
113
- /^\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b/
114
- const RE_KEYWORD_EXPORT = /^export(?=(\t| ))/
115
- const RE_CONSTANT = /^(true|false|null)(?=\s|$)/i
116
- const RE_VARIABLE_VALUE = /^[^\n"'#]+/
117
- const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^\n\\"]+/
118
- const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^\n\\']+/
119
- const RE_SINGLE_QUOTE = /^'/
120
- const RE_NEWLINE_AND_WHITESPACE = /^\n\s*/
121
- const RE_BACKSLASH = /^\\/
122
- const RE_EVERYTHING = /^./
123
-
124
- export const initialLineState = {
125
- state: State.TopLevelContent,
126
- }
127
-
128
- export const hasArrayReturn = true
129
-
130
- /**
131
- * @param {string} line
132
- */
133
- export const tokenizeLine = (line, lineState) => {
134
- let next = null
135
- let index = 0
136
- let tokens = []
137
- let token = TokenType.None
138
- let state = lineState.state
139
- while (index < line.length) {
140
- const part = line.slice(index)
141
- switch (state) {
142
- case State.TopLevelContent:
143
- if ((next = part.match(RE_KEYWORD_EXPORT))) {
144
- token = TokenType.KeywordExport
145
- state = State.AfterKeyword
146
- } else if ((next = part.match(RE_LINE_COMMENT_START))) {
147
- token = TokenType.Comment
148
- state = State.InsideLineComment
149
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
150
- token = TokenType.VariableName
151
- state = State.AfterVariableName
152
- } else if ((next = part.match(RE_WHITESPACE))) {
153
- token = TokenType.Whitespace
154
- state = State.TopLevelContent
155
- } else {
156
- throw new Error('no')
157
- }
158
- break
159
- case State.AfterKeyword:
160
- if ((next = part.match(RE_WHITESPACE))) {
161
- token = TokenType.Whitespace
162
- state = State.AfterKeywordAndHasSeenWhitespace
163
- } else {
164
- line
165
- throw new Error('no')
166
- }
167
- break
168
- case State.AfterKeywordAndHasSeenWhitespace:
169
- if ((next = part.match(RE_VARIABLE_NAME))) {
170
- token = TokenType.VariableName
171
- state = State.AfterVariableName
172
- } else {
173
- throw new Error('no')
174
- }
175
- break
176
- case State.AfterVariableName:
177
- if ((next = part.match(RE_EQUAL_SIGN))) {
178
- token = TokenType.Punctuation
179
- state = State.AfterAssignmentEqualSign
180
- } else if ((next = part.match(RE_WHITESPACE))) {
181
- token = TokenType.Whitespace
182
- // TODO what about newline
183
- state = State.AfterVariableName
184
- } else {
185
- throw new Error('no')
186
- }
187
- break
188
- case State.InsideDoubleQuoteString:
189
- if ((next = part.match(RE_DOUBLE_QUOTE))) {
190
- token = TokenType.PunctuationString
191
- state = State.AfterVariableValue
192
- } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
193
- token = TokenType.VariableValueString
194
- state = State.InsideDoubleQuoteString
195
- } else if ((next = part.match(RE_BACKSLASH))) {
196
- token = TokenType.VariableValueString
197
- state = State.InsideDoubleQuoteStringAfterBackslash
198
- } else {
199
- part.startsWith('\n') //?
200
- throw new Error('no')
201
- }
202
- break
203
- case State.InsideDoubleQuoteStringAfterBackslash:
204
- if ((next = part.match(RE_EVERYTHING))) {
205
- token = TokenType.VariableValueString
206
- state = State.InsideDoubleQuoteString
207
- } else {
208
- throw new Error('no')
209
- }
210
- break
211
- case State.InsideSingleQuoteStringAfterBackslash:
212
- if ((next = part.match(RE_EVERYTHING))) {
213
- token = TokenType.VariableValueString
214
- state = State.InsideSingleQuoteString
215
- } else {
216
- throw new Error('no')
217
- }
218
- break
219
- case State.InsideSingleQuoteString:
220
- if ((next = part.match(RE_SINGLE_QUOTE))) {
221
- token = TokenType.Punctuation
222
- state = State.AfterVariableValue
223
- } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
224
- token = TokenType.VariableValueString
225
- state = State.InsideSingleQuoteString
226
- } else if ((next = part.match(RE_BACKSLASH))) {
227
- token = TokenType.VariableValueString
228
- state = State.InsideSingleQuoteStringAfterBackslash
229
- } else {
230
- throw new Error('no')
231
- }
232
- break
233
- case State.AfterAssignmentEqualSign:
234
- if ((next = part.match(RE_DOUBLE_QUOTE))) {
235
- token = TokenType.PunctuationString
236
- state = State.InsideDoubleQuoteString
237
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
238
- token = TokenType.Punctuation
239
- state = State.InsideSingleQuoteString
240
- } else if ((next = part.match(RE_NUMBER))) {
241
- token = TokenType.Numeric
242
- state = State.AfterVariableValue
243
- } else if ((next = part.match(RE_CONSTANT))) {
244
- token = TokenType.LanguageConstant
245
- state = State.AfterVariableValue
246
- } else if ((next = part.match(RE_WHITESPACE_SINGLE_LINE))) {
247
- token = TokenType.Whitespace
248
- state = State.AfterAssignmentEqualSign
249
- } else if ((next = part.match(RE_VARIABLE_VALUE))) {
250
- token = TokenType.VariableValue
251
- state = State.AfterVariableValue
252
- } else if ((next = part.match(RE_NEWLINE_AND_WHITESPACE))) {
253
- token = TokenType.Whitespace
254
- state = State.TopLevelContent
255
- } else {
256
- throw new Error('no')
257
- }
258
- break
259
- case State.InsideLineComment:
260
- if ((next = part.match(RE_LINE_COMMENT_CONTENT))) {
261
- token = TokenType.Comment
262
- state = State.TopLevelContent
263
- } else {
264
- throw new Error('no')
265
- }
266
- break
267
- case State.AfterVariableValue:
268
- if ((next = part.match(RE_WHITESPACE))) {
269
- token = TokenType.Whitespace
270
- state = State.TopLevelContent
271
- } else if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
272
- token = TokenType.Error
273
- state = State.TopLevelContent
274
- } else {
275
- throw new Error('no')
276
- }
277
- break
278
- default:
279
- state
280
- throw new Error('no')
281
- }
282
- const tokenLength = next[0].length
283
- index += tokenLength
284
- tokens.push(token, tokenLength)
285
- }
286
- switch (state) {
287
- case State.AfterVariableName:
288
- case State.AfterAssignmentEqualSign:
289
- state = State.TopLevelContent
290
- break
291
- default:
292
- break
293
- }
294
- if (state === State.AfterVariableValue) {
295
- state = State.TopLevelContent
296
- }
297
- return {
298
- state,
299
- tokens,
300
- }
301
- }
@@ -1,14 +0,0 @@
1
- # Language Basics Editorconfig
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-editorconfig.git &&
7
- cd language-basics-editorconfig &&
8
- npm ci &&
9
- npm test
10
- ```
11
-
12
- ## Gitpod
13
-
14
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/language-basics-editorconfig)
@@ -1,12 +0,0 @@
1
- {
2
- "id": "builtin.language-basics-editorconfig",
3
- "name": "Language Basics Editorconfig",
4
- "description": "Provides syntax highlighting and bracket matching in Editorconfig files.",
5
- "languages": [
6
- {
7
- "id": "editorconfig",
8
- "extensions": [".editorconfig"],
9
- "tokenize": "src/tokenizeEditorConfig.js"
10
- }
11
- ]
12
- }
@@ -1,173 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- export const State = {
5
- TopLevelContent: 1,
6
- InsideLineComment: 2,
7
- AfterPropertyName: 3,
8
- AfterPropertyNameAfterEqualSign: 4,
9
- }
10
-
11
- export const StateMap = {
12
- [State.TopLevelContent]: 'TopLevelContent',
13
- [State.InsideLineComment]: 'InsideLineComment',
14
- }
15
-
16
- /**
17
- * @enum number
18
- */
19
- export const TokenType = {
20
- CssSelector: 1,
21
- Whitespace: 2,
22
- None: 57,
23
- Unknown: 881,
24
- NewLine: 884,
25
- Comment: 885,
26
- Query: 886,
27
- Text: 887,
28
- LanguageConstant: 11,
29
- Numeric: 15,
30
- PropertyName: 12,
31
- PropertyValueString: 14,
32
- Punctuation: 13,
33
- String: 188,
34
- }
35
-
36
- export const TokenMap = {
37
- [TokenType.Comment]: 'Comment',
38
- [TokenType.LanguageConstant]: 'LanguageConstant',
39
- [TokenType.NewLine]: 'NewLine',
40
- [TokenType.None]: 'None',
41
- [TokenType.Numeric]: 'Numeric',
42
- [TokenType.PropertyName]: 'JsonPropertyName',
43
- [TokenType.Query]: 'Query',
44
- [TokenType.Text]: 'Text',
45
- [TokenType.Unknown]: 'Unknown',
46
- [TokenType.Whitespace]: 'Whitespace',
47
- [TokenType.Punctuation]: 'Punctuation',
48
- [TokenType.PropertyValueString]: 'String',
49
- [TokenType.String]: 'String',
50
- }
51
-
52
- const RE_LANGUAGE_CONSTANT = /^(?:true|false)/
53
- const RE_LINE_COMMENT_START = /^#/
54
- const RE_WHITESPACE = /^ +/
55
- const RE_CURLY_OPEN = /^\{/
56
- const RE_CURLY_CLOSE = /^\}/
57
- const RE_PROPERTY_NAME = /^[a-zA-Z\-\_\d\s]+\b(?=\s*\=)/
58
- const RE_COLON = /^:/
59
- const RE_PROPERTY_VALUE = /^[^;\}]+/
60
- const RE_SEMICOLON = /^;/
61
- const RE_COMMA = /^,/
62
- const RE_ANYTHING = /^.+/s
63
- const RE_NUMERIC = /^(([0-9]+\.?[0-9]*)|(\.[0-9]+))/
64
- const RE_ANYTHING_UNTIL_CLOSE_BRACE = /^[^\}]+/
65
- const RE_BLOCK_COMMENT_START = /^\/\*/
66
- const RE_BLOCK_COMMENT_END = /^\*\//
67
- const RE_BLOCK_COMMENT_CONTENT = /^.+?(?=\*\/|$)/s
68
- const RE_ROUND_OPEN = /^\(/
69
- const RE_ROUND_CLOSE = /^\)/
70
- const RE_PSEUDO_SELECTOR_CONTENT = /^[^\)]+/
71
- const RE_SQUARE_OPEN = /^\[/
72
- const RE_SQUARE_CLOSE = /^\]/
73
- const RE_ATTRIBUTE_SELECTOR_CONTENT = /^[^\]]+/
74
- const RE_QUERY = /^@[a-z\-]+/
75
- const RE_STAR = /^\*/
76
- const RE_QUERY_NAME = /^[a-z\-]+/
77
- const RE_QUERY_CONTENT = /^[^\)]+/
78
- const RE_COMBINATOR = /^[\+\>\~]/
79
- const RE_EQUAL_SIGN = /^\=/
80
-
81
- export const initialLineState = {
82
- state: State.TopLevelContent,
83
- tokens: [],
84
- stack: [],
85
- }
86
-
87
- export const hasArrayReturn = true
88
-
89
- /**
90
- * @param {string} line
91
- * @param {any} lineState
92
- */
93
- export const tokenizeLine = (line, lineState) => {
94
- let next = null
95
- let index = 0
96
- let tokens = []
97
- let token = TokenType.None
98
- let state = lineState.state
99
- while (index < line.length) {
100
- const part = line.slice(index)
101
- switch (state) {
102
- case State.TopLevelContent:
103
- if ((next = part.match(RE_LINE_COMMENT_START))) {
104
- token = TokenType.Comment
105
- state = State.InsideLineComment
106
- } else if ((next = part.match(RE_WHITESPACE))) {
107
- token = TokenType.Whitespace
108
- state = State.TopLevelContent
109
- } else if ((next = part.match(RE_PROPERTY_NAME))) {
110
- part
111
- token = TokenType.PropertyName
112
- state = State.AfterPropertyName
113
- } else if ((next = part.match(RE_ANYTHING))) {
114
- token = TokenType.Text
115
- state = State.TopLevelContent
116
- } else {
117
- part //?
118
- throw new Error('no')
119
- }
120
- break
121
- case State.InsideLineComment:
122
- if ((next = part.match(RE_ANYTHING))) {
123
- token = TokenType.Comment
124
- state = State.TopLevelContent
125
- } else {
126
- throw new Error('no')
127
- }
128
- break
129
- case State.AfterPropertyName:
130
- if ((next = part.match(RE_EQUAL_SIGN))) {
131
- token = TokenType.Punctuation
132
- state = State.AfterPropertyNameAfterEqualSign
133
- } else if ((next = part.match(RE_WHITESPACE))) {
134
- token = TokenType.Whitespace
135
- state = State.AfterPropertyName
136
- } else {
137
- part
138
- throw new Error('no')
139
- }
140
- break
141
- case State.AfterPropertyNameAfterEqualSign:
142
- if ((next = part.match(RE_WHITESPACE))) {
143
- token = TokenType.Whitespace
144
- state = State.AfterPropertyNameAfterEqualSign
145
- } else if ((next = part.match(RE_LANGUAGE_CONSTANT))) {
146
- token = TokenType.LanguageConstant
147
- state = State.TopLevelContent
148
- } else if ((next = part.match(RE_NUMERIC))) {
149
- token = TokenType.Numeric
150
- state = State.TopLevelContent
151
- } else if ((next = part.match(RE_LINE_COMMENT_START))) {
152
- token = TokenType.Comment
153
- state = State.InsideLineComment
154
- } else if ((next = part.match(RE_ANYTHING))) {
155
- token = TokenType.PropertyValueString
156
- state = State.TopLevelContent
157
- } else {
158
- throw new Error('no')
159
- }
160
- break
161
- default:
162
- console.log({ state, line })
163
- throw new Error('no')
164
- }
165
- const tokenLength = next[0].length
166
- index += tokenLength
167
- tokens.push(token, tokenLength)
168
- }
169
- return {
170
- state,
171
- tokens,
172
- }
173
- }
@@ -1,14 +0,0 @@
1
- # Language Basics Elixir
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-elixir.git &&
7
- cd language-basics-elixir &&
8
- npm ci &&
9
- npm test
10
- ```
11
-
12
- ## Gitpod
13
-
14
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/language-basics-elixir)
@@ -1,12 +0,0 @@
1
- {
2
- "id": "builtin.language-basics-elixir",
3
- "name": "Language Basics Elixir",
4
- "description": "Provides syntax highlighting and bracket matching in Elixir files.",
5
- "languages": [
6
- {
7
- "id": "elixir",
8
- "extensions": [".ex"],
9
- "tokenize": "src/tokenizeElixir.js"
10
- }
11
- ]
12
- }
@@ -1,150 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- const State = {
5
- None: 0,
6
- TopLevelContent: 1,
7
- InsideSingleQuoteString: 2,
8
- InsideDoubleQuoteString: 3,
9
- InsideTripleQuoteString: 4,
10
- }
11
-
12
- /**
13
- * @enum number
14
- */
15
- export const TokenType = {
16
- None: 99999999,
17
- Keyword: 951,
18
- Whitespace: 0,
19
- NewLine: 771,
20
- VariableName: 2,
21
- Punctuation: 3,
22
- String: 4,
23
- Numeric: 5,
24
- Attribute: 6,
25
- }
26
-
27
- export const TokenMap = {
28
- [TokenType.None]: 'None',
29
- [TokenType.Keyword]: 'Keyword',
30
- [TokenType.Whitespace]: 'Whitespace',
31
- [TokenType.NewLine]: 'NewLine',
32
- [TokenType.VariableName]: 'VariableName',
33
- [TokenType.Punctuation]: 'Punctuation',
34
- [TokenType.String]: 'String',
35
- [TokenType.Numeric]: 'Numeric',
36
- [TokenType.Attribute]: 'Attribute',
37
- }
38
-
39
- export const initialLineState = {
40
- state: State.TopLevelContent,
41
- }
42
-
43
- const RE_KEYWORD =
44
- /^(?:after|alias|and|case|catch|cond|defmodule|defimpl|defprotocol|defrecord|defstruct|do|else|end|fn|for|if|import|in|not|or|quote|raise|receive|require|reraise|rescue|try|unless|unquote|unquote_splicing|use|when|with\|0)\b/
45
- const RE_WHITESPACE = /^\s+/
46
- const RE_VARIABLE_NAME = /^[a-zA-Z]+/
47
- const RE_PUNCTUATION = /^[:,;\{\}\[\]\.=\(\)>]/
48
- const RE_QUOTE_SINGLE = /^'/
49
- const RE_QUOTE_DOUBLE = /^"/
50
- const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^']+/
51
- const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"]+/
52
- const RE_NUMERIC = /^\d+/
53
- const RE_TRIPLE_DOUBLE_QUOTE = /^"""/
54
- const RE_STRING_TRIPLE_CONTENT = /^.+?(?="""|$)/s
55
- const RE_ATTRIBUTE = /^@\w+/
56
-
57
- /**
58
- * @param {string} line
59
- * @param {any} lineState
60
- */
61
- export const tokenizeLine = (line, lineState) => {
62
- let next = null
63
- let index = 0
64
- let tokens = []
65
- let token = TokenType.None
66
- let state = lineState.state
67
- while (index < line.length) {
68
- const part = line.slice(index)
69
- switch (state) {
70
- case State.TopLevelContent:
71
- if ((next = part.match(RE_WHITESPACE))) {
72
- token = TokenType.Whitespace
73
- state = State.TopLevelContent
74
- } else if ((next = part.match(RE_KEYWORD))) {
75
- token = TokenType.Keyword
76
- state = State.TopLevelContent
77
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
78
- token = TokenType.VariableName
79
- state = State.TopLevelContent
80
- } else if ((next = part.match(RE_PUNCTUATION))) {
81
- token = TokenType.Punctuation
82
- state = State.TopLevelContent
83
- } else if ((next = part.match(RE_NUMERIC))) {
84
- token = TokenType.Numeric
85
- state = State.TopLevelContent
86
- } else if ((next = part.match(RE_QUOTE_SINGLE))) {
87
- token = TokenType.Punctuation
88
- state = State.InsideSingleQuoteString
89
- } else if ((next = part.match(RE_TRIPLE_DOUBLE_QUOTE))) {
90
- token = TokenType.Punctuation
91
- state = State.InsideTripleQuoteString
92
- } else if ((next = part.match(RE_QUOTE_DOUBLE))) {
93
- token = TokenType.Punctuation
94
- state = State.InsideDoubleQuoteString
95
- } else if ((next = part.match(RE_ATTRIBUTE))) {
96
- token = TokenType.Attribute
97
- state = State.TopLevelContent
98
- } else {
99
- part //?
100
- throw new Error('no')
101
- }
102
- break
103
- case State.InsideTripleQuoteString:
104
- if ((next = part.match(RE_TRIPLE_DOUBLE_QUOTE))) {
105
- token = TokenType.Punctuation
106
- state = State.TopLevelContent
107
- } else if ((next = part.match(RE_STRING_TRIPLE_CONTENT))) {
108
- token = TokenType.String
109
- state = State.InsideTripleQuoteString
110
- } else {
111
- throw new Error('no')
112
- }
113
- break
114
- case State.InsideSingleQuoteString:
115
- if ((next = part.match(RE_QUOTE_SINGLE))) {
116
- token = TokenType.Punctuation
117
- state = State.TopLevelContent
118
- } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
119
- token = TokenType.String
120
- state = State.InsideSingleQuoteString
121
- } else {
122
- throw new Error('no')
123
- }
124
- break
125
- case State.InsideDoubleQuoteString:
126
- if ((next = part.match(RE_QUOTE_DOUBLE))) {
127
- token = TokenType.Punctuation
128
- state = State.TopLevelContent
129
- } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
130
- token = TokenType.String
131
- state = State.InsideDoubleQuoteString
132
- } else {
133
- throw new Error('no')
134
- }
135
- break
136
- default:
137
- state
138
- throw new Error('no')
139
- }
140
- index += next[0].length
141
- tokens.push({
142
- type: token,
143
- length: next[0].length,
144
- })
145
- }
146
- return {
147
- state,
148
- tokens,
149
- }
150
- }
@@ -1,14 +0,0 @@
1
- # Language Basics Elm
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-elm.git &&
7
- cd language-basics-elm &&
8
- npm ci &&
9
- npm test
10
- ```
11
-
12
- ## Gitpod
13
-
14
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/lvce-editor/language-basics-elm)