@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,659 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- export const State = {
5
- TopLevelContent: 1,
6
- AfterSelector: 2,
7
- InsideSelector: 3,
8
- AfterPropertyName: 4,
9
- AfterPropertyNameAfterColon: 5,
10
- InsideBlockComment: 7,
11
- InsidePseudoSelector: 8,
12
- InsideAttributeSelector: 9,
13
- AfterQuery: 10,
14
- InsideRound: 11,
15
- AfterQueryWithRules: 12,
16
- InsideRule: 13,
17
- AfterFunctionName: 14,
18
- InsideDoubleQuoteString: 15,
19
- InsideSingleQuoteString: 16,
20
- AfterFunctionNameInsideArguments: 17,
21
- AfterKeywordImport: 18,
22
- }
23
-
24
- export const StateMap = {
25
- [State.TopLevelContent]: 'TopLevelContent',
26
- [State.AfterSelector]: 'AfterSelector',
27
- [State.InsideSelector]: 'InsideSelector',
28
- [State.AfterPropertyName]: 'AfterPropertyName',
29
- [State.AfterPropertyNameAfterColon]: 'AfterPropertyNameAfterColon',
30
- }
31
-
32
- /**
33
- * @enum number
34
- */
35
- export const TokenType = {
36
- CssSelector: 1,
37
- Whitespace: 2,
38
- Punctuation: 3,
39
- CssPropertyName: 4,
40
- CssPropertyValue: 5,
41
- CurlyOpen: 6,
42
- CurlyClose: 7,
43
- PropertyColon: 8,
44
- CssPropertySemicolon: 9,
45
- Variable: 10,
46
- None: 57,
47
- Unknown: 881,
48
- CssPropertyColon: 882,
49
- Numeric: 883,
50
- NewLine: 884,
51
- Comment: 885,
52
- Query: 886,
53
- Text: 887,
54
- CssSelectorId: 889,
55
- FuntionName: 890,
56
- String: 891,
57
- KeywordImport: 892,
58
- CssSelectorClass: 893,
59
- CssPseudoSelector: 894,
60
- }
61
-
62
- export const TokenMap = {
63
- [TokenType.CssSelector]: 'CssSelector',
64
- [TokenType.Whitespace]: 'Whitespace',
65
- [TokenType.Punctuation]: 'Punctuation',
66
- [TokenType.CssPropertyName]: 'CssPropertyName',
67
- [TokenType.CssPropertyValue]: 'CssPropertyValue',
68
- [TokenType.CurlyOpen]: 'Punctuation',
69
- [TokenType.CurlyClose]: 'Punctuation',
70
- [TokenType.PropertyColon]: 'Punctuation',
71
- [TokenType.CssPropertySemicolon]: 'Punctuation',
72
- [TokenType.Variable]: 'VariableName',
73
- [TokenType.None]: 'None',
74
- [TokenType.CssPropertyValue]: 'CssPropertyValue',
75
- [TokenType.Unknown]: 'Unknown',
76
- [TokenType.CssPropertyColon]: 'Punctuation',
77
- [TokenType.Numeric]: 'Numeric',
78
- [TokenType.NewLine]: 'NewLine',
79
- [TokenType.Comment]: 'Comment',
80
- [TokenType.Query]: 'CssAtRule',
81
- [TokenType.Text]: 'Text',
82
- [TokenType.CssSelectorId]: 'CssSelectorId',
83
- [TokenType.FuntionName]: 'Function',
84
- [TokenType.String]: 'String',
85
- [TokenType.KeywordImport]: 'KeywordImport',
86
- [TokenType.CssSelectorClass]: 'CssSelectorClass',
87
- [TokenType.CssPseudoSelector]: 'CssPseudoSelector',
88
- }
89
-
90
- const RE_SELECTOR_ELEMENT = /^[a-zA-Z\d\->+~_%\\\p{L}]+/u
91
- const RE_SELECTOR_ID = /^#[\w\-\_\\]+/
92
- const RE_PSEUDO_SELECTOR = /^::?[\p{L}\-]+/u
93
- const RE_SELECTOR_CLASS = /^\.[\w\-_\p{L}\p{Emoji_Presentation}]+/u
94
- const RE_WHITESPACE = /^\s+/
95
- const RE_CURLY_OPEN = /^\{/
96
- const RE_CURLY_CLOSE = /^\}/
97
- const RE_PROPERTY_NAME = /^[a-zA-Z\-\w]+/
98
- const RE_COLON = /^:/
99
- const RE_PROPERTY_VALUE = /^[^;\}\/\(]+/
100
- const RE_PROPERTY_VALUE_SHORT = /^[^;\}\s\)\/\*\(]+/
101
- const RE_PROPERTY_VALUE_INSIDE_FUNCTION = /^[^\}\s\)]+/
102
- const RE_SEMICOLON = /^;/
103
- const RE_COMMA = /^,/
104
- const RE_ANYTHING = /^.+/s
105
- const RE_AMPERSAND = /^\&/
106
- const RE_NUMERIC = /^\-?(([0-9]+\.?[0-9]*)|(\.[0-9]+))/
107
- const RE_ANYTHING_UNTIL_CLOSE_BRACE = /^[^\}]+/
108
- const RE_BLOCK_COMMENT_START = /^\/\*/
109
- const RE_BLOCK_COMMENT_END = /^\*\//
110
- const RE_BLOCK_COMMENT_CONTENT = /^.+?(?=\*\/|$)/s
111
- const RE_ROUND_OPEN = /^\(/
112
- const RE_ROUND_CLOSE = /^\)/
113
- const RE_PSEUDO_SELECTOR_CONTENT = /^[^\)]+/
114
- const RE_SQUARE_OPEN = /^\[/
115
- const RE_SQUARE_CLOSE = /^\]/
116
- const RE_ATTRIBUTE_SELECTOR_CONTENT = /^[^\]]+/
117
- const RE_QUERY = /^@[a-zA-Z\w\-\d\_]+/
118
- const RE_STAR = /^\*/
119
- const RE_QUERY_NAME = /^[a-zA-Z\w\-\d\_]+/
120
- const RE_QUERY_CONTENT = /^[^\)]+/
121
- const RE_COMBINATOR = /^[\+\>\~]/
122
- const RE_FUNCTION = /^[a-zA-Z][a-zA-Z\-]+(?=\()/
123
- const RE_VARIABLE_NAME = /^\-\-[a-zA-Z\w\-\_]+/
124
- const RE_PERCENT = /^\%/
125
- const RE_OPERATOR = /^[\-\/\*\+]/
126
- const RE_DOUBLE_QUOTE = /^"/
127
- const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"]+/
128
- const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^']+/
129
- const RE_SINGLE_QUOTE = /^'/
130
- const RE_ANYTHING_BUT_CURLY = /^[^\{\}]+/s
131
- const RE_PUNCTUATION = /^[\.:\(\)]/
132
- const RE_VERTICAL_LINE = /^\|/
133
- const RE_SLASH = /^\//
134
-
135
- export const initialLineState = {
136
- state: State.TopLevelContent,
137
- tokens: [],
138
- stack: [],
139
- }
140
-
141
- /**
142
- * @param {any} lineStateA
143
- * @param {any} lineStateB
144
- */
145
- export const isEqualLineState = (lineStateA, lineStateB) => {
146
- return lineStateA.state === lineStateB.state
147
- }
148
-
149
- export const hasArrayReturn = true
150
-
151
- /**
152
- * @param {string} line
153
- * @param {any} lineState
154
- */
155
- export const tokenizeLine = (line, lineState) => {
156
- let next = null
157
- let index = 0
158
- let tokens = []
159
- let token = TokenType.None
160
- let state = lineState.state
161
- const stack = lineState.stack
162
- while (index < line.length) {
163
- const part = line.slice(index)
164
- switch (state) {
165
- case State.TopLevelContent:
166
- if ((next = part.match(RE_SELECTOR_CLASS))) {
167
- token = TokenType.CssSelectorClass
168
- state = State.AfterSelector
169
- } else if ((next = part.match(RE_SELECTOR_ELEMENT))) {
170
- token = TokenType.CssSelector
171
- state = State.AfterSelector
172
- } else if ((next = part.match(RE_SELECTOR_ID))) {
173
- token = TokenType.CssSelectorId
174
- state = State.AfterSelector
175
- } else if ((next = part.match(RE_WHITESPACE))) {
176
- token = TokenType.Whitespace
177
- state = State.TopLevelContent
178
- } else if ((next = part.match(RE_PSEUDO_SELECTOR))) {
179
- token = TokenType.CssPseudoSelector
180
- state = State.AfterSelector
181
- } else if ((next = part.match(RE_CURLY_OPEN))) {
182
- token = TokenType.CurlyOpen
183
- state = State.InsideSelector
184
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
185
- token = TokenType.Comment
186
- state = State.InsideBlockComment
187
- } else if ((next = part.match(RE_SQUARE_OPEN))) {
188
- token = TokenType.Punctuation
189
- state = State.InsideAttributeSelector
190
- } else if ((next = part.match(RE_QUERY))) {
191
- switch (next[0].toLocaleLowerCase()) {
192
- case '@font-face':
193
- case '@-ms-viewport':
194
- case '@-o-viewport':
195
- case '@viewport':
196
- token = TokenType.Query
197
- state = State.AfterQueryWithRules
198
- break
199
- case '@import':
200
- token = TokenType.KeywordImport
201
- state = State.AfterKeywordImport
202
- break
203
- case '@keyframes':
204
- default:
205
- token = TokenType.Query
206
- state = State.AfterQuery
207
- break
208
- }
209
- } else if ((next = part.match(RE_STAR))) {
210
- token = TokenType.CssSelector
211
- state = State.AfterSelector
212
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
213
- token = TokenType.Punctuation
214
- state = State.TopLevelContent
215
- } else if ((next = part.match(RE_SEMICOLON))) {
216
- token = TokenType.Punctuation
217
- state = State.TopLevelContent
218
- } else if ((next = part.match(RE_ANYTHING))) {
219
- token = TokenType.Unknown
220
- state = State.TopLevelContent
221
- } else {
222
- part //?
223
- throw new Error('no')
224
- }
225
- break
226
- case State.AfterSelector:
227
- if ((next = part.match(RE_WHITESPACE))) {
228
- token = TokenType.Whitespace
229
- state = State.AfterSelector
230
- } else if ((next = part.match(RE_CURLY_OPEN))) {
231
- token = TokenType.CurlyOpen
232
- state = State.InsideSelector
233
- } else if ((next = part.match(RE_SELECTOR_CLASS))) {
234
- token = TokenType.CssSelectorClass
235
- state = State.AfterSelector
236
- } else if ((next = part.match(RE_SELECTOR_ELEMENT))) {
237
- token = TokenType.CssSelector
238
- state = State.AfterSelector
239
- } else if ((next = part.match(RE_SELECTOR_ID))) {
240
- token = TokenType.CssSelectorId
241
- state = State.AfterSelector
242
- } else if ((next = part.match(RE_COMMA))) {
243
- token = TokenType.Punctuation
244
- state = State.AfterSelector
245
- } else if ((next = part.match(RE_ROUND_OPEN))) {
246
- token = TokenType.Punctuation
247
- state = State.InsidePseudoSelector
248
- } else if ((next = part.match(RE_SQUARE_OPEN))) {
249
- token = TokenType.Punctuation
250
- state = State.InsideAttributeSelector
251
- } else if ((next = part.match(RE_STAR))) {
252
- token = TokenType.CssSelector
253
- state = State.AfterSelector
254
- } else if ((next = part.match(RE_VERTICAL_LINE))) {
255
- token = TokenType.Punctuation
256
- state = State.AfterSelector
257
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
258
- stack.push(state)
259
- token = TokenType.Comment
260
- state = State.InsideBlockComment
261
- } else if ((next = part.match(RE_SLASH))) {
262
- token = TokenType.Punctuation
263
- state = State.AfterSelector
264
- } else if ((next = part.match(RE_SEMICOLON))) {
265
- token = TokenType.Punctuation
266
- state = stack.pop() || State.TopLevelContent
267
- } else if ((next = part.match(RE_PSEUDO_SELECTOR))) {
268
- token = TokenType.CssPseudoSelector
269
- state = State.AfterSelector
270
- } else if ((next = part.match(RE_ANYTHING_BUT_CURLY))) {
271
- token = TokenType.Unknown
272
- state = State.AfterSelector
273
- } else if ((next = part.match(RE_ANYTHING))) {
274
- token = TokenType.Unknown
275
- state = State.TopLevelContent
276
- } else {
277
- part //?
278
- throw new Error('no')
279
- }
280
- break
281
- case State.AfterQuery:
282
- if ((next = part.match(RE_WHITESPACE))) {
283
- token = TokenType.Whitespace
284
- state = State.AfterQuery
285
- } else if ((next = part.match(RE_QUERY_NAME))) {
286
- token = TokenType.Text
287
- state = State.AfterQuery
288
- } else if ((next = part.match(RE_CURLY_OPEN))) {
289
- token = TokenType.Punctuation
290
- state = State.TopLevelContent
291
- // stack.push(State.que )
292
- } else if ((next = part.match(RE_ROUND_OPEN))) {
293
- token = TokenType.Punctuation
294
- state = State.InsideRound
295
- stack.push(State.AfterQuery)
296
- } else if ((next = part.match(RE_COMMA))) {
297
- token = TokenType.Punctuation
298
- state = State.AfterQuery
299
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
300
- token = TokenType.Punctuation
301
- state = State.InsideDoubleQuoteString
302
- stack.push(State.AfterQuery)
303
- } else if ((next = part.match(RE_SEMICOLON))) {
304
- token = TokenType.Punctuation
305
- state = stack.pop() || State.TopLevelContent
306
- } else if ((next = part.match(RE_PUNCTUATION))) {
307
- token = TokenType.Punctuation
308
- state = State.AfterQuery
309
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
310
- stack.push(state)
311
- token = TokenType.Comment
312
- state = State.InsideBlockComment
313
- } else if ((next = part.match(RE_SEMICOLON))) {
314
- token = TokenType.Punctuation
315
- state = stack.pop() || State.TopLevelContent
316
- } else if ((next = part.match(RE_ANYTHING_UNTIL_CLOSE_BRACE))) {
317
- token = TokenType.Text
318
- state = stack.pop() || State.TopLevelContent
319
- } else {
320
- part
321
- throw new Error('no')
322
- }
323
- break
324
- case State.AfterQueryWithRules:
325
- if ((next = part.match(RE_WHITESPACE))) {
326
- token = TokenType.Whitespace
327
- state = State.AfterQueryWithRules
328
- } else if ((next = part.match(RE_CURLY_OPEN))) {
329
- token = TokenType.Punctuation
330
- state = State.InsideSelector
331
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
332
- stack.push(state)
333
- token = TokenType.Comment
334
- state = State.InsideBlockComment
335
- } else {
336
- throw new Error('no')
337
- }
338
- break
339
- case State.InsideBlockComment:
340
- if ((next = part.match(RE_BLOCK_COMMENT_END))) {
341
- token = TokenType.Comment
342
- state = stack.pop() || State.TopLevelContent
343
- } else if ((next = part.match(RE_BLOCK_COMMENT_CONTENT))) {
344
- token = TokenType.Comment
345
- state = State.InsideBlockComment
346
- } else {
347
- throw new Error('no')
348
- }
349
- break
350
- // TODO support css nesting https://www.w3.org/TR/css-nesting-1/
351
- case State.InsideSelector:
352
- if ((next = part.match(RE_WHITESPACE))) {
353
- token = TokenType.Whitespace
354
- state = State.InsideSelector
355
- } else if ((next = part.match(RE_PROPERTY_NAME))) {
356
- token = TokenType.CssPropertyName
357
- state = State.AfterPropertyName
358
- if (next[0].startsWith('--')) {
359
- token = TokenType.Variable
360
- }
361
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
362
- token = TokenType.Comment
363
- state = State.InsideBlockComment
364
- stack.push(State.InsideSelector)
365
- } else if ((next = part.match(RE_STAR))) {
366
- token = TokenType.Punctuation
367
- state = State.InsideSelector
368
- } else if ((next = part.match(RE_QUERY))) {
369
- token = TokenType.Query
370
- state = State.AfterQuery
371
- } else if ((next = part.match(RE_SEMICOLON))) {
372
- token = TokenType.Punctuation
373
- state = State.InsideSelector
374
- } else if ((next = part.match(RE_AMPERSAND))) {
375
- token = TokenType.Punctuation
376
- state = State.TopLevelContent
377
- stack.push(State.InsideSelector)
378
- } else if ((next = part.match(RE_ANYTHING_UNTIL_CLOSE_BRACE))) {
379
- token = TokenType.Unknown
380
- state = State.InsideSelector
381
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
382
- token = TokenType.CurlyClose
383
- state = stack.pop() || State.TopLevelContent
384
- } else {
385
- throw new Error('no')
386
- }
387
- break
388
- case State.AfterPropertyName:
389
- if ((next = part.match(RE_COLON))) {
390
- token = TokenType.CssPropertyColon
391
- state = State.AfterPropertyNameAfterColon
392
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
393
- token = TokenType.CurlyClose
394
- state = State.TopLevelContent
395
- } else if ((next = part.match(RE_WHITESPACE))) {
396
- token = TokenType.Whitespace
397
- state = State.AfterPropertyName
398
- } else if ((next = part.match(RE_NUMERIC))) {
399
- token = TokenType.Numeric
400
- state = State.AfterPropertyNameAfterColon
401
- } else if ((next = part.match(RE_PROPERTY_NAME))) {
402
- token = TokenType.CssPropertyName
403
- state = State.AfterPropertyName
404
- } else if ((next = part.match(RE_ANYTHING_UNTIL_CLOSE_BRACE))) {
405
- token = TokenType.Unknown
406
- state = State.InsideSelector
407
- } else {
408
- tokens
409
- part //?
410
- throw new Error('no')
411
- }
412
- break
413
- case State.AfterPropertyNameAfterColon:
414
- if ((next = part.match(RE_WHITESPACE))) {
415
- token = TokenType.Whitespace
416
- state = State.AfterPropertyNameAfterColon
417
- } else if ((next = part.match(RE_NUMERIC))) {
418
- token = TokenType.Numeric
419
- state = State.AfterPropertyNameAfterColon
420
- } else if ((next = part.match(RE_FUNCTION))) {
421
- token = TokenType.FuntionName
422
- state = State.AfterFunctionName
423
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
424
- token = TokenType.Punctuation
425
- state = State.InsideSingleQuoteString
426
- stack.push(State.AfterPropertyNameAfterColon)
427
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
428
- token = TokenType.Punctuation
429
- state = State.InsideDoubleQuoteString
430
- stack.push(State.AfterPropertyNameAfterColon)
431
- } else if ((next = part.match(RE_PROPERTY_VALUE_SHORT))) {
432
- token = TokenType.CssPropertyValue
433
- state = State.AfterPropertyNameAfterColon
434
- } else if ((next = part.match(RE_SEMICOLON))) {
435
- token = TokenType.Punctuation
436
- state = State.InsideSelector
437
- } else if ((next = part.match(RE_PROPERTY_VALUE))) {
438
- token = TokenType.CssPropertyValue
439
- state = State.AfterPropertyNameAfterColon
440
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
441
- token = TokenType.Punctuation
442
- state = stack.pop() || State.TopLevelContent
443
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
444
- stack.push(state)
445
- token = TokenType.Comment
446
- state = State.InsideBlockComment
447
- } else if ((next = part.match(RE_SLASH))) {
448
- token = TokenType.Punctuation
449
- state = State.AfterPropertyNameAfterColon
450
- } else if ((next = part.match(RE_ROUND_OPEN))) {
451
- token = TokenType.Punctuation
452
- state = State.AfterFunctionNameInsideArguments
453
- } else {
454
- part
455
- throw new Error('no')
456
- }
457
- break
458
- case State.InsidePseudoSelector:
459
- if ((next = part.match(RE_PSEUDO_SELECTOR_CONTENT))) {
460
- token = TokenType.CssSelector
461
- state = State.InsidePseudoSelector
462
- } else if ((next = part.match(RE_ROUND_CLOSE))) {
463
- token = TokenType.Punctuation
464
- state = State.AfterSelector
465
- } else {
466
- throw new Error('no')
467
- }
468
- break
469
- case State.InsideRound:
470
- if ((next = part.match(RE_QUERY_CONTENT))) {
471
- token = TokenType.Text
472
- state = State.InsideRound
473
- } else if ((next = part.match(RE_ROUND_CLOSE))) {
474
- token = TokenType.Punctuation
475
- state = stack.pop()
476
- } else {
477
- throw new Error('no')
478
- }
479
- break
480
- case State.InsideAttributeSelector:
481
- if ((next = part.match(RE_ATTRIBUTE_SELECTOR_CONTENT))) {
482
- token = TokenType.CssSelector
483
- state = State.InsideAttributeSelector
484
- } else if ((next = part.match(RE_SQUARE_CLOSE))) {
485
- token = TokenType.Punctuation
486
- state = State.AfterSelector
487
- } else {
488
- throw new Error('no')
489
- }
490
- break
491
- case State.AfterFunctionName:
492
- if ((next = part.match(RE_ROUND_OPEN))) {
493
- token = TokenType.Punctuation
494
- state = State.AfterFunctionNameInsideArguments
495
- } else if ((next = part.match(RE_NUMERIC))) {
496
- token = TokenType.Numeric
497
- state = State.AfterFunctionName
498
- } else if ((next = part.match(RE_WHITESPACE))) {
499
- token = TokenType.Whitespace
500
- state = State.AfterFunctionName
501
- } else if ((next = part.match(RE_ROUND_CLOSE))) {
502
- token = TokenType.Punctuation
503
- state = State.AfterFunctionName
504
- } else if ((next = part.match(RE_SEMICOLON))) {
505
- token = TokenType.Punctuation
506
- state = State.InsideSelector
507
- } else if ((next = part.match(RE_COMMA))) {
508
- token = TokenType.Punctuation
509
- state = State.AfterFunctionName
510
- } else if ((next = part.match(RE_FUNCTION))) {
511
- token = TokenType.FuntionName
512
- state = State.AfterFunctionName
513
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
514
- token = TokenType.Variable
515
- state = State.AfterFunctionName
516
- } else if ((next = part.match(RE_PERCENT))) {
517
- token = TokenType.CssPropertyValue
518
- state = State.AfterFunctionName
519
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
520
- token = TokenType.Punctuation
521
- state = State.InsideDoubleQuoteString
522
- stack.push(State.AfterFunctionName)
523
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
524
- token = TokenType.Punctuation
525
- state = State.InsideSingleQuoteString
526
- stack.push(State.AfterFunctionName)
527
- } else if ((next = part.match(RE_PROPERTY_VALUE_SHORT))) {
528
- token = TokenType.CssPropertyValue
529
- state = State.AfterFunctionName
530
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
531
- token = TokenType.Punctuation
532
- state = stack.pop() || State.TopLevelContent
533
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
534
- stack.push(state)
535
- token = TokenType.Comment
536
- state = State.InsideBlockComment
537
- } else if ((next = part.match(RE_SLASH))) {
538
- token = TokenType.Punctuation
539
- state = State.AfterFunctionName
540
- } else if ((next = part.match(RE_STAR))) {
541
- token = TokenType.Punctuation
542
- state = State.AfterFunctionName
543
- } else {
544
- part
545
- throw new Error('no')
546
- }
547
- break
548
- case State.AfterFunctionNameInsideArguments:
549
- if ((next = part.match(RE_ROUND_OPEN))) {
550
- token = TokenType.Punctuation
551
- state = State.AfterFunctionName
552
- } else if ((next = part.match(RE_NUMERIC))) {
553
- token = TokenType.Numeric
554
- state = State.AfterFunctionName
555
- } else if ((next = part.match(RE_WHITESPACE))) {
556
- token = TokenType.Whitespace
557
- state = State.AfterFunctionName
558
- } else if ((next = part.match(RE_ROUND_CLOSE))) {
559
- token = TokenType.Punctuation
560
- state = stack.pop() || State.InsideSelector
561
- } else if ((next = part.match(RE_SEMICOLON))) {
562
- token = TokenType.Punctuation
563
- state = State.InsideSelector
564
- } else if ((next = part.match(RE_COMMA))) {
565
- token = TokenType.Punctuation
566
- state = State.AfterFunctionName
567
- } else if ((next = part.match(RE_FUNCTION))) {
568
- token = TokenType.FuntionName
569
- state = State.AfterFunctionName
570
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
571
- token = TokenType.Variable
572
- state = State.AfterFunctionName
573
- } else if ((next = part.match(RE_PERCENT))) {
574
- token = TokenType.CssPropertyValue
575
- state = State.AfterFunctionName
576
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
577
- token = TokenType.Punctuation
578
- state = State.InsideDoubleQuoteString
579
- stack.push(State.AfterFunctionName)
580
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
581
- token = TokenType.Punctuation
582
- state = State.InsideSingleQuoteString
583
- stack.push(State.AfterFunctionName)
584
- } else if ((next = part.match(RE_PROPERTY_VALUE_INSIDE_FUNCTION))) {
585
- token = TokenType.CssPropertyValue
586
- state = State.AfterFunctionName
587
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
588
- token = TokenType.Punctuation
589
- state = stack.pop() || State.TopLevelContent
590
- } else {
591
- part
592
- throw new Error('no')
593
- }
594
- break
595
- case State.InsideDoubleQuoteString:
596
- if ((next = part.match(RE_DOUBLE_QUOTE))) {
597
- token = TokenType.Punctuation
598
- state = stack.pop() || State.TopLevelContent
599
- } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
600
- token = TokenType.String
601
- state = State.InsideDoubleQuoteString
602
- } else {
603
- throw new Error('no')
604
- }
605
- break
606
- case State.AfterKeywordImport:
607
- if ((next = part.match(RE_WHITESPACE))) {
608
- token = TokenType.Whitespace
609
- state = State.AfterKeywordImport
610
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
611
- token = TokenType.Punctuation
612
- state = State.InsideSingleQuoteString
613
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
614
- token = TokenType.Punctuation
615
- state = State.InsideDoubleQuoteString
616
- } else if ((next = part.match(RE_FUNCTION))) {
617
- stack.push(state)
618
- token = TokenType.FuntionName
619
- state = State.AfterFunctionName
620
- } else {
621
- part
622
- throw new Error('no')
623
- }
624
- break
625
- case State.InsideSingleQuoteString:
626
- if ((next = part.match(RE_SINGLE_QUOTE))) {
627
- token = TokenType.Punctuation
628
- state = stack.pop() || State.TopLevelContent
629
- } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
630
- token = TokenType.String
631
- state = State.InsideSingleQuoteString
632
- } else {
633
- throw new Error('no')
634
- }
635
- break
636
- default:
637
- console.log({ state, line })
638
- throw new Error('no')
639
- }
640
- const tokenLength = next[0].length
641
- index += tokenLength
642
- tokens.push(token, tokenLength)
643
- }
644
- if (state === State.AfterPropertyName) {
645
- state = State.InsideSelector
646
- }
647
- if (state === State.AfterKeywordImport) {
648
- state = State.TopLevelContent
649
- }
650
- return {
651
- state,
652
- tokens,
653
- stack,
654
- }
655
- }
656
-
657
- // TODO test :hover, :after, :before, ::first-letter
658
-
659
- // TODO test complex background image url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%206%203'%20enable-background%3D'new%200%200%206%203'%20height%3D'3'%20width%3D'6'%3E%3Cg%20fill%3D'%23b64e4e'%3E%3Cpolygon%20points%3D'5.5%2C0%202.5%2C3%201.1%2C3%204.1%2C0'%2F%3E%3Cpolygon%20points%3D'4%2C0%206%2C2%206%2C0.6%205.4%2C0'%2F%3E%3Cpolygon%20points%3D'0%2C2%201%2C3%202.4%2C3%200%2C0.6'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")
@@ -1,14 +0,0 @@
1
- # Language Basics Dart
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-dart.git &&
7
- cd language-basics-dart &&
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-dart)
@@ -1,12 +0,0 @@
1
- {
2
- "id": "builtin.language-basics-dart",
3
- "name": "Language Basics Dart",
4
- "description": "Provides syntax highlighting and bracket matching in Dart files.",
5
- "languages": [
6
- {
7
- "id": "dart",
8
- "extensions": [".dart"],
9
- "tokenize": "src/tokenizeDart.js"
10
- }
11
- ]
12
- }