Update syntaxes and syntect

This commit is contained in:
Vincent Prouillet 2020-04-29 22:35:28 +02:00
parent e3dc8bbab5
commit bc496e6101
109 changed files with 8643 additions and 4614 deletions

98
.gitmodules vendored
View file

@ -1,39 +1,63 @@
[submodule "sublime_syntaxes/Packages"]
path = sublime_syntaxes/Packages
[submodule "sublime/syntaxes/Packages"]
path = sublime/syntaxes/Packages
url = https://github.com/sublimehq/Packages.git
[submodule "sublime_syntaxes/sublimeassembly"]
path = sublime_syntaxes/sublimeassembly
url = https://github.com/Nessphoro/sublimeassembly.git
[submodule "sublime_syntaxes/LESS-sublime"]
path = sublime_syntaxes/LESS-sublime
url = https://github.com/danro/LESS-sublime.git
[submodule "sublime_syntaxes/Handlebars"]
path = sublime_syntaxes/Handlebars
url = https://github.com/daaain/Handlebars.git
[submodule "sublime_syntaxes/Julia-sublime"]
path = sublime_syntaxes/Julia-sublime
url = https://github.com/JuliaEditorSupport/Julia-sublime.git
[submodule "sublime_syntaxes/sublime_toml_highlighting"]
path = sublime_syntaxes/sublime_toml_highlighting
url = https://github.com/Jayflux/sublime_toml_highlighting.git
[submodule "sublime_syntaxes/SublimeTextLinkerSyntax"]
path = sublime_syntaxes/SublimeTextLinkerSyntax
url = https://github.com/jbw3/SublimeTextLinkerSyntax.git
[submodule "sublime_syntaxes/Sublime-GenericConfig"]
path = sublime_syntaxes/Sublime-GenericConfig
url = https://github.com/skozlovf/Sublime-GenericConfig.git
[submodule "sublime_syntaxes/Sublime-VimL"]
path = sublime_syntaxes/Sublime-VimL
[submodule "sublime/syntaxes/awk-sublime"]
path = sublime/syntaxes/awk-sublime
url = https://github.com/JohnNilsson/awk-sublime.git
[submodule "sublime/syntaxes/AsciiDoc"]
path = sublime/syntaxes/AsciiDoc
url = https://github.com/SublimeText/AsciiDoc.git
[submodule "sublime/syntaxes/Sublime-CMakeLists"]
path = sublime/syntaxes/Sublime-CMakeLists
url = https://github.com/zyxar/Sublime-CMakeLists.git
[submodule "sublime/syntaxes/SublimeTextLinkerSyntax"]
path = sublime/syntaxes/SublimeTextLinkerSyntax
url = https://github.com/jbw3/SublimeTextLinkerSyntax
[submodule "sublime/syntaxes/Docker.tmbundle"]
path = sublime/syntaxes/Docker.tmbundle
url = https://github.com/asbjornenge/Docker.tmbundle.git
[submodule "sublime/syntaxes/Sublime-VimL"]
path = sublime/syntaxes/Sublime-VimL
url = https://github.com/SalGnt/Sublime-VimL.git
[submodule "sublime_syntaxes/TypeScript-TmLanguage"]
path = sublime_syntaxes/TypeScript-TmLanguage
url = https://github.com/Microsoft/TypeScript-TmLanguage
[submodule "sublime_syntaxes/SublimeElmLanguageSupport"]
path = sublime_syntaxes/SublimeElmLanguageSupport
url = https://github.com/elm-community/SublimeElmLanguageSupport
[submodule "sublime_syntaxes/Sublime-CMakeLists"]
path = sublime_syntaxes/Sublime-CMakeLists
url = https://github.com/zyxar/Sublime-CMakeLists
[submodule "sublime_syntaxes/Swift-for-f-ing-sublime"]
path = sublime_syntaxes/Swift-for-f-ing-sublime
url = https://github.com/colinta/Swift-for-f-ing-sublime.git
[submodule "sublime/syntaxes/elixir-sublime-syntax"]
path = sublime/syntaxes/elixir-sublime-syntax
url = https://github.com/princemaple/elixir-sublime-syntax.git
[submodule "sublime/syntaxes/SublimeElmLanguageSupport"]
path = sublime/syntaxes/SublimeElmLanguageSupport
url = https://github.com/elm-community/SublimeElmLanguageSupport.git
[submodule "sublime/syntaxes/sublimetext-fsharp"]
path = sublime/syntaxes/sublimetext-fsharp
url = https://github.com/hoest/sublimetext-fsharp.git
[submodule "sublime/syntaxes/sublime-fish"]
path = sublime/syntaxes/sublime-fish
url = https://github.com/Phidica/sublime-fish.git
[submodule "sublime/syntaxes/SublimeFortran"]
path = sublime/syntaxes/SublimeFortran
url = https://github.com/315234/SublimeFortran.git
[submodule "sublime/syntaxes/GraphQL-SublimeText3"]
path = sublime/syntaxes/GraphQL-SublimeText3
url = https://github.com/dncrews/GraphQL-SublimeText3.git
[submodule "sublime/syntaxes/Sublime-GenericConfig"]
path = sublime/syntaxes/Sublime-GenericConfig
url = https://github.com/skozlovf/Sublime-GenericConfig.git
[submodule "sublime/syntaxes/sublime-jinja2"]
path = sublime/syntaxes/sublime-jinja2
url = https://github.com/Martin819/sublime-jinja2.git
[submodule "sublime/syntaxes/Julia-sublime"]
path = sublime/syntaxes/Julia-sublime
url = https://github.com/JuliaEditorSupport/Julia-sublime.git
[submodule "sublime/syntaxes/LESS-sublime"]
path = sublime/syntaxes/LESS-sublime
url = https://github.com/danro/LESS-sublime.git
[submodule "sublime/syntaxes/sublime-purescript-syntax"]
path = sublime/syntaxes/sublime-purescript-syntax
url = https://github.com/tellnobody1/sublime-purescript-syntax.git
[submodule "sublime/syntaxes/SublimeSass"]
path = sublime/syntaxes/SublimeSass
url = https://github.com/braver/SublimeSass.git
[submodule "sublime/syntaxes/sublime_toml_highlighting"]
path = sublime/syntaxes/sublime_toml_highlighting
url = https://github.com/jasonwilliams/sublime_toml_highlighting.git
[submodule "sublime/syntaxes/vue-syntax-highlight"]
path = sublime/syntaxes/vue-syntax-highlight
url = https://github.com/vuejs/vue-syntax-highlight.git

View file

