Comments (3)
npm run inspect Elixir.tmlLanguage test.txt
test.txt contents: nonspecial_token 123 :foo "bar"
> [email protected] 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?
from vscode-textmate.
@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.
The tokenization steps:
> [email protected] 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?
from vscode-textmate.
elixir-editors/elixir-tmbundle#125 is now fixed
from vscode-textmate.
Related Issues (20)
- Consider using end pattern as bail out for embedded languages HOT 12
- Scopes on Recursive Regex Cause Problems
- Nested `begin`/`while` rules do not continue past begin match HOT 3
- Misclassification of PHP syntax tokens HOT 3
- Matching multiline text HOT 2
- How to find all local variables? HOT 2
- JSON grammar without `filePath` parsed incorrectly as PList
- How to make the embedded language have corresponding language id
- Clarification about concurrent tokenization using multiple themes
- PHPdoc highlighting issue HOT 1
- Incorrect 'no more matches'? HOT 3
- Support for YAML-TMLanguage HOT 1
- How to create language dialects HOT 3
- TextMate grammar does not parse correctly under 1.86 HOT 8
- Expose scope comment in `IToken`
- `ruleStack.clone()` doesn't actually clone HOT 1
- JSON key `"id"` breaks the tokenizer
- Vscode HOT 1
- [Idea] markdown in js extension HOT 1
- `\\G` matches unicode character 0xFFFF `` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vscode-textmate.