arche-highlight 0.7.0 → 0.8.0

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.
@@ -41,6 +41,7 @@ function parseJavaScript(text) {
41
41
 
42
42
  let index = 0
43
43
  let term = ""
44
+ let isShebangInterpreterDirective = false
44
45
  let isSingleLineComment = false
45
46
  let isMultiLineComment = false
46
47
  let isNumber = false
@@ -54,7 +55,11 @@ function parseJavaScript(text) {
54
55
  while (index < text.length) {
55
56
  let c = text[index]
56
57
 
57
- if (isSingleLineComment && c === "\n") {
58
+ if (isShebangInterpreterDirective && c === "\n") {
59
+ isShebangInterpreterDirective = false
60
+ parsedElements.push(Span({ class: "shebang-interpreter-directive" }, term))
61
+ term = ""
62
+ } else if (isSingleLineComment && c === "\n") {
58
63
  isSingleLineComment = false
59
64
  parsedElements.push(Span({ class: "comment" }, term))
60
65
  term = ""
@@ -120,7 +125,10 @@ function parseJavaScript(text) {
120
125
  break
121
126
  }
122
127
 
123
- if (isSingleLineComment) {
128
+ if (isShebangInterpreterDirective) {
129
+ term += c
130
+ index += 1
131
+ } else if (isSingleLineComment) {
124
132
  term += c
125
133
  index += 1
126
134
  } else if (isMultiLineComment) {
@@ -163,6 +171,10 @@ function parseJavaScript(text) {
163
171
  term += c
164
172
  index += 1
165
173
  }
174
+ } else if (c === "#" && text[index + 1] === "!") {
175
+ isShebangInterpreterDirective = true
176
+ term += c
177
+ index += 1
166
178
  } else if (c === "/" && text[index + 1] === "/") {
167
179
  isSingleLineComment = true
168
180
  term += c
@@ -320,6 +332,8 @@ function parseJavaScript(text) {
320
332
  if (term.length > 0) {
321
333
  if (isSingleLineComment) {
322
334
  parsedElements.push(Span({ class: "comment" }, term))
335
+ } else if (isShebangInterpreterDirective) {
336
+ parsedElements.push(Span({ class: "shebang-interpreter-directive" }, term))
323
337
  } else if (isNumber) {
324
338
  if (term[term.length - 1] === "n") {
325
339
  parsedElements.push(Span({ class: "bigint" }, term))
package/ArcheHighlight.js CHANGED
@@ -2,11 +2,6 @@
2
2
  * ArcheHighlight may be freely distributed under the CFOSS license.
3
3
  */
4
4
 
5
- (function (root, ArcheHighlight) {
6
- if (typeof module == 'object') (module.exports = ArcheHighlight) // CommonJS
7
- else (root.ArcheHighlight = ArcheHighlight) // Browser
8
- }(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
9
-
10
5
  function testOperatorSymbol(c) {
11
6
  return c === "+" || c === "-" || c === "*" || c === "/" || c === "=" || c === "&" || c === "|" || c === "<" || c === ">" || c === "~" || c === "^" || c === "!" || c === "?" || c === ":"
12
7
  }
@@ -224,7 +219,7 @@ function parseJavaScript(text) {
224
219
  parsedElements.push(c)
225
220
  term = ""
226
221
  index += 1
227
- } else if (term == "import" || term == "new" || term == "async" || term == "await" || term == "for" || term == "while" || term == "of" || term == "from") {
222
+ } else if (term == "import" || term == "new" || term == "async" || term == "await" || term == "if" || term == "for" || term == "while" || term == "of" || term == "from") {
228
223
  parsedElements.push(Span({ class: "keyword" }, term))
229
224
  parsedElements.push(c)
230
225
  term = ""
@@ -359,5 +354,8 @@ const ArcheHighlight = {
359
354
  parseJavaScript,
360
355
  }
361
356
 
362
- return ArcheHighlight
363
- }())))
357
+ if (typeof module == "object") {
358
+ module.exports = ArcheHighlight
359
+ } else {
360
+ globalThis.ArcheHighlight = ArcheHighlight
361
+ }
@@ -41,6 +41,7 @@ function parseJavaScript(text) {
41
41
 
42
42
  let index = 0
43
43
  let term = ""
44
+ let isShebangInterpreterDirective = false
44
45
  let isSingleLineComment = false
45
46
  let isMultiLineComment = false
46
47
  let isNumber = false
@@ -54,7 +55,11 @@ function parseJavaScript(text) {
54
55
  while (index < text.length) {
55
56
  let c = text[index]
56
57
 
57
- if (isSingleLineComment && c === "\n") {
58
+ if (isShebangInterpreterDirective && c === "\n") {
59
+ isShebangInterpreterDirective = false
60
+ parsedElements.push(Span({ class: "shebang-interpreter-directive" }, term))
61
+ term = ""
62
+ } else if (isSingleLineComment && c === "\n") {
58
63
  isSingleLineComment = false
59
64
  parsedElements.push(Span({ class: "comment" }, term))
60
65
  term = ""
@@ -120,7 +125,10 @@ function parseJavaScript(text) {
120
125
  break
121
126
  }
122
127
 
123
- if (isSingleLineComment) {
128
+ if (isShebangInterpreterDirective) {
129
+ term += c
130
+ index += 1
131
+ } else if (isSingleLineComment) {
124
132
  term += c
125
133
  index += 1
126
134
  } else if (isMultiLineComment) {
@@ -163,6 +171,10 @@ function parseJavaScript(text) {
163
171
  term += c
164
172
  index += 1
165
173
  }
174
+ } else if (c === "#" && text[index + 1] === "!") {
175
+ isShebangInterpreterDirective = true
176
+ term += c
177
+ index += 1
166
178
  } else if (c === "/" && text[index + 1] === "/") {
167
179
  isSingleLineComment = true
168
180
  term += c
@@ -320,6 +332,8 @@ function parseJavaScript(text) {
320
332
  if (term.length > 0) {
321
333
  if (isSingleLineComment) {
322
334
  parsedElements.push(Span({ class: "comment" }, term))
335
+ } else if (isShebangInterpreterDirective) {
336
+ parsedElements.push(Span({ class: "shebang-interpreter-directive" }, term))
323
337
  } else if (isNumber) {
324
338
  if (term[term.length - 1] === "n") {
325
339
  parsedElements.push(Span({ class: "bigint" }, term))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arche-highlight",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Syntax highlighting for vanilla microfrontends",
5
5
  "author": "Richard Tong",
6
6
  "license": "CFOSS",