@ -35,7 +35,7 @@ Tools > Developer > New Syntax from ... and put it at the root of `sublime_synta
You can also add a submodule to the repository of the wanted syntax:
```bash
$ cd sublime_syntaxes
$ cd sublime/syntaxes
$ git submodule add https://github.com/elm-community/SublimeElmLanguageSupport
```
@ -51,7 +51,7 @@ $ git submodule update --remote --merge
And finally from the root of the components/config crate run the following command:
```bash
$ cargo run --example generate_sublime synpack ../../sublime_syntaxes ../../sublime_syntaxes/newlines.packdump
$ cargo run --example generate_sublime synpack ../../sublime/syntaxes ../../sublime/syntaxes/newlines.packdump
```
### Adding a theme
@ -60,7 +60,7 @@ More themes can be easily added to Zola, just make a PR with the wanted theme ad
and run the following command from the root of the components/config:
```bash
$ cargo run --example generate_sublime themepack ../../sublime_themes ../../sublime_themes/all.themedump
$ cargo run --example generate_sublime themepack ../../sublime/themes ../../sublime/themes/all.themedump
```
You should see the list of themes being added.

84
Cargo.lock generated
View file

@ -87,6 +87,19 @@ dependencies = [
"serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "bit-set"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "bit-vec"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "bitflags"
version = "1.2.1"
@ -225,7 +238,7 @@ dependencies = [
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utils 0.1.0",
]
@ -406,7 +419,7 @@ name = "errors"
version = "0.1.0"
dependencies = [
"image 0.23.4 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"tera 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -427,6 +440,15 @@ name = "fake-simd"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "fancy-regex"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "filetime"
version = "0.2.9"
@ -707,14 +729,6 @@ name = "humansize"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "humantime"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "hyper"
version = "0.13.5"
@ -1222,26 +1236,6 @@ dependencies = [
"libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "onig"
version = "4.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
"onig_sys 69.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "onig_sys"
version = "69.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "opaque-debug"
version = "0.2.3"
@ -1381,12 +1375,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "plist"
version = "0.4.2"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
"indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"line-wrap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"xml-rs 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1474,11 +1468,6 @@ dependencies = [
"unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "quick-error"
version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "quote"
version = "0.6.13"
@ -1627,7 +1616,7 @@ dependencies = [
"regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"syntect 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"templates 0.1.0",
"tera 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"utils 0.1.0",
@ -1991,17 +1980,17 @@ dependencies = [
[[package]]
name = "syntect"
version = "3.2.0"
version = "4.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"fancy-regex 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"flate2 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"onig 4.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"plist 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
"plist 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
"regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2583,6 +2572,8 @@ dependencies = [
"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
"checksum base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3"
"checksum bincode 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5753e2a71534719bf3f4e57006c3a4f0d2c672a4b676eec84161f763eca87dbf"
"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80"
"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
@ -2622,6 +2613,7 @@ dependencies = [
"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28"
"checksum extend 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe9db393664b0e6c6230a14115e7e798f80b70f54038dc21165db24c6b7f28fc"
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
"checksum fancy-regex 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91abf6555234338687bb47913978d275539235fcb77ba9863b779090b42b14"
"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
"checksum flate2 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
@ -2653,7 +2645,6 @@ dependencies = [
"checksum http-body 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
"checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
"checksum hyper 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96816e1d921eca64d208a85aab4f7798455a8e34229ee5a88c935bdee1b78b14"
"checksum hyper-rustls 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac965ea399ec3a25ac7d13b8affd4b8f39325cca00858ddf5eb29b79e6b14b08"
"checksum hyper-staticfile 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "241e2c25e6221c5bfaea5034cbf09879e30a443ad7ec674116091bab47207a5b"
@ -2701,8 +2692,6 @@ dependencies = [
"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
"checksum onig 4.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8518fcb2b1b8c2f45f0ad499df4fda6087fc3475ca69a185c173b8315d2fb383"
"checksum onig_sys 69.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388410bf5fa341f10e58e6db3975f4bea1ac30247dd79d37a9e5ced3cb4cc3b0"
"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
"checksum open 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7c283bf0114efea9e42f1a60edea9859e8c47528eae09d01df4b29c1e489cc48"
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
@ -2721,7 +2710,7 @@ dependencies = [
"checksum pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae"
"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
"checksum plist 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a9f075f6394100e7c105ed1af73fb1859d6fd14e49d4290d578120beb167f"
"checksum plist 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "9b59eb8d91dfa89208ec74a920e3b55f840476cf46568026c18dbaa2999e0d48"
"checksum png 0.16.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2c68a431ed29933a4eb5709aca9800989758c97759345860fa5db3cfced0b65d"
"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
"checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
@ -2732,7 +2721,6 @@ dependencies = [
"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
"checksum pulldown-cmark 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2c2d7fd131800e0d63df52aff46201acaab70b431a4a1ec6f0343fe8e64f35a4"
"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
@ -2782,7 +2770,7 @@ dependencies = [
"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
"checksum syn 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
"checksum syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
"checksum syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e80b8831c5a543192ffc3727f01cf0e57579c6ac15558e3048bfb5708892167b"
"checksum syntect 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6bc79276a4d38e39fbeb83c5fd9c23fbd027eeec7c50ee6a3d07deee33d7f621"
"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
"checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
"checksum tera 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "19d25bed9d2cf684de6ffdaa9ac35373739eeed0d6bef1de545bbe6cf571ad07"

View file

@ -11,7 +11,7 @@ serde_derive = "1"
chrono = "0.4"
globset = "0.4"
lazy_static = "1"
syntect = "=3.2.0"
syntect = { version = "4.1", default-features = false, features = ["default-fancy"]}
errors = { path = "../errors" }
utils = { path = "../utils" }

View file

@ -26,7 +26,10 @@ fn main() {
(Some(ref cmd), Some(ref package_dir), Some(ref packpath_newlines)) if cmd == "synpack" => {
let mut builder = SyntaxSetBuilder::new();
builder.add_plain_text_syntax();
builder.add_from_folder(package_dir, true).unwrap();
match builder.add_from_folder(package_dir, true) {
Ok(_) => println!("Added from folder"),
Err(e) => println!("Loading error: {:?}", e)
};
let ss = builder.build();
dump_to_file(&ss, packpath_newlines).unwrap();
let mut syntaxes: HashMap<String, HashSet<String>> = HashMap::new();

View file

@ -9,11 +9,11 @@ use crate::config::Config;
lazy_static! {
pub static ref SYNTAX_SET: SyntaxSet = {
let ss: SyntaxSet =
from_binary(include_bytes!("../../../sublime_syntaxes/newlines.packdump"));
from_binary(include_bytes!("../../../sublime/syntaxes/newlines.packdump"));
ss
};
pub static ref THEME_SET: ThemeSet =
from_binary(include_bytes!("../../../sublime_themes/all.themedump"));
from_binary(include_bytes!("../../../sublime/themes/all.themedump"));
}
/// Returns the highlighter and whether it was found in the extra or not

View file

@ -8,4 +8,4 @@ edition = "2018"
tera = "1"
toml = "0.5"
image = "0.23"
syntect = "=3.2.0"
syntect = { version = "4.1", default-features = false, features = ["default-fancy"]}

View file

@ -6,7 +6,7 @@ edition = "2018"
[dependencies]
tera = { version = "1", features = ["preserve_order"] }
syntect = "=3.2.0"
syntect = { version = "4.1", default-features = false, features = ["default-fancy"]}
pulldown-cmark = "0.7"
serde = "1"
serde_derive = "1"

View file

@ -24,16 +24,17 @@ Here is a full list of supported languages and their short names:
```
- ActionScript -> ["as"]
- Advanced CSV -> ["csv", "tsv"]
- AppleScript -> ["applescript", "script editor"]
- ASP -> ["asa"]
- Assembly x86 (NASM) -> ["asm", "inc", "nasm"]
- Batch File -> ["bat", "cmd"]
- BibTeX -> ["bib"]
- Bourne Again Shell (bash) -> [".bash_aliases", ".bash_completions", ".bash_functions", ".bash_login", ".bash_logout", ".bash_profile", ".bash_variables", ".bashrc", ".profile", ".textmate_init", ".zshrc", "bash", "fish", "sh", "zsh"]
- Bourne Again Shell (bash) -> [".bash_aliases", ".bash_completions", ".bash_functions", ".bash_login", ".bash_logout", ".bash_profile", ".bash_variables", ".bashrc", ".ebuild", ".eclass", ".profile", ".textmate_init", ".zlogin", ".zlogout", ".zprofile", ".zshenv", ".zshrc", "PKGBUILD", "ash", "bash", "sh", "zsh"]
- C -> ["c", "h"]
- C# -> ["cs", "csx"]
- C++ -> ["C", "c++", "cc", "cp", "cpp", "cxx", "h", "h++", "hh", "hpp", "hxx", "inl", "ipp"]
- Clojure -> ["clj"]
- Clojure -> ["clj", "cljc", "cljs", "edn"]
- CMake -> ["CMakeLists.txt", "cmake"]
- CMake C Header -> ["h.in"]
- CMake C++ Header -> ["h++.in", "hh.in", "hpp.in", "hxx.in"]
@ -43,10 +44,12 @@ Here is a full list of supported languages and their short names:
- D -> ["d", "di"]
- Dart -> ["dart"]
- Diff -> ["diff", "patch"]
- Elixir -> ["ex", "exs"]
- Dockerfile -> ["Dockerfile", "dockerfile"]
- Elm -> ["elm"]
- Erlang -> ["Emakefile", "emakefile", "erl", "hrl"]
- fsharp -> ["fs"]
- Erlang -> ["Emakefile", "emakefile", "erl", "escript", "hrl"]
- Fortran (Fixed Form) -> ["F", "F77", "FOR", "FPP", "f", "f77", "for", "fpp"]
- Fortran (Modern) -> ["F03", "F08", "F90", "F95", "f03", "f08", "f90", "f95"]
- Fortran Namelist -> ["namelist"]
- Generic Config -> [".dircolors", ".gitattributes", ".gitignore", ".gitmodules", ".inputrc", "Doxyfile", "cfg", "conf", "config", "dircolors", "gitattributes", "gitignore", "gitmodules", "ini", "inputrc", "mak", "mk", "pro"]
- Git Attributes -> [".gitattributes", "attributes", "gitattributes"]
- Git Commit -> ["COMMIT_EDITMSG", "MERGE_MSG", "TAG_EDITMSG"]
@ -54,8 +57,10 @@ Here is a full list of supported languages and their short names:
- Git Ignore -> [".gitignore", "exclude", "gitignore"]
- Git Link -> [".git"]
- Git Log -> ["gitlog"]
- Git Mailmap -> [".mailmap", "mailmap"]
- Git Rebase Todo -> ["git-rebase-todo"]
- Go -> ["go"]
- GraphQL -> ["gql", "graphql"]
- Graphviz (DOT) -> ["DOT", "dot", "gv"]
- Groovy -> ["Jenkinsfile", "gradle", "groovy", "gvy"]
- Handlebars -> ["handlebars", "handlebars.html", "hbr", "hbrs", "hbs", "hdbs", "hjs", "mu", "mustache", "rac", "stache", "template", "tmpl"]
@ -70,8 +75,7 @@ Here is a full list of supported languages and their short names:
- Java Server Page (JSP) -> ["jsp"]
- JavaScript -> ["htc", "js"]
- JavaScript (Rails) -> ["js.erb"]
- Jinja2 -> ["j2", "jinja2"]
- JSON -> ["json", "sublime-build", "sublime-color-scheme", "sublime-commands", "sublime-completions", "sublime-keymap", "sublime-macro", "sublime-menu", "sublime-mousemap", "sublime-project", "sublime-settings", "sublime-theme"]
- JSON -> ["Pipfile.lock", "ipynb", "json", "sublime-build", "sublime-color-scheme", "sublime-commands", "sublime-completions", "sublime-keymap", "sublime-macro", "sublime-menu", "sublime-mousemap", "sublime-project", "sublime-settings", "sublime-theme"]
- Julia -> ["jl"]
- Kotlin -> ["kt", "kts"]
- LaTeX -> ["ltx", "tex"]
@ -79,7 +83,6 @@ Here is a full list of supported languages and their short names:
- Linker Script -> ["ld"]
- Lisp -> ["cl", "clisp", "el", "fasl", "l", "lisp", "lsp", "mud", "scm", "ss"]
- Literate Haskell -> ["lhs"]
- lrc -> ["lrc", "lyric"]
- Lua -> ["lua"]
- Makefile -> ["GNUmakefile", "Makefile", "Makefile.am", "Makefile.in", "OCamlMakefile", "mak", "make", "makefile", "makefile.am", "makefile.in", "mk"]
- Markdown -> ["markdn", "markdown", "md", "mdown"]
@ -94,34 +97,33 @@ Here is a full list of supported languages and their short names:
- OCamllex -> ["mll"]
- OCamlyacc -> ["mly"]
- Pascal -> ["dpr", "p", "pas"]
- Perl -> ["PL", "pl", "pm", "pod", "t"]
- Perl -> ["pc", "pl", "pm", "pmc", "pod", "t"]
- PHP -> ["php", "php3", "php4", "php5", "php7", "phps", "phpt", "phtml"]
- Plain Text -> ["txt"]
- PowerShell -> ["ps1", "psd1", "psm1"]
- Python -> ["SConscript", "SConstruct", "Sconstruct", "Snakefile", "cpy", "gyp", "gypi", "pxd", "pxd.in", "pxi", "pxi.in", "py", "py3", "pyi", "pyw", "pyx", "pyx.in", "rpy", "sconstruct", "wscript"]
- R -> ["R", "Rprofile", "S", "r", "s"]
- Python -> ["SConscript", "SConstruct", "Sconstruct", "Snakefile", "bazel", "bzl", "cpy", "gyp", "gypi", "pxd", "pxd.in", "pxi", "pxi.in", "py", "py3", "pyi", "pyw", "pyx", "pyx.in", "rpy", "sconstruct", "vpy", "wscript"]
- R -> ["R", "Rprofile", "r"]
- Racket -> ["rkt"]
- Rd (R Documentation) -> ["rd"]
- Reason -> ["re", "rei"]
- Regular Expression -> ["re"]
- reStructuredText -> ["rest", "rst"]
- Ruby -> ["Appfile", "Appraisals", "Berksfile", "Brewfile", "Cheffile", "Deliverfile", "Fastfile", "Gemfile", "Guardfile", "Rakefile", "Rantfile", "Scanfile", "Snapfile", "Thorfile", "Vagrantfile", "capfile", "cgi", "config.ru", "fcgi", "gemspec", "irbrc", "jbuilder", "podspec", "prawn", "rabl", "rake", "rb", "rbx", "rjs", "ruby.rail", "simplecov", "thor"]
- Ruby -> ["Appfile", "Appraisals", "Berksfile", "Brewfile", "Cheffile", "Deliverfile", "Fastfile", "Gemfile", "Guardfile", "Podfile", "Rakefile", "Rantfile", "Scanfile", "Snapfile", "Thorfile", "Vagrantfile", "capfile", "cgi", "config.ru", "fcgi", "gemspec", "irbrc", "jbuilder", "podspec", "prawn", "rabl", "rake", "rb", "rbx", "rjs", "ruby.rail", "simplecov", "thor"]
- Ruby Haml -> ["haml", "sass"]
- Ruby on Rails -> ["builder", "rxml"]
- Rust -> ["rs"]
- Scala -> ["sbt", "scala"]
- Sass -> ["sass"]
- Scala -> ["sbt", "sc", "scala"]
- SCSS -> ["scss"]
- SQL -> ["ddl", "dml", "sql"]
- SQL (Rails) -> ["erbsql", "sql.erb"]
- srt -> ["srt", "subrip"]
- Stylus -> ["styl", "stylus"]
- SWI-Prolog -> ["pro"]
- Swift -> ["swift"]
- Tcl -> ["tcl"]
- TeX -> ["cls", "sty"]
- Textile -> ["textile"]
- TOML -> ["Cargo.lock", "Gopkg.lock", "Pipfile", "tml", "toml"]
- TypeScript -> ["ts"]
- TypeScriptReact -> ["tsx"]
- VimL -> ["vim"]
- XML -> ["dtml", "opml", "rss", "svg", "tld", "xml", "xsd", "xslt"]
- XML -> ["dtml", "opml", "rng", "rss", "svg", "tld", "xml", "xsd", "xslt"]
- YAML -> ["sublime-syntax", "yaml", "yml"]
```

View file

@ -160,6 +160,7 @@ Zola currently has the following highlight themes available:
- [material-dark](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Material%20Dark)
- [material-light](https://github.com/morhetz/gruvbox)
- [monokai](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Monokai)
- [nord](https://github.com/crabique/Nord-plist/tree/0d655b23d6b300e691676d9b90a68d92b267f7ec)
- [nyx-bold](https://github.com/GalAster/vscode-theme-nyx)
- [one-dark](https://github.com/andresmichel/one-dark-theme)
- [solarized-dark](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Solarized%20(dark))
@ -167,6 +168,7 @@ Zola currently has the following highlight themes available:
- [subway-madrid](https://github.com/idleberg/Subway.tmTheme)
- [subway-moscow](https://github.com/idleberg/Subway.tmTheme)
- [Tomorrow](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Tomorrow)
- [TwoDark](https://github.com/erremauro/TwoDark)
- [visual-studio-dark](https://tmtheme-editor.herokuapp.com/#!/editor/theme/Visual%20Studio%20Dark)
- [zenburn](https://github.com/colinta/zenburn)

View file

@ -0,0 +1,46 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Advanced CSV
file_extensions:
- csv
- tsv
scope: text.advanced_csv
contexts:
main:
- match: (\")
captures:
1: string.quoted.double.advanced_csv
push:
- meta_scope: meta.quoted.advanced_csv
- match: (\")
captures:
1: string.quoted.double.advanced_csv
pop: true
- include: main
- match: '(\[([+-]?\d*)(\:)?([+-]?\d*)(\,)?([+-]?\d*)(\:)?([+-]?\d*)\])?\s*([<>v^])?\s*(=)'
captures:
1: keyword.operator.advanced_csv
2: constant.numeric.formula.advanced_csv
4: constant.numeric.formula.advanced_csv
6: constant.numeric.formula.advanced_csv
8: constant.numeric.formula.advanced_csv
9: keyword.operator.advanced_csv
10: keyword.operator.advanced_csv
push:
- meta_scope: meta.range.advanced_csv
- match: (?=(\")|$)
pop: true
- include: scope:source.python
- match: '(?<=^|,|\s|\")([0-9.eE+-]+)(?=$|,|\s|\")'
scope: meta.number.advanced_csv
captures:
1: constant.numeric.advanced_csv
- match: '(?<=^|,|\s|\")([^, \t\"]+)(?=$|,|\s|\")'
scope: meta.nonnumber.advanced_csv
captures:
1: storage.type.advanced_csv
- match: (\,)
scope: meta.delimiter.advanced_csv
captures:
1: keyword.operator.advanced_csv

View file

@ -131,9 +131,9 @@ contexts:
scope: keyword.control.pseudo-method.crystal
- match: '\b(nil|true|false)\b(?![?!])'
scope: constant.language.crystal
- match: '\b(__(DIR|FILE|LINE)__|self)\b(?![?!])'
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])'
scope: variable.language.crystal
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn)\b[!?]?'
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
comment: everything being a method but having a special function is a..
scope: keyword.control.special-method.crystal
- match: \b(require)\b
@ -180,7 +180,7 @@ contexts:
(?<=^|\s)(def)\s+ # the def keyword
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\x{80}-\x{10FFFF}\w]*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\x{80}-\x{10FFFF}\w]*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) # …or an operator method
\s*(\() # the openning parenthesis for arguments
comment: the method pattern comes from the symbol pattern, see there for a explaination
captures:
@ -201,7 +201,7 @@ contexts:
(?<=^|\s)(def)\s+ # the def keyword
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) # …or an operator method
[ \t] # the space separating the arguments
(?=[ \t]*[^\s#;]) # make sure arguments and not a comment follow
comment: same as the previous rule, but without parentheses around the arguments
@ -221,7 +221,7 @@ contexts:
( \s+ # an optional group of whitespace followed by…
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) )? # …or an operator method
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) )? # …or an operator method
comment: the optional name is just to catch the def also without a method-name
scope: meta.function.method.without-arguments.crystal
captures:
@ -588,7 +588,7 @@ contexts:
pop: true
- match: \\.
comment: Cant be named because its not neccesarily an escape.
- match: '(?<!:)(:)(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?|@@?[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*)'
- match: '(?<!:)(:)(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?|@@?[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*|!=?(?![?!]))'
comment: symbols
scope: constant.other.symbol.crystal
captures:
@ -713,14 +713,14 @@ contexts:
captures:
0: punctuation.definition.string.begin.crystal
push:
- meta_scope: string.unquoted.embedded.js.jquery.crystal
- meta_content_scope: text.js.jquery.embedded.crystal
- meta_scope: string.unquoted.embedded.js.crystal
- meta_content_scope: text.js.embedded.crystal
- match: \s*\2$
captures:
0: punctuation.definition.string.end.crystal
pop: true
- include: heredoc
- include: scope:source.js.jquery
- include: scope:source.js
- include: interpolated_crystal
- include: escaped_char
- match: '(?><<-("?)((?:[_\w]+_|)(?:SH|SHELL))\b\1)'

View file

@ -39,22 +39,31 @@ contexts:
- include: comments-doc-oldschool
- include: comments-doc
- include: comments-inline
comments-block:
- match: /\*
push:
- meta_scope: comment.block.dart
- match: \*/
pop: true
- include: comments-block
comments-doc:
- match: ///
scope: comment.block.documentation.dart
push:
- meta_scope: comment.block.documentation.dart
- match: .*
pop: true
- include: dartdoc
comments-doc-oldschool:
- match: /\*\*
push:
- meta_scope: comment.block.documentation.dart
- match: \*/
pop: true
- include: comments-doc-oldschool
- include: comments-block
- include: dartdoc
comments-inline:
- match: /\*
push:
- meta_scope: comment.block.dart
- match: \*/
pop: true
- include: comments-block
- match: ((//).*)$
captures:
1: comment.line.double-slash.dart
@ -65,16 +74,16 @@ contexts:
scope: variable.language.dart
- match: '(?<!\$)\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b(?!\$)'
scope: constant.numeric.dart
- match: "(?<![a-zA-Z0-9_$])[_$]*[A-Z][a-zA-Z0-9_$]*"
- match: '(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\b|num\b|int\b|double\b|dynamic\b)'
scope: support.class.dart
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(\(|\s+=>)'
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(<|\(|\s+=>)'
captures:
1: entity.name.function.dart
dartdoc:
- match: '(\[.*?\])'
captures:
0: variable.name.source.dart
- match: " .*"
- match: '^ {4,}(?![ \*]).*'
captures:
0: variable.name.source.dart
- match: "```.*?$"
@ -105,7 +114,7 @@ contexts:
scope: keyword.control.dart
- match: (?<!\$)\b(new)\b(?!\$)
scope: keyword.control.new.dart
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with)\b(?!\$)
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\b(?!\$)
scope: keyword.declaration.dart
- match: (?<!\$)\b(is\!?)\b(?!\$)
scope: keyword.operator.dart
@ -131,7 +140,7 @@ contexts:
scope: keyword.operator.logical.dart
- match: (?<!\$)\b(static|final|const)\b(?!\$)
scope: storage.modifier.dart
- match: (?<!\$)\b(?:void|bool|num|int|double|dynamic|var)\b(?!\$)
- match: (?<!\$)\b(?:void|var)\b(?!\$)
scope: storage.type.primitive.dart
punctuation:
- match: ","

@ -0,0 +1 @@
Subproject commit 9e9a518aed93031042c54710f8f02c839301de26

@ -0,0 +1 @@
Subproject commit c9d84587eb1a6eb34457a875f21b9b1a29306be3

@ -0,0 +1 @@
Subproject commit 6c0d770fc74e6bc037c70cae1f94fe113b60fd95

View file

