@lvce-editor/shared-process 0.18.8 → 0.18.9

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