@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,661 +0,0 @@
1
- /**
2
- * @enum number
3
- */
4
- const State = {
5
- None: 0,
6
- TopLevelContent: 1,
7
- AfterOpeningAngleBracket: 2,
8
- InsideOpeningTag: 3,
9
- InsideOpeningTagAndHasSeenWhitespace: 4,
10
- AfterClosingTagAngleBrackets: 5,
11
- AfterClosingTagName: 6,
12
- AfterAttributeName: 7,
13
- AfterAttributeEqualSign: 8,
14
- InsideAttributeDoubleQuote: 9,
15
- InsideBlockComment: 10,
16
- InsideString: 11,
17
- AfterKeyword: 12,
18
- Keyword: 13,
19
- InsideLineComment: 14,
20
- InsideSingleQuoteString: 15,
21
- InsideDoubleQuoteString: 16,
22
- InsideBacktickString: 17,
23
- AfterPropertyDot: 18,
24
- InsideTag: 19,
25
- AfterSemicolon: 20,
26
- }
27
-
28
- /**
29
- * @enum number
30
- */
31
- export const TokenType = {
32
- None: 99999999,
33
- Numeric: 30,
34
- String: 50,
35
- Whitespace: 777,
36
- Comment: 60,
37
- Text: 117,
38
- PunctuationTag: 228,
39
- TagName: 118,
40
- AttributeName: 119,
41
- Punctuation: 10,
42
- Error: 141,
43
- PunctuationString: 11,
44
- NewLine: 771,
45
- Keyword: 951,
46
- VariableName: 952,
47
- LanguageConstant: 13,
48
- Regex: 14,
49
- KeywordImport: 215,
50
- KeywordControl: 881,
51
- KeywordModifier: 882,
52
- KeywordReturn: 883,
53
- KeywordNew: 884,
54
- FunctionName: 885,
55
- KeywordThis: 886,
56
- KeywordOperator: 887,
57
- KeywordFunction: 889,
58
- }
59
-
60
- export const TokenMap = {
61
- [TokenType.None]: 'None',
62
- [TokenType.Numeric]: 'Numeric',
63
- [TokenType.String]: 'String',
64
- [TokenType.Whitespace]: 'Whitespace',
65
- [TokenType.Comment]: 'Comment',
66
- [TokenType.Text]: 'Text',
67
- [TokenType.PunctuationTag]: 'PunctuationTag',
68
- [TokenType.TagName]: 'TagName',
69
- [TokenType.AttributeName]: 'AttributeName',
70
- [TokenType.Punctuation]: 'Punctuation',
71
- [TokenType.Error]: 'Error',
72
- [TokenType.PunctuationString]: 'PunctuationString',
73
- [TokenType.NewLine]: 'NewLine',
74
- [TokenType.Keyword]: 'Keyword',
75
- [TokenType.VariableName]: 'VariableName',
76
- [TokenType.LanguageConstant]: 'LanguageConstant',
77
- [TokenType.Regex]: 'Regex',
78
- [TokenType.KeywordImport]: 'KeywordImport',
79
- [TokenType.KeywordControl]: 'KeywordControl',
80
- [TokenType.KeywordModifier]: 'KeywordModifier',
81
- [TokenType.KeywordReturn]: 'KeywordReturn',
82
- [TokenType.KeywordNew]: 'KeywordNew',
83
- [TokenType.FunctionName]: 'Function',
84
- [TokenType.KeywordThis]: 'KeywordThis',
85
- [TokenType.KeywordOperator]: 'KeywordOperator',
86
- [TokenType.KeywordFunction]: 'KeywordFunction',
87
- }
88
-
89
- const RE_KEYWORD =
90
- /^(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|if|implements|import|in|Infinity|instanceof|interface|let|new|null|of|package|private|protected|public|return|super|switch|static|this|throw|try|true|typeof|undefined|var|void|while|with|yield)\b/
91
- const RE_CURLY_OPEN = /^\{/
92
- const RE_CURLY_CLOSE = /^\}/
93
- const RE_SQUARE_OPEN = /^\[/
94
- const RE_SQUARE_CLOSE = /^\]/
95
- const RE_COMMA = /^,/
96
- const RE_COLON = /^:/
97
- const RE_NUMERIC =
98
- /^((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b/
99
- const RE_NUMERIC_OCTAL = /0(?:o|O)?[0-7][0-7_]*(n)?\b/
100
- const RE_LINE_COMMENT_START = /^\/\//
101
- const RE_LINE_COMMENT_CONTENT = /^[^\n]+/
102
- const RE_NEWLINE_WHITESPACE = /^\n\s*/
103
- const RE_BLOCK_COMMENT_START = /^\/\*/
104
- const RE_BLOCK_COMMENT_CONTENT = /^.+?(?=\*\/)/
105
- const RE_BLOCK_COMMENT_END = /^\*\//
106
- const RE_UNKNOWN_VALUE = /^[^\}\{\s,"]+/
107
- const RE_IMPORT = /^[a-zA-Z\.]+/
108
- const RE_SEMICOLON = /^;/
109
- const RE_VARIABLE_NAME = /^[a-zA-Z_$][a-zA-Z\d\_]*/
110
- const RE_LINE_COMMENT = /^\/\/[^\n]*/
111
- const RE_ROUND_OPEN = /^\(/
112
- const RE_ROUND_CLOSE = /^\)/
113
- const RE_DOT = /^\./
114
- const RE_EQUAL_SIGN = /^=/
115
- const RE_SINGLE_QUOTE = /^'/
116
- const RE_PUNCTUATION = /^[\(\)=\+\-><\.:;\{\}\[\]!,&\|\^\?\*%~]/
117
- const RE_SLASH = /^\//
118
- const RE_ANYTHING_UNTIL_END = /^.+/s
119
- const RE_WHITESPACE = /^\s+/
120
- const RE_QUOTE_SINGLE = /^'/
121
- const RE_QUOTE_DOUBLE = /^"/
122
- const RE_QUOTE_BACKTICK = /^`/
123
- const RE_STRING_SINGLE_QUOTE_CONTENT = /^[^'\\]+/
124
- const RE_STRING_DOUBLE_QUOTE_CONTENT = /^[^"\\]+/
125
- const RE_STRING_BACKTICK_QUOTE_CONTENT = /^[^`\\\$]+/
126
- const RE_STRING_ESCAPE = /^\\./
127
- const RE_SHEBANG = /^#!.*/
128
- const RE_FUNCTION_CALL_NAME = /^[\w]+(?=\s*(\`|\(|\=\s*function|\=\s*\())/
129
- const RE_DECORATOR = /^@\w+/
130
- const RE_BACKSLASH = /^\\/
131
- const RE_DOLLAR_CURLY_OPEN = /^\$\{/
132
- const RE_DOLLAR = /^\$/
133
- const RE_ANYTHING = /^.+/u
134
- const RE_ANGLE_BRACKET_OPEN_TAG = /^<(?![\s!<=\d])/
135
- const RE_ANGLE_BRACKET_CLOSE_TAG = /^<\/(?![\s!])/
136
- const RE_TAGNAME = /^[!\w\:\.]+/
137
- const RE_ANGLE_BRACKET_CLOSE = /^>/
138
- const RE_ANGLE_BRACKET_ONLY = /^</
139
- const RE_ANGLE_BRACKET_OPEN = /^</
140
- const RE_ANY_TEXT = /^[^\n]+/
141
- const RE_PUNCTUATION_SELF_CLOSING = /^\/>/
142
- const RE_TAG_TEXT = /^[^\s>]+/
143
- const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d\-\:\_]+/
144
- const RE_DOUBLE_QUOTE = /^"/
145
- const RE_ATTRIBUTE_VALUE_UNQUOTED = /^[^<>\s]+/
146
-
147
- // copied from https://github.com/PrismJS/prism/blob/master/components/prism-jsx.js#L57
148
- const RE_REGEX =
149
- /^((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/
150
-
151
- const RE_VARIABLE_NAME_SPECIAL = /\p{L}/u
152
- const RE_VARIABLE_NAME_SPECIAL_2 = /./u
153
- const RE_SELF_CLOSING = /^\/>/
154
- const RE_TEXT = /^[^<>\n\{\}\)]+/
155
- const RE_EMPTY_FRAGMENT = /^<\s*\>/
156
- const RE_VAR_CONST_LET_EXPORT =
157
- /^\s*(?=(?:if|class|export|var|const|let)(?:\s+|$))/
158
-
159
- const RE_EXPRESSION = /;\w+$/
160
-
161
- export const initialLineState = {
162
- state: State.TopLevelContent,
163
- /**
164
- * @type {any[]}
165
- */
166
- stack: [],
167
- tag: '',
168
- }
169
-
170
- export const hasArrayReturn = true
171
-
172
- /**
173
- *
174
- * @param {string} line
175
- * @param {*} lineState
176
- * @returns
177
- */
178
- export const tokenizeLine = (line, lineState) => {
179
- let next = null
180
- let index = 0
181
- let tokens = []
182
- let token = TokenType.None
183
- let state = lineState.state
184
- let stack = [...lineState.stack]
185
- let tag = lineState.tag
186
-
187
- while (index < line.length) {
188
- const part = line.slice(index)
189
- switch (state) {
190
- case State.TopLevelContent:
191
- if ((next = part.match(RE_WHITESPACE))) {
192
- token = TokenType.Whitespace
193
- state = State.TopLevelContent
194
- } else if ((next = part.match(RE_KEYWORD))) {
195
- switch (next[0]) {
196
- case 'true':
197
- case 'false':
198
- case 'null':
199
- case 'undefined':
200
- token = TokenType.LanguageConstant
201
- break
202
- case 'import':
203
- case 'export':
204
- case 'from':
205
- token = TokenType.KeywordImport
206
- break
207
- case 'as':
208
- case 'switch':
209
- case 'default':
210
- case 'case':
211
- case 'else':
212
- case 'if':
213
- case 'break':
214
- case 'throw':
215
- case 'for':
216
- case 'try':
217
- case 'catch':
218
- case 'finally':
219
- case 'continue':
220
- case 'while':
221
- token = TokenType.KeywordControl
222
- break
223
- case 'async':
224
- case 'await':
225
- token = TokenType.KeywordModifier
226
- break
227
- case 'return':
228
- token = TokenType.KeywordReturn
229
- break
230
- case 'new':
231
- token = TokenType.KeywordNew
232
- break
233
- case 'this':
234
- token = TokenType.KeywordThis
235
- break
236
- case 'delete':
237
- case 'typeof':
238
- case 'in':
239
- token = TokenType.KeywordOperator
240
- break
241
- case 'function':
242
- token = TokenType.KeywordFunction
243
- break
244
- case 'Infinity':
245
- token = TokenType.Numeric
246
- state = State.TopLevelContent
247
- break
248
- case 'of':
249
- token = TokenType.KeywordOperator
250
- break
251
- default:
252
- token = TokenType.Keyword
253
- break
254
- }
255
- state = State.TopLevelContent
256
- } else if ((next = part.match(RE_FUNCTION_CALL_NAME))) {
257
- token = TokenType.FunctionName
258
- state = State.TopLevelContent
259
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
260
- token = TokenType.VariableName
261
- state = State.TopLevelContent
262
- } else if ((next = part.match(RE_NUMERIC))) {
263
- token = TokenType.Numeric
264
- state = State.TopLevelContent
265
- } else if ((next = part.match(RE_ANGLE_BRACKET_OPEN_TAG))) {
266
- if (RE_EXPRESSION.test(line.slice(0, index))) {
267
- next = part.match(RE_ANGLE_BRACKET_OPEN)
268
- token = TokenType.Punctuation
269
- } else {
270
- token = TokenType.PunctuationTag
271
- state = State.AfterOpeningAngleBracket
272
- }
273
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
274
- token = TokenType.Punctuation
275
- state = stack.pop() || State.TopLevelContent
276
- } else if ((next = part.match(RE_CURLY_OPEN))) {
277
- token = TokenType.Punctuation
278
- stack.push(State.TopLevelContent)
279
- state = State.TopLevelContent
280
- } else if ((next = part.match(RE_PUNCTUATION))) {
281
- token = TokenType.Punctuation
282
- if (next[0] === '.') {
283
- state = State.AfterPropertyDot
284
- } else if (next[0] === '}') {
285
- state = stack.pop() || State.TopLevelContent
286
- }
287
- // else if (next[0] === ';') {
288
- // state = State.AfterSemicolon
289
- // }
290
- else {
291
- state = State.TopLevelContent
292
- }
293
- } else if ((next = part.match(RE_SLASH))) {
294
- if ((next = part.match(RE_BLOCK_COMMENT_START))) {
295
- token = TokenType.Comment
296
- state = State.InsideBlockComment
297
- } else if ((next = part.match(RE_LINE_COMMENT_START))) {
298
- token = TokenType.Comment
299
- state = State.InsideLineComment
300
- } else if ((next = part.match(RE_REGEX))) {
301
- token = TokenType.Regex
302
- state = State.TopLevelContent
303
- } else {
304
- next = part.match(RE_SLASH)
305
- token = TokenType.Punctuation
306
- state = State.TopLevelContent
307
- }
308
- } else if ((next = part.match(RE_QUOTE_SINGLE))) {
309
- token = TokenType.Punctuation
310
- state = State.InsideSingleQuoteString
311
- } else if ((next = part.match(RE_QUOTE_DOUBLE))) {
312
- token = TokenType.Punctuation
313
- stack.push(state)
314
- state = State.InsideDoubleQuoteString
315
- } else if ((next = part.match(RE_QUOTE_BACKTICK))) {
316
- token = TokenType.Punctuation
317
- state = State.InsideBacktickString
318
- } else if ((next = part.match(RE_NUMERIC_OCTAL))) {
319
- token = TokenType.Numeric
320
- state = State.TopLevelContent
321
- } else if ((next = part.match(RE_SHEBANG))) {
322
- token = TokenType.Comment
323
- state = State.TopLevelContent
324
- } else if ((next = part.match(RE_DECORATOR))) {
325
- token = TokenType.VariableName
326
- state = State.TopLevelContent
327
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL))) {
328
- token = TokenType.VariableName
329
- state = State.TopLevelContent
330
- } else if ((next = part.match(RE_ANYTHING))) {
331
- token = TokenType.Text
332
- state = State.TopLevelContent
333
- } else {
334
- throw new Error('no')
335
- }
336
- break
337
- case State.Keyword:
338
- const keyword = next[0]
339
- switch (keyword) {
340
- case 'true':
341
- case 'false':
342
- break
343
- default:
344
- token = TokenType.Keyword
345
- state = State.TopLevelContent
346
- break
347
- }
348
- break
349
- case State.InsideLineComment:
350
- if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
351
- token = TokenType.Comment
352
- state = State.TopLevelContent
353
- } else {
354
- throw new Error('no')
355
- }
356
- break
357
- case State.InsideBlockComment:
358
- if ((next = part.match(RE_BLOCK_COMMENT_END))) {
359
- token = TokenType.Comment
360
- state = State.TopLevelContent
361
- } else if ((next = part.match(RE_BLOCK_COMMENT_CONTENT))) {
362
- token = TokenType.Comment
363
- state = State.InsideBlockComment
364
- } else if ((next = part.match(RE_ANYTHING_UNTIL_END))) {
365
- token = TokenType.Comment
366
- state = State.InsideBlockComment
367
- } else {
368
- throw new Error('no')
369
- }
370
- break
371
- case State.InsideSingleQuoteString:
372
- if ((next = part.match(RE_QUOTE_SINGLE))) {
373
- token = TokenType.Punctuation
374
- state = State.TopLevelContent
375
- } else if ((next = part.match(RE_STRING_SINGLE_QUOTE_CONTENT))) {
376
- token = TokenType.String
377
- state = State.InsideSingleQuoteString
378
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
379
- token = TokenType.String
380
- state = State.InsideSingleQuoteString
381
- } else if ((next = part.match(RE_BACKSLASH))) {
382
- token = TokenType.String
383
- state = State.InsideSingleQuoteString
384
- } else {
385
- part
386
- throw new Error('no')
387
- }
388
- break
389
- case State.InsideDoubleQuoteString:
390
- if ((next = part.match(RE_QUOTE_DOUBLE))) {
391
- token = TokenType.Punctuation
392
- state = stack.pop() || State.TopLevelContent
393
- } else if ((next = part.match(RE_STRING_DOUBLE_QUOTE_CONTENT))) {
394
- token = TokenType.String
395
- state = State.InsideDoubleQuoteString
396
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
397
- token = TokenType.String
398
- state = State.InsideDoubleQuoteString
399
- } else if ((next = part.match(RE_BACKSLASH))) {
400
- token = TokenType.String
401
- state = State.InsideDoubleQuoteString
402
- } else {
403
- throw new Error('no')
404
- }
405
- break
406
- case State.InsideBacktickString:
407
- if ((next = part.match(RE_QUOTE_BACKTICK))) {
408
- token = TokenType.Punctuation
409
- state = State.TopLevelContent
410
- } else if ((next = part.match(RE_STRING_BACKTICK_QUOTE_CONTENT))) {
411
- token = TokenType.String
412
- state = State.InsideBacktickString
413
- } else if ((next = part.match(RE_DOLLAR_CURLY_OPEN))) {
414
- token = TokenType.Punctuation
415
- state = State.TopLevelContent
416
- stack.push(State.InsideBacktickString)
417
- } else if ((next = part.match(RE_STRING_ESCAPE))) {
418
- token = TokenType.String
419
- state = State.InsideBacktickString
420
- } else if ((next = part.match(RE_BACKSLASH))) {
421
- token = TokenType.String
422
- state = State.InsideDoubleQuoteString
423
- } else if ((next = part.match(RE_DOLLAR))) {
424
- token = TokenType.String
425
- state = State.InsideBacktickString
426
- } else {
427
- throw new Error('no')
428
- }
429
- break
430
- case State.AfterPropertyDot:
431
- if ((next = part.match(RE_WHITESPACE))) {
432
- token = TokenType.Whitespace
433
- state = State.AfterPropertyDot
434
- } else if ((next = part.match(RE_FUNCTION_CALL_NAME))) {
435
- token = TokenType.FunctionName
436
- state = State.TopLevelContent
437
- } else if ((next = part.match(RE_VARIABLE_NAME))) {
438
- token = TokenType.VariableName
439
- state = State.TopLevelContent
440
- } else if ((next = part.match(RE_LINE_COMMENT))) {
441
- token = TokenType.Comment
442
- state = State.InsideLineComment
443
- } else if ((next = part.match(RE_BLOCK_COMMENT_START))) {
444
- token = TokenType.Comment
445
- state = State.InsideBlockComment
446
- } else if ((next = part.match(RE_PUNCTUATION))) {
447
- token = TokenType.Punctuation
448
- state = State.TopLevelContent
449
- } else if ((next = part.match(RE_VARIABLE_NAME_SPECIAL_2))) {
450
- token = TokenType.VariableName
451
- state = State.TopLevelContent
452
- } else {
453
- throw new Error('no')
454
- }
455
- break
456
- case State.AfterOpeningAngleBracket:
457
- if ((next = part.match(RE_TAGNAME))) {
458
- token = TokenType.TagName
459
- state = State.InsideOpeningTag
460
- tag = next[0]
461
- } else if ((next = part.match(RE_SLASH))) {
462
- token = TokenType.PunctuationTag
463
- state = State.AfterClosingTagAngleBrackets
464
- } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
465
- token = TokenType.PunctuationTag
466
- state = State.TopLevelContent
467
- } else if ((next = part.match(RE_ANGLE_BRACKET_OPEN))) {
468
- token = TokenType.PunctuationTag
469
- state = State.AfterOpeningAngleBracket
470
- } else if ((next = part.match(RE_ANY_TEXT))) {
471
- token = TokenType.Text
472
- state = State.TopLevelContent
473
- } else {
474
- part //?
475
- throw new Error('no')
476
- }
477
- break
478
- case State.InsideOpeningTag:
479
- if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
480
- token = TokenType.PunctuationTag
481
- state = State.InsideTag
482
- } else if ((next = part.match(RE_WHITESPACE))) {
483
- token = TokenType.Whitespace
484
- state = State.InsideOpeningTagAndHasSeenWhitespace
485
- } else if ((next = part.match(RE_PUNCTUATION_SELF_CLOSING))) {
486
- token = TokenType.PunctuationTag
487
- state = State.TopLevelContent
488
- } else if ((next = part.match(RE_TAG_TEXT))) {
489
- token = TokenType.Text
490
- state = State.InsideOpeningTag
491
- } else {
492
- part //?
493
- throw new Error('no')
494
- }
495
- break
496
- case State.InsideOpeningTagAndHasSeenWhitespace:
497
- if ((next = part.match(RE_ATTRIBUTE_NAME))) {
498
- token = TokenType.AttributeName
499
- state = State.AfterAttributeName
500
- } else if ((next = part.match(RE_SELF_CLOSING))) {
501
- token = TokenType.PunctuationTag
502
- state = State.TopLevelContent
503
- } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
504
- token = TokenType.PunctuationTag
505
- state = State.InsideTag
506
- } else if ((next = part.match(RE_CURLY_OPEN))) {
507
- token = TokenType.Punctuation
508
- state = State.TopLevelContent
509
- stack.push(State.InsideOpeningTag)
510
- } else if ((next = part.match(RE_TAG_TEXT))) {
511
- token = TokenType.Text
512
- state = State.TopLevelContent
513
- } else {
514
- part //?
515
- throw new Error('no')
516
- }
517
- break
518
- case State.AfterClosingTagAngleBrackets:
519
- if ((next = part.match(RE_TAGNAME))) {
520
- token = TokenType.TagName
521
- state = State.AfterClosingTagName
522
- } else if ((next = part.match(RE_WHITESPACE))) {
523
- token = TokenType.Whitespace
524
- state = State.TopLevelContent
525
- } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
526
- token = TokenType.PunctuationTag
527
- state = State.InsideTag
528
- } else if ((next = part.match(RE_ANY_TEXT))) {
529
- token = TokenType.Text
530
- state = State.TopLevelContent
531
- } else {
532
- part //?
533
- throw new Error('no')
534
- }
535
- break
536
- case State.AfterClosingTagName:
537
- if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
538
- token = TokenType.PunctuationTag
539
- state = State.InsideTag
540
- } else if ((next = part.match(RE_TEXT))) {
541
- token = TokenType.Text
542
- state = State.TopLevelContent
543
- } else {
544
- throw new Error('no')
545
- }
546
- break
547
- case State.InsideTag:
548
- if ((next = part.match(RE_TEXT))) {
549
- token = TokenType.Text
550
- state = State.InsideTag
551
- if (index === 0) {
552
- const match = part.match(RE_VAR_CONST_LET_EXPORT)
553
- if (match) {
554
- next = match
555
- token = TokenType.Whitespace
556
- state = State.TopLevelContent
557
- }
558
- }
559
- } else if ((next = part.match(RE_ANGLE_BRACKET_OPEN_TAG))) {
560
- token = TokenType.PunctuationTag
561
- state = State.AfterOpeningAngleBracket
562
- } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE_TAG))) {
563
- token = TokenType.PunctuationTag
564
- state = State.AfterClosingTagAngleBrackets
565
- } else if ((next = part.match(RE_CURLY_OPEN))) {
566
- token = TokenType.Punctuation
567
- state = State.TopLevelContent
568
- stack.push(State.InsideTag)
569
- } else if ((next = part.match(RE_CURLY_CLOSE))) {
570
- token = TokenType.Punctuation
571
- state = stack.pop() || State.TopLevelContent
572
- } else if ((next = part.match(RE_ROUND_CLOSE))) {
573
- if (stack.length === 0) {
574
- token = TokenType.Punctuation
575
- state = State.TopLevelContent
576
- } else {
577
- token = TokenType.Text
578
- state = State.InsideTag
579
- }
580
- } else if ((next = part.match(RE_EMPTY_FRAGMENT))) {
581
- token = TokenType.PunctuationTag
582
- state = State.InsideTag
583
- } else {
584
- part
585
- line
586
- throw new Error('no')
587
- }
588
- break
589
- case State.AfterAttributeName:
590
- if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
591
- token = TokenType.PunctuationTag
592
- state = State.InsideTag
593
- } else if ((next = part.match(RE_EQUAL_SIGN))) {
594
- token = TokenType.Punctuation
595
- state = State.AfterAttributeEqualSign
596
- } else if ((next = part.match(RE_DOUBLE_QUOTE))) {
597
- token = TokenType.PunctuationString
598
- state = State.InsideDoubleQuoteString
599
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
600
- token = TokenType.PunctuationString
601
- state = State.InsideSingleQuoteString
602
- } else if ((next = part.match(RE_TAG_TEXT))) {
603
- token = TokenType.Text
604
- state = State.InsideOpeningTag
605
- } else if ((next = part.match(RE_WHITESPACE))) {
606
- token = TokenType.Whitespace
607
- state = State.InsideOpeningTagAndHasSeenWhitespace
608
- } else {
609
- // TODO check quotation mark
610
- part //?
611
- throw new Error('no')
612
- }
613
- break
614
- case State.AfterAttributeEqualSign:
615
- if ((next = part.match(RE_DOUBLE_QUOTE))) {
616
- token = TokenType.PunctuationString
617
- state = State.InsideDoubleQuoteString
618
- stack.push(State.InsideOpeningTag)
619
- } else if ((next = part.match(RE_SINGLE_QUOTE))) {
620
- token = TokenType.PunctuationString
621
- state = State.InsideSingleQuoteString
622
- stack.push(State.InsideOpeningTag)
623
- } else if ((next = part.match(RE_CURLY_OPEN))) {
624
- token = TokenType.Punctuation
625
- state = State.TopLevelContent
626
- stack.push(State.InsideOpeningTag)
627
- } else if ((next = part.match(RE_ANGLE_BRACKET_CLOSE))) {
628
- token = TokenType.PunctuationTag
629
- state = State.TopLevelContent
630
- } else if ((next = part.match(RE_ATTRIBUTE_VALUE_UNQUOTED))) {
631
- token = TokenType.String
632
- state = State.InsideOpeningTag
633
- } else {
634
- part
635
- throw new Error('no')
636
- }
637
- break
638
- default:
639
- state
640
- throw new Error('no')
641
- }
642
- const tokenLength = next[0].length
643
- index += tokenLength
644
- tokens.push(token, tokenLength)
645
- }
646
- if (state === State.InsideLineComment) {
647
- state = State.TopLevelContent
648
- }
649
- if (state === State.InsideSingleQuoteString && !line.endsWith('\\')) {
650
- state = State.TopLevelContent
651
- }
652
- if (state === State.InsideTag && (line.endsWith(',') || line.endsWith(';'))) {
653
- state = stack.pop() || State.TopLevelContent
654
- }
655
- return {
656
- state,
657
- tokens,
658
- stack,
659
- tag,
660
- }
661
- }
@@ -1,18 +0,0 @@
1
- # Language Basics Julia
2
-
3
- ## Contributing
4
-
5
- ```sh
6
- git clone git@github.com:lvce-editor/language-basics-julia.git &&
7
- cd language-basics-julia &&
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-julia)
15
-
16
- ## Credits
17
-
18
- Based on https://github.com/highlightjs/highlight.js/blob/main/src/languages/julia.js by @isagalaev and contributers.
@@ -1,12 +0,0 @@
1
- {
2
- "id": "builtin.language-basics-julia",
3
- "name": "Language Basics Julia",
4
- "description": "Provides syntax highlighting and bracket matching in Julia files.",
5
- "languages": [
6
- {
7
- "id": "julia",
8
- "extensions": [".jl"],
9
- "tokenize": "src/tokenizeJulia.js"
10
- }
11
- ]
12
- }