@ -16,18 +16,19 @@ contexts:
- include: imports
- include: statements
classes:
- match: (?=\s*(?:companion|class|object|interface))
- match: (?<!::)(?=\b(?:companion|class|object|interface)\b)
push:
- match: "}|(?=$)"
- match: '(?=$|\})'
pop: true
- include: comments
- match: \b(companion\s*)?(class|object|interface)\b
captures:
1: keyword.other.kotlin
1: storage.modifier.kotlin
2: storage.modifier.kotlin
push:
- match: '(?=<|{|\(|:)'
- match: '(?=<|\{|\(|:|$)'
pop: true
- match: \b(object)\b
scope: keyword.other.kotlin
- include: comments
- match: \w+
scope: entity.name.type.class.kotlin
- match: <
@ -75,7 +76,7 @@ contexts:
constants:
- match: \b(true|false|null|this|super)\b
scope: constant.language.kotlin
- match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\b'
- match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFf])?\b'
scope: constant.numeric.kotlin
- match: '\b([A-Z][A-Z0-9_]+)\b'
scope: constant.other.kotlin
@ -91,9 +92,9 @@ contexts:
- include: comments
- include: keywords
functions:
- match: (?=\s*(?:fun))
- match: (?=\s*\b(?:fun)\b)
push:
- match: "}|(?=$)"
- match: '(?=$|\})'
pop: true
- match: \b(fun)\b
captures:
@ -192,32 +193,40 @@ contexts:
1: keyword.other.kotlin
2: keyword.other.kotlin
keywords:
- match: \b(var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\b
- match: \b(var|val|public|private|protected|abstract|final|sealed|enum|open|attribute|annotation|override|inline|vararg|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof|reified|suspend)\b
scope: storage.modifier.kotlin
- match: \b(try|catch|finally|throw)\b
scope: keyword.control.catch-exception.kotlin
- match: \b(if|else|while|for|do|return|when|where|break|continue)\b
scope: keyword.control.kotlin
- match: \b(in|is|as|assert)\b
- match: \b(in|is|!in|!is|as|as\?|assert)\b
scope: keyword.operator.kotlin
- match: (==|!=|===|!==|<=|>=|<|>)
scope: keyword.operator.comparison.kotlin
- match: (=)
scope: keyword.operator.assignment.kotlin
- match: (::)
scope: keyword.operator.kotlin
- match: (:)
scope: keyword.operator.declaration.kotlin
- match: \b(by)\b
scope: keyword.other.by.kotlin
- match: (\?\.)
scope: keyword.operator.safenav.kotlin
- match: (\.)
scope: keyword.operator.dot.kotlin
- match: (\?:)
scope: keyword.operator.elvis.kotlin
- match: (\-\-|\+\+)
scope: keyword.operator.increment-decrement.kotlin
- match: (\-|\+|\*|\/|%)
scope: keyword.operator.arithmetic.kotlin
- match: (\+=|\-=|\*=|\/=)
scope: keyword.operator.arithmetic.assign.kotlin
- match: (!|&&|\|\|)
scope: keyword.operator.logical.kotlin
- match: (\.\.)
scope: keyword.operator.range.kotlin
- match: (\-|\+|\*|\/|%)
scope: keyword.operator.arithmetic.kotlin
- match: (!|&&|\|\|)
scope: keyword.operator.logical.kotlin
- match: (;)
scope: punctuation.terminator.kotlin
namespaces:
@ -315,11 +324,11 @@ contexts:
- include: generics
- include: expressions
types:
- match: \b(Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b
- match: \b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b
scope: storage.type.buildin.kotlin
- match: \b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\b
scope: storage.type.buildin.array.kotlin
- match: \b(Array|List|Map)<\b
- match: \b(Array|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)<\b
captures:
1: storage.type.buildin.collection.kotlin
push:
@ -333,13 +342,6 @@ contexts:
pop: true
- include: types
- include: keywords
- match: (#)\(
captures:
1: keyword.operator.tuple.kotlin
push:
- match: \)
pop: true
- include: expressions
- match: '\{'
push:
- match: '\}'
@ -353,15 +355,15 @@ contexts:
- match: (->)
scope: keyword.operator.declaration.kotlin
variables:
- match: (?=\s*(?:var|val))
- match: (?=\s*\b(?:var|val)\b)
push:
- match: (?=:|=|$)
- match: (?=:|=|(\b(by)\b)|$)
pop: true
- match: \b(var|val)\b
captures:
1: keyword.other.kotlin
push:
- match: (?=:|=|$)
- match: (?=:|=|(\b(by)\b)|$)
pop: true
- match: <
push:
@ -379,6 +381,13 @@ contexts:
pop: true
- include: types
- include: getters-and-setters
- match: \b(by)\b
captures:
1: keyword.other.kotlin
push:
- match: (?=$)
pop: true
- include: expressions
- match: (=)
captures:
1: keyword.operator.assignment.kotlin

@ -0,0 +1 @@
Subproject commit 302099365866daca49d25288111696a30a4b4e03

@ -0,0 +1 @@
Subproject commit f36b8f807d5f30d2b8ef639232a9fc5960f550fa

View file

@ -147,7 +147,7 @@ contexts:
2: keyword.other.powershell
3: variable.parameter.powershell
attribute:
- match: '(\[)\s*\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength)\b'
- match: '(\[)\s*\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\b'
captures:
1: punctuation.section.bracket.begin.powershell
2: support.function.attribute.powershell
@ -165,31 +165,11 @@ contexts:
captures:
0: punctuation.section.group.end.powershell
pop: true
- include: variable
- include: variableNoProperty
- include: hashtable
- include: scriptblock
- include: doubleQuotedStringEscapes
- include: doubleQuotedString
- include: type
- include: numericConstant
- include: doubleQuotedString
- include: main
- match: (?i)\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\b(?:\s+)?(=)?
captures:
1: variable.parameter.attribute.powershell
2: keyword.operator.assignment.powershell
- match: (?<!')'
captures:
0: punctuation.definition.string.begin.powershell
push:
- meta_scope: string.quoted.single.powershell
- match: "'(?!')"
captures:
0: punctuation.definition.string.end.powershell
pop: true
- match: "''"
scope: constant.character.escape.powershell
commands:
- match: '(?:(\p{L}|\d|_|-|\\|\:)*\\)?\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\-.+?(?:\.(?i:exe|cmd|bat|ps1))?\b'
comment: "Verb-Noun pattern:"
@ -242,14 +222,14 @@ contexts:
pop: true
- match: '(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,64}\b'
- include: variableNoProperty
- include: variable
- include: doubleQuotedStringEscapes
- include: interpolation
- match: '`\s*$'
scope: keyword.other.powershell
doubleQuotedStringEscapes:
- match: '`[0abnfrvt"''$`]'
- match: '`[`0abefnrtv"''$]'
scope: constant.character.escape.powershell
- include: unicodeEscape
- match: '""'
scope: constant.character.escape.powershell
function:
@ -362,6 +342,11 @@ contexts:
- match: '(?!\d+|\.)(?:\p{L}|\p{N}|\.)+'
scope: storage.type.powershell
- include: main
unicodeEscape:
- match: '`u\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?{{1}}{1,5})}'
scope: constant.character.escape.powershell
- match: '`u(?:\{[0-9a-fA-F]{,6}.)?'
scope: invalid.character.escape.powershell
variable:
- match: (\$)(?i:(False|Null|True))\b
comment: These are special constants.
@ -374,13 +359,13 @@ contexts:
0: support.constant.variable.powershell
1: punctuation.definition.variable.powershell
3: variable.other.member.powershell
- match: '(\$)(?i:(\$|\^|\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))((?:\.(?:\p{L}|\d|_)+)*\b)?\b'
- match: '(\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\b)((?:\.(?:\p{L}|\d|_)+)*\b)?'
comment: Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.
captures:
0: support.constant.automatic.powershell
0: support.variable.automatic.powershell
1: punctuation.definition.variable.powershell
3: variable.other.member.powershell
- match: '(\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|ProgressPreference|PsCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|VerbosePreference|WarningPreference|WhatIfPreference))((?:\.(?:\p{L}|\d|_)+)*\b)?\b'
- match: '(\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\.(?:\p{L}|\d|_)+)*\b)?\b'
comment: Style preference variables as language variables so that they stand out.
captures:
0: variable.language.powershell
@ -426,19 +411,19 @@ contexts:
0: support.constant.variable.powershell
1: punctuation.definition.variable.powershell
3: variable.other.member.powershell
- match: (\$)(?i:(\$|\^|\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))\b
- match: '(\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\b)'
comment: Automatic variables are not constants, but they are read-only...
captures:
0: support.variable.automatic.powershell
1: punctuation.definition.variable.powershell
3: variable.other.member.powershell
- match: (\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|ProgressPreference|PsCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|VerbosePreference|WarningPreference|WhatIfPreference))\b
- match: (\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\b
comment: Style preference variables as language variables so that they stand out.
captures:
0: variable.language.powershell
1: punctuation.definition.variable.powershell
3: variable.other.member.powershell
- match: '(?i:(\$|@)(global|local|private|script|using|workflow):((?:\p{L}|\d|_)+))'
- match: '(?i:(\$)(global|local|private|script|using|workflow):((?:\p{L}|\d|_)+))'
captures:
0: variable.other.readwrite.powershell
1: punctuation.definition.variable.powershell

View file

@ -0,0 +1,18 @@
# Sublime syntaxes
All the submodules are offering .sublime-syntax files. The ones that are not in a submodule
are converted from the following repos at the following commit:
- Assembly x86: https://github.com/Nessphoro/sublimeassembly/tree/150352f4d89d7fde48b18cc4b046385a6e926c96
- CSV: https://github.com/wadetb/Sublime-Text-Advanced-CSV/tree/4786d037a761bc45e516f6b0624a839919ec6d05
- Crystal: https://github.com/crystal-lang-tools/sublime-crystal/tree/2ee9d667aeb9e90846244b5a74e78826014676de
- Dart: https://github.com/LiteCatDev/Dartlight/tree/4a9abb5d480eec6b4b95fe6ff4667162a33d41d6
- Kotlin: https://github.com/vkostyukov/kotlin-sublime-package/tree/aeeed2780b04aea3d293c547c24cae27cafef0c5
- Nix: https://github.com/wmertens/sublime-nix/tree/9032bd613746b9c135223fd6f26a5fa555f18946
- PowerShell: https://github.com/PowerShell/EditorSyntax/tree/4a0a076661d26473cac71b9a17e6a759e9b1c643
- Swift: https://github.com/quiqueg/Swift-Sublime-Package/tree/fef17119ceef28a3c4b8cf72268d6192b595365d
- Reason: https://github.com/reasonml-editor/sublime-reason/tree/69925396ec6e73581357c0b1c487055fa6c065e8
- Stylus: https://github.com/billymoon/Stylus/tree/30908e3b5757d6cab4bf2ce660ef89b0c614cf62
- Racket: https://gist.githubusercontent.com/sliminality/3f1527f8e910c36b3303346422b03409/raw/9ce1ddd463c9bc97439726fd5f63b1fb3a36419b/Racket.tmLanguage
The others, I haven't kept track of the repo/commit.

View file

@ -0,0 +1,52 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Racket
file_extensions:
- rkt
scope: source.racket
contexts:
main:
- match: '[^\\](\"[^\"]*\")'
captures:
1: string.quoted.double.source.racket
- match: '\((define)\s+([a-zA-Z0-9_\-?\+^:/!]+)\s*'
scope: meta.variable.source.racket
captures:
1: keyword.source.racket
2: entity.name.variable.source.racket
- match: '\((define)\s+\(([a-zA-Z0-9_\-?\+^:/!]+)\s*'
scope: meta.function.source.racket
captures:
1: keyword.source.racket
2: entity.name.function
- match: '\((struct)\s+([a-zA-Z0-9_\-?\+^]+)\s+'
scope: meta.struct.source.racket
captures:
1: keyword.source.racket
2: entity.name.type
- match: '[\s\(](if|lambda|cond|define|type-case|let|letrec|let!|\#lang|require|test|else|first|rest|define-type|define-type-alias|define-struct|not|local|error|lang|module|module*|module+|require|provide|quote|#%datum|#%expression|#%top|#%variable-reference|#%app|lambda|case-lambda|let|let*|letrec|let-values|let*-values|let-syntax|letrec-syntax|let-syntaxes|letrec-syntaxes|letrec-syntaxes+values|local|shared|if|cond|and|or|case|define|else|=>|define|define-values|define-syntax|define-syntaxes|define-for-syntax|define-require-syntax|define-provide-syntax|define-syntax-rule|define-record-type|begin|begin0|begin-for-syntax|when|unless|set!|set!-values|for|for/list|for/vector|for/hash|for/hasheq|for/hasheqv|for/and|for/or|for/lists|for/first|for/last|for/fold|for*|for*/list|for*/vector|for*/hash|for*/hasheq|for*/hasheqv|for*/and|for*/or|for*/lists|for*/first|for*/last|for*/fold|for/fold/derived|for*/fold/derived|define-sequence-syntax|:do-in|do|with-continuation-mark|quasiquote|unquote|unquote-splicing|quote-syntax|#%top-interaction|define-package|open-package|package-begin|define*|define*-values|define*-syntax|define*-syntaxes|open*-package|package?|package-exported-identifiers|package-original-identifiers|block|#%stratified-body|match|match*|match/values|define/match|match-lambda|match-lambda*|match-lambda**|match-let|match-let*|match-let-values|match-let*-values|match-letrec|match-define|match-define-values|with-handlers|with-handlers*|let/cc|let/ec|%|prompt|control|prompt-at|control-at|reset|shift|reset-at|shift-at|prompt0|reset0|control0|shift0|prompt0-at|reset0-at|control0-at|shift0-at|set|cupto|write|display|displayln|print|fprintf|printf|eprintf|format|print-pair-curly-braces|print-mpair-curly-braces|print-unreadable|print-graph|print-struct|print-box|print-vector-length|print-hash-table|print-boolean-long-form|print-reader-abbreviations|print-as-expression|print-syntax-width|current-write-relative-directory|port-write-handler|port-display-handler|port-print-handler|global-port-print-handler)[\s\)]'
scope: meta.keywords.source.racket
captures:
1: keyword.source.racket
- match: '[\s\(](true|false|empty|null)[\s\)]'
captures:
1: constant.language.source.racket
- match: '[\s\(\{\[](#t|#f|#true|#false)[\s\)\}\]]'
captures:
1: constant.language.source.racket
- match: '(#\\[a-zA-Z0-9_\-?\+\.\!\"]+)'
captures:
1: constant.language.source.racket
- match: '\b(0|([1-9][0-9_]*))\b'
scope: constant.numeric.integer.source.racket
- match: ;
push:
- meta_scope: comment.line.documentation.source.racket
- match: $\n
pop: true
- match: '#\|'
push:
- meta_scope: comment.block.source.racket
- match: '\|#'
pop: true

View file

@ -10,6 +10,7 @@ contexts:
main:
- include: reason_comment_doc_block
- include: reason_comment_block
- include: reason_comment
- include: reason_named_arg
- include: reason_module
- include: reason_lifetime
@ -102,6 +103,12 @@ contexts:
scope: storage.modifier.rec.source.reason
- match: \bmodule\b
scope: storage.modifier.module.source.reason
reason_comment:
- match: //
push:
- meta_scope: comment.source.reason
- match: (?=^)
pop: true
reason_comment_block:
- match: /\*
push:

View file

@ -0,0 +1,711 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Stylus
file_extensions:
- styl
- stylus
scope: source.stylus
contexts:
main:
- include: comments
- match: '^\s*(@(?:import|charset|css|font-face|(?:-webkit-)?keyframes)(?:\s+([\w-]+))?)\b'
captures:
1: keyword.control.at-rule.other.stylus
2: variable.other.animation-name.stylus
push:
- match: '$|;|(?=\{)'
pop: true
- include: string-quoted
- match: ^\s*(@media)\s*
captures:
1: keyword.control.at-rule.media.stylus
push:
- match: '$|(?=\{)'
pop: true
- include: media-query
- match: |-
(?x)
(?<=^|;|})
\s*
(?=
[\[\]'".\w$-]+
\s*
([?:]?=)
(?![^\[]*\])
)
push:
- match: $|;
pop: true
- include: expression
- include: iteration
- include: conditionals
- include: return
- match: |-
(?x) # multi-line regex definition mode
^(\s*) # starts at the beginning of line
([\w$-]+) # identifier (name)
(\() # start of argument list
(?=
.*?
\)\s*\{ # we see a curly brace afterwards
) # which means this is a function definition
captures:
2: entity.name.function.stylus
3: punctuation.definition.parameters.start.stylus
push:
- meta_scope: meta.function-call.stylus
- match: (\))
captures:
1: punctuation.definition.parameters.end.stylus
pop: true
- include: expression
- match: |-
(?x) # multi-line regex definition mode
(
(^|;) # starts at the beginning of line or at a ;
\s*
(\+?\s* # for block mixins
[\w$-]+) # identifier (name)
(\() # start of argument list
(?=
.*?
\)\s*;?\s* # if there are only spaces and semicolons
$|; # then this a
)
)
captures:
3: entity.other.attribute-name.mixin.stylus
4: punctuation.definition.parameters.start.stylus
push:
- meta_scope: meta.function-call.stylus
- match: (\))
captures:
1: punctuation.definition.parameters.end.stylus
pop: true
- include: expression
- match: |-
(?x) # multi-line regex definition mode
(^|(?<=\*/|\}))\s*
(?=
font(?!
\s*:\s
|
-
|
.*?
(?:
\/|normal|bold|light(er?)|serif|sans|monospace|
\b\d+(?:\b|px|r?em|%)|
var\s*\(|
['"][^\]]*$
)
) | # we need to distinguish between tag and property `cursor`
cursor(?!
\s*[:;]\s
|
-
|
.*?
(?:
(?:url\s*\()|
(?:-moz-|-webkit-|-ms-)?
(?:auto|default|none|context-menu|help|pointer|progress|
wait|cell|crosshair|text|vertical-text|alias|copy|
move|no-drop|not-allowed|e-resize|n-resize|ne-resize|
nw-resize|s-resize|se-resize|sw-resize|w-resize|
ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|
row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing
normal|bold|light(er?)|serif|sans|monospace)
)
) | (
(
altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|
animateMotion|animateTransform|circle|clipPath|color-profile|
defs|desc|ellipse|feBlend|feColorMatrix|
feComponentTransfer|feComposite|feConvolveMatrix|
feDiffuseLighting|feDisplacementMap|feDistantLight|feFlood|
feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feImage|feMerge|
feMergeNode|feMorphology|feOffset|fePointLight|
feSpecularLighting|feSpotLight|feTile|feTurbulence|filter|
font-face|font-face-format|font-face-name|font-face-src|
font-face-uri|foreignObject|g|glyph|glyphRef|hkern|image|line|
linearGradient|marker|mask|metadata|missing-glyph|mpath|path|
pattern|polygon|polyline|radialGradient|rect|set|stop|svg|
switch|symbol|text|textPath|tref|tspan|use|view|vkern|
a|abbr|acronym|address|applet|area|article|aside|audio|b|base|
basefont|bdi|bdo|bgsound|big|blink|blockquote|body|br|button|
canvas|caption|center|cite|code|col|colgroup|data|
datalist|dd|decorator|del|details|dfn|dir|div|dl|dt|element|
em|embed|fieldset|figcaption|figure|footer|form|frame|
frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|
img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|
main|map|mark|marquee|menu|menuitem|meta|meter|nav|nobr|
noframes|noscript|object|ol|optgroup|option|output|p|param|
plaintext|pre|progress|q|rp|rt|ruby|s|samp|script|section|
select|shadow|small|source|spacer|span|strike|strong|style|
sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|
thead|time|title|tr|track|tt|u|ul|var|video|wbr|xmp)
\s*([\s,.#\[]|:[^\s]|(?=\{|$))
) | (
[:~>\[*\/] # symbols but they are valid for selector
) | (
\+\s*[\w$-]+\b\s* # are an identifier starting with $
(?!\() # and they can't have anything besides
) | ( # for animtions
\d+(\.\d+)?%|(from|to)\b
) | ( # Placeholder selectors
\$[\w$-]+\b\s* # are an identifier starting with $
(?=$|\{) # and they can't have anything besides
) | ( # CSS class
\.[a-zA-Z0-9_-]+
) | ( # CSS id
\#[a-zA-Z0-9_-]+
) | ( # Reference to parent
([\w\d_-]+)? # matching any word right before &
(&) # & itself, escaped because of plist
([\w\d_-]+)? # matching any word right after &
)
)
push:
- meta_scope: meta.selector.stylus
- match: |-
|$|(?=\{\s*\}.*$)|(?=\{.*?[:;])|(?=\{)(?!.+\}.*$)
pop: true
- include: comma
- match: \d+(\.\d+)?%|from|to
scope: entity.other.animation-keyframe.stylus
- include: selector-components
- match: .
scope: entity.other.attribute-name.stylus
- match: |-
(?x) # multi-line regex definition mode
(?<=^|;|{)\s* # starts after begining of line, '{' or ';''
(?= # lookahead for
(
[a-zA-Z0-9_-] # then a letter
| # or
(\{(.*?)\}) # interpolation
| # or
(/\*.*?\*/) # comment
)+
\s*[:\s]\s* # value is separted by colon or space
(?!(\s*\{)) # if there are only spaces afterwards
(?!
[^}]*? # checking for an unclosed curly braces on this
\{ # line because if one exists it means that
[^}]* # this is a selector and not a property
($|\})
)
)
push:
- match: '(?=\}|;)|(?<!,)\s*\n'
pop: true
- include: comments
- include: interpolation
- match: '(?<!^|;|{)\s*(?:(:)|\s)'
captures:
1: punctuation.separator.key-value.stylus
push:
- match: '(;)|(?=\})|(?=(?<!\,)\s*\n)'
captures:
1: punctuation.terminator.rule.stylus
pop: true
- include: comments
- include: expression
- match: "-(moz|o|ms|webkit|khtml)-"
scope: support.type.vendor-prefix.stylus
- match: .
scope: meta.property-name.stylus support.type.property-name.stylus
- match: '@extends?\s'
captures:
0: keyword.language.stylus
push:
- match: (?=$|;)
pop: true
- include: selector-components
- include: string-quoted
- include: escape
- include: language-constants
- include: language-operators
- include: language-keywords
- include: property-reference
- include: function-call
- match: '\{'
scope: punctuation.section.start.stylus
- match: '\}'
scope: punctuation.section.end.stylus
attribute-selector:
- match: '\[(?=[^\]]*\])'
captures:
0: punctuation.definition.entity.start.stylus
push:
- meta_scope: meta.attribute-selector.stylus
- match: '\]'
captures:
0: punctuation.definition.entity.end.stylus
pop: true
- match: '(?<=\[)|(?<=\{)'
push:
- match: '(?=[|~=\]\s])'
pop: true
- include: interpolation
- match: .
captures:
0: entity.other.attribute-name.stylus
- include: interpolation
- match: "([|~]?=)"
captures:
1: keyword.operator.stylus
- include: string-quoted
- match: .
captures:
0: string.unquoted.stylus
color-values:
- match: \b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b
scope: constant.color.w3c-standard-color-name.stylus
- match: (hsla?|rgba?)\s*(\()
captures:
1: keyword.language.function.misc.stylus
2: punctuation.definition.parameters.start.stylus
push:
- match: \)
captures:
0: punctuation.definition.parameters.end.stylus
pop: true
- match: |-
(?x) # multi-line regex definition mode
\b
(?:0*((?:1?[0-9]{1,2})|(?:2(?:[0-4][0-9]|5[0-5])))\s*(,)\s*)
(?:0*((?:1?[0-9]{1,2})|(?:2(?:[0-4][0-9]|5[0-5])))\s*(,)\s*)
(?:0*((?:1?[0-9]{1,2})|(?:2(?:[0-4][0-9]|5[0-5])))\b)
captures:
1: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.red.stylus
2: punctuation.delimiter.comma.stylus
3: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.green.stylus
4: punctuation.delimiter.comma.stylus
5: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.blue.stylus
- match: |-
(?x) # multi-line regex definition mode
\b
((?:[0-9]{1,2}|100)%)(,) # red
\s*
((?:[0-9]{1,2}|100)%)(,) # green
\s*
((?:[0-9]{1,2}|100)%) # blue
captures:
1: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.red.stylus
2: punctuation.delimiter.comma.stylus
3: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.green.stylus
4: punctuation.delimiter.comma.stylus
5: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.blue.stylus
- match: |-
(?x) # multi-line regex definition mode
(?:\s*(,)\s*((0?\.[0-9]+)|[0-1]))?
captures:
1: punctuation.delimiter.comma.stylus
2: constant.other.color.rgb-value.stylus constant.other.color.rgb-value.alpha.stylus
- include: numeric-values
- include: numeric-values
comma:
- match: \s*,\s*
scope: punctuation.delimiter.comma.stylus
comments:
- include: single-line-comment
- match: \/\*
captures:
0: punctuation.definition.comment.stylus
push:
- meta_scope: comment.block.stylus
- match: \*\/
captures:
0: punctuation.definition.comment.stylus
pop: true
conditionals:
- match: '(^\s*|\s+)(if|unless|else)(?=[\s({]|$)\s*'
captures:
2: keyword.control.stylus
push:
- match: '(?=$|\{)'
pop: true
- include: expression
escape:
- match: \\.
scope: constant.character.escape.stylus
expression:
- include: single-line-comment
- include: comma
- include: iteration
- include: conditionals
- include: language-operators
- include: language-keywords
- include: hash-definition
- include: color-values
- include: url
- include: function-call
- include: string-quoted
- include: escape
- include: hash-access
- include: language-constants
- include: language-property-value-constants
- include: property-reference
- include: variable
function-call:
- match: '([\w$-]+)(\()'
captures:
1: entity.function-name.stylus
2: punctuation.definition.parameters.start.stylus
push:
- meta_scope: meta.function-call.stylus
- match: (\))
captures:
1: punctuation.definition.parameters.end.stylus
pop: true
- include: expression
hash-access:
- match: '(?=[\w$-]+(?:\.|\[[^\]=]*\]))'
push:
- meta_scope: meta.hash-access.stylus
- match: '(?=[^''''""\[\]\w.$-]|\s|$)'
pop: true
- match: \.
scope: punctuation.delimiter.hash.stylus
- match: '\['
scope: punctuation.definition.entity.start.stylus
- match: '\]'
scope: punctuation.definition.entity.end.stylus
- include: string-quoted
- include: variable
hash-definition:
- match: '\{'
captures:
0: punctuation.section.embedded.start.stylus
push:
- meta_scope: meta.hash.stylus
- match: '\}'
captures:
0: punctuation.section.embedded.end.stylus
pop: true
- include: single-line-comment
- match: |-
(?x)
(?:
([\w$-]+)
|
('[^']*')
|
("[^"]*")
)
\s*
(:)
\s*
captures:
1: support.type.property-name.stylus
2: string.quoted.single.stylus
3: string.quoted.double.stylus
4: punctuation.separator.key-value.stylus
push:
- match: '(;)|(?=\}|$)'
captures:
1: punctuation.terminator.statement.stylus
pop: true
- include: expression
interpolation:
- match: '\{'
captures:
0: punctuation.section.embedded.start.stylus
push:
- meta_scope: stylus.embedded.source
- match: '\}'
captures:
0: punctuation.section.embedded.end.stylus
pop: true
- include: expression
iteration:
- match: (^\s*|\s+)(for)\s+(?=.*?\s+in\s+)
captures:
2: keyword.control.stylus
push:
- match: '$|\{'
pop: true
- include: expression
language-constants:
- match: \b(true|false|null)\b
scope: constant.language.stylus
language-keywords:
- match: (\b|\s)(return|else)\b
scope: keyword.control.stylus
- match: (\b|\s)(!important|in|is defined|is a)\b
scope: keyword.other.stylus
- match: \barguments\b
scope: variable.language.stylus
language-operators:
- match: ((?:\?|:|!|~|\+|-|(?:\*)?\*|\/|%|(\.)?\.\.|<|>|(?:=|:|\?|\+|-|\*|\/|%|<|>)?=|!=)|\b(?:in|is(?:nt)?|(?<!:)not)\b)
scope: keyword.operator.stylus
language-property-value-constants:
- match: \b(absolute|all(-scroll)?|always|armenian|auto|avoid|baseline|below|bidi-override|block|bold(er)?|(border|content|padding)-box|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|cursive|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fantasy|fixed|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|monospace|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|(sans-)?serif|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|sub|super|sw-resize|table(-(row|cell|footer-group|header-group))?|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))?|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small(er)?|large(r)?))|painted|fill|stroke)\b
scope: constant.property-value.stylus
media-query:
- match: '\s*(?![{;]|$)'
push:
- meta_scope: meta.at-rule.media.stylus
- match: '\s*(?=[{;]|$)'
pop: true
- match: '(?i)\s*(only|not)?\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?(?![\w\d$-]+)'
captures:
1: keyword.operator.logic.media.stylus
2: support.constant.media.stylus
push:
- match: '\s*(?:(,)|(?=[{;]|$))'
pop: true
- include: media-query-list
- include: variable
media-query-list:
- match: \s*(and)?\s*(\()\s*
captures:
1: keyword.operator.logic.media.stylus
2: punctuation.definition.parameters.start.stylus
push:
- match: \)
captures:
0: punctuation.definition.parameters.end.stylus
pop: true
- include: media-query-properties
- include: numeric-values
media-query-properties:
- match: \s*:\s*
captures:
0: punctuation.separator.key-value.stylus
- match: |-
(?x)
(
((min|max)-)?
(
((device-)?(height|width|aspect-ratio))|
(color(-index)?)|monochrome|resolution
)
)|grid|scan|orientation
captures:
0: support.type.property-name.media.stylus
- match: \b(portrait|landscape|progressive|interlace)\b
captures:
1: support.constant.property-value.stylus
numeric-values:
- match: |-
(?x) # multi-line regex definition mode
(\#)(?:
([0-9a-fA-F])
([0-9a-fA-F])
([0-9a-fA-F])
([0-9a-fA-F])?
| ([0-9a-fA-F]{2})
([0-9a-fA-F]{2})
([0-9a-fA-F]{2})
([0-9a-fA-F]{2})?
)\b
scope: constant.other.color.rgb-value.stylus
captures:
1: punctuation.definition.constant.stylus
2: constant.other.color.rgb-value.red.stylus
3: constant.other.color.rgb-value.green.stylus
4: constant.other.color.rgb-value.blue.stylus
5: constant.other.color.rgb-value.alpha.stylus
6: constant.other.color.rgb-value.red.stylus
7: constant.other.color.rgb-value.green.stylus
8: constant.other.color.rgb-value.blue.stylus
9: constant.other.color.rgb-value.alpha.stylus
- match: |-
(?x) # multi-line regex definition mode
(?:-|\+)? # negative / positive
(?:
(?:
[0-9]+ # integer part
(?:\.[0-9]+)? # fraction
) |
(?:\.[0-9]+) # fraction without leading zero
)
((?: # units
px|pt|ch|cm|mm|in|
r?em|ex|pc|vw|vh|vmin|vmax|deg|
g?rad|turn|dpi|dpcm|dppx|m?s|k?Hz
)\b|%)?
scope: constant.numeric.stylus
captures:
1: keyword.other.unit.stylus
property-reference:
- match: "@[a-z-]+"
scope: variable.other.property.stylus
pseudo:
- match: (:)(active|checked|default|disabled|empty|enabled|first-child|first-of-type|first|fullscreen|focus|hover|indeterminate|in-range|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|read-only|read-write|required|right|root|scope|target|valid|visited)\b
scope: entity.other.attribute-name.pseudo-class.stylus
captures:
1: puncutation.definition.entity.stylus
- match: (:?:)(before|after)\b
scope: entity.other.attribute-name.pseudo-element.stylus
captures:
1: puncutation.definition.entity.stylus
- match: (::)(first-letter|first-number|selection)\b
scope: entity.other.attribute-name.pseudo-element.stylus
captures:
1: puncutation.definition.entity.stylus
- match: ((:)dir)\s*(?:(\()(ltr|rtl)?(\)))?
captures:
1: entity.other.attribute-name.pseudo-element.stylus
2: puncutation.definition.entity.stylus
3: puncutation.definition.parameters.start.stylus
4: constant.language.stylus
5: puncutation.definition.parameters.end.stylus
- match: ((:)lang)\s*(?:(\()(\w+(-\w+)?)?(\)))?
captures:
1: entity.other.attribute-name.pseudo-element.stylus
2: puncutation.definition.entity.stylus
3: puncutation.definition.parameters.start.stylus
4: constant.language.stylus
5: puncutation.definition.parameters.end.stylus
- include: pseudo-nth
- include: pseudo-not
pseudo-not:
- match: ((:)not)\s*(\()
captures:
1: entity.other.attribute-name.pseudo-element.stylus
2: puncutation.definition.entity.stylus
3: puncutation.definition.parameters.start.stylus
push:
- match: \)
captures:
0: puncutation.definition.parameters.end.stylus
pop: true
- include: selector-components
pseudo-nth:
- match: ((:)(?:nth-child|nth-last-child|nth-of-type|nth-last-of-type|nth-match|nth-last-match|nth-column|nth-last-column))\s*(\()
captures:
1: entity.other.attribute-name.pseudo-class.stylus
2: puncutation.definition.entity.stylus
3: puncutation.definition.parameters.start.stylus
push:
- match: \)
captures:
0: puncutation.definition.parameters.end.stylus
pop: true
- include: language-operators
- include: interpolation
- match: \b(odd|even)\b
scope: constant.language.stylus
- match: \b(\d+)?n\b
scope: variable.language.stylus
captures:
1: constant.numeric.stylus
- match: \d+
scope: constant.numeric.stylus
return:
- match: ^\s*(return)
captures:
1: keyword.control.stylus
push:
- match: (;)|(?=$)
captures:
1: punctuation.terminator.statement.stylus
pop: true
- include: expression
selector-components:
- include: comments
- include: interpolation
- include: attribute-selector
- include: pseudo
- match: '\$[\w$-]+\b'
scope: entity.other.placeholder.stylus
- match: "[:~>]"
scope: keyword.operator.selector.stylus
- match: |-
(?x) # multi-line regex definition mode
\b(
altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|
animateMotion|animateTransform|circle|clipPath|color-profile|
defs|desc|ellipse|feBlend|feColorMatrix|
feComponentTransfer|feComposite|feConvolveMatrix|
feDiffuseLighting|feDisplacementMap|feDistantLight|feFlood|
feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feImage|feMerge|
feMergeNode|feMorphology|feOffset|fePointLight|
feSpecularLighting|feSpotLight|feTile|feTurbulence|filter|
font-face|font-face-format|font-face-name|font-face-src|
font-face-uri|foreignObject|g|glyph|glyphRef|hkern|image|line|
linearGradient|marker|mask|metadata|missing-glyph|mpath|path|
pattern|polygon|polyline|radialGradient|rect|set|stop|svg|
switch|symbol|text|textPath|tref|tspan|use|view|vkern|
a|abbr|acronym|address|applet|area|article|aside|audio|b|base|
basefont|bdi|bdo|bgsound|big|blink|blockquote|body|br|button|
canvas|caption|center|cite|code|col|colgroup|content|data|
datalist|dd|decorator|del|details|dfn|dir|div|dl|dt|element|
em|embed|fieldset|figcaption|figure|font|footer|form|frame|
frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|
img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|
main|map|mark|marquee|menu|menuitem|meta|meter|nav|nobr|
noframes|noscript|object|ol|optgroup|option|output|p|param|
plaintext|pre|progress|q|rp|rt|ruby|s|samp|script|section|
select|shadow|small|source|spacer|span|strike|strong|style|
sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|
thead|time|title|tr|track|tt|u|ul|var|video|wbr|xmp
)\b
scope: entity.name.tag.stylus
- match: '\.[a-zA-Z0-9_-]+'
scope: entity.other.attribute-name.class.stylus
- match: "#[a-zA-Z0-9_-]+"
scope: entity.other.attribute-name.id.stylus
- match: |-
(?x) # multi-line regex definition mode
([\w\d_-]+)? # matching any word right before &
(&) # & itself, escaped because of plist
([\w\d_-]+)? # matching any word right after &
captures:
1: entity.other.attribute-name.stylus
2: variable.language.stylus
3: entity.other.attribute-name.stylus
single-line-comment:
- match: (\/\/).*$
scope: comment.line.stylus
captures:
1: punctuation.definition.comment.stylus
string-quoted:
- match: "'[^']*'"
scope: string.quoted.single.stylus
- match: '"[^"]*"'
scope: string.quoted.double.stylus
url:
- match: (url)\s*(\()
captures:
1: entity.function-name.stylus
2: punctuation.definition.parameters.start.stylus
push:
- meta_scope: meta.function-call.stylus
- match: (\))
captures:
1: punctuation.definition.parameters.end.stylus
pop: true
- include: string-quoted
- include: language-constants
- include: language-property-value-constants
- include: property-reference
- include: variable
variable:
- match: '([\w$-]+\b)'
scope: variable.other.stylus

@ -0,0 +1 @@
Subproject commit 926b6818067c741d1d5cd9bfe901954fc23eb049

@ -0,0 +1 @@
Subproject commit e266d279c8074aa342f106554cfa87ebe839a782

@ -0,0 +1 @@
Subproject commit dcf4f24f1cecd9eebf6b1eb388e4f5db671a7b08

@ -0,0 +1 @@
Subproject commit b98a3f3ccff0134c38544d9bc41caf7f61048cdf

@ -0,0 +1 @@
Subproject commit 041d15667eca429afd4ff3df3b8f8617a66fc410

View file

@ -0,0 +1,371 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Swift
file_extensions:
- swift
first_line_match: ^#!/.*\bswift
scope: source.swift
contexts:
main:
- include: shebang-line
- include: comment
- include: attribute
- include: literal
- include: operator
- include: declaration
- include: storage-type
- include: keyword
- include: type
- include: boolean
comment:
- include: documentation-comment
- include: block-comment
- include: in-line-comment
access-level-modifier:
- match: \b(open|public|internal|fileprivate|private)\b(?:\(set\))?
comment: access-level-modifier
scope: keyword.other.access-level-modifier.swift
arithmetic-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])(\+|\-|\*|\/)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.arithmetic.swift
array-type:
- match: \b(Array)(<)
captures:
1: support.type.array.swift
2: punctuation.array.begin.swift
push:
- meta_scope: meta.array.swift
- match: (>)
captures:
1: punctuation.array.end.swift
pop: true
- include: main
assignment-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])(\+|\-|\*|\/|%|<<|>>|&|\^|\||&&|\|\|)?=(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.assignment.swift
attribute:
- match: '((@)(\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B))(\()'
captures:
1: storage.modifier.attribute.swift
2: punctuation.definition.attribute.swift
3: punctuation.definition.attribute-arguments.begin.swift
push:
- meta_content_scope: meta.attribute.arguments.swift
- match: \)
captures:
0: punctuation.definition.attribute-arguments.end.swift
pop: true
- include: main
- match: '((@)(\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B))'
captures:
1: storage.modifier.attribute.swift
2: punctuation.definition.attribute.swift
bitwise-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])(&|\||\^|<<|>>)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.bitwise.swift
block-comment:
- match: /\*
comment: Block comment
captures:
0: punctuation.definition.comment.block.begin.swift
push:
- meta_scope: comment.block.swift
- match: \*/
captures:
0: punctuation.definition.comment.block.end.swift
pop: true
boolean:
- match: \b(true|false)\b
scope: keyword.constant.boolean.swift
branch-statement-keyword:
- include: if-statement-keyword
- include: switch-statement-keyword
catch-statement-keyword:
- match: \b(catch|do)\b
comment: catch-statement
scope: kewyord.control.catch.swift
code-block:
- match: '(\{)'
comment: code-block
captures:
1: punctuation.definition.code-block.begin.swift
push:
- match: '(\})'
captures:
1: punctuation.definition.code-block.end.swift
pop: true
- include: main
collection-type:
- include: array-type
- include: dictionary-type
- match: \b(Array|Dictionary)\b
scope: support.type.swift
comparative-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])((=|!)==?|(<|>)=?|~=)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.comparative.swift
control-transfer-statement-keyword:
- match: \b(continue|break|fallthrough|return)\b
comment: control-transfer-statement
scope: keyword.control.transfer.swift
custom-operator:
- match: '(?<=[\s(\[{,;:])([/=\-+!*%<>&|\^~.]++)(?![\s)\]},;:])'
scope: keyword.operator.custom.prefix.unary.swift
- match: '(?<![\s(\[{,;:])([/=\-+!*%<>&|\^~.]++)(?![\s)\]},;:\.])'
scope: keyword.operator.custom.postfix.unary.swift
- match: '(?<=[\s(\[{,;:])([/=\-+!*%<>&|\^~.]++)(?=[\s)\]},;:])'
scope: keyword.operator.custom.binary.swift
declaration:
- include: import-declaration
- include: function-declaration
declaration-modifier:
- match: \b(class|convenience|dynamic|final|lazy|(non)?mutating|optional|override|required|static|unowned((un)?safe)?|weak)\b
comment: declaration-modifier
scope: keyword.other.declaration-modifier.swift
dictionary-type:
- match: \b(Dictionary)(<)
captures:
1: support.type.dictionary.swift
2: punctuation.dictionary.begin.swift
push:
- meta_scope: meta.dictionary.swift
- match: (>)
captures:
1: punctuation.dictionary.end.swift
pop: true
- include: main
documentation-comment:
- match: /\*\*
comment: Documentation comment
captures:
0: punctuation.definition.comment.block.documentation.begin.swift
push:
- meta_scope: comment.block.documentation.swift
- match: \*/
captures:
0: punctuation.definition.comment.block.documentation.end.swift
pop: true
floating-point-literal:
- match: '\b([0-9][0-9_]*)(\.([0-9][0-9_]*))?([eE][+\-]?([0-9][0-9_]*))?\b'
comment: floating-point-literal -> (decimal-literal)(decimal-fraction)?(decimal-exponent)?
- match: '\b(0x\h[\h_]*)(\.(0x\h[\h_]*))?([pP][+\-]?(0x\h[\h_]*))\b'
comment: floating-point-literal -> (hexadecimal-literal)(hexadecimal-fraction)?(hexadecimal-exponent)
function-body:
- include: code-block
function-declaration:
- match: '\b(func)\s+(\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B|[/=\-+!*%<>&|\^~.]+)\s*(?=\(|<)'
comment: function-declaration
captures:
1: storage.type.function.swift
2: entity.type.function.swift
push:
- meta_scope: meta.function-declaration.swift
- match: '(?<=\})'
pop: true
- include: generic-parameter-clause
- include: parameter-clause
- include: function-result
- include: function-body
function-result:
- match: '(?<![/=\-+!*%<>&|\^~.])(\->)(?![/=\-+!*%<>&|\^~.])\s*'
comment: function-result
captures:
1: keyword.operator.function-result.swift
push:
- meta_scope: meta.function-result.swift
- match: '\s*(?=\{)'
pop: true
- include: type
generic-parameter-clause:
- match: (<)
comment: generic-parameter-clause
captures:
1: punctuation.definition.generic-parameter-clause.begin.swift
push:
- meta_scope: meta.generic-parameter-clause.swift
- match: (>)
captures:
1: punctuation.definition.generic-parameter-clause.end.swift
pop: true
- include: main
identifier:
- match: '(\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B)'
comment: identifier
scope: meta.identifier.swift
if-statement-keyword:
- match: \b(if|else)\b
comment: if-statement
scope: keyword.control.if.swift
import-declaration:
- match: '\b(import)\s+(?:(typealias|struct|class|enum|protocol|var|func)\s+)?((?:\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B|[/=\-+!*%<>&|\^~.]+)(?:\.(?:\B\$[0-9]+|\b[\w^\d][\w\d]*\b|\B`[\w^\d][\w\d]*`\B|[/=\-+!*%<>&|\^~.]+))*)'
comment: import-declaration
scope: meta.import.swift
captures:
1: keyword.other.import.swift
2: storage.modifier.swift
3: support.type.module.import.swift
in-line-comment:
- match: (//).*
comment: In-line comment
scope: comment.line.double-slash.swift
captures:
1: punctuation.definition.comment.line.double-slash.swift
increment-decrement-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])(\+\+|\-\-)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.increment-or-decrement.swift
integer-literal:
- match: '(\B\-|\b)(0b[01][01_]*)\b'
comment: binary-literal
scope: constant.numeric.integer.binary.swift
- match: '(\B\-|\b)(0o[0-7][0-7_]*)\b'
comment: octal-literal
scope: constant.numeric.integer.octal.swift
- match: '(\B\-|\b)([0-9][0-9_]*)\b'
comment: decimal-literal
scope: constant.numeric.integer.decimal.swift
- match: '(\B\-|\b)(0x\h[\h_]*)\b'
comment: hexadecimal-literal
scope: constant.numeric.integer.hexadecimal.swift
integer-type:
- match: \bU?Int(8|16|32|64)?\b
comment: Int types
scope: support.type.swift
keyword:
- include: branch-statement-keyword
- include: control-transfer-statement-keyword
- include: loop-statement-keyword
- include: catch-statement-keyword
- include: operator-declaration-modifier
- include: declaration-modifier
- include: access-level-modifier
- match: \b(class|deinit|enum|extension|func|import|init|let|protocol|static|struct|subscript|typealias|var|throws|rethrows)\b
comment: declaration keyword
scope: keyword.declaration.swift
- match: \b(break|case|continue|default|do|else|fallthrough|if|in|for|return|switch|where|while|repeat|catch|guard|defer|try|throw)\b
comment: statement keyword
scope: keyword.statement.swift
- match: \b(as|dynamicType|is|new|super|self|Self|Type)\b
comment: expression and type keyword
scope: keyword.other.statement.swift
- match: \b(associativity|didSet|get|infix|inout|left|mutating|none|nonmutating|operator|override|postfix|precedence|prefix|right|set|unowned((un)?safe)?|weak|willSet)\b
comment: other keyword
scope: keyword.other.swift
literal:
- include: integer-literal
- include: floating-point-literal
- include: nil-literal
- include: string-literal
- include: special-literal
logical-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])(!|&&|\|\|)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.logical.swift
loop-statement-keyword:
- match: \b(while|repeat|for|in)\b
comment: loop-statement
scope: keyword.control.loop.swift
nil-literal:
- match: \bnil\b
comment: nil-literal
scope: constant.nil.swift
operator:
- include: comparative-operator
- include: assignment-operator
- include: logical-operator
- include: remainder-operator
- include: increment-decrement-operator
- include: overflow-operator
- include: range-operator
- include: bitwise-operator
- include: arithmetic-operator
- include: ternary-operator
- include: type-casting-operator
- include: custom-operator
operator-declaration-modifier:
- match: \b(operator|prefix|infix|postfix)\b
comment: operator-declaration
scope: keyword.other.operator.swift
optional-type:
- match: \b(Optional)(<)
scope: meta.optional.swift
overflow-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])\&(\+|\-|\*|\/|%)(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.overflow.swift
parameter-clause:
- match: (\()
comment: parameter-clause
captures:
1: punctuation.definition.function-arguments.begin.swift
push:
- meta_scope: meta.parameter-clause.swift
- match: (\))
captures:
1: punctuation.definition.function-arguments.end.swift
pop: true
- include: main
primitive-type:
- match: \b(Int|Float|Double|String|Bool|Character|Void)\b
comment: Primitive types
scope: support.type.swift
protocol-composition-type:
- match: \b(protocol)(<)
scope: meta.protocol.swift
range-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])\.\.(?:\.)?(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.range.swift
remainder-operator:
- match: '(?<![/=\-+!*%<>&|\^~.])\%(?![/=\-+!*%<>&|\^~.])'
scope: keyword.operator.remainder.swift
shebang-line:
- match: ^(#!).*$
comment: Shebang line
scope: comment.line.shebang.swift
captures:
1: punctuation.definition.comment.line.shebang.swift
special-literal:
- match: \b__(FILE|LINE|COLUMN|FUNCTION)__\b
scope: keyword.other.literal.swift
storage-type:
- match: \b(var|func|let|class|enum|struct|protocol|extension|typealias)\b
scope: storage.type.swift
string-literal:
- match: \"
captures:
0: string.quoted.double.swift
push:
- meta_scope: meta.literal.string.swift
- match: \"
captures:
0: string.quoted.double.swift
pop: true
- match: '\\([0tnr\"\''\\]|x\h{2}|u\h{4}|U\h{8})'
scope: constant.character.escape.swift
- match: (\\\()
captures:
1: support.punctuation.expression.begin.swift
push:
- meta_content_scope: meta.expression.swift
- match: (\))
captures:
1: support.punctuation.expression.end.swift
pop: true
- include: scope:source.swift
- match: (\"|\\)
scope: invalid.illegal.swift
- match: (.)
scope: string.quoted.double.swift
switch-statement-keyword:
- match: \b(switch|case|default|where)\b
comment: switch-statement
scope: keyword.control.switch.swift
ternary-operator:
- match: '(?<=[\s(\[{,;:])(\?|:)(?=[\s)\]},;:])'
scope: keyword.operator.ternary.swift
type:
- include: primitive-type
- include: integer-type
- include: collection-type
- include: optional-type
- include: protocol-composition-type
type-casting-operator:
- match: \b(is\b|as(\?\B|\b))
scope: keyword.operator.type-casting.swift

File diff suppressed because it is too large Load diff

@ -0,0 +1 @@
Subproject commit 1ce5f90d444d80b12af41bc051507e914730d4ef

@ -0,0 +1 @@
Subproject commit 1f010d5f63f20aa8eafa57aaaeafe736e0748dca

Binary file not shown.

@ -0,0 +1 @@
Subproject commit 2c254cc8512d53b7af306e4379fc9744ee5b4aee

@ -0,0 +1 @@
Subproject commit 45355633d17ee562481ca1d2ad0e3502c238f58a

@ -0,0 +1 @@
Subproject commit 5acebc18503697be09df047591964e68e80fcf8e

@ -0,0 +1 @@
Subproject commit 0f14b7caf3c775a5d18551a9563a9debdb10c9a9

@ -0,0 +1 @@
Subproject commit c18616d6bd55b188672276da837837070170d967

@ -0,0 +1 @@
Subproject commit 6d405948df4a112eb7a4db2ed72bbfe76dd9f419

Binary file not shown.

1873
sublime/themes/nord.tmTheme Normal file

File diff suppressed because it is too large Load diff

View file

@ -22,16 +22,13 @@
<key>invisibles</key>
<string>#586e75</string>
<key>lineHighlight</key>
<string>#073642</string>
<string>#1CD1FF12</string>
<key>misspelling</key>
<string>#dc322f</string>
<key>selection</key>
<string>#2c4c55</string>
<key>selectionBorder</key>
<string>#586e75</string>
<!-- Default looks best really -->
<!-- <key>findHighlight</key> -->
<!-- <string>#dddd45</string> -->
<!-- <key>findHighlightForeground</key> -->
<!-- <string>#fdf6e3</string> -->
</dict>
</dict>
@ -102,6 +99,28 @@
<string>#268bd2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable Function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable Language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d33682</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
@ -146,11 +165,44 @@
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#93a1a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class</string>
<key>scope</key>
<string>keyword.control.class, meta.class, entity.name.class, entity.name.type.class</string>
<string>keyword.control.class, entity.name, entity.name.class, entity.name.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited Class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268bd2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -161,7 +213,7 @@
<key>name</key>
<string>Library class</string>
<key>scope</key>
<string>support.type, support.class</string>
<string>support, support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -194,13 +246,24 @@
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language, meta.preprocessor</string>
<string>constant, constant.language, meta.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Section heading</string>
<key>scope</key>
<string>entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cb4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Support.construct</string>
@ -324,9 +387,9 @@
</dict>
<dict>
<key>name</key>
<string>Quoted Single</string>
<string>Quotes</string>
<key>scope</key>
<string>punctuation.definition.string.begin, punctuation.definition.string.end</string>
<string>punctuation.definition.string</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -337,7 +400,7 @@
<key>name</key>
<string>[]</string>
<key>scope</key>
<string>meta.brace.square</string>
<string>meta.brace.square, punctuation.section.brackets</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -346,20 +409,9 @@
</dict>
<dict>
<key>name</key>
<string>()</string>
<string>(),{}</string>
<key>scope</key>
<string>meta.brace.round, punctuation.definition.parameters.begin, punctuation.definition.parameters.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>{}</string>
<key>scope</key>
<string>meta.brace.curly</string>
<string>meta.brace.round, meta.brace.curly, punctuation.section, punctuation.section.block, punctuation.definition.parameters, punctuation.section.group</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -407,7 +459,7 @@
<key>name</key>
<string>CSS .class</string>
<key>scope</key>
<string>entity.other.attribute-name.class.css, entity.other.attribute-name.class.sass</string>
<string>entity.other.attribute-name.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -418,7 +470,7 @@
<key>name</key>
<string>CSS: #id</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.id, source.less entity.other.attribute-name.id, source.scss entity.other.attribute-name.id, source.sass entity.other.attribute-name.id</string>
<string>entity.other.attribute-name.id</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -429,7 +481,7 @@
<key>name</key>
<string>CSS :pseudo</string>
<key>scope</key>
<string>entity.other.attribute-name.pseudo-element.css, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.tag.pseudo-class</string>
<string>entity.other.attribute-name.pseudo-element, entity.other.attribute-name.tag.pseudo-element, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.tag.pseudo-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -536,7 +588,7 @@
<key>name</key>
<string>C: include</string>
<key>scope</key>
<string>meta.preprocessor.c.include string, meta.preprocessor.c.include punctuation.definition.string.begin, meta.preprocessor.c.include punctuation.definition.string.end</string>
<string>meta.preprocessor.c.include string.quoted.other.lt-gt.include.c, meta.preprocessor.c.include punctuation.definition.string.begin.c, meta.preprocessor.c.include punctuation.definition.string.end.c</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -757,7 +809,7 @@
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586e75</string>
<string>#93a1a1</string>
</dict>
</dict>
<dict>
@ -768,7 +820,7 @@
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586e75</string>
<string>#93a1a1</string>
</dict>
</dict>
<dict>
@ -783,16 +835,16 @@
</dict>
</dict>
<!-- Java -->
<!-- C++ -->
<dict>
<key>name</key>
<string>Java: storage import</string>
<string>Storage</string>
<key>scope</key>
<string>storage.modifier.import.java</string>
<string>storage.modifier.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#93a1a1</string>
<string>#859900</string>
</dict>
</dict>
@ -851,7 +903,7 @@
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2aa198</string>
<string>#b58900</string>
</dict>
</dict>
<dict>
@ -866,6 +918,29 @@
</dict>
</dict>
<dict>
<key>name</key>
<string>Warning</string>
<key>scope</key>
<string>markup.warning</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Error</string>
<key>scope</key>
<string>markup.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<!-- Markdown -->
<dict>
<key>Name</key>
@ -876,6 +951,8 @@
<dict>
<key>foreground</key>
<string>#b58900</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
@ -945,126 +1022,6 @@
</dict>
</dict>
<!-- Sublime Linter -->
<dict>
<key>name</key>
<string>SublimeLinter Annotations</string>
<key>scope</key>
<string>sublimelinter.notes</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#586e75</string>
<key>foreground</key>
<string>#586e75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Outline</string>
<key>scope</key>
<string>sublimelinter.outline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#586e75</string>
<key>foreground</key>
<string>#586e75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Underline</string>
<key>scope</key>
<string>sublimelinter.underline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Outline</string>
<key>scope</key>
<string>sublimelinter.outline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#839496</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Underline</string>
<key>scope</key>
<string>sublimelinter.underline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Outline</string>
<key>scope</key>
<string>sublimelinter.outline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#657b83</string>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Underline</string>
<key>scope</key>
<string>sublimelinter.underline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#cb4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning</string>
<key>scope</key>
<string>sublimelinter.mark.warning</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error</string>
<key>scope</key>
<string>sublimelinter.mark.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Gutter Mark</string>
<key>scope</key>
<string>sublimelinter.gutter-mark</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<!-- Sublime Bracket Highlighter -->
<dict>
<key>name</key>
@ -1102,41 +1059,6 @@
</dict>
</dict>
<!-- Git Gutter -->
<dict>
<key>name</key>
<string>GitGutter deleted</string>
<key>scope</key>
<string>markup.deleted.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GitGutter inserted</string>
<key>scope</key>
<string>markup.inserted.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GitGutter changed</string>
<key>scope</key>
<string>markup.changed.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<!-- JavaScript and Babel/ES2015 -->
<dict>
<key>name</key>
@ -1149,39 +1071,6 @@
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript Functions</string>
<key>scope</key>
<string>variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript punctation inside class</string>
<key>scope</key>
<string>meta.class punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript Classes</string>
<key>scope</key>
<string>variable.language.this.js, variable.language.super.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d33682</string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>5815b34d-fb7d-4593-bf0c-4f41f8b1f0a9</string>

View file

@ -20,18 +20,15 @@
<key>gutter</key>
<string>#eee8d5</string>
<key>invisibles</key>
<string>#eee8d5</string>
<string>#93a1a1</string>
<key>lineHighlight</key>
<string>#eee8d5</string>
<string>#3F3D3812</string>
<key>misspelling</key>
<string>#dc322f</string>
<key>selection</key>
<string>#eee8d5</string>
<key>selectionBorder</key>
<string>#c0c4bb</string>
<!-- Default looks best really -->
<!-- <key>findHighlight</key> -->
<!-- <string>#dddd45</string> -->
<!-- <key>findHighlightForeground</key> -->
<!-- <string>#fdf6e3</string> -->
</dict>
</dict>
@ -102,6 +99,28 @@
<string>#268bd2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable Function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable Language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d33682</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
@ -146,11 +165,44 @@
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586e75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class</string>
<key>scope</key>
<string>keyword.control.class, meta.class, entity.name.class, entity.name.type.class</string>
<string>keyword.control.class, entity.name, entity.name.class, entity.name.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited Class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268bd2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -161,7 +213,7 @@
<key>name</key>
<string>Library class</string>
<key>scope</key>
<string>support.type, support.class</string>
<string>support, support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -194,13 +246,24 @@
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language, meta.preprocessor</string>
<string>constant, constant.language, meta.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Section heading</string>
<key>scope</key>
<string>entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cb4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Support.construct</string>
@ -324,9 +387,9 @@
</dict>
<dict>
<key>name</key>
<string>Quoted Single</string>
<string>Quotes</string>
<key>scope</key>
<string>punctuation.definition.string.begin, punctuation.definition.string.end</string>
<string>punctuation.definition.string</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -337,7 +400,7 @@
<key>name</key>
<string>[]</string>
<key>scope</key>
<string>meta.brace.square</string>
<string>meta.brace.square, punctuation.section.brackets</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -346,20 +409,9 @@
</dict>
<dict>
<key>name</key>
<string>()</string>
<string>(),{}</string>
<key>scope</key>
<string>meta.brace.round, punctuation.definition.parameters.begin, punctuation.definition.parameters.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>{}</string>
<key>scope</key>
<string>meta.brace.curly</string>
<string>meta.brace.round, meta.brace.curly, punctuation.section, punctuation.section.block, punctuation.definition.parameters, punctuation.section.group</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -407,7 +459,7 @@
<key>name</key>
<string>CSS .class</string>
<key>scope</key>
<string>entity.other.attribute-name.class.css, entity.other.attribute-name.class.sass</string>
<string>entity.other.attribute-name.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -418,7 +470,7 @@
<key>name</key>
<string>CSS: #id</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.id, source.less entity.other.attribute-name.id, source.scss entity.other.attribute-name.id, source.sass entity.other.attribute-name.id</string>
<string>entity.other.attribute-name.id</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -429,7 +481,7 @@
<key>name</key>
<string>CSS :pseudo</string>
<key>scope</key>
<string>entity.other.attribute-name.pseudo-element.css, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.tag.pseudo-class</string>
<string>entity.other.attribute-name.pseudo-element, entity.other.attribute-name.tag.pseudo-element, entity.other.attribute-name.pseudo-class, entity.other.attribute-name.tag.pseudo-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
@ -783,16 +835,16 @@
</dict>
</dict>
<!-- Java -->
<!-- C++ -->
<dict>
<key>name</key>
<string>Java: storage import</string>
<string>Storage</string>
<key>scope</key>
<string>storage.modifier.import.java</string>
<string>storage.modifier.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586e75</string>
<string>#859900</string>
</dict>
</dict>
@ -851,7 +903,7 @@
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2aa198</string>
<string>#b58900</string>
</dict>
</dict>
<dict>
@ -866,6 +918,29 @@
</dict>
</dict>
<dict>
<key>name</key>
<string>Warning</string>
<key>scope</key>
<string>markup.warning</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Error</string>
<key>scope</key>
<string>markup.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<!-- Markdown -->
<dict>
<key>Name</key>
@ -876,6 +951,8 @@
<dict>
<key>foreground</key>
<string>#b58900</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
@ -945,126 +1022,6 @@
</dict>
</dict>
<!-- Sublime Linter -->
<dict>
<key>name</key>
<string>SublimeLinter Annotations</string>
<key>scope</key>
<string>sublimelinter.notes</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#eee8d5</string>
<key>foreground</key>
<string>#eee8d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Outline</string>
<key>scope</key>
<string>sublimelinter.outline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#93a1a1</string>
<key>foreground</key>
<string>#93a1a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Underline</string>
<key>scope</key>
<string>sublimelinter.underline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Outline</string>
<key>scope</key>
<string>sublimelinter.outline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#839496</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Underline</string>
<key>scope</key>
<string>sublimelinter.underline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Outline</string>
<key>scope</key>
<string>sublimelinter.outline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#657b83</string>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Underline</string>
<key>scope</key>
<string>sublimelinter.underline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#cb4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning</string>
<key>scope</key>
<string>sublimelinter.mark.warning</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error</string>
<key>scope</key>
<string>sublimelinter.mark.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Gutter Mark</string>
<key>scope</key>
<string>sublimelinter.gutter-mark</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<!-- Sublime Bracket Highlighter -->
<dict>
<key>name</key>
@ -1102,41 +1059,6 @@
</dict>
</dict>
<!-- Git Gutter -->
<dict>
<key>name</key>
<string>GitGutter deleted</string>
<key>scope</key>
<string>markup.deleted.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GitGutter inserted</string>
<key>scope</key>
<string>markup.inserted.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GitGutter changed</string>
<key>scope</key>
<string>markup.changed.git_gutter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<!-- JavaScript and Babel/ES2015 -->
<dict>
<key>name</key>
@ -1149,39 +1071,6 @@
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript Functions</string>
<key>scope</key>
<string>variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript punctation inside class</string>
<key>scope</key>
<string>meta.class punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JavaScript Classes</string>
<key>scope</key>
<string>variable.language.this.js, variable.language.super.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d33682</string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>ca238b9c-28f7-42d4-9670-bd0829ef864e</string>

View file

@ -0,0 +1,878 @@
<?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>author</key>
<string>Roberto Mauro (erremauro@icloud.com)</string>
<key>name</key>
<string>TwoDark</string>
<key>semanticClass</key>
<string>theme.dark.two_dark</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>gutterSettings</key>
<dict>
<key>background</key>
<string>#393939</string>
<key>divider</key>
<string>#393939</string>
<key>foreground</key>
<string>#747369</string>
<key>selectionBackground</key>
<string>#515151</string>
<key>selectionForeground</key>
<string>#a09f93</string>
</dict>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#282C34</string>
<key>caret</key>
<string>#528BFF</string>
<key>foreground</key>
<string>#ABB2BF</string>
<key>invisibles</key>
<string>#747369</string>
<key>lineHighlight</key>
<string>#2B313A</string>
<key>selection</key>
<string>#3D4350</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Text</string>
<key>scope</key>
<string>variable.parameter.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comments</string>
<key>scope</key>
<string>comment, punctuation.definition.comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#5C6370</string>
<key>fontStyle</key>
<string> italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Delimiters</string>
<key>scope</key>
<string>none</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operators</string>
<key>scope</key>
<string>keyword.operator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keywords</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variables</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Functions</string>
<key>scope</key>
<string>entity.name.function, meta.require, support.function.any-method</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#61AFEF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes</string>
<key>scope</key>
<string>support.class, entity.name.class, entity.name.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E5C07B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes</string>
<key>scope</key>
<string>meta.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Methods</string>
<key>scope</key>
<string>keyword.other.special-method</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#61AFEF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Support</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#56B6C2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Strings, Inherited Class</string>
<key>scope</key>
<string>string, constant.other.symbol, entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98C379</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Integers</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Floats</string>
<key>scope</key>
<string>none</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Boolean</string>
<key>scope</key>
<string>none</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constants</string>
<key>scope</key>
<string>constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tags</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Attributes</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Attribute IDs</string>
<key>scope</key>
<string>entity.other.attribute-name.id, punctuation.definition.entity</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Selector</string>
<key>scope</key>
<string>meta.selector</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Values</string>
<key>scope</key>
<string>none</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Headings</string>
<key>scope</key>
<string>markup.heading punctuation.definition.heading, entity.name.section</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string />
<key>foreground</key>
<string>#61AFEF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Units</string>
<key>scope</key>
<string>keyword.other.unit</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bold</string>
<key>scope</key>
<string>markup.bold, punctuation.definition.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E5C07B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Italic</string>
<key>scope</key>
<string>markup.italic, punctuation.definition.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Code</string>
<key>scope</key>
<string>markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98C379</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Link Text</string>
<key>scope</key>
<string>string.other.link, punctuation.definition.string.end.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Link Url</string>
<key>scope</key>
<string>meta.link</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lists</string>
<key>scope</key>
<string>markup.list</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Quotes</string>
<key>scope</key>
<string>markup.quote</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Separator</string>
<key>scope</key>
<string>meta.separator</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#515151</string>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98C379</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Colors</string>
<key>scope</key>
<string>constant.other.color</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#56B6C2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regular Expressions</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#56B6C2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape Characters</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#56B6C2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Embedded</string>
<key>scope</key>
<string>punctuation.section.embedded, variable.interpolation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#BE5046</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Illegal</string>
<key>scope</key>
<string>invalid.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#f2777a</string>
<key>foreground</key>
<string>#272B33</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Broken</string>
<key>scope</key>
<string>invalid.broken</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#f99157</string>
<key>foreground</key>
<string>#2d2d2d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#d27b53</string>
<key>foreground</key>
<string>#272B33</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Unimplemented</string>
<key>scope</key>
<string>invalid.unimplemented</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#747369</string>
<key>foreground</key>
<string>#272B33</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Json key</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Json value</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98C379</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>json sub key</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E06C75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Json sub value</string>
<key>scope</key>
<string>source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#98C379</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>laravel blade tag</string>
<key>scope</key>
<string>text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>laravel blade @</string>
<key>scope</key>
<string>text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function parameter</string>
<key>scope</key>
<string>source.python meta.function.python meta.function.parameters.python variable.parameter.function.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python meta function</string>
<key>scope</key>
<string>source.python meta.function-call.python support.type.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#56B6C2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python logical keyword</string>
<key>scope</key>
<string>source.python keyword.operator.logical.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python class ( begin</string>
<key>scope</key>
<string>source.python meta.class.python punctuation.definition.inheritance.begin.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E5C07B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python class ) end</string>
<key>scope</key>
<string>source.python meta.class.python punctuation.definition.inheritance.end.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E5C07B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function call parameter name</string>
<key>scope</key>
<string>source.python meta.function-call.python meta.function-call.arguments.python variable.parameter.function.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>php fcuntion constants</string>
<key>scope</key>
<string>text.html.basic source.php.embedded.block.html support.constant.std.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>php namespace name</string>
<key>scope</key>
<string>text.html.basic source.php.embedded.block.html meta.namespace.php entity.name.type.namespace.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#E5C07B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>javascript meta constant</string>
<key>scope</key>
<string>source.js meta.function.js support.constant.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>php namespace in top</string>
<key>scope</key>
<string>text.html.basic` source.php.embedded.block.html constant.other.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>php namespace name in top</string>
<key>scope</key>
<string>text.html.basic source.php.embedded.block.html support.other.namespace.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D19A66</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>latex label names</string>
<key>scope</key>
<string>text.tex.latex meta.function.environment.math.latex string.other.math.block.environment.latex meta.definition.label.latex variable.parameter.definition.label.latex</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>latex italic emph</string>
<key>scope</key>
<string>text.tex.latex meta.function.emph.latex markup.italic.emph.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string> italic</string>
<key>foreground</key>
<string>#C678DD</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>subl_new js vars</string>
<key>scope</key>
<string>source.js variable.other.readwrite.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl js $</string>
<key>scope</key>
<string>source.js meta.function-call.with-arguments.js variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl js call method</string>
<key>scope</key>
<string>source.js meta.group.braces.round meta.group.braces.curly meta.function-call.method.without-arguments.js variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl e js</string>
<key>scope</key>
<string>source.js meta.group.braces.round meta.group.braces.curly variable.other.object.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl js key</string>
<key>scope</key>
<string>source.js meta.group.braces.round meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl obejct key</string>
<key>scope</key>
<string>source.js meta.group.braces.round meta.group.braces.curly constant.other.object.key.js punctuation.separator.key-value.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl js method with args</string>
<key>scope</key>
<string>source.js meta.group.braces.round meta.group.braces.curly meta.function-call.method.with-arguments.js variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl js variable function</string>
<key>scope</key>
<string>source.js meta.function-call.method.with-arguments.js variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>new_subl variabel function method</string>
<key>scope</key>
<string>source.js meta.function-call.method.without-arguments.js variable.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ABB2BF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error</string>
<key>scope</key>
<string>sublimelinter.mark.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D02000</string>
</dict>
</dict><dict>
<key>name</key>
<string>SublimeLinter Gutter Mark</string>
<key>scope</key>
<string>sublimelinter.gutter-mark</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFFFFF</string>
</dict>
</dict><dict>
<key>name</key>
<string>SublimeLinter Warning</string>
<key>scope</key>
<string>sublimelinter.mark.warning</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DDB700</string>
</dict>
</dict></array>
<key>uuid</key>
<string>32bd64fa-d60a-4858-a5fc-5164cc49a2b8</string>
<key>comment</key>
<string>Work in progress</string>
</dict>
</plist>

View file

@ -1,521 +0,0 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Elixir
comment: Textmate bundle for Elixir Programming Language.
file_extensions:
- ex
- exs
first_line_match: ^#!/.*\belixir
scope: source.elixir
contexts:
main:
- match: \b(fn)\b(?!.*->)
captures:
1: keyword.control.elixir
push:
- match: $
pop: true
- include: core_syntax
- match: \b(fn)\b(?=.*->)
captures:
1: keyword.control.elixir
push:
- match: (?>(->)|(when)|(\)))
captures:
1: keyword.operator.other.elixir
2: keyword.control.elixir
3: punctuation.section.function.elixir
pop: true
- include: core_syntax
- include: core_syntax
- match: '^(?=.*->)((?![^"'']*("|'')[^"'']*->)|(?=.*->[^"'']*("|'')[^"'']*->))((?!.*\([^\)]*->)|(?=[^\(\)]*->)|(?=\s*\(.*\).*->))((?!.*\b(fn)\b)|(?=.*->.*\bfn\b))'
captures:
1: keyword.control.elixir
push:
- match: (?>(->)|(when)|(\)))
captures:
1: keyword.operator.other.elixir
2: keyword.control.elixir
3: punctuation.section.function.elixir
pop: true
- include: core_syntax
core_syntax:
- match: ^\s*(defmodule)\b
captures:
1: keyword.control.module.elixir
push:
- meta_scope: meta.module.elixir
- match: \b(do)\b
captures:
1: keyword.control.module.elixir
pop: true
- match: '\b[A-Z]\w*\b'
scope: entity.name.class.elixir
- match: ^\s*(defprotocol)\b
captures:
1: keyword.control.protocol.elixir
push:
- meta_scope: meta.protocol_declaration.elixir
- match: \b(do)\b
captures:
1: keyword.control.protocol.elixir
pop: true
- match: '\b[A-Z]\w*\b'
scope: entity.name.protocol.elixir
- match: ^\s*(defimpl)\b
captures:
1: keyword.control.protocol.elixir
push:
- meta_scope: meta.protocol_implementation.elixir
- match: \b(do)\b
captures:
1: keyword.control.protocol.elixir
pop: true
- match: '\b[A-Z]\w*\b'
scope: entity.name.protocol.elixir
- match: '^\s*(def|defmacro)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)'
captures:
1: keyword.control.module.elixir
2: entity.name.function.public.elixir
4: punctuation.section.function.elixir
push:
- meta_scope: meta.function.public.elixir
- match: (\bdo:)|(\bdo\b)|(?=\s+(def|defmacro)\b)
captures:
1: constant.other.keywords.elixir
2: keyword.control.module.elixir
pop: true
- include: main
- match: \s(\\\\)
captures:
1: keyword.operator.other.elixir
push:
- match: ',|\)|$'
pop: true
- include: main
- match: \b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\b
scope: keyword.control.elixir
- match: '^\s*(defp|defmacrop)\s+((?>[a-zA-Z_]\w*(?>\.|::))?(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?))((\()|\s*)'
captures:
1: keyword.control.module.elixir
2: entity.name.function.private.elixir
4: punctuation.section.function.elixir
push:
- meta_scope: meta.function.private.elixir
- match: (\bdo:)|(\bdo\b)|(?=\s+(defp|defmacrop)\b)
captures:
1: constant.other.keywords.elixir
2: keyword.control.module.elixir
pop: true
- include: main
- match: \s(\\\\)
captures:
1: keyword.operator.other.elixir
push:
- match: ',|\)|$'
pop: true
- include: main
- match: \b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\b
scope: keyword.control.elixir
- match: '@(module|type)?doc (~[a-z])?"""'
comment: "@doc with heredocs is treated as documentation"
push:
- meta_scope: comment.documentation.heredoc
- match: \s*"""
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '@(module|type)?doc ~[A-Z]"""'
comment: "@doc with heredocs is treated as documentation"
push:
- meta_scope: comment.documentation.heredoc
- match: \s*"""
pop: true
- match: "@(module|type)?doc (~[a-z])?'''"
comment: "@doc with heredocs is treated as documentation"
push:
- meta_scope: comment.documentation.heredoc
- match: \s*'''
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: "@(module|type)?doc ~[A-Z]'''"
comment: "@doc with heredocs is treated as documentation"
push:
- meta_scope: comment.documentation.heredoc
- match: \s*'''
pop: true
- match: "@(module|type)?doc false"
comment: "@doc false is treated as documentation"
scope: comment.documentation.false
- match: '@(module|type)?doc "'
comment: "@doc with string is treated as documentation"
push:
- meta_scope: comment.documentation.string
- match: '"'
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '(?<!\.)\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(?![?!:])'
scope: keyword.control.elixir
- match: (?<!\.)\b(and|not|or|when|xor|in)\b
comment: as above, just doesn't need a 'end' and does a logic operation
scope: keyword.operator.elixir
- match: '\b[A-Z]\w*\b'
scope: entity.name.class.elixir
- match: '\b(nil|true|false)\b(?![?!])'
scope: constant.language.elixir
- match: '\b(__(CALLER|ENV|MODULE|DIR)__)\b(?![?!])'
scope: variable.language.elixir
- match: '(@)[a-zA-Z_]\w*'
scope: variable.other.readwrite.module.elixir
captures:
1: punctuation.definition.variable.elixir
- match: (&)\d+
scope: variable.other.anonymous.elixir
captures:
1: punctuation.definition.variable.elixir
- match: '\^[a-z_]\w*'
scope: variable.other.capture.elixir
captures:
1: punctuation.definition.variable.elixir
- match: '\b(0x[0-9A-Fa-f](?>_?[0-9A-Fa-f])*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0b[01]+|0o[0-7]+)\b'
scope: constant.numeric.elixir
- match: ":'"
captures:
0: punctuation.definition.constant.elixir
push:
- meta_scope: constant.other.symbol.single-quoted.elixir
- match: "'"
captures:
0: punctuation.definition.constant.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: ':"'
captures:
0: punctuation.definition.constant.elixir
push:
- meta_scope: constant.other.symbol.double-quoted.elixir
- match: '"'
captures:
0: punctuation.definition.constant.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: (?>''')
comment: Single-quoted heredocs
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.single.heredoc.elixir
- match: ^\s*'''
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: "'"
comment: single quoted string (allows for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.single.elixir
- match: "'"
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: (?>""")
comment: Double-quoted heredocs
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.double.heredoc.elixir
- match: ^\s*"""
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '"'
comment: double quoted string (allows for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.double.elixir
- match: '"'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z](?>""")'
comment: Double-quoted heredocs sigils
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.double.heredoc.elixir
- match: ^\s*"""
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z]\{'
comment: sigil (allow for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.interpolated.elixir
- match: '\}[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z]\['
comment: sigil (allow for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.interpolated.elixir
- match: '\][a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z]\<'
comment: sigil (allow for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.interpolated.elixir
- match: '\>[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z]\('
comment: sigil (allow for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.interpolated.elixir
- match: '\)[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- match: '~[a-z]([^\w])'
comment: sigil (allow for interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.interpolated.elixir
- match: '\1[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- include: interpolated_elixir
- include: escaped_char
- include: escaped_char
- match: '~[A-Z](?>""")'
comment: Double-quoted heredocs sigils
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: ^\s*"""
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '~[A-Z]\{'
comment: sigil (without interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: '\}[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '~[A-Z]\['
comment: sigil (without interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: '\][a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '~[A-Z]\<'
comment: sigil (without interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: '\>[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '~[A-Z]\('
comment: sigil (without interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: '\)[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '~[A-Z]([^\w])'
comment: sigil (without interpolation)
captures:
0: punctuation.definition.string.begin.elixir
push:
- meta_scope: string.quoted.other.literal.upper.elixir
- match: '\1[a-z]*'
captures:
0: punctuation.definition.string.end.elixir
pop: true
- match: '(?<!:)(:)(?>[a-zA-Z_][\w@]*(?>[?!]|=(?![>=]))?|\<\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\-|\|>|=>|=~|=|/|\\\\|\*\*?|\.\.?\.?|>=?|<=?|&&?&?|\+\+?|\-\-?|\|\|?\|?|\!|@|\%?\{\}|%|\[\]|\^(\^\^)?)'
comment: symbols
scope: constant.other.symbol.elixir
captures:
1: punctuation.definition.constant.elixir
- match: '(?>[a-zA-Z_][\w@]*(?>[?!])?)(:)(?!:)'
comment: symbols
scope: constant.other.keywords.elixir
captures:
1: punctuation.definition.constant.elixir
- match: ^\s*(##).*$\n?
scope: comment.line.section.elixir
captures:
1: punctuation.definition.comment.elixir
- match: '(?:^[ \t]+)?(#).*$\n?'
scope: comment.line.number-sign.elixir
captures:
1: punctuation.definition.comment.elixir
- match: '(?<!\w)\?(\\(x[0-9A-Fa-f]{1,2}(?![0-9A-Fa-f])\b|[^xMC])|[^\s\\])'
comment: |
matches questionmark-letters.
examples (1st alternation = hex):
?\x1 ?\x61
examples (2rd alternation = escaped):
?\n ?\b
examples (3rd alternation = normal):
?a ?A ?0
?* ?" ?(
?. ?#
the negative lookbehind prevents against matching
p(42.tainted?)
scope: constant.numeric.elixir
- match: \+\+|\-\-|<\|>
scope: keyword.operator.concatenation.elixir
- match: \|\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\|>
scope: keyword.operator.sigils_1.elixir
- match: "&&&|&&"
scope: keyword.operator.sigils_2.elixir
- match: <\-|\\\\
scope: keyword.operator.sigils_3.elixir
- match: "===?|!==?|<=?|>=?"
scope: keyword.operator.comparison.elixir
- match: (\|\|\||&&&|^^^|<<<|>>>|~~~)
scope: keyword.operator.bitwise.elixir
- match: '(?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\bxor\b'
scope: keyword.operator.logical.elixir
- match: (\*|\+|\-|/)
scope: keyword.operator.arithmetic.elixir
- match: \||\+\+|\-\-|\*\*|\\\\|\<\-|\<\>|\<\<|\>\>|\:\:|\.\.|\|>|~|=>|&
scope: keyword.operator.other.elixir
- match: "="
scope: keyword.operator.assignment.elixir
- match: ":"
scope: punctuation.separator.other.elixir
- match: \;
scope: punctuation.separator.statement.elixir
- match: ","
scope: punctuation.separator.object.elixir
- match: \.
scope: punctuation.separator.method.elixir
- match: '\{|\}'
scope: punctuation.section.scope.elixir
- match: '\[|\]'
scope: punctuation.section.array.elixir
- match: \(|\)
scope: punctuation.section.function.elixir
escaped_char:
- match: '\\(x[\da-fA-F]{1,2}|.)'
scope: constant.character.escaped.elixir
interpolated_elixir:
- match: '#\{(\})'
scope: source.elixir.embedded.source
captures:
0: punctuation.section.embedded.elixir
1: source.elixir.embedded.source.empty
- match: '#\{'
captures:
0: punctuation.section.embedded.elixir
push:
- meta_scope: source.elixir.embedded.source
- match: '\}'
captures:
0: punctuation.section.embedded.elixir
pop: true
- include: nest_curly_and_self
- include: main
nest_curly_and_self:
- match: '\{'
captures:
0: punctuation.section.scope.elixir
push:
- match: '\}'
captures:
0: punctuation.section.scope.elixir
pop: true
- include: nest_curly_and_self
- include: main
regex_sub:
- include: interpolated_elixir
- include: escaped_char
- match: '(\{)\d+(,\d+)?(\})'
scope: string.regexp.arbitrary-repitition.elixir
captures:
1: punctuation.definition.arbitrary-repitition.elixir
3: punctuation.definition.arbitrary-repitition.elixir
- match: '\[(?:\^?\])?'
captures:
0: punctuation.definition.character-class.elixir
push:
- meta_scope: string.regexp.character-class.elixir
- match: '\]'
captures:
0: punctuation.definition.character-class.elixir
pop: true
- include: escaped_char
- match: \(
captures:
0: punctuation.definition.group.elixir
push:
- meta_scope: string.regexp.group.elixir
- match: \)
captures:
0: punctuation.definition.group.elixir
pop: true
- include: regex_sub
- match: '(?<=^|\s)(#)\s[[a-zA-Z0-9,. \t?!-][^\x{00}-\x{7F}]]*$'
comment: 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.
scope: comment.line.number-sign.elixir
captures:
1: punctuation.definition.comment.elixir

View file

@ -1,499 +0,0 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: fsharp
file_extensions:
- fs
scope: source.fsharp
contexts:
main:
- include: compiler_directives
- include: comments
- include: constants
- include: strings
- include: chars
- include: double_tick
- include: definition
- include: abstract_definition
- include: attributes
- include: modules
- include: anonymous_functions
- include: du_declaration
- include: record_declaration
- include: keywords
- include: records
- include: cexprs
- include: text
abstract_definition:
- match: '\b(abstract)\s+(member)?(\s+\[\<.*\>\])?\s*([_[:alpha:]0-9,\._`\s]+)(:)'
captures:
1: keyword.fsharp
2: keyword.fsharp
3: support.function.attribute.fsharp
5: keyword.fsharp
push:
- meta_scope: abstract.definition.fsharp
- match: \s*(with)\b|=|$
captures:
1: keyword.fsharp
pop: true
- include: comments
- include: common_declaration
- match: '\?{0,1}([[:alpha:]0-9''`^._ ]+)\s*(:)(\s*([?[:alpha:]0-9''`^._ ]+)){0,1}'
captures:
1: variable.parameter.fsharp
2: keyword.symbol.fsharp
3: entity.name.type.fsharp
- match: '(?!with|get|set\b)\b([\w0-9''`^._]+)'
captures:
1: entity.name.type.fsharp
- include: keywords
anonymous_functions:
- match: \b(fun)\b
captures:
1: keyword.fsharp
push:
- meta_scope: function.anonymous
- match: (->)
captures:
1: keyword.fsharp
pop: true
- include: comments
- include: member_declaration
- match: '(:)(\s*([?[:alpha:]0-9''`<>^._ ]+))*'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
- include: variables
attributes:
- match: '\[\<'
push:
- meta_scope: support.function.attribute.fsharp
- match: '\>\]|\]'
pop: true
- include: main
cexprs:
- match: '\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)\s*\{'
scope: cexpr.fsharp
captures:
0: keyword.fsharp
chars:
- match: ('\\?.')
scope: char.fsharp
captures:
1: string.quoted.single.fsharp
comments:
- match: ^\s*(\(\*\*(?!\)))(?!\*\))$
captures:
1: comment.block.fsharp
push:
- meta_scope: comment.block.markdown.fsharp
- match: \*\)
captures:
1: comment.block.fsharp
pop: true
- include: scope:text.html.markdown
- match: ^(\s*\*\)$)
scope: comment.block.markdown.fsharp.end
captures:
1: comment.block.fsharp
- match: (\(\*(?!\)))
captures:
1: comment.block.fsharp
push:
- meta_scope: comment.block.fsharp
- match: (\*\))
captures:
1: comment.block.fsharp
pop: true
- match: ///
push:
- meta_scope: comment.line.markdown.fsharp
- match: (\r)?\n
pop: true
- include: scope:text.html.markdown
- match: //.*$
scope: comment.line.double-slash.fsharp
common_declaration:
- match: '\s*(->)\s*([[:alpha:]0-9''`^._ ]+)(<)'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
3: keyword.symbol.fsharp
push:
- match: (>)
captures:
1: keyword.symbol.fsharp
pop: true
- match: "([[:alpha:]0-9'`^._ ]+)"
captures:
1: entity.name.type.fsharp
- include: keywords
- match: '\s*(->)\s*(?!with|get|set\b)\b([\w0-9''`^._]+)'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
- match: '\?{0,1}([[:alpha:]0-9''`^._ ]+)\s*(:)(\s*([?[:alpha:]0-9''`^._ ]+)(<))'
captures:
1: variable.parameter.fsharp
2: keyword.symbol.fsharp
3: keyword.symbol.fsharp
4: entity.name.type.fsharp
push:
- match: (>)
captures:
1: keyword.symbol.fsharp
pop: true
- match: "([[:alpha:]0-9'`^._ ]+)"
captures:
1: entity.name.type.fsharp
- include: keywords
compiler_directives:
- match: \s?(#if|#elif|#else|#elseif|#endif|#light|#nowarn)
scope: compiler_directive.fsharp
captures:
constants:
- match: \(\)
scope: constant.language.unit.fsharp
- match: '\b-?[0-9][0-9_]*((\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))'
scope: constant.numeric.floating-point.fsharp
- match: '\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))'
scope: constant.numeric.integer.nativeint.fsharp
- match: \b(true|false|null|unit)\b
scope: constant.others.fsharp
definition:
- match: '\b(val mutable|val|let mutable|let inline|let|member val|member|static member|override|let!)(\s+rec|mutable)?(\s+\[\<.*\>\])?\s*(private|internal|public)?\s+(\[[^-=]*\]|[_[:alpha:]]([_[:alpha:]0-9,\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\._`\s]+|(?<=,)\s)*)?'
captures:
1: keyword.fsharp
2: keyword.fsharp
3: support.function.attribute.fsharp
4: keyword.fsharp
5: variable.fsharp
push:
- meta_scope: binding.fsharp
- match: \s*(with\b|=|\n+=|(?<=\=))
captures:
1: keyword.fsharp
pop: true
- include: comments
- include: attributes
- match: (:)\s*(\()
captures:
1: keyword.symbol.fsharp
2: keyword.symbol.fsharp
push:
- match: '(\)\s*(([?[:alpha:]0-9''`^._ ]+))+)'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
pop: true
- include: tuple_signature
- match: '(:)\s*([?[:alpha:]0-9''`^._ ]+)*'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
- match: '(->)\s*(\()?\s*([?[:alpha:]0-9''`^._ ]+)*'
captures:
1: keyword.symbol.fsharp
2: keyword.symbol.fsharp
3: entity.name.type.fsharp
- match: (\*)\s*(\()
captures:
1: keyword.symbol.fsharp
2: keyword.symbol.fsharp
push:
- match: '(\)\s*(([?[:alpha:]0-9''`^._ ]+))+)'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
pop: true
- include: tuple_signature
- match: '(\*)(\s*([?[:alpha:]0-9''`^._ ]+))*'
captures:
1: keyword.symbol.fsharp
2: entity.name.type.fsharp
- match: '(<(?![[:space:]]*\)))'
captures:
1: keyword.symbol.fsharp
push:
- match: (>)
captures:
1: keyword.symbol.fsharp
pop: true
- include: generic_declaration
- match: "({)"
captures:
1: keyword.symbol.fsharp
push:
- match: "(})"
captures:
1: keyword.symbol.fsharp
pop: true
- include: record_signature
- include: variables
- include: keywords
double_tick:
- match: (``)(.*)(``)
scope: variable.other.binding.fsharp
captures:
1: string.quoted.single.fsharp
2: variable.other.binding.fsharp
3: string.quoted.single.fsharp
du_declaration:
- match: \b(of)\b
captures:
1: keyword.fsharp
push:
- meta_scope: du_declaration.fsharp
- match: $|(\|)
captures:
1: keyword.symbol.fsharp
pop: true
- include: comments
- match: '([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)\s*(:)\s*([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)'
captures:
1: variable.parameter.fsharp
2: keyword.symbol.fsharp
3: entity.name.type.fsharp
- match: "([[:alpha:]0-9'`^._]+)|``([[:alpha:]0-9'^._ ]+)``"
captures:
1: entity.name.type.fsharp
- include: keywords
generic_declaration:
- match: "([^<>,*()-])"
captures:
1: entity.name.type.fsharp
- match: (<)
captures:
1: keyword.symbol.fsharp
push:
- match: (>)
captures:
1: keyword.symbol.fsharp
pop: true
- match: "([^<>,*()-])"
captures:
1: entity.name.type.fsharp
- include: tuple_signature
- include: generic_declaration
- include: keywords
keywords:
- match: \b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\!|return\!|return|interface|with|abstract|property|union|enum|member|try|finally|and|when|use|use\!|struct|while|mutable)(?!')\b
scope: keyword.fsharp
- match: '(&&&|\|\|\||\^\^\^|~~~|<<<|>>>|\|>|\->|\<\-|:>|:\?>|:|\[|\]|\;|<>|=|@|\|\||&&|{|}|\||_|\.\.|\,|\+|\-|\*|\/|\^|\!|\>|\>\=|\>\>|\<|\<\=|\(|\)|\<\<)'
scope: keyword.symbol.fsharp
member_declaration:
- match: (\()
captures:
1: keyword.symbol.fsharp
push:
- match: (\))
captures:
1: keyword.symbol.fsharp
pop: true
- include: comments
- include: common_declaration
- match: '\?{0,1}([[:alpha:]0-9''`^._ ]+)\s*(:{0,1})(\s*([?[:alpha:]0-9''`<>^._ ]+)){0,1}'
captures:
1: variable.parameter.fsharp
2: keyword.symbol.fsharp
3: entity.name.type.fsharp
- include: keywords
modules:
- match: '\b(namespace|module)\s*(public|internal|private)?\s+([[:alpha:]][[:alpha:]0-9''_. ]*)'
captures:
1: keyword.fsharp
2: keyword.fsharp
3: entity.name.section.fsharp
push:
- meta_scope: entity.name.section.fsharp
- match: (\s?=|\s|$)
captures:
1: keyword.symbol.fsharp
pop: true
- match: '(\.)([A-Z][[:alpha:]0-9''_]*)'
scope: entity.name.section.fsharp
captures:
1: punctuation.separator.namespace-reference.fsharp
2: entity.name.section.fsharp
- match: '\b(open)\s+([[:alpha:]][[:alpha:]0-9''_]*)(?=(\.[A-Z][[:alpha:]0-9_]*)*)'
captures:
1: keyword.fsharp
2: entity.name.section.fsharp
push:
- meta_scope: namespace.open.fsharp
- match: (\s|$)
pop: true
- match: '(\.)([[:alpha:]][[:alpha:]0-9''_]*)'
scope: entity.name.section.fsharp
captures:
1: punctuation.separator.namespace-reference.fsharp
2: entity.name.section.fsharp
- match: '^\s*(module)\s+([A-Z][[:alpha:]0-9''_]*)\s*(=)\s*([A-Z][[:alpha:]0-9''_]*)'
captures:
1: keyword.fsharp
2: entity.name.type.namespace.fsharp
3: punctuation.separator.namespace-definition.fsharp
4: entity.name.section.fsharp
push:
- meta_scope: namespace.alias.fsharp
- match: (\s|$)
pop: true
- match: '(\.)([A-Z][[:alpha:]0-9''_]*)'
scope: entity.name.section.fsharp
captures:
1: punctuation.separator.namespace-reference.fsharp
2: entity.name.section.fsharp
record_declaration:
- match: '(\{)'
captures:
1: keyword.symbol.fsharp
push:
- match: '(?<=\})'
pop: true
- include: comments
- match: '(((mutable)\s[[:alpha:]]+)|[[:alpha:]0-9''`<>^._]*)\s*((?<!:):(?!:))\s*'
captures:
3: keyword.fsharp
4: keyword.symbol.fsharp
push:
- match: '$|(;|\})'
captures:
1: keyword.symbol.fsharp
pop: true
- include: comments
- match: "([[:alpha:]0-9'`^_ ]+)"
captures:
1: entity.name.type.fsharp
- include: keywords
- include: chars
- include: compiler_directives
- include: constants
- include: strings
- include: chars
- include: double_tick
- include: definition
- include: attributes
- include: anonymous_functions
- include: keywords
- include: cexprs
- include: text
record_signature:
- match: "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"
captures:
1: keyword.symbol.fsharp
2: variable.parameter.fsharp
- match: "({)"
captures:
1: keyword.symbol.fsharp
push:
- match: "(})"
captures:
1: keyword.symbol.fsharp
pop: true
- match: "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)"
captures:
1: keyword.symbol.fsharp
2: variable.parameter.fsharp
- include: record_signature
- include: keywords
records:
- match: '\b(type)[\s]+(private|internal|public)?\s*'
captures:
1: keyword.fsharp
2: keyword.fsharp
3: support.function.attribute.fsharp
push:
- meta_scope: record.fsharp
- match: '\s*((with)|((as)\s*([[:alpha:]0-9'']+))|(=)|[\n=]|(\(\)))'
captures:
2: keyword.fsharp
3: keyword.fsharp
4: keyword.fsharp
5: variable.parameter.fsharp
6: keyword.symbol.fsharp
7: constant.language.unit.fsharp
pop: true
- include: comments
- include: attributes
- match: "([[:alpha:]0-9'`^:,._]+|``[[:alpha:]0-9'`^:,._ ]+``)(<)"
captures:
1: entity.name.type.fsharp
2: keyword.symbol.fsharp
- match: \s*(>)\s*(private|internal|public)?
captures:
1: keyword.symbol.fsharp
2: keyword.fsharp
- match: "([[:alpha:]0-9'`^._ ]+)"
captures:
1: entity.name.type.fsharp
- include: member_declaration
- include: keywords
string_formatter:
- match: (%0?-?(\d+)?((a|t)|(\.\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\+?A)))
scope: entity.name.type.format.specifier.fsharp
captures:
1: keyword.format.specifier.fsharp
strings:
- match: '(?=[^\\])(@")'
captures:
1: punctuation.definition.string.begin.fsharp
push:
- meta_scope: string.quoted.literal.fsharp
- match: (")(?!")
captures:
1: punctuation.definition.string.end.fsharp
pop: true
- match: '"(")'
scope: constant.character.string.escape.fsharp
- match: '(?=[^\\])(""")'
captures:
1: punctuation.definition.string.begin.fsharp
push:
- meta_scope: string.quoted.triple.fsharp
- match: (""")
captures:
1: punctuation.definition.string.end.fsharp
pop: true
- include: string_formatter
- match: '(?=[^\\])(")'
captures:
1: punctuation.definition.string.begin.fsharp
push:
- meta_scope: string.quoted.double.fsharp
- match: (")
captures:
1: punctuation.definition.string.end.fsharp
pop: true
- match: '\\$[ \t]*'
scope: punctuation.separator.string.ignore-eol.fsharp
- match: '\\([\\''''ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})'
scope: constant.character.string.escape.fsharp
- match: '\\(?![\\''''ntbr]|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8}).'
scope: invalid.illeagal.character.string.fsharp
- include: string_formatter
text:
- match: \\
scope: text.fsharp
tuple_signature:
- match: "(([?[:alpha:]0-9'`^._ ]+))+"
captures:
1: entity.name.type.fsharp
- match: (\()
captures:
1: keyword.symbol.fsharp
push:
- match: (\))
captures:
1: keyword.symbol.fsharp
pop: true
- match: "(([?[:alpha:]0-9'`^._ ]+))+"
captures:
1: entity.name.type.fsharp
- include: tuple_signature
- include: keywords
variables:
- match: \(\)
scope: constant.language.unit.fsharp
- match: '``[[:alpha:]0-9''`^:,._ ]+``|[[:alpha:]0-9''`<>^._ ]\w*'
scope: variable.parameter.fsharp

@ -1 +0,0 @@
Subproject commit fa350d393dc04cf67e238258be154625f7388bc6

View file

@ -1,181 +0,0 @@
%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Jinja2
file_extensions:
- j2
- jinja2
scope: text.html.jinja2
contexts:
main:
- include: scope:text.html.basic
- match: '({%)\s*(raw)\s*(%})'
captures:
1: entity.other.jinja2.delimiter.tag
2: keyword.control.jinja2
3: entity.other.jinja2.delimiter.tag
push:
- meta_scope: comment.block.jinja2.raw
- match: '({%)\s*(endraw)\s*(%})'
captures:
1: entity.other.jinja2.delimiter.tag
2: keyword.control.jinja2
3: entity.other.jinja2.delimiter.tag
pop: true
- match: "{#-?"
captures:
0: entity.other.jinja2.delimiter.comment
push:
- meta_scope: comment.block.jinja2
- match: "-?#}"
captures:
0: entity.other.jinja2.delimiter.comment
pop: true
- match: "{{-?"
captures:
0: entity.other.jinja2.delimiter.variable
push:
- meta_scope: meta.scope.jinja2.variable
- match: "-?}}"
captures:
0: entity.other.jinja2.delimiter.variable
pop: true
- include: expression
- match: "{%-?"
captures:
0: entity.other.jinja2.delimiter.tag
push:
- meta_scope: meta.scope.jinja2.tag
- match: "-?%}"
captures:
0: entity.other.jinja2.delimiter.tag
pop: true
- include: expression
escaped_char:
- match: '\\x[0-9A-F]{2}'
scope: constant.character.escape.hex.jinja2
escaped_unicode_char:
- match: '(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})'
captures:
1: constant.character.escape.unicode.16-bit-hex.jinja2
2: constant.character.escape.unicode.32-bit-hex.jinja2
3: constant.character.escape.unicode.name.jinja2
expression:
- match: '\s*\b(macro)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b'
captures:
1: keyword.control.jinja2
2: variable.other.jinja2.macro
- match: '\s*\b(block)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b'
captures:
1: keyword.control.jinja2
2: variable.other.jinja2.block
- match: '\s*\b(filter)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b'
captures:
1: keyword.control.jinja2
2: variable.other.jinja2.filter
- match: '\s*\b(is)\s+([a-zA-Z_][a-zA-Z0-9_]*)\b'
captures:
1: keyword.control.jinja2
2: variable.other.jinja2.test
- match: '(?<=\{\%-|\{\%)\s*\b([a-zA-Z_][a-zA-Z0-9_]*)\b(?!\s*[,=])'
captures:
1: keyword.control.jinja2
- match: \b(and|else|if|in|import|not|or|recursive|with(out)?\s+context)\b
scope: keyword.control.jinja2
- match: '\b([Tt]rue|[Ff]alse|[Nn]one)\b'
scope: constant.language.jinja2
- match: \b(loop|super|self|varargs|kwargs)\b
scope: variable.language.jinja2
- match: "[a-zA-Z_][a-zA-Z0-9_]*"
scope: variable.other.jinja2
- match: (\+|\-|\*\*|\*|//|/|%)
scope: keyword.operator.arithmetic.jinja2
- match: '(\|)([a-zA-Z_][a-zA-Z0-9_]*)'
captures:
1: punctuation.other.jinja2
2: variable.other.jinja2.filter
- match: '(\.)([a-zA-Z_][a-zA-Z0-9_]*)'
captures:
1: punctuation.other.jinja2
2: variable.other.jinja2.attribute
- match: '\['
captures:
0: punctuation.other.jinja2
push:
- match: '\]'
captures:
0: punctuation.other.jinja2
pop: true
- include: expression
- match: \(
captures:
0: punctuation.other.jinja2
push:
- match: \)
captures:
0: punctuation.other.jinja2
pop: true
- include: expression
- match: '\{'
captures:
0: punctuation.other.jinja2
push:
- match: '\}'
captures:
0: punctuation.other.jinja2
pop: true
- include: expression
- match: (\.|:|\||,)
scope: punctuation.other.jinja2
- match: (==|<=|=>|<|>|!=)
scope: keyword.operator.comparison.jinja2
- match: "="
scope: keyword.operator.assignment.jinja2
- match: '"'
captures:
0: punctuation.definition.string.begin.jinja2
push:
- meta_scope: string.quoted.double.jinja2
- match: '"'
captures:
0: punctuation.definition.string.end.jinja2
pop: true
- include: string
- match: "'"
captures:
0: punctuation.definition.string.begin.jinja2
push:
- meta_scope: string.quoted.single.jinja2
- match: "'"
captures:
0: punctuation.definition.string.end.jinja2
pop: true
- include: string
- match: "@/"
captures:
0: punctuation.definition.regexp.begin.jinja2
push:
- meta_scope: string.regexp.jinja2
- match: /
captures:
0: punctuation.definition.regexp.end.jinja2
pop: true
- include: simple_escapes
simple_escapes:
- match: (\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)
captures:
1: constant.character.escape.newline.jinja2
2: constant.character.escape.backlash.jinja2
3: constant.character.escape.double-quote.jinja2
4: constant.character.escape.single-quote.jinja2
5: constant.character.escape.bell.jinja2
6: constant.character.escape.backspace.jinja2
7: constant.character.escape.formfeed.jinja2
8: constant.character.escape.linefeed.jinja2
9: constant.character.escape.return.jinja2
10: constant.character.escape.tab.jinja2
11: constant.character.escape.vertical-tab.jinja2
string:
- include: simple_escapes
- include: escaped_char
- include: escaped_unicode_char

@ -1 +0,0 @@
Subproject commit 0ca4cc29907e9476cb603fed00d1d5fd9dc13c9c

@ -1 +0,0 @@
Subproject commit 0174335f91284f5ffab96f599ab2ab7e316658e2

@ -1 +0,0 @@
Subproject commit 289782ff2e4cb58de171579c7fc86fe00d280619

@ -1 +0,0 @@
Subproject commit 04ec6d7165e971db1fefd604942b04ccf86fb920

@ -1 +0,0 @@
Subproject commit ed40c3bc814cd0c8107dbbb8fcd95946b33217f0

@ -1 +0,0 @@
Subproject commit dfbb8bdc9a8403092c884d3eb893a270538cfa72

Some files were not shown because too many files have changed in this diff Show more