lib/rouge/lexers/javascript.rb in rouge-3.20.0 vs lib/rouge/lexers/javascript.rb in rouge-3.21.0
- old
+ new
@@ -17,10 +17,12 @@
aliases 'js'
filenames '*.cjs', '*.js', '*.mjs'
mimetypes 'application/javascript', 'application/x-javascript',
'text/javascript', 'text/x-javascript'
+ # Pseudo-documentation: https://stackoverflow.com/questions/1661197/what-characters-are-valid-for-javascript-variable-names
+
def self.detect?(text)
return 1 if text.shebang?('node')
return 1 if text.shebang?('jsc')
# TODO: rhino, spidermonkey, etc
end
@@ -136,10 +138,10 @@
Float32Array Float64Array DataView ArrayBuffer
)
end
def self.id_regex
- /[$a-z_][a-z0-9_]*/io
+ /[\p{L}\p{Nl}$_][\p{Word}]*/io
end
id = self.id_regex
state :root do