mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
- remdev-friendly v2 layout - tests moved to a separate module and merged - introduced JBC plugin - fe part located separately, see IJPL-179111 GitOrigin-RevId: 2f5b378387779fecccd2902e56bc5c4bd644650c
1170 lines
27 KiB
Plaintext
1170 lines
27 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>Textmate bundle for Elixir Programming Language.</string>
|
|
<key>fileTypes</key>
|
|
<array>
|
|
<string>ex</string>
|
|
<string>exs</string>
|
|
</array>
|
|
<key>firstLineMatch</key>
|
|
<string>^#!/.*\belixir</string>
|
|
<key>foldingStartMarker</key>
|
|
<string>(after|else|catch|rescue|\-\>|\{|\[|do)\s*$</string>
|
|
<key>foldingStopMarker</key>
|
|
<string>^\s*((\}|\]|after|else|catch|rescue)\s*$|end\b)</string>
|
|
<key>keyEquivalent</key>
|
|
<string>^~E</string>
|
|
<key>name</key>
|
|
<string>Elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>keyword.control.module.elixir</string>
|
|
</dict>
|
|
<key>2</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>entity.name.type.module.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>^\s*(defmodule)\s+(([A-Z]\w*\s*(\.)\s*)*[A-Z]\w*)</string>
|
|
<key>name</key>
|
|
<string>meta.module.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>@(module|type)?doc (~[a-z])?"""</string>
|
|
<key>comment</key>
|
|
<string>@doc with heredocs is treated as documentation</string>
|
|
<key>end</key>
|
|
<string>\s*"""</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.heredoc</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>@(module|type)?doc ~[A-Z]"""</string>
|
|
<key>comment</key>
|
|
<string>@doc with heredocs is treated as documentation</string>
|
|
<key>end</key>
|
|
<string>\s*"""</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.heredoc</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>@(module|type)?doc (~[a-z])?'''</string>
|
|
<key>comment</key>
|
|
<string>@doc with heredocs is treated as documentation</string>
|
|
<key>end</key>
|
|
<string>\s*'''</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.heredoc</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>@(module|type)?doc ~[A-Z]'''</string>
|
|
<key>comment</key>
|
|
<string>@doc with heredocs is treated as documentation</string>
|
|
<key>end</key>
|
|
<string>\s*'''</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.heredoc</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>@doc false is treated as documentation</string>
|
|
<key>match</key>
|
|
<string>@(module|type)?doc false</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.false</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>@(module|type)?doc "</string>
|
|
<key>comment</key>
|
|
<string>@doc with string is treated as documentation</string>
|
|
<key>end</key>
|
|
<string>"</string>
|
|
<key>name</key>
|
|
<string>comment.documentation.string</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<!\.)\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defexception|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\b(?![?!])</string>
|
|
<key>name</key>
|
|
<string>keyword.control.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string> as above, just doesn't need a 'end' and does a logic operation</string>
|
|
<key>match</key>
|
|
<string>(?<!\.)\b(and|not|or|when|xor|in|inlist|inbits)\b</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(nil|true|false)\b(?![?!])</string>
|
|
<key>name</key>
|
|
<string>constant.language.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])</string>
|
|
<key>name</key>
|
|
<string>variable.language.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(@)[a-zA-Z_]\w*</string>
|
|
<key>name</key>
|
|
<string>variable.other.readwrite.module.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.variable.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(&)\d*</string>
|
|
<key>name</key>
|
|
<string>variable.other.anonymous.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b[A-Z]\w*\b</string>
|
|
<key>name</key>
|
|
<string>variable.other.constant.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\b(0[xX]\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0[bB][01]+)\b</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>:'</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.constant.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>'</string>
|
|
<key>name</key>
|
|
<string>constant.other.symbol.single-quoted.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>:"</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.constant.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>"</string>
|
|
<key>name</key>
|
|
<string>constant.other.symbol.double-quoted.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?>''')</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>Single-quoted heredocs</string>
|
|
<key>end</key>
|
|
<string>^\s*'''</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>support.function.variable.quoted.single.heredoc.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>'</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>single quoted string (allows for interpolation)</string>
|
|
<key>end</key>
|
|
<string>'</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>support.function.variable.quoted.single.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?>""")</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>Double-quoted heredocs</string>
|
|
<key>end</key>
|
|
<string>^\s*"""</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.double.heredoc.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>"</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>double quoted string (allows for interpolation)</string>
|
|
<key>end</key>
|
|
<string>"</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.double.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z](?>""")</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>Double-quoted heredocs sigils</string>
|
|
<key>end</key>
|
|
<string>^\s*"""</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.double.heredoc.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z]\{</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (allow for interpolation)</string>
|
|
<key>end</key>
|
|
<string>\}[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z]\[</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (allow for interpolation)</string>
|
|
<key>end</key>
|
|
<string>\][a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z]\<</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (allow for interpolation)</string>
|
|
<key>end</key>
|
|
<string>\>[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z]\(</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (allow for interpolation)</string>
|
|
<key>end</key>
|
|
<string>\)[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[a-z]([^\w])</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (allow for interpolation)</string>
|
|
<key>end</key>
|
|
<string>\1[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.interpolated.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z](?>""")</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>Double-quoted heredocs sigils</string>
|
|
<key>end</key>
|
|
<string>^\s*"""</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z]\{</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (without interpolation)</string>
|
|
<key>end</key>
|
|
<string>\}[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z]\[</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (without interpolation)</string>
|
|
<key>end</key>
|
|
<string>\][a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z]\<</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (without interpolation)</string>
|
|
<key>end</key>
|
|
<string>\>[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z]\(</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (without interpolation)</string>
|
|
<key>end</key>
|
|
<string>\)[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>~[A-Z]([^\w])</string>
|
|
<key>beginCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.begin.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>sigil (without interpolation)</string>
|
|
<key>end</key>
|
|
<string>\1[a-z]*</string>
|
|
<key>endCaptures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.string.end.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>name</key>
|
|
<string>string.quoted.other.literal.upper.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.constant.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>symbols</string>
|
|
<key>match</key>
|
|
<string>(?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|~|~=|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)</string>
|
|
<key>name</key>
|
|
<string>constant.other.symbol.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.constant.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>symbols</string>
|
|
<key>match</key>
|
|
<string>(?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)</string>
|
|
<key>name</key>
|
|
<string>constant.other.keywords.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(?:^[ \t]+)?(#).*$\n?</string>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>comment</key>
|
|
<string>
|
|
matches questionmark-letters.
|
|
|
|
examples (1st alternation = hex):
|
|
?\x1 ?\x61
|
|
|
|
examples (2nd alternation = octal):
|
|
?\0 ?\07 ?\017
|
|
|
|
examples (3rd alternation = escaped):
|
|
?\n ?\b
|
|
|
|
examples (4th alternation = meta-ctrl):
|
|
?\C-a ?\M-a ?\C-\M-\C-\M-a
|
|
|
|
examples (4th alternation = normal):
|
|
?a ?A ?0
|
|
?* ?" ?(
|
|
?. ?#
|
|
|
|
|
|
the negative lookbehind prevents against matching
|
|
p(42.tainted?)
|
|
</string>
|
|
<key>match</key>
|
|
<string>(?<!\w)\?(\\(x\h{1,2}(?!\h)\b|0[0-7]{0,2}(?![0-7])\b|[^x0MC])|(\\[MC]-)+\w|[^\s\\])</string>
|
|
<key>name</key>
|
|
<string>constant.numeric.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>(?<=\{|do|\{\s|do\s)(\|)</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.separator.variable.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>(\|)</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>[_a-zA-Z][_a-zA-Z0-9]*</string>
|
|
<key>name</key>
|
|
<string>variable.other.block.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>,</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.variable.elixir</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\+=|\-=|\|\|=|~=|&&=</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.augmented.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>===?|!==?|<=?|>=?</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.comparison.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(\|\|\||&&&|^^^|<<<|>>>|~~~)</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.bitwise.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.logical.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>(\*|\+|\-|/)</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.arithmetic.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=></string>
|
|
<key>name</key>
|
|
<string>keyword.operator.other.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>=</string>
|
|
<key>name</key>
|
|
<string>keyword.operator.assignment.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>:</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.other.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\;</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.statement.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>,</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.object.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\.</string>
|
|
<key>name</key>
|
|
<string>punctuation.separator.method.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\{|\}</string>
|
|
<key>name</key>
|
|
<string>punctuation.section.scope.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\[|\]</string>
|
|
<key>name</key>
|
|
<string>punctuation.section.array.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\(|\)</string>
|
|
<key>name</key>
|
|
<string>punctuation.section.function.elixir</string>
|
|
</dict>
|
|
</array>
|
|
<key>repository</key>
|
|
<dict>
|
|
<key>escaped_char</key>
|
|
<dict>
|
|
<key>match</key>
|
|
<string>\\(?:[0-7]{1,3}|x[\da-fA-F]{1,2}|.)</string>
|
|
<key>name</key>
|
|
<string>constant.character.escape.elixir</string>
|
|
</dict>
|
|
<key>interpolated_elixir</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.embedded.elixir</string>
|
|
</dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>source.elixir.embedded.source.empty</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>#\{(\})</string>
|
|
<key>name</key>
|
|
<string>source.elixir.embedded.source</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>#\{</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.embedded.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\}</string>
|
|
<key>name</key>
|
|
<string>source.elixir.embedded.source</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#nest_curly_and_self</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
|
|
<key>nest_curly_and_self</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\{</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.section.scope.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\}</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#nest_curly_and_self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>$self</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<key>regex_sub</key>
|
|
<dict>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#interpolated_elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arbitrary-repitition.elixir</string>
|
|
</dict>
|
|
<key>3</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.arbitrary-repitition.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>match</key>
|
|
<string>(\{)\d+(,\d+)?(\})</string>
|
|
<key>name</key>
|
|
<string>string.regexp.arbitrary-repitition.elixir</string>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\[(?:\^?\])?</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.character-class.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\]</string>
|
|
<key>name</key>
|
|
<string>string.regexp.character-class.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#escaped_char</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>begin</key>
|
|
<string>\(</string>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>0</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.group.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>end</key>
|
|
<string>\)</string>
|
|
<key>name</key>
|
|
<string>string.regexp.group.elixir</string>
|
|
<key>patterns</key>
|
|
<array>
|
|
<dict>
|
|
<key>include</key>
|
|
<string>#regex_sub</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
<dict>
|
|
<key>captures</key>
|
|
<dict>
|
|
<key>1</key>
|
|
<dict>
|
|
<key>name</key>
|
|
<string>punctuation.definition.comment.elixir</string>
|
|
</dict>
|
|
</dict>
|
|
<key>comment</key>
|
|
<string>We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.</string>
|
|
<key>match</key>
|
|
<string>(?<=^|\s)(#)\s[[a-zA-Z0-9,. \t?!-][^\x{00}-\x{7F}]]*$</string>
|
|
<key>name</key>
|
|
<string>comment.line.number-sign.elixir</string>
|
|
</dict>
|
|
</array>
|
|
</dict>
|
|
</dict>
|
|
<key>scopeName</key>
|
|
<string>source.elixir</string>
|
|
<key>uuid</key>
|
|
<string>D00C06B9-71B2-4FEB-A0E3-37237F579456</string>
|
|
</dict>
|
|
</plist>
|