lib/rouge/lexers/julia.rb in rouge-3.20.0 vs lib/rouge/lexers/julia.rb in rouge-3.21.0

- old
+ new

@@ -9,10 +9,12 @@ tag 'julia' aliases 'jl' filenames '*.jl' mimetypes 'text/x-julia', 'application/x-julia' + # Documentation: https://docs.julialang.org/en/v1/manual/variables/#Allowed-Variable-Names-1 + def self.detect?(text) return true if text.shebang? 'julia' end BUILTINS = /\b(?: @@ -250,16 +252,16 @@ rule %r/\d+/, Literal::Number::Integer end state :funcname do - rule %r/[a-zA-Z_]\w*/, Name::Function, :pop! + rule %r/[\p{L}\p{Nl}\p{S}_][\p{Word}\p{S}\p{Po}!]*/, Name::Function, :pop! rule %r/\([^\s\w{]{1,2}\)/, Operator, :pop! rule %r/[^\s\w{]{1,2}/, Operator, :pop! end state :typename do - rule %r/[a-zA-Z_]\w*/, Name::Class, :pop! + rule %r/[\p{L}\p{Nl}\p{S}_][\p{Word}\p{S}\p{Po}!]*/, Name::Class, :pop! end state :stringescape do rule %r/\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})/, Literal::String::Escape