Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elixir.tmLanguage works in Sublime but fails in VSCode #37

Closed
aeschli opened this issue Mar 17, 2017 · 3 comments
Closed

Elixir.tmLanguage works in Sublime but fails in VSCode #37

aeschli opened this issue Mar 17, 2017 · 3 comments
Assignees

Comments

@aeschli
Copy link
Contributor

aeschli commented Mar 17, 2017

From @net on March 12, 2017 13:4

When using the official Elixir.tmLanguage file found here, lines that begin with a whitespace character or an arbitrary unhighlighted token (e.g. foo) are not highlighted (see screenshot below).

screen shot 2017-03-12 at 8 57 24 am

The Elixir.tmLanguage file does—of course—work perfectly fine in TextMate and Sublime.

https://github.com/elixir-lang/elixir-tmbundle/blob/master/Syntaxes/Elixir.tmLanguage

  • VSCode Version: 1.10.2
  • OS Version: macOS 10.12.3 (Sierra)

Copied from original issue: microsoft/vscode#22477

@alexdima
Copy link
Member

npm run inspect Elixir.tmlLanguage test.txt

test.txt contents: nonspecial_token 123 :foo "bar"


> vscode-textmate@3.1.1 inspect c:\Alex\src\vscode-textmate
> node scripts/inspect.js "Elixir.tmLanguage" "test.txt"

LOADING GRAMMARElixir.tmLanguage


===========================================
TOKENIZING LINE 1: |nonspecial_token 123 :foo "bar"|

@@scanNext: |nonspecial_token 123 :foo "bar"\n|
  scanning for
   - 2: \b(fn)\b(?!.*->)
   - 156: \b(fn)\b(?=.*->)
   - 5: ^\s*(defmodule)\b
   - 9: ^\s*(defprotocol)\b
   - 13: ^\s*(defimpl)\b
   - 17: ^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 30: ^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 43: @(module|type)?doc (~[a-z])?"""
   - 56: @(module|type)?doc ~[A-Z]"""
   - 57: @(module|type)?doc (~[a-z])?'''
   - 58: @(module|type)?doc ~[A-Z]'''
   - 59: @(module|type)?doc false
   - 60: @(module|type)?doc "
   - 61: (::)
   - 66: (?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\b(?![?!:])
   - 67: (?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b
   - 68: \b[A-Z]\w*\b
   - 69: \b(nil|true|false)\b(?![?!])
   - 70: \b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])
   - 71: (@)[a-zA-Z_]\w*
   - 73: (&)\d+
   - 75: \^[a-z_]\w*
   - 77: \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
   - 78: :'
   - 81: :"
   - 84: (?>''')
   - 87: '
   - 90: (?>""")
   - 93: "
   - 96: ~[a-z](?>""")
   - 99: ~[a-z]\{
   - 102: ~[a-z]\[
   - 105: ~[a-z]\<
   - 108: ~[a-z]\(
   - 111: ~[a-z]([^\w])
   - 114: ~[A-Z](?>""")
   - 117: ~[A-Z]\{
   - 120: ~[A-Z]\[
   - 123: ~[A-Z]\<
   - 126: ~[A-Z]\(
   - 129: ~[A-Z]([^\w])
   - 132: (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
   - 134: (?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)
   - 136: ^\s*(##).*$\n?
   - 138: (?:^[ \t]+)?(#).*$\n?
   - 140: (?<!\w)\?(\\(x\h{1,2}(?!\h)\b|[^xMC])|[^\s\\])
   - 141: \+=|\-=|\|\|=|~=|&&=
   - 142: ===?|!==?|<=?|>=?
   - 143: (\|\|\||&&&|^^^|<<<|>>>|~~~)
   - 144: (?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b
   - 145: (\*|\+|\-|/)
   - 146: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>
   - 147: =
   - 148: :
   - 149: \;
   - 150: ,
   - 151: \.
   - 152: \{|\}
   - 153: \[|\]
   - 154: \(|\)
   - 162: ^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))
  matched MatchRule#143 @ Elixir.tmLanguage:1352 - (\|\|\||&&&|^^^|<<<|>>>|~~~)
  token: |nonspecial_token 123 :foo "bar"\n|
      * source.elixir

@@LINE END RULE STACK CONTAINS 1 RULES:
  * no rule description?

@alexdima
Copy link
Member

alexdima commented Mar 29, 2017

@net it appears the regular expression (\|\|\||&&&|^^^|<<<|>>>|~~~) matches nonspecial_token 123 :foo "bar". I believe the special character ^ is somehow kicking in. If I escape the ^ with \^ i.e. (\|\|\||&&&|\^\^\^|<<<|>>>|~~~) things appear to function correctly.

With an image:
image

The tokenization steps:


> vscode-textmate@3.1.1 inspect c:\Alex\src\vscode-textmate
> node scripts/inspect.js "Elixir.tmLanguage" "test.txt"

LOADING GRAMMARElixir.tmLanguage


===========================================
TOKENIZING LINE 1: |nonspecial_token 123 :foo "bar"|

@@scanNext: |nonspecial_token 123 :foo "bar"\n|
  scanning for
   - 2: \b(fn)\b(?!.*->)
   - 156: \b(fn)\b(?=.*->)
   - 5: ^\s*(defmodule)\b
   - 9: ^\s*(defprotocol)\b
   - 13: ^\s*(defimpl)\b
   - 17: ^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 30: ^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 43: @(module|type)?doc (~[a-z])?"""
   - 56: @(module|type)?doc ~[A-Z]"""
   - 57: @(module|type)?doc (~[a-z])?'''
   - 58: @(module|type)?doc ~[A-Z]'''
   - 59: @(module|type)?doc false
   - 60: @(module|type)?doc "
   - 61: (::)
   - 66: (?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\b(?![?!:])
   - 67: (?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b
   - 68: \b[A-Z]\w*\b
   - 69: \b(nil|true|false)\b(?![?!])
   - 70: \b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])
   - 71: (@)[a-zA-Z_]\w*
   - 73: (&)\d+
   - 75: \^[a-z_]\w*
   - 77: \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
   - 78: :'
   - 81: :"
   - 84: (?>''')
   - 87: '
   - 90: (?>""")
   - 93: "
   - 96: ~[a-z](?>""")
   - 99: ~[a-z]\{
   - 102: ~[a-z]\[
   - 105: ~[a-z]\<
   - 108: ~[a-z]\(
   - 111: ~[a-z]([^\w])
   - 114: ~[A-Z](?>""")
   - 117: ~[A-Z]\{
   - 120: ~[A-Z]\[
   - 123: ~[A-Z]\<
   - 126: ~[A-Z]\(
   - 129: ~[A-Z]([^\w])
   - 132: (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
   - 134: (?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)
   - 136: ^\s*(##).*$\n?
   - 138: (?:^[ \t]+)?(#).*$\n?
   - 140: (?<!\w)\?(\\(x\h{1,2}(?!\h)\b|[^xMC])|[^\s\\])
   - 141: \+=|\-=|\|\|=|~=|&&=
   - 142: ===?|!==?|<=?|>=?
   - 143: (\|\|\||&&&|\^\^\^|<<<|>>>|~~~)
   - 144: (?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b
   - 145: (\*|\+|\-|/)
   - 146: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>
   - 147: =
   - 148: :
   - 149: \;
   - 150: ,
   - 151: \.
   - 152: \{|\}
   - 153: \[|\]
   - 154: \(|\)
   - 162: ^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))
  token: |nonspecial_token |
      * source.elixir
  matched MatchRule#77 @ Elixir.tmLanguage:666 - \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
  token: |123|
      * source.elixir
      * constant.numeric.elixir

@@scanNext: | :foo "bar"\n|
  scanning for
   - 2: \b(fn)\b(?!.*->)
   - 156: \b(fn)\b(?=.*->)
   - 5: ^\s*(defmodule)\b
   - 9: ^\s*(defprotocol)\b
   - 13: ^\s*(defimpl)\b
   - 17: ^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 30: ^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 43: @(module|type)?doc (~[a-z])?"""
   - 56: @(module|type)?doc ~[A-Z]"""
   - 57: @(module|type)?doc (~[a-z])?'''
   - 58: @(module|type)?doc ~[A-Z]'''
   - 59: @(module|type)?doc false
   - 60: @(module|type)?doc "
   - 61: (::)
   - 66: (?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\b(?![?!:])
   - 67: (?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b
   - 68: \b[A-Z]\w*\b
   - 69: \b(nil|true|false)\b(?![?!])
   - 70: \b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])
   - 71: (@)[a-zA-Z_]\w*
   - 73: (&)\d+
   - 75: \^[a-z_]\w*
   - 77: \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
   - 78: :'
   - 81: :"
   - 84: (?>''')
   - 87: '
   - 90: (?>""")
   - 93: "
   - 96: ~[a-z](?>""")
   - 99: ~[a-z]\{
   - 102: ~[a-z]\[
   - 105: ~[a-z]\<
   - 108: ~[a-z]\(
   - 111: ~[a-z]([^\w])
   - 114: ~[A-Z](?>""")
   - 117: ~[A-Z]\{
   - 120: ~[A-Z]\[
   - 123: ~[A-Z]\<
   - 126: ~[A-Z]\(
   - 129: ~[A-Z]([^\w])
   - 132: (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
   - 134: (?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)
   - 136: ^\s*(##).*$\n?
   - 138: (?:^[ \t]+)?(#).*$\n?
   - 140: (?<!\w)\?(\\(x\h{1,2}(?!\h)\b|[^xMC])|[^\s\\])
   - 141: \+=|\-=|\|\|=|~=|&&=
   - 142: ===?|!==?|<=?|>=?
   - 143: (\|\|\||&&&|\^\^\^|<<<|>>>|~~~)
   - 144: (?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b
   - 145: (\*|\+|\-|/)
   - 146: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>
   - 147: =
   - 148: :
   - 149: \;
   - 150: ,
   - 151: \.
   - 152: \{|\}
   - 153: \[|\]
   - 154: \(|\)
   - 162: ^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))
  token: | |
      * source.elixir
  matched MatchRule#132 @ Elixir.tmLanguage:1256 - (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
  token: |:|
      * source.elixir
      * constant.other.symbol.elixir
      * punctuation.definition.constant.elixir
  token: |foo|
      * source.elixir
      * constant.other.symbol.elixir

@@scanNext: | "bar"\n|
  scanning for
   - 2: \b(fn)\b(?!.*->)
   - 156: \b(fn)\b(?=.*->)
   - 5: ^\s*(defmodule)\b
   - 9: ^\s*(defprotocol)\b
   - 13: ^\s*(defimpl)\b
   - 17: ^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 30: ^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 43: @(module|type)?doc (~[a-z])?"""
   - 56: @(module|type)?doc ~[A-Z]"""
   - 57: @(module|type)?doc (~[a-z])?'''
   - 58: @(module|type)?doc ~[A-Z]'''
   - 59: @(module|type)?doc false
   - 60: @(module|type)?doc "
   - 61: (::)
   - 66: (?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\b(?![?!:])
   - 67: (?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b
   - 68: \b[A-Z]\w*\b
   - 69: \b(nil|true|false)\b(?![?!])
   - 70: \b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])
   - 71: (@)[a-zA-Z_]\w*
   - 73: (&)\d+
   - 75: \^[a-z_]\w*
   - 77: \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
   - 78: :'
   - 81: :"
   - 84: (?>''')
   - 87: '
   - 90: (?>""")
   - 93: "
   - 96: ~[a-z](?>""")
   - 99: ~[a-z]\{
   - 102: ~[a-z]\[
   - 105: ~[a-z]\<
   - 108: ~[a-z]\(
   - 111: ~[a-z]([^\w])
   - 114: ~[A-Z](?>""")
   - 117: ~[A-Z]\{
   - 120: ~[A-Z]\[
   - 123: ~[A-Z]\<
   - 126: ~[A-Z]\(
   - 129: ~[A-Z]([^\w])
   - 132: (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
   - 134: (?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)
   - 136: ^\s*(##).*$\n?
   - 138: (?:^[ \t]+)?(#).*$\n?
   - 140: (?<!\w)\?(\\(x\h{1,2}(?!\h)\b|[^xMC])|[^\s\\])
   - 141: \+=|\-=|\|\|=|~=|&&=
   - 142: ===?|!==?|<=?|>=?
   - 143: (\|\|\||&&&|\^\^\^|<<<|>>>|~~~)
   - 144: (?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b
   - 145: (\*|\+|\-|/)
   - 146: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>
   - 147: =
   - 148: :
   - 149: \;
   - 150: ,
   - 151: \.
   - 152: \{|\}
   - 153: \[|\]
   - 154: \(|\)
   - 162: ^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))
  token: | |
      * source.elixir
  pushing BeginEndRule#93 @ Elixir.tmLanguage:837 - "
  token: |"|
      * source.elixir
      * string.quoted.double.elixir
      * punctuation.definition.string.begin.elixir

@@scanNext: |bar"\n|
  scanning for
   - -1: "
   - 45: #\{(\})
   - 48: #\{
   - 55: \\(x[\da-fA-F]{1,2}|.)
  popping BeginEndRule#93 @ Elixir.tmLanguage:837 - "
  token: |bar|
      * source.elixir
      * string.quoted.double.elixir
  token: |"|
      * source.elixir
      * string.quoted.double.elixir
      * punctuation.definition.string.end.elixir

@@scanNext: |\n|
  scanning for
   - 2: \b(fn)\b(?!.*->)
   - 156: \b(fn)\b(?=.*->)
   - 5: ^\s*(defmodule)\b
   - 9: ^\s*(defprotocol)\b
   - 13: ^\s*(defimpl)\b
   - 17: ^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 30: ^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)
   - 43: @(module|type)?doc (~[a-z])?"""
   - 56: @(module|type)?doc ~[A-Z]"""
   - 57: @(module|type)?doc (~[a-z])?'''
   - 58: @(module|type)?doc ~[A-Z]'''
   - 59: @(module|type)?doc false
   - 60: @(module|type)?doc "
   - 61: (::)
   - 66: (?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\b(?![?!:])
   - 67: (?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b
   - 68: \b[A-Z]\w*\b
   - 69: \b(nil|true|false)\b(?![?!])
   - 70: \b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])
   - 71: (@)[a-zA-Z_]\w*
   - 73: (&)\d+
   - 75: \^[a-z_]\w*
   - 77: \b(0x\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b
   - 78: :'
   - 81: :"
   - 84: (?>''')
   - 87: '
   - 90: (?>""")
   - 93: "
   - 96: ~[a-z](?>""")
   - 99: ~[a-z]\{
   - 102: ~[a-z]\[
   - 105: ~[a-z]\<
   - 108: ~[a-z]\(
   - 111: ~[a-z]([^\w])
   - 114: ~[A-Z](?>""")
   - 117: ~[A-Z]\{
   - 120: ~[A-Z]\[
   - 123: ~[A-Z]\<
   - 126: ~[A-Z]\(
   - 129: ~[A-Z]([^\w])
   - 132: (?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)
   - 134: (?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)
   - 136: ^\s*(##).*$\n?
   - 138: (?:^[ \t]+)?(#).*$\n?
   - 140: (?<!\w)\?(\\(x\h{1,2}(?!\h)\b|[^xMC])|[^\s\\])
   - 141: \+=|\-=|\|\|=|~=|&&=
   - 142: ===?|!==?|<=?|>=?
   - 143: (\|\|\||&&&|\^\^\^|<<<|>>>|~~~)
   - 144: (?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b
   - 145: (\*|\+|\-|/)
   - 146: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>
   - 147: =
   - 148: :
   - 149: \;
   - 150: ,
   - 151: \.
   - 152: \{|\}
   - 153: \[|\]
   - 154: \(|\)
   - 162: ^(?=.*->)((?![^"']*("|')[^"']*->)|(?=.*->[^"']*("|')[^"']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))
  no more matches.
  token: |\n|
      * source.elixir

@@LINE END RULE STACK CONTAINS 1 RULES:
  * no rule description?

@alexdima
Copy link
Member

elixir-editors/elixir-tmbundle#125 is now fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants