mirror of https://github.com/Aloxaf/silicon
More theme & syntax & Linux clipboard support
This commit is contained in:
parent
3c79497fc4
commit
d0e3f4e2d4
|
@ -115,6 +115,15 @@ name = "byteorder"
|
|||
version = "1.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "c2-chacha"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.37"
|
||||
|
@ -434,6 +443,15 @@ name = "fuchsia-cprng"
|
|||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gif"
|
||||
version = "0.10.2"
|
||||
|
@ -541,6 +559,9 @@ dependencies = [
|
|||
name = "lazy_static"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "lazycell"
|
||||
|
@ -826,6 +847,11 @@ dependencies = [
|
|||
"num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "0.4.30"
|
||||
|
@ -865,6 +891,18 @@ dependencies = [
|
|||
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.7.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.1.1"
|
||||
|
@ -874,6 +912,16 @@ dependencies = [
|
|||
"rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.3.1"
|
||||
|
@ -887,6 +935,14 @@ name = "rand_core"
|
|||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_hc"
|
||||
version = "0.1.0"
|
||||
|
@ -895,6 +951,14 @@ dependencies = [
|
|||
"rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_hc"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_isaac"
|
||||
version = "0.1.1"
|
||||
|
@ -1005,6 +1069,14 @@ dependencies = [
|
|||
"ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "remove_dir_all"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.15"
|
||||
|
@ -1116,8 +1188,14 @@ dependencies = [
|
|||
"rusttype 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spin"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "stb_truetype"
|
||||
version = "0.2.6"
|
||||
|
@ -1188,6 +1266,19 @@ dependencies = [
|
|||
"yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
dependencies = [
|
||||
"cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "term_size"
|
||||
version = "0.3.1"
|
||||
|
@ -1342,6 +1433,7 @@ dependencies = [
|
|||
"checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
|
||||
"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
|
||||
"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
|
||||
"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
|
||||
"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
|
||||
"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
|
||||
"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
|
||||
|
@ -1379,6 +1471,7 @@ dependencies = [
|
|||
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
"checksum freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028"
|
||||
"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
||||
"checksum getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e65cce4e5084b14874c4e7097f38cab54f47ee554f9194673456ea379dcc4c55"
|
||||
"checksum gif 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "86c2f2b597d6e05c86ee5947b2223bda468fe8dad3e88e2a6520869322aaf568"
|
||||
"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
|
||||
"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
|
||||
|
@ -1425,14 +1518,19 @@ dependencies = [
|
|||
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
|
||||
"checksum plist 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a9f075f6394100e7c105ed1af73fb1859d6fd14e49d4290d578120beb167f"
|
||||
"checksum png 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "63daf481fdd0defa2d1d2be15c674fbfa1b0fd71882c303a91f9a79b3252c359"
|
||||
"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
|
||||
"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
|
||||
"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
|
||||
"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db"
|
||||
"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
|
||||
"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c"
|
||||
"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
|
||||
"checksum rand_chacha 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e193067942ef6f485a349a113329140d0ab9e2168ce92274499bb0e9a4190d9d"
|
||||
"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
|
||||
"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
|
||||
"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca"
|
||||
"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
|
||||
"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
|
||||
"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
|
||||
"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
|
||||
"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
|
||||
|
@ -1445,6 +1543,7 @@ dependencies = [
|
|||
"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
|
||||
"checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828"
|
||||
"checksum regex-syntax 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d76410686f9e3a17f06128962e0ecc5755870bb890c34820c7af7f1db2e1d48"
|
||||
"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
|
||||
"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af"
|
||||
"checksum rusttype 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "654103d61a05074b268a107cf6581ce120f0fc0115f2610ed9dfea363bb81139"
|
||||
"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
|
||||
|
@ -1458,12 +1557,14 @@ dependencies = [
|
|||
"checksum servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a088f8d775a5c5314aae09bd77340bc9c67d72b9a45258be34c83548b4814cd9"
|
||||
"checksum servo-fontconfig-sys 4.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b46d201addcfbd25c1798ad1281d98c40743824e0b0f1e611bd3d5d0d31a7b8d"
|
||||
"checksum servo-freetype-sys 4.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4ccb6d0d32d277d3ef7dea86203d8210945eb7a45fba89dd445b3595dd0dfc"
|
||||
"checksum spin 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44363f6f51401c34e7be73db0db371c04705d35efbe9f7d6082e03a921a32c55"
|
||||
"checksum stb_truetype 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "69b7df505db8e81d54ff8be4693421e5b543e08214bd8d99eb761fcb4d5668ba"
|
||||
"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
|
||||
"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
|
||||
"checksum syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c"
|
||||
"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
|
||||
"checksum syntect 3.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e80b8831c5a543192ffc3727f01cf0e57579c6ac15558e3048bfb5708892167b"
|
||||
"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
|
||||
"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
|
||||
"checksum termion 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a8fb22f7cde82c8220e5aeacb3258ed7ce996142c77cba193f203515e26c330"
|
||||
"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
|
||||
|
|
|
@ -17,6 +17,7 @@ failure = "0.1.5"
|
|||
clipboard = "0.5.0"
|
||||
structopt = { version = "0.2.18", default-features = false, features = [ "color", "wrap_help" ] }
|
||||
itertools = "0.8.0"
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[build-dependencies]
|
||||
syntect = "3.2"
|
||||
|
|
|
@ -5,10 +5,13 @@ A [Carbon](https://github.com/dawnlabs/carbon) alternative implemented in Rust.
|
|||
## TODO
|
||||
|
||||
- [x] MVP
|
||||
- [ ] More themes
|
||||
- [ ] More syntaxes support
|
||||
- [x] More themes
|
||||
- [x] More syntaxes support
|
||||
- [ ] Better font support
|
||||
- [ ] Clipboard support
|
||||
- [x] Get code from clipboard
|
||||
- [ ] Paste the image to clipboard
|
||||
- [x] Linux
|
||||
- [ ] Windows
|
||||
- [ ] MacOS
|
||||
- [ ] Watermark
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# Assets
|
||||
|
||||
Silicon uses [bat](https://github.com/sharkdp/bat/tree/master/assets)'s syntax and theme resources.
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env python
|
||||
# Sync themes and syntaxes from [bat](https://github.com/sharkdp/bat/tree/master/assets)
|
||||
|
||||
import os
|
||||
from glob import glob
|
||||
from shutil import copy
|
||||
|
||||
if not os.path.exists('../../bat'):
|
||||
os.system('git clone https://github.com/sharkdp/bat ../../bat')
|
||||
else:
|
||||
os.system('git -C ../../bat pull')
|
||||
|
||||
for syntax_file in glob('../../bat/assets/syntaxes/**/*.sublime-syntax'):
|
||||
copy(syntax_file, './syntaxes/')
|
||||
|
||||
for theme_file in glob('../../bat/assets/themes/**/*.tmTheme'):
|
||||
copy(theme_file, './themes/')
|
||||
|
||||
print('Finished.')
|
|
@ -0,0 +1,209 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: AWK
|
||||
|
||||
scope: source.awk
|
||||
|
||||
file_extensions:
|
||||
- awk
|
||||
|
||||
# References
|
||||
# http://pubs.opengroup.org/onlinepubs/009695399/utilities/awk.html
|
||||
# http://www.gnu.org/software/gawk/manual/html_node/index.html
|
||||
# http://www.grymoire.com/Unix/Awk.html
|
||||
# http://www.cs.mun.ca/~yzchen/bib/nawkUS.pdf
|
||||
variables:
|
||||
|
||||
NAME: '[A-Za-z_][A-Za-z_0-9]*'
|
||||
|
||||
contexts:
|
||||
|
||||
main:
|
||||
- include: comment
|
||||
- include: procedure
|
||||
- include: pattern
|
||||
|
||||
comment:
|
||||
- match: '(?<!\S)(#)(?!\{).*$\n?'
|
||||
scope: comment.line.number-sign.awk
|
||||
captures:
|
||||
1: punctuation.definition.comment.awk
|
||||
|
||||
procedure:
|
||||
- match: '{'
|
||||
scope: meta.brace.curly.awk
|
||||
push:
|
||||
- match: '}'
|
||||
scope: meta.brace.curly.awk
|
||||
pop: true
|
||||
- include: comment
|
||||
- include: procedure
|
||||
- include: keyword
|
||||
- include: expression
|
||||
|
||||
pattern:
|
||||
- include: function-definition
|
||||
- include: builtin-pattern
|
||||
- include: expression
|
||||
|
||||
#TODO: Resolve regex / operator ambiguity
|
||||
#Will probably have to split expression
|
||||
#into seperate unary/binary states
|
||||
#See https://github.com/sublimehq/Packages/blob/master/JavaScript/JavaScript.sublime-syntax
|
||||
expression:
|
||||
- include: comment
|
||||
- include: command
|
||||
- include: function
|
||||
- include: constant
|
||||
- include: variable
|
||||
- include: groupings
|
||||
- include: prefix-operator
|
||||
- include: regexp
|
||||
- match: '(?=[\S])'
|
||||
pop: true
|
||||
|
||||
groupings:
|
||||
- match: \(
|
||||
scope: meta.brace.round.awk
|
||||
- match: \)(?=\s*{)
|
||||
scope: meta.brace.round.awk
|
||||
- match: \)
|
||||
scope: meta.brace.round.awk
|
||||
push: infix-operator
|
||||
- match: \,
|
||||
scope: punctuation.separator.parameters.awk
|
||||
|
||||
builtin-pattern:
|
||||
- match: \b(BEGINFILE|BEGIN|ENDFILE|END)\b
|
||||
scope: constant.language.awk
|
||||
|
||||
function-definition:
|
||||
- match: \b(function)\s+({{NAME}})(\()
|
||||
captures:
|
||||
1: storage.type.function.awk
|
||||
2: entity.name.function.awk
|
||||
3: punctuation.definition.parameters.begin.awk
|
||||
push:
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.awk
|
||||
pop: true
|
||||
- match: \b(\w+)\b
|
||||
scope: variable.parameter.function.awk
|
||||
- match: \b(,)\b
|
||||
scope: punctuation.separator.parameters.awk
|
||||
|
||||
constant:
|
||||
- include: numeric-constant
|
||||
- include: string-constant
|
||||
|
||||
numeric-constant:
|
||||
- match: '\b[0-9]+(?:\.[0-9]+)?(?:e[+-][0-9]+)?\b'
|
||||
scope: constant.numeric.awk
|
||||
push: infix-operator
|
||||
|
||||
string-constant:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.awk
|
||||
push:
|
||||
- meta_scope: string.quoted.double.awk
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.awk
|
||||
pop: true
|
||||
- include: escaped-char
|
||||
|
||||
escaped-char:
|
||||
- match: '\\(?:[\\abfnrtv/"]|x[0-9A-Fa-f]{2}|[0-7]{3})'
|
||||
scope: constant.character.escape.awk
|
||||
|
||||
# To avoid ambiguity with division operators regexps are only
|
||||
# valid in places were division is not.
|
||||
regexp:
|
||||
- match: /
|
||||
scope: punctuation.definition.regex.begin.awk
|
||||
push:
|
||||
- meta_content_scope: string.regexp
|
||||
- match: "(/)([gimy]*)"
|
||||
captures:
|
||||
1: punctuation.definition.regex.end.awk
|
||||
2: keyword.other.awk
|
||||
set: infix-operator
|
||||
- match: '(?=.|\n)'
|
||||
with_prototype:
|
||||
- match: '(?=/)'
|
||||
pop: true
|
||||
push:
|
||||
- include: scope:source.regexp
|
||||
|
||||
variable:
|
||||
- match: '\$[0-9]+'
|
||||
scope: variable.language.awk
|
||||
push: infix-operator
|
||||
- match: \b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\b
|
||||
scope: variable.language.awk
|
||||
push: infix-operator
|
||||
- match: \b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\b
|
||||
scope: variable.language.nawk
|
||||
push: infix-operator
|
||||
- match: \b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\b
|
||||
scope: variable.language.gawk
|
||||
push: infix-operator
|
||||
- match: '\b{{NAME}}\b'
|
||||
scope: variable.other.readwrite.awk
|
||||
push: infix-operator
|
||||
|
||||
keyword:
|
||||
- match: \b(?:break|continue|do|while|exit|for|if|else|return)\b
|
||||
scope: keyword.control.awk
|
||||
|
||||
command:
|
||||
- match: \b(?:next|print|printf)\b
|
||||
scope: keyword.other.command.awk
|
||||
- match: \b(?:close|getline|delete|system)\b
|
||||
scope: keyword.other.command.nawk
|
||||
- match: \b(?:fflush|nextfile)\b
|
||||
scope: keyword.other.command.bell-awk
|
||||
|
||||
function:
|
||||
- match: \b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\b
|
||||
scope: support.function.awk
|
||||
- match: \b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\b
|
||||
scope: support.function.nawk
|
||||
- match: \b(?:gensub|strftime|systime)\b
|
||||
scope: support.function.gawk
|
||||
- match: \b{{NAME}}(?=\s*\()
|
||||
scope: entity.name.function.awk
|
||||
|
||||
prefix-operator:
|
||||
- match: '[+-]'
|
||||
scope: keyword.operator.arithmetic.awk
|
||||
set: expression
|
||||
|
||||
infix-operator:
|
||||
- match: "!?~|[=<>!]=|[<>]"
|
||||
scope: keyword.operator.comparison.awk
|
||||
set: expression
|
||||
- match: \b(in)\b
|
||||
scope: keyword.operator.comparison.awk
|
||||
set: expression
|
||||
- match: '[+\-*/%^]=|\+\+|--|>>|='
|
||||
scope: keyword.operator.assignment.awk
|
||||
set: expression
|
||||
- match: \|\||&&|!
|
||||
scope: keyword.operator.boolean.awk
|
||||
set: expression
|
||||
- match: '[+\-*/%^]'
|
||||
scope: keyword.operator.arithmetic.awk
|
||||
set: expression
|
||||
- match: '[?:]'
|
||||
scope: keyword.operator.trinary.awk
|
||||
set: expression
|
||||
- match: '\['
|
||||
scope: keyword.operator.index.awk
|
||||
set: expression
|
||||
- match: '\]'
|
||||
scope: keyword.operator.index.awk
|
||||
set: expression
|
||||
- match: '(?=[\S])'
|
||||
pop: true
|
|
@ -0,0 +1,283 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: AsciiDoc
|
||||
comment: |
|
||||
A very early hack. Mostly ripped from other syntaxes.
|
||||
Only the very basic stuff is working.
|
||||
file_extensions:
|
||||
- adoc
|
||||
- asciidoc
|
||||
- asc
|
||||
scope: text.html.asciidoc
|
||||
contexts:
|
||||
main:
|
||||
- include: heading_inline
|
||||
- include: heading-block
|
||||
- include: heading-blockattr
|
||||
- match: \$\$(?!\$)
|
||||
push:
|
||||
- meta_scope: comment.block.passthrough.macro.doubledollar.asciidoc
|
||||
- match: \$\$(?!\$)
|
||||
pop: true
|
||||
- match: \+\+\+(?!\+)
|
||||
push:
|
||||
- meta_scope: comment.block.passthrough.macro.tripeplus.asciidoc
|
||||
- match: \+\+\+(?!\+)
|
||||
pop: true
|
||||
- match: (//).*$\n?
|
||||
scope: comment.line.double-slash.asciidoc
|
||||
- match: |-
|
||||
(?x)^
|
||||
(?= ([/+-.*_=]{4,})\s*$
|
||||
| ([ \t]{1,})
|
||||
| [=]{1,6}\s*+
|
||||
| [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
|
||||
)
|
||||
push:
|
||||
- meta_scope: meta.block-level.asciidoc
|
||||
- match: |-
|
||||
(?x)^
|
||||
(?! \1
|
||||
| ([ \t]{1,})
|
||||
| [=]{1,6}\s*+
|
||||
| [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
|
||||
)
|
||||
pop: true
|
||||
- include: block_quote
|
||||
- include: block_raw
|
||||
- include: heading_inline
|
||||
- include: heading-block
|
||||
- include: separator
|
||||
- match: '^[ ]{0,3}([*+-])(?=\s)'
|
||||
captures:
|
||||
1: punctuation.definition.list_item.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.list.unnumbered.asciidoc
|
||||
- match: ^(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.list_item.asciidoc
|
||||
pop: true
|
||||
- include: list-paragraph
|
||||
- match: '^[ ]{0,3}[0-9]+(\.)(?=\s)'
|
||||
captures:
|
||||
1: punctuation.definition.list_item.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.list.numbered.asciidoc
|
||||
- match: ^(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.list_item.asciidoc
|
||||
pop: true
|
||||
- include: list-paragraph
|
||||
- match: '^([/+-.*_=]){4,}\s*$'
|
||||
push:
|
||||
- meta_scope: comment.block.asciidoc
|
||||
- match: '^\1{4,}\s*$'
|
||||
pop: true
|
||||
- match: '^([/+.]){4,}\s*$'
|
||||
comment: asciidoc formatting is disabled inside certain blocks.
|
||||
push:
|
||||
- meta_scope: meta.disable-asciidoc
|
||||
- match: '^[/+.]{4,}\s*$'
|
||||
pop: true
|
||||
- match: '^(?=\S)(?![=-]{3,}(?=$))(?!\.\S+)'
|
||||
push:
|
||||
- meta_scope: meta.paragraph.asciidoc
|
||||
- match: '^(?:\s*$|(?=[ ]{,3}>.))|(?=[ \t]*\n)(?<=^===|^====|=====|^---|^----|-----)[ \t]*\n'
|
||||
pop: true
|
||||
- include: inline
|
||||
- include: scope:text.html.basic
|
||||
- match: '^(={3,})(?=[ \t]*$)'
|
||||
scope: markup.heading.0.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
- match: '^(-{3,})(?=[ \t]*$)'
|
||||
scope: markup.heading.1.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
- match: '^(~{3,})(?=[ \t]*$)'
|
||||
scope: markup.heading.2.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
- match: '^(\^{3,})(?=[ \t]*$)'
|
||||
scope: markup.heading.3.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
- match: '^(\+{3,})(?=[ \t]*$)'
|
||||
scope: markup.heading.4.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
attribute-entry:
|
||||
- match: '^:[-_. A-Za-z0-9]+:\s*(.*)\s*$'
|
||||
scope: variable.other
|
||||
attribute-reference:
|
||||
- match: "{[-_. A-Za-z0-9]+}"
|
||||
scope: variable.other
|
||||
attribute-reference-predefined:
|
||||
- match: "{(?i:amp|asciidoc-dir|asciidoc-file|asciidoc-version|author|authored|authorinitials|backend-docbook|backend-xhtml11|backend-html4|docbook-article|xhtml11-article|html4-article|docbook-book|xhtml11-book|html4-book|docbook-manpage|xhtml11-manpage|html4-manpage|backend|backslash|basebackend|brvbar|date|docdate|doctime|docname|docfile|docdir|doctitle|doctype-article|doctype-book|doctype-manpage|doctype|email|empty|encoding|filetype|firstname|gt|id|indir|infile|lastname|level|listindex|localdate|localtime|lt|manname|manpurpose|mantitle|manvolnum|middlename|nbsp|outdir|outfile|reftext|revision|sectnum|showcomments|title|two_colons|two_semicolons|user-dir|verbose)}"
|
||||
scope: support.variable
|
||||
block_quote:
|
||||
- match: '^([/+-.*_=]){4,}\s*$'
|
||||
push:
|
||||
- meta_scope: comment.block.asciidoc
|
||||
- match: '^\1{4,}\s*$'
|
||||
pop: true
|
||||
block_raw:
|
||||
- match: '\G([ ]{4}|\t).*$\n?'
|
||||
scope: markup.raw.block.asciidoc
|
||||
bracket:
|
||||
- match: '<(?![a-z/?\$!])'
|
||||
comment: |
|
||||
asciidoc will convert this for us. We match it so that the
|
||||
HTML grammar will not mark it up as invalid.
|
||||
scope: meta.other.valid-bracket.asciidoc
|
||||
character-replacements:
|
||||
- match: \(C\)|\(R\)|\(TM\)|--(?!-)|\.\.\.(?!\.)|->|<-|=>|<=
|
||||
scope: constant.character.asciidoc
|
||||
escape:
|
||||
- match: '\\[-`*_#+.!(){}\[\]\\>:]'
|
||||
scope: constant.character.escape.asciidoc
|
||||
heading:
|
||||
- match: '(?m)^(\S+)$([=-~^+])+\s*$'
|
||||
scope: markup.heading.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
heading-block:
|
||||
- match: ^\.(\w.*)$
|
||||
scope: markup.heading.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
heading-blockattr:
|
||||
- match: '^\[\[?(\w.*)\]$'
|
||||
scope: markup.heading.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
heading_inline:
|
||||
- match: '\G(={1,6})(?!=)\s*(?=\S)'
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.heading.asciidoc
|
||||
- meta_content_scope: entity.name.section.asciidoc
|
||||
- match: \s*(=*)$\n?
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
pop: true
|
||||
- include: inline
|
||||
inline:
|
||||
- include: line-break
|
||||
- include: line-page-break
|
||||
- include: line-ruler
|
||||
- include: escape
|
||||
- include: passthrough-macro-trippleplus-inline
|
||||
- include: passthrough-macro-doubledollar-inline
|
||||
- include: character-replacements
|
||||
- include: bracket
|
||||
- include: raw
|
||||
- include: text-quote-single
|
||||
- include: text-quote-double
|
||||
- include: text-quote-other
|
||||
- include: text-bold-unconstrained
|
||||
- include: text-italic-unconstrained
|
||||
- include: text-monospace-unconstrained
|
||||
- include: text-unquoted-unconstrained
|
||||
- include: text-bold
|
||||
- include: text-italic
|
||||
- include: text-monospace
|
||||
- include: text-unquoted
|
||||
- include: attribute-entry
|
||||
- include: attribute-reference-predefined
|
||||
- include: attribute-reference
|
||||
line-break:
|
||||
- match: (?<=\S)\s+\+$
|
||||
scope: constant.character.escape.asciidoc
|
||||
line-page-break:
|
||||
- match: "^<{3,}$"
|
||||
scope: constant.character.escape.asciidoc
|
||||
line-ruler:
|
||||
- match: "^'{3,}$"
|
||||
scope: constant.character.escape.asciidoc
|
||||
list-paragraph:
|
||||
- match: \G\s+(?=\S)
|
||||
push:
|
||||
- meta_scope: meta.paragraph.list.asciidoc
|
||||
- match: ^\s*$
|
||||
pop: true
|
||||
- include: inline
|
||||
passthrough-macro-doubledollar-inline:
|
||||
- match: '(?:\[.*\])?\$\$(?!\$).+\$\$(?!\$)'
|
||||
scope: comment.block.passthrough.asciidoc
|
||||
passthrough-macro-trippleplus-inline:
|
||||
- match: '(?:\[.*\])?\+\+\+(?!\+).+\+\+\+(?!\+)'
|
||||
scope: comment.block.passthrough.asciidoc
|
||||
raw:
|
||||
- match: '(`+)(?:[^`]|(?!(?<!`)\1(?!`))`)*+(\1)'
|
||||
scope: markup.raw.inline.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.raw.asciidoc
|
||||
2: punctuation.definition.raw.asciidoc
|
||||
separator:
|
||||
- match: '\G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?'
|
||||
scope: meta.separator.asciidoc
|
||||
text-bold:
|
||||
- match: (?<!\w)(\*)(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.bold.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.asciidoc
|
||||
- match: (?<=\S)(\1)(?!\w)
|
||||
captures:
|
||||
1: punctuation.definition.bold.asciidoc
|
||||
pop: true
|
||||
text-bold-unconstrained:
|
||||
- match: (\*\*)(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.bold.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.asciidoc
|
||||
- match: (?<=\S)(\1)
|
||||
captures:
|
||||
1: punctuation.definition.bold.asciidoc
|
||||
pop: true
|
||||
text-italic:
|
||||
- match: (?<!\w)('|_)(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.italic.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.asciidoc
|
||||
- match: (?<=\S)(\1)((?!\1)|(?=\1\1))(?!\w)
|
||||
captures:
|
||||
1: punctuation.definition.italic.asciidoc
|
||||
pop: true
|
||||
text-italic-unconstrained:
|
||||
- match: (__)(?=\S)
|
||||
captures:
|
||||
1: punctuation.definition.italic.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.asciidoc
|
||||
- match: (?<=\S)(\1)
|
||||
captures:
|
||||
1: punctuation.definition.italic.asciidoc
|
||||
pop: true
|
||||
text-monospace:
|
||||
- match: '(?<!\w)([\+`])[^\+]*(\1)(?!\w)'
|
||||
scope: string.interpolated.asciidoc
|
||||
text-monospace-unconstrained:
|
||||
- match: (\+\+).*(\1)
|
||||
scope: string.interpolated.asciidoc
|
||||
text-quote-double:
|
||||
- match: '(?<!\w)(?:\[.*\])?``(?!`).*''''(?!'')(?!\w)'
|
||||
scope: string.quoted.double.asciidoc
|
||||
text-quote-other:
|
||||
- match: '(?<!\w)(?:\[.*\])?([~^]).*(\1)(?!\w)'
|
||||
scope: string.quoted.single.asciidoc
|
||||
text-quote-single:
|
||||
- match: '(?<!\w)(?:\[.*\])?`(?!`).*''(?!'')(?!\w)'
|
||||
comment: "TODO: Sub- and Superscript are really unconstrained"
|
||||
scope: string.quoted.single.asciidoc
|
||||
text-unquoted:
|
||||
- match: (?<!\w)(#).*(\1)(?!\w)
|
||||
scope: string.unquoted.asciidoc
|
||||
text-unquoted-unconstrained:
|
||||
- match: (##).*(\1)
|
||||
scope: string.unquoted.asciidoc
|
|
@ -0,0 +1,172 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: ARM Assembly
|
||||
file_extensions:
|
||||
- s
|
||||
- S
|
||||
scope: source.asm.arm
|
||||
contexts:
|
||||
main:
|
||||
- match: "@.*$"
|
||||
scope: comment.line
|
||||
- match: //.*$
|
||||
scope: comment.line
|
||||
- match: ;.*$
|
||||
scope: comment.line
|
||||
- match: ^\s*\#\s*if\s+0\b
|
||||
push:
|
||||
- meta_scope: comment.preprocessor
|
||||
- match: ^\s*\#\s*endif\b
|
||||
pop: true
|
||||
- match: /\*
|
||||
push:
|
||||
- meta_scope: comment.block
|
||||
- match: \*/
|
||||
pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
^\s*\#\s*(define)\s+ # define
|
||||
((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name
|
||||
(?: # and optionally:
|
||||
(\() # an open parenthesis
|
||||
(
|
||||
\s* \g<id> \s* # first argument
|
||||
((,) \s* \g<id> \s*)* # additional arguments
|
||||
(?:\.\.\.)? # varargs ellipsis?
|
||||
)
|
||||
(\)) # a close parenthesis
|
||||
)?
|
||||
captures:
|
||||
1: keyword.control.import.define.c
|
||||
2: entity.name.function.preprocessor.c
|
||||
4: punctuation.definition.parameters.c
|
||||
5: variable.parameter.preprocessor.c
|
||||
7: punctuation.separator.parameters.c
|
||||
8: punctuation.definition.parameters.c
|
||||
push:
|
||||
- meta_scope: meta.preprocessor.macro.c
|
||||
- match: (?=(?://|/\*))|$
|
||||
pop: true
|
||||
- match: (?>\\\s*\n)
|
||||
scope: punctuation.separator.continuation.c
|
||||
- include: $top_level_main
|
||||
- match: ^\s*#\s*(error|warning)\b
|
||||
captures:
|
||||
1: keyword.control.import.error.c
|
||||
push:
|
||||
- meta_scope: meta.preprocessor.diagnostic.c
|
||||
- match: $
|
||||
captures:
|
||||
1: keyword.control.import.error.c
|
||||
pop: true
|
||||
- match: (?>\\\s*\n)
|
||||
scope: punctuation.separator.continuation.c
|
||||
- match: ^\s*#\s*(include|import)\b\s+
|
||||
captures:
|
||||
1: keyword.control.import.include.c
|
||||
push:
|
||||
- meta_scope: meta.preprocessor.c.include
|
||||
- match: (?=(?://|/\*))|$
|
||||
captures:
|
||||
1: keyword.control.import.include.c
|
||||
pop: true
|
||||
- match: (?>\\\s*\n)
|
||||
scope: punctuation.separator.continuation.c
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.c
|
||||
push:
|
||||
- meta_scope: string.quoted.double.include.c
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.c
|
||||
pop: true
|
||||
- match: <
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.c
|
||||
push:
|
||||
- meta_scope: string.quoted.other.lt-gt.include.c
|
||||
- match: ">"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.c
|
||||
pop: true
|
||||
- match: '((?i)([xw][0-9]|[xw]1[0-9]||[xw]2[0-9]|[wx]30|wzr|xzr|wsp|fpsr|fpcr|[rcp]1[0-5]|[rcp][0-9]|a[1-4]|v[1-8]|sl|sb|fp|ip|sp|lr|(c|s)psr(_c)?|pc|[sd]3[0-1]|[sd][12][0-9]|[sd][0-9]|fpsid|fpscr|fpexc|q3[0-1]|q2[0-9]|q1[0-9]|q[0-9]|APSR_nzcv|sy)!?(?-i))?\b'
|
||||
scope: storage.other.register
|
||||
- match: \.(?i)(globl|global|macro|endm|purgem|if|elseif|else|endif|section|text|arm|align|balign|irp|rept|endr|req|unreq|error|short|func|endfunc|hidden|type|fpu|arch|code|altmacro|object_arch|word|int|string)(?-i)\b
|
||||
scope: keyword.control.directive
|
||||
- match: armv(2a?|3m?|4t?|5t?e?6(j|t2|zk?|-m)?|7v?e?(-(a|r|m))?|8-a(\+crc)?)
|
||||
scope: keyword.control.arch.arm
|
||||
- match: ^\s*#\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\b
|
||||
captures:
|
||||
1: keyword.control.import.c
|
||||
push:
|
||||
- meta_scope: meta.preprocessor.c
|
||||
- match: (?=(?://|/\*))|$
|
||||
captures:
|
||||
1: keyword.control.import.c
|
||||
pop: true
|
||||
- match: (?>\\\s*\n)
|
||||
scope: punctuation.separator.continuation.c
|
||||
- match: |-
|
||||
(?x)\b((?i)
|
||||
(
|
||||
(bf(c|i)|(u|s)bfx|(u|s)xta?(h|b)?) |
|
||||
(v(add|cvt|sub|mov|trn|cmp|div|qdmulh|mrs|mul|ld1|qadd|qshrun|st[1234]|addw|mull|mlal|rshrn|swp|qmovun)|qmovun)(\.([isup]?8|[isupf]?16|[isuf]?32|[isu]?64))* |
|
||||
(and|m(rs|sr)|eor|sub|rsb|add|adc|sbc|rsc|tst|teq|cmp|cmn|orr|mov|bic|mvn |
|
||||
(neg) |
|
||||
(lsr|lsl|ror|asr) # shift ops either pseudo ops or actual shifts
|
||||
)s? |
|
||||
(mul|mla|mull|smlabb) |
|
||||
(mov(w|t)) |
|
||||
rev(8|16)? |
|
||||
(pld|adr|adrl|vswp)
|
||||
)
|
||||
(ne|eq|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|lt|le|gt|ge|al)?(?-i))?\b
|
||||
scope: support.function.mnemonic.arithmetic
|
||||
- match: |-
|
||||
(?x)\b((?i)(
|
||||
swi|svc|wfi|
|
||||
dmb | clrex | dsb | isb |
|
||||
v(ldr|str|push|pop) |
|
||||
(push|pop) |
|
||||
(st|ld)(
|
||||
p |
|
||||
r(ex|s?(h|b)|d)? |
|
||||
m(
|
||||
(f|e)(d|a) |
|
||||
(d|i)(b|a)
|
||||
)?
|
||||
) |
|
||||
b(l|x|lx|lr|r)? |
|
||||
(i|e)?ret|
|
||||
b\.(eq|ne|hs|cs|lo|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|nv)+ |
|
||||
(c|t)?bn?z|
|
||||
)+(ne|eq|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|lt|le|gt|ge|al)?(?-i))\b
|
||||
scope: support.function.mnemonic.memory
|
||||
- match: '\b((?i)(def(b|w|s)|equ|(include|get)(\s+([a-zA-Z_]+[0-9a-zA-Z_]*|[0-9]+[a-zA-Z_]+[0-9a-zA-Z_]*?)\.s)?)?(?-i))\b'
|
||||
scope: meta.preprocessor.c.include
|
||||
- match: \b((?i)(align)(?-i))?\b
|
||||
scope: storage.type.c.memaccess
|
||||
- match: \s+\".+\"
|
||||
scope: string
|
||||
- match: \b((?i)nop(ne|eq|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|lt|le|gt|ge|al)?(?-i))?\b
|
||||
scope: comment.nop
|
||||
- match: '\s\['
|
||||
push:
|
||||
- meta_scope: storage.type.c.memaccess
|
||||
- match: '\]'
|
||||
pop: true
|
||||
- match: (?>\\\s*\n)
|
||||
scope: punctuation.separator.continuation.c
|
||||
- include: $top_level_main
|
||||
- match: (\b|\s+)\=\b
|
||||
scope: keyword.control.evaluation
|
||||
- match: '(\b|\s+)(\#)?-?(0x|&)[0-9a-fA-F_]+\b'
|
||||
scope: constant.numeric.hex
|
||||
- match: '(\b|\s+)\#-?[0-9a-zA-Z_]+\b'
|
||||
scope: constant.numeric.literal
|
||||
- match: '(\b|\s+)[0-9]+\b'
|
||||
scope: constant.numeric.dec
|
||||
- match: '\b([a-zA-Z_]+[0-9a-zA-Z_]*|[0-9]+[a-zA-Z_]+[0-9a-zA-Z_]*)\b'
|
||||
scope: meta.function.source.arm.label
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,40 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CMake C Header
|
||||
file_extensions: [h.in]
|
||||
scope: source.cmake.config.c
|
||||
variables:
|
||||
identifier: '\b[[:alpha:]_][[:alnum:]_]*\b'
|
||||
contexts:
|
||||
main:
|
||||
- match: ""
|
||||
push: "Packages/C++/C.sublime-syntax"
|
||||
with_prototype:
|
||||
- match: \$\{
|
||||
scope: keyword.other.block.start.cmake
|
||||
push:
|
||||
- meta_include_prototype: true
|
||||
- meta_scope: variable.cmake
|
||||
- match: \}
|
||||
scope: keyword.other.block.end.cmake
|
||||
pop: true
|
||||
- match: \@
|
||||
scope: keyword.other.block.start.cmake
|
||||
push:
|
||||
- meta_include_prototype: true
|
||||
- meta_scope: variable.cmake
|
||||
- match: \@
|
||||
scope: keyword.other.block.end.cmake
|
||||
pop: true
|
||||
- match: ^\s*(\#\s*cmakedefine)\b
|
||||
captures:
|
||||
1: meta.preprocessor.macro.c keyword.control.import.cmakedefine.c
|
||||
push:
|
||||
- meta_content_scope: meta.preprocessor.macro.c
|
||||
- include: scope:source.c#preprocessor-line-continuation
|
||||
- include: scope:source.c#preprocessor-line-ending
|
||||
- include: scope:source.c#preprocessor-comments
|
||||
- match: '{{identifier}}'
|
||||
scope: entity.name.variable.cmake
|
||||
pop: true
|
|
@ -0,0 +1,40 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CMake C++ Header
|
||||
file_extensions: [hh.in, hpp.in, hxx.in, h++.in]
|
||||
scope: source.cmake.config.c++
|
||||
variables:
|
||||
identifier: '\b[[:alpha:]_][[:alnum:]_]*\b'
|
||||
contexts:
|
||||
main:
|
||||
- match: ""
|
||||
push: "Packages/C++/C++.sublime-syntax"
|
||||
with_prototype:
|
||||
- match: \$\{
|
||||
scope: keyword.other.block.start.cmake
|
||||
push:
|
||||
- meta_include_prototype: true
|
||||
- meta_scope: variable.cmake
|
||||
- match: \}
|
||||
scope: keyword.other.block.end.cmake
|
||||
pop: true
|
||||
- match: \@
|
||||
scope: keyword.other.block.start.cmake
|
||||
push:
|
||||
- meta_include_prototype: true
|
||||
- meta_scope: variable.cmake
|
||||
- match: \@
|
||||
scope: keyword.other.block.end.cmake
|
||||
pop: true
|
||||
- match: ^\s*(\#\s*cmakedefine)\b
|
||||
captures:
|
||||
1: meta.preprocessor.macro.c++ keyword.control.import.cmakedefine.c++
|
||||
push:
|
||||
- meta_content_scope: meta.preprocessor.macro.c++
|
||||
- include: scope:source.c++#preprocessor-line-continuation
|
||||
- include: scope:source.c++#preprocessor-line-ending
|
||||
- include: scope:source.c++#preprocessor-comments
|
||||
- match: '{{identifier}}'
|
||||
scope: entity.name.variable.cmake
|
||||
pop: true
|
|
@ -0,0 +1,671 @@
|
|||
%YAML 1.2
|
||||
# https://www.sublimetext.com/docs/3/syntax.html
|
||||
# https://cmake.org/cmake/help/v3.0/manual/cmake-language.7.html
|
||||
--- #---------------------------------------------------------------------------
|
||||
name: CMake
|
||||
comment: Written by Raoul Wols <raoulwols@gmail.com>, 2017
|
||||
file_extensions: [CMakeLists.txt, cmake]
|
||||
scope: source.cmake
|
||||
#-------------------------------------------------------------------------------
|
||||
variables:
|
||||
# Note: we're not doing legacy
|
||||
unquoted_argument_element: "[^ \t()#\"\\']"
|
||||
unquoted_argument: "{{unquoted_argument_element}}+"
|
||||
identifier: \b[[:alpha:]_][[:alnum:]_]*\b
|
||||
generic_named_parameter: \b@?[A-Z_][A-Z0-9_]*(?=[^\w\-<>=\$])
|
||||
#-------------------------------------------------------------------------------
|
||||
contexts:
|
||||
prototype:
|
||||
- include: comment-block
|
||||
- include: comment-line
|
||||
- include: variable-substitution
|
||||
- include: generator-expression
|
||||
|
||||
main:
|
||||
- include: scope:commands.builtin.cmake#main
|
||||
- include: if
|
||||
- include: foreach
|
||||
- include: while
|
||||
- include: set
|
||||
- include: function
|
||||
- include: macro
|
||||
- include: include
|
||||
- include: illegal-command
|
||||
- include: generic-command
|
||||
|
||||
illegal-command:
|
||||
- match: (?i)\bendif\b
|
||||
scope: invalid.illegal.stray.endif.cmake
|
||||
- match: (?i)\belse\b
|
||||
scope: invalid.illegal.stray.else.cmake
|
||||
- match: (?i)\belseif\b
|
||||
scope: invalid.illegal.stray.elseif.cmake
|
||||
- match: (?i)\bendforeach\b
|
||||
scope: invalid.illegal.stray.endforeach.cmake
|
||||
- match: (?i)\bendwhile\b
|
||||
scope: invalid.illegal.stray.endwhile.cmake
|
||||
- match: (?i)\bbreak\b
|
||||
scope: invalid.illegal.stray.break.cmake
|
||||
- match: (?i)\bendfunction\b
|
||||
scope: invalid.illegal.stray.endfunction.cmake
|
||||
- match: (?i)\bendmacro\b
|
||||
scope: invalid.illegal.stray.endmacro.cmake
|
||||
|
||||
args-illegal-boilerplate:
|
||||
- match: \s+
|
||||
- match: \n
|
||||
- match: .+
|
||||
scope: invalid.illegal.expected-opening-brace.cmake
|
||||
pop: true
|
||||
|
||||
# --- INCLUDE ----------------------------------------------------------------
|
||||
|
||||
include:
|
||||
- match: (?i)\binclude\b
|
||||
scope: keyword.control.import.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: include-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
include-args:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- match: \bOPTIONAL\b
|
||||
scope: variable.parameter.include.OPTIONAL.cmake
|
||||
- match: \bNO_POLICY_SCOPE\b
|
||||
scope: variable.parameter.include.NO_POLICY_SCOPE.cmake
|
||||
- match: \bRESULT_VARIABLE\b
|
||||
scope: variable.parameter.include.RESULT_VARIABLE.cmake
|
||||
push:
|
||||
- match: \b{{identifier}}\b
|
||||
scope: variable.other.readwrite.cmake
|
||||
pop: true
|
||||
- match: \s+
|
||||
- match: \n
|
||||
- match: ''
|
||||
pop: true
|
||||
- include: args-common
|
||||
|
||||
# --- FUNCTION / ENDFUNCTION -------------------------------------------------
|
||||
|
||||
function:
|
||||
- match: (?i)\bfunction\b
|
||||
scope: support.function.function.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [function-body, function-args-first]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
function-args-first:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- match: '{{identifier}}'
|
||||
scope: entity.name.function.cmake
|
||||
set: function-args-rest
|
||||
- include: variable-substitution
|
||||
- match: \s+
|
||||
- match: ''
|
||||
set: function-args-rest
|
||||
|
||||
function-args-rest:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- include: args-common
|
||||
- match: '{{identifier}}'
|
||||
scope: variable.parameter.cmake
|
||||
|
||||
function-body:
|
||||
- meta_scope: meta.group.function.cmake
|
||||
- include: endfunction
|
||||
- include: main
|
||||
|
||||
endfunction:
|
||||
- match: (?i)\bendfunction\b
|
||||
scope: support.function.endfunction.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: generic-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
# --- MACRO / ENDMACRO -------------------------------------------------------
|
||||
|
||||
macro:
|
||||
- match: (?i)\bmacro\b
|
||||
scope: support.function.macro.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [macro-body, macro-args-first]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
macro-args-first:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- match: '{{identifier}}'
|
||||
scope: entity.name.function.cmake
|
||||
set: macro-args-rest
|
||||
- include: variable-substitution
|
||||
- match: \s+
|
||||
- match: ''
|
||||
set: macro-args-rest
|
||||
|
||||
macro-args-rest:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- include: args-common
|
||||
- match: '{{identifier}}'
|
||||
scope: variable.parameter.cmake
|
||||
|
||||
macro-body:
|
||||
- meta_scope: meta.group.function.cmake
|
||||
- include: endmacro
|
||||
- include: main
|
||||
|
||||
endmacro:
|
||||
- match: (?i)\bendmacro\b
|
||||
scope: support.function.endmacro.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: generic-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
# --- IF / ELSEIF / ELSE / ENDIF ---------------------------------------------
|
||||
|
||||
if:
|
||||
- match: (?i)\bif\b
|
||||
scope: keyword.control.if.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [if-body, if-args]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
if-body:
|
||||
- meta_scope: meta.group.if.cmake
|
||||
- include: else
|
||||
- include: elseif
|
||||
- include: endif
|
||||
- include: break
|
||||
- include: main
|
||||
|
||||
if-args:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
push: if-args
|
||||
- match: \bDEFINED\b
|
||||
scope: variable.parameter.if.DEFINED.cmake
|
||||
- match: \bSTREQUAL\b
|
||||
scope: variable.parameter.if.STREQUAL.cmake
|
||||
- match: \bNOT\b
|
||||
scope: keyword.operator.logical.NOT.cmake
|
||||
- match: \bAND\b
|
||||
scope: keyword.operator.logical.AND.cmake
|
||||
- match: \bOR\b
|
||||
scope: keyword.operator.logical.OR.cmake
|
||||
- match: \bCOMMAND\b
|
||||
scope: variable.parameter.if.COMMAND.cmake
|
||||
- match: \bPOLICY\b
|
||||
scope: variable.parameter.if.POLICY.cmake
|
||||
- match: \bTARGET\b
|
||||
scope: variable.parameter.if.TARGET.cmake
|
||||
- match: \bTEST\b
|
||||
scope: variable.parameter.if.TEST.cmake
|
||||
- match: \bEXISTS\b
|
||||
scope: variable.parameter.if.EXISTS.cmake
|
||||
- match: \bIS_NEWER_THAN\b
|
||||
scope: variable.parameter.if.IS_NEWER_THAN.cmake
|
||||
- match: \bIS_DIRECTORY\b
|
||||
scope: variable.parameter.if.IS_DIRECTORY.cmake
|
||||
- match: \bIS_SYMLINK\b
|
||||
scope: variable.parameter.if.IS_SYMLINK.cmake
|
||||
- match: \bIS_ABSOLUTE\b
|
||||
scope: variable.parameter.if.IS_ABSOLUTE.cmake
|
||||
- match: \b(VERSION_|STR)?LESS\b
|
||||
scope: variable.parameter.if.LESS.cmake
|
||||
- match: \b(VERSION_|STR)?GREATER\b
|
||||
scope: variable.parameter.if.GREATER.cmake
|
||||
- match: \b(VERSION_|STR)?EQUAL\b
|
||||
scope: variable.parameter.if.EQUAL.cmake
|
||||
- match: \b(VERSION_|STR)?LESS_EQUAL\b
|
||||
scope: variable.parameter.if.LESS_EQUAL.cmake
|
||||
- match: \b(VERSION_|STR)?GREATER_EQUAL\b
|
||||
scope: variable.parameter.if.GREATER_EQUAL.cmake
|
||||
- match: \bMATCHES\b
|
||||
scope: variable.parameter.if.MATCHES.cmake
|
||||
push:
|
||||
- match: \[(=*)\[
|
||||
captures:
|
||||
1: punctuation.definition.string.begin.cmake
|
||||
push:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.regexp.cmake
|
||||
- match: \]\1\]
|
||||
scope: punctuation.definition.string.end.cmake
|
||||
pop: true
|
||||
- include: scope:source.regexp#base
|
||||
- match: \s+
|
||||
- match: \n
|
||||
- match: ''
|
||||
pop: true
|
||||
- include: args-common
|
||||
|
||||
elseif:
|
||||
- match: (?i)\belseif\b
|
||||
scope: keyword.control.elseif.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [elseif-body, if-args]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
elseif-body:
|
||||
- meta_scope: meta.group.elseif.cmake
|
||||
- include: elseif
|
||||
- include: else
|
||||
- include: endif
|
||||
- include: break
|
||||
- include: main
|
||||
|
||||
else:
|
||||
- match: (?i)\b\belse\b
|
||||
scope: keyword.control.else.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [else-body, if-args]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
else-body:
|
||||
- meta_scope: meta.group.else.cmake
|
||||
- include: endif
|
||||
- include: break
|
||||
- include: main
|
||||
- match: (?i)\belse\b
|
||||
scope: invalid.illegal.stray.else.cmake
|
||||
- match: (?i)\belseif\b
|
||||
scope: invalid.illegal.stray.elseif.cmake
|
||||
|
||||
endif:
|
||||
- match: (?i)\bendif\b
|
||||
scope: keyword.control.endif.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: if-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
# --- FOREACH / ENDFOREACH ---------------------------------------------------
|
||||
|
||||
foreach:
|
||||
- match: (?i)\bforeach\b
|
||||
scope: keyword.control.foreach.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [foreach-body, foreach-args]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
foreach-args:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- include: args-common
|
||||
- match: \bIN\b
|
||||
scope: variable.parameter.foreach.IN.cmake
|
||||
- match: \bLISTS\b
|
||||
scope: variable.parameter.foreach.LISTS.cmake
|
||||
- match: \bITEMS\b
|
||||
scope: variable.parameter.foreach.ITEMS.cmake
|
||||
- match: \bRANGE\b
|
||||
scope: variable.parameter.foreach.RANGE.cmake
|
||||
|
||||
foreach-body:
|
||||
- meta_scope: meta.group.foreach.cmake
|
||||
- include: break
|
||||
- include: continue
|
||||
- include: endforeach
|
||||
- include: main
|
||||
|
||||
endforeach:
|
||||
- match: (?i)\bendforeach\b
|
||||
scope: keyword.control.endforeach.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: foreach-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
# --- WHILE / ENDWHILE -------------------------------------------------------
|
||||
|
||||
while:
|
||||
- match: (?i)\bwhile\b
|
||||
scope: keyword.control.while.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [while-body, if-args]
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
while-body:
|
||||
- meta_scope: meta.group.while.cmake
|
||||
- include: break
|
||||
- include: continue
|
||||
- include: endwhile
|
||||
- include: main
|
||||
|
||||
endwhile:
|
||||
- match: (?i)\bendwhile\b
|
||||
scope: keyword.control.endwhile.cmake
|
||||
set:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: if-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
# --- BREAK ------------------------------------------------------------------
|
||||
|
||||
break:
|
||||
- match: (?i)\bbreak\b
|
||||
scope: keyword.control.break.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: break-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
break-args:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- include: args-common
|
||||
|
||||
#--- CONTINUE ----------------------------------------------------------------
|
||||
|
||||
continue:
|
||||
- match: (?i)\bcontinue\b
|
||||
scope: keyword.control.continue.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: continue-args
|
||||
- include: args-illegal-boilerplate
|
||||
|
||||
continue-args:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- include: args-common
|
||||
|
||||
#--- SET ---------------------------------------------------------------------
|
||||
|
||||
set:
|
||||
- match: (?i)\bset\b
|
||||
scope: support.function.set.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: [set-args-rest, set-args-first]
|
||||
|
||||
set-args-first:
|
||||
- match: '{{identifier}}'
|
||||
scope: variable.other.readwrite.assignment.cmake
|
||||
pop: true
|
||||
- include: variable-substitution
|
||||
- match: \s+
|
||||
- match: ''
|
||||
pop: true
|
||||
|
||||
set-args-rest:
|
||||
- meta_scope: meta.function-call.arguments.cmake
|
||||
- match: \bFORCE\b
|
||||
scope: variable.parameter.foreach.FORCE.cmake
|
||||
- match: \bPARENT_SCOPE\b
|
||||
scope: variable.parameter.foreach.PARENT_SCOPE.cmake
|
||||
- match: \bCACHE\b
|
||||
scope: variable.parameter.foreach.CACHE.cmake
|
||||
push:
|
||||
- match: \s*(FILEPATH)
|
||||
captures:
|
||||
1: storage.type.FILEPATH.cmake
|
||||
pop: true
|
||||
- match: \s*(PATH)
|
||||
captures:
|
||||
1: storage.type.PATH.cmake
|
||||
pop: true
|
||||
- match: \s*(STRING)
|
||||
captures:
|
||||
1: storage.type.STRING.cmake
|
||||
pop: true
|
||||
- match: \s*(BOOL)
|
||||
captures:
|
||||
1: storage.type.BOOL.cmake
|
||||
pop: true
|
||||
- match: \s*(INTERNAL)
|
||||
captures:
|
||||
1: storage.type.INTERNAL.cmake
|
||||
pop: true
|
||||
# anything else we scope as an error
|
||||
- match: \s*([^\s]*)
|
||||
captures:
|
||||
1: invalid.illegal.expected-type.cmake
|
||||
pop: true
|
||||
- include: args-common
|
||||
|
||||
#--- COMMON FUNCTIONALITY FOR COMMANDS ---------------------------------------
|
||||
|
||||
args-common:
|
||||
- match: \)
|
||||
scope: punctuation.section.parens.end.cmake
|
||||
pop: true
|
||||
- match: \(
|
||||
scope: invalid.illegal.stray.parenthesis.cmake
|
||||
- include: string
|
||||
|
||||
generic-command:
|
||||
- match: \b{{identifier}}\b
|
||||
scope: variable.function.generic.cmake
|
||||
push:
|
||||
- meta_scope: meta.function-call.generic.cmake
|
||||
- match: (?=\()
|
||||
set:
|
||||
- match: \(
|
||||
scope: punctuation.section.parens.begin.cmake
|
||||
set: generic-args
|
||||
|
||||
generic-args:
|
||||
- meta_scope: meta.function-call.arguments.generic.cmake
|
||||
- match: \)
|
||||
scope: punctuation.section.parens.end.cmake
|
||||
pop: true
|
||||
- match: (?={{generic_named_parameter}})
|
||||
push: unquoted-argument-or-keyword
|
||||
- include: string-unquoted
|
||||
- include: string-quoted-double
|
||||
- include: string-quoted-single
|
||||
|
||||
# https://cmake.org/cmake/help/v3.0/manual/cmake-language.7.html#unquoted-argument
|
||||
unquoted-argument-or-keyword:
|
||||
- meta_scope: variable.parameter.generic.cmake
|
||||
- match: (?=\t| |\(|\)|\#|\"|\\)
|
||||
pop: true
|
||||
|
||||
#--- STRING HANDLING ---------------------------------------------------------
|
||||
|
||||
string:
|
||||
- include: string-raw
|
||||
- include: string-quoted-double
|
||||
- include: string-quoted-single
|
||||
- include: string-unquoted
|
||||
|
||||
string-raw:
|
||||
- match: \[(=*)\[
|
||||
scope: punctuation.definition.string.begin.cmake
|
||||
push:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.raw.cmake
|
||||
- match: \]\1\]
|
||||
scope: punctuation.definition.string.end.cmake
|
||||
pop: true
|
||||
|
||||
string-quoted-double:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.cmake
|
||||
push:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.quoted.double.cmake
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.cmake
|
||||
pop: true
|
||||
- include: escape-sequences
|
||||
- include: highlight-semicolon
|
||||
- include: variable-substitution
|
||||
- include: generator-expression
|
||||
|
||||
string-quoted-single:
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.cmake
|
||||
push:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.quoted.single.cmake
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.cmake
|
||||
pop: true
|
||||
- include: escape-sequences
|
||||
- include: highlight-semicolon
|
||||
- include: variable-substitution
|
||||
- include: generator-expression
|
||||
|
||||
string-unquoted:
|
||||
- match: (?={{unquoted_argument}})
|
||||
push:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: meta.string.unquoted.cmake
|
||||
- include: variable-substitution
|
||||
- include: generator-expression
|
||||
- match: \\[; ()#"\\]
|
||||
scope: constant.character.escape.cmake
|
||||
- match: \\.
|
||||
scope: invalid.illegal.character.escape.cmake
|
||||
- match: (?=\t| |\(|\)|\#|\"|\\|\n)
|
||||
pop: true
|
||||
- match: (?=\s*$)
|
||||
set:
|
||||
- match: \s*$
|
||||
pop: true
|
||||
- match: (?=\s*#)
|
||||
set: prototype
|
||||
- include: highlight-semicolon
|
||||
|
||||
highlight-semicolon:
|
||||
- match: ;
|
||||
scope: punctuation.separator.cmake
|
||||
|
||||
escape-sequences:
|
||||
- match: \\[()#" \\$@^trn;]
|
||||
scope: constant.character.escape.cmake
|
||||
- match: \\.
|
||||
scope: invalid.illegal.character.escape.cmake
|
||||
|
||||
#--- VARIABLES AND GENERATOR EXPRESSIONS -------------------------------------
|
||||
|
||||
variable-substitution:
|
||||
- match: (\$)(ENV)?(\{)
|
||||
captures:
|
||||
1: punctuation.definition.variable.substitution.cmake
|
||||
2: keyword.operator.word.cmake
|
||||
3: punctuation.section.braces.begin.cmake
|
||||
push:
|
||||
- meta_scope: meta.text-substitution.cmake
|
||||
- match: \}
|
||||
scope: punctuation.section.braces.end.cmake
|
||||
pop: true
|
||||
- match: '{{identifier}}'
|
||||
scope: variable.other.readwrite.cmake
|
||||
- include: prototype
|
||||
|
||||
generator-expression:
|
||||
- match: (\$)(<)
|
||||
captures:
|
||||
1: punctuation.definition.variable.generator-expression.cmake
|
||||
2: punctuation.section.block.begin.cmake
|
||||
push:
|
||||
- meta_scope: meta.generator-expression.cmake
|
||||
- include: generator-expression-common
|
||||
- match: ':'
|
||||
scope: punctuation.separator.generator-expression.cmake
|
||||
set:
|
||||
- meta_content_scope: meta.generator-expression.cmake
|
||||
- match: ':'
|
||||
scope: invalid.illegal.too-many-colons.cmake
|
||||
- include: generator-expression-common
|
||||
- include: prototype
|
||||
- include: prototype
|
||||
|
||||
generator-expression-common:
|
||||
- match: '>'
|
||||
scope: punctuation.section.block.end.cmake
|
||||
pop: true
|
||||
- match: '{{identifier}}'
|
||||
scope: variable.other.readwrite.cmake
|
||||
|
||||
#--- COMMENT HANDLING --------------------------------------------------------
|
||||
|
||||
comment-block:
|
||||
- match: \#\[(=*)\[
|
||||
scope: punctuation.definition.comment.begin.cmake
|
||||
push:
|
||||
- meta_scope: comment.block.cmake
|
||||
- match: \]\1\]
|
||||
scope: punctuation.definition.comment.end.cmake
|
||||
pop: true
|
||||
|
||||
comment-line:
|
||||
- match: \#
|
||||
scope: punctuation.definition.comment.cmake
|
||||
push:
|
||||
- meta_scope: comment.line.cmake
|
||||
- match: $
|
||||
pop: true
|
|
@ -0,0 +1,54 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CMakeCache
|
||||
file_extensions: [CMakeCache.txt]
|
||||
first_line_match: "# This is the CMakeCache file."
|
||||
scope: source.cmakecache
|
||||
|
||||
variables:
|
||||
identifier: '[a-zA-Z0-9\-_:\\/ .]+'
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- include: comments
|
||||
- include: key-value-pair
|
||||
|
||||
comments:
|
||||
- match: \/\/
|
||||
scope: punctuation.definition.comment.cmakecache
|
||||
push:
|
||||
- meta_scope: comment.line.double-slash.doc.cmakecache
|
||||
- match: $
|
||||
pop: true
|
||||
- match: \#
|
||||
scope: punctuation.definition.comment.cmakecache
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.cmakecache
|
||||
- match: $
|
||||
pop: true
|
||||
|
||||
key-value-pair:
|
||||
- match: ^(\w|-)+
|
||||
scope: variable.parameter.cmakecache
|
||||
set: expect-type
|
||||
- match: .
|
||||
scope: invalid.illegal.cmakecache
|
||||
|
||||
expect-type:
|
||||
- match: ':'
|
||||
scope: punctuation.separator.cmakecache
|
||||
- match: '{{identifier}}'
|
||||
scope: storage.type.cmakecache
|
||||
set: expect-value
|
||||
- match: .
|
||||
scope: invalid.illegal.cmakecache
|
||||
|
||||
expect-value:
|
||||
- match: '='
|
||||
scope: keyword.operator.assignment.cmakecache
|
||||
- match: $
|
||||
pop: true
|
||||
- match: .*
|
||||
scope: string.unquoted.cmakecache
|
||||
pop: true
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -0,0 +1,47 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Cabal
|
||||
file_extensions:
|
||||
- cabal
|
||||
scope: source.cabal
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(\s*)(exposed-modules):$
|
||||
captures:
|
||||
2: constant.other.cabal
|
||||
push:
|
||||
- meta_scope: exposed.modules.cabal
|
||||
- match: ^(?!\1\s)
|
||||
pop: true
|
||||
- include: module_name
|
||||
- match: ^(\s*)(build-depends):$
|
||||
captures:
|
||||
2: constant.other.cabal
|
||||
push:
|
||||
- meta_scope: exposed.modules.cabal
|
||||
- match: ^(?!\1\s)
|
||||
pop: true
|
||||
- match: "([<>=]+)|([&|]+)"
|
||||
scope: keyword.operator.haskell
|
||||
- match: ((\d+|\*)\.)*(\d+|\*)
|
||||
scope: constant.numeric.haskell
|
||||
- match: '([\w\-]+)'
|
||||
scope: support.function.haskell
|
||||
- match: '^\s*([a-zA-Z_-]+)(:)\s+'
|
||||
scope: entity.cabal
|
||||
captures:
|
||||
1: constant.other.cabal
|
||||
2: punctuation.entity.cabal
|
||||
- match: '^(?i)(executable|library|test-suite|benchmark|flag|source-repository)\s+([^\s,]+)\s*$'
|
||||
scope: entity.cabal
|
||||
captures:
|
||||
1: keyword.entity.cabal
|
||||
2: string.cabal
|
||||
- match: ^(?i)library\s*$
|
||||
scope: keyword.entity.cabal
|
||||
- match: "--.*$"
|
||||
scope: comment.cabal
|
||||
module_name:
|
||||
- match: '([A-Z][A-Za-z_''0-9]*)(\.[A-Z][A-Za-z_''0-9]*)*'
|
||||
scope: storage.module.haskell
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,369 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Dart
|
||||
file_extensions:
|
||||
- dart
|
||||
scope: source.dart
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(#!.*)$
|
||||
scope: meta.preprocessor.script.dart
|
||||
- match: ^\s*\b(library|import|export|part of|part)\b
|
||||
captures:
|
||||
0: keyword.other.import.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.dart
|
||||
- match: ;
|
||||
captures:
|
||||
0: punctuation.terminator.dart
|
||||
pop: true
|
||||
- include: strings
|
||||
- match: \b(as|show|hide|deferred)\b
|
||||
scope: keyword.other.import.dart
|
||||
- include: comments
|
||||
- include: constants-and-special-vars
|
||||
- include: annotations
|
||||
- include: decl-typedef
|
||||
- include: decl-class
|
||||
- include: decl-enum
|
||||
- include: decl-function
|
||||
- include: keywords
|
||||
- include: strings
|
||||
annotations:
|
||||
- match: '^(?:\s*)((@)([a-zA-Z0-9_]+))'
|
||||
captures:
|
||||
1: annotation.dart
|
||||
2: entity.name.function.annotation.dart
|
||||
3: support.type.dart
|
||||
comments:
|
||||
- match: /\*\*/
|
||||
scope: comment.block.empty.dart
|
||||
captures:
|
||||
0: punctuation.definition.comment.dart
|
||||
- include: comments-inline
|
||||
comments-inline:
|
||||
- match: /\*
|
||||
push:
|
||||
- meta_scope: comment.block.dart
|
||||
- match: \*/
|
||||
pop: true
|
||||
- include: scope:text.dart-doccomments
|
||||
- match: (///)
|
||||
captures:
|
||||
1: marker.dart
|
||||
push:
|
||||
- meta_scope: comment.line.triple-slash.dart
|
||||
- match: $
|
||||
pop: true
|
||||
- include: scope:text.dart-doccomments
|
||||
- match: (//)
|
||||
captures:
|
||||
1: marker.dart
|
||||
push:
|
||||
- meta_scope: comment.line.double-slash.dart
|
||||
- match: $
|
||||
pop: true
|
||||
- include: scope:text.dart-doccomments
|
||||
constants-and-special-vars:
|
||||
- match: \b(true|false|null)\b
|
||||
scope: constant.language.dart
|
||||
- match: \b(this|super)\b
|
||||
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
|
||||
decl-class:
|
||||
- match: \bclass\b
|
||||
captures:
|
||||
0: keyword.control.new.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.class.dart
|
||||
- match: "(?={)"
|
||||
pop: true
|
||||
- include: keywords
|
||||
- match: "[A-Za-z_][A-Za-z0-9_]*"
|
||||
scope: class.name.dart
|
||||
decl-enum:
|
||||
- match: \benum\b
|
||||
captures:
|
||||
0: keyword.declaration.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.enum.dart
|
||||
- match: "(?={)"
|
||||
pop: true
|
||||
- include: keywords
|
||||
- match: "[A-Za-z_][A-Za-z0-9_]*"
|
||||
scope: enum.name.dart
|
||||
decl-function:
|
||||
- match: ^\s*(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(get)\s+(\w+)\s+(?==>)
|
||||
comment: A getter with a primitive return type.
|
||||
scope: meta.declaration.function.dart
|
||||
captures:
|
||||
1: storage.type.primitive.dart
|
||||
2: keyword.declaration.dart
|
||||
3: function.name.dart
|
||||
- match: ^\s*(?:\b(\w+)\b\s+)?(get)\s+(\w+)\s+(?==>)
|
||||
comment: A getter with a user-defined return type or no return type.
|
||||
scope: meta.declaration.function.dart
|
||||
captures:
|
||||
1: type.user-defined.dart
|
||||
2: keyword.declaration.dart
|
||||
3: function.name.dart
|
||||
- match: ^\s*(set)\s+(\w+)(?=\()
|
||||
comment: A setter.
|
||||
captures:
|
||||
1: keyword.declaration.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: comments-inline
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: ^\s*(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(\w+)(?=\()
|
||||
comment: A function with a primitive return type.
|
||||
captures:
|
||||
1: storage.type.primitive.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: comments-inline
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: ^\s*(?:\b(return)\b)\s+(\w+)(?=\()
|
||||
comment: A function invocation after 'return'
|
||||
captures:
|
||||
1: keyword.control.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.invocation.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: comments-inline
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: ^\s*\b(new)\b\s+(\w+)(?=\()
|
||||
comment: A class instantiation after 'new'
|
||||
captures:
|
||||
1: keyword.declaration.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.invocation.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: comments-inline
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
decl-function-parameter:
|
||||
- include: constants-and-special-vars
|
||||
- match: (?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(\w+)(?=\()
|
||||
comment: A function with a primitive return type.
|
||||
captures:
|
||||
1: storage.type.primitive.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.parameter.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: \b(new)\b\s+(\w+)(?=\()
|
||||
comment: A class instantiation after 'new'
|
||||
captures:
|
||||
1: keyword.declaration.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.invocation.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: (?:\b(\w+)\b)\s+(\w+)(?=\()
|
||||
comment: A function with a user-defined return type.
|
||||
captures:
|
||||
1: type.user-defined.dart
|
||||
2: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.parameter.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
- match: (\w+)(?=\()
|
||||
comment: A function with no return type.
|
||||
captures:
|
||||
1: function.name.dart
|
||||
push:
|
||||
- meta_scope: meta.parameter.function.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: decl-function-parameter
|
||||
- include: strings
|
||||
- include: keywords
|
||||
decl-typedef:
|
||||
- match: typedef
|
||||
captures:
|
||||
0: keyword.control.new.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.typedef.dart
|
||||
- match: ;
|
||||
captures:
|
||||
0: punctuation.terminator.dart
|
||||
pop: true
|
||||
- match: '(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b|([a-zA-Z_][a-zA-Z0-9_]*))\s+([a-zA-Z_][a-zA-Z0-9_]+)'
|
||||
captures:
|
||||
1: storage.type.primitive.dart
|
||||
2: typedef.return.dart
|
||||
3: typedef.name.dart
|
||||
- match: \(
|
||||
push:
|
||||
- meta_scope: typedef.params.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: keywords
|
||||
keywords:
|
||||
- match: \bassert\b
|
||||
scope: keyword.control.assert.dart
|
||||
- match: \bas\b
|
||||
scope: keyword.cast.dart
|
||||
- match: \b(try|catch|finally|throw|on|rethrow)\b
|
||||
scope: keyword.control.catch-exception.dart
|
||||
- match: \s+\?\s+|\s+:\s+
|
||||
scope: keyword.control.ternary.dart
|
||||
- match: \b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b
|
||||
scope: keyword.control.dart
|
||||
- match: \b(async\*|async|await\*|await|yield)\b
|
||||
scope: keyword.control.async.dart
|
||||
- match: \b(new)\b
|
||||
scope: keyword.control.new.dart
|
||||
- match: \b(abstract|extends|external|factory|implements|with|interface|get|native|operator|set|typedef)\b
|
||||
scope: keyword.declaration.dart
|
||||
- match: \b(is\!?)\b
|
||||
scope: keyword.operator.dart
|
||||
- match: (<<|>>>?|~|\^|\||&)
|
||||
scope: keyword.operator.bitwise.dart
|
||||
- match: ((&|\^|\||<<|>>>?)=)
|
||||
scope: keyword.operator.assignment.bitwise.dart
|
||||
- match: (===?|!==?|<=?|>=?)
|
||||
scope: keyword.operator.comparison.dart
|
||||
- match: '(([+*/%-]|\~)=)'
|
||||
scope: keyword.operator.assignment.arithmetic.dart
|
||||
- match: (=)
|
||||
scope: keyword.operator.assignment.dart
|
||||
- match: (\-\-|\+\+)
|
||||
scope: keyword.operator.increment-decrement.dart
|
||||
- match: (\-|\+|\*|\/|\~\/|%)
|
||||
scope: keyword.operator.arithmetic.dart
|
||||
- match: (!|&&|\|\|)
|
||||
scope: keyword.operator.logical.dart
|
||||
- match: ;
|
||||
scope: punctuation.terminator.dart
|
||||
- match: \b(static|final|const)\b
|
||||
scope: storage.modifier.dart
|
||||
- match: \b(?:void|bool|num|int|double|dynamic|var|String|List|Map)\b
|
||||
scope: storage.type.primitive.dart
|
||||
regexp:
|
||||
- match: '\\[^''"]'
|
||||
scope: constant.character.escaped.regex.dart
|
||||
- match: \(
|
||||
push:
|
||||
- meta_content_scope: meta.capture.regex.dart
|
||||
- match: \)
|
||||
pop: true
|
||||
- match: \?(:|=|!)
|
||||
scope: ignore.capture.regex.dart
|
||||
- match: \*|\+|\?|\.|\|
|
||||
scope: keyword.other.regex.dart
|
||||
- match: \^|\$
|
||||
scope: keyword.other.regex.dart
|
||||
- match: \.
|
||||
scope: constant.other.regex.dart
|
||||
- match: '\[(\^)?'
|
||||
captures:
|
||||
1: keyword.other.negation.regex.dart
|
||||
push:
|
||||
- meta_scope: constant.character.range.regex.dart
|
||||
- match: '\]'
|
||||
pop: true
|
||||
- match: '\\[^"'']'
|
||||
scope: constant.character.escaped.regex.dart
|
||||
- match: '\{(?:\d+)?,(?:\d+)?\}'
|
||||
scope: keyword.other.regex.dart
|
||||
string-interp:
|
||||
- match: '(\$)(\{)'
|
||||
captures:
|
||||
1: keyword.other.dart
|
||||
2: keyword.other.dart
|
||||
push:
|
||||
- meta_scope: interpolation.dart
|
||||
- meta_content_scope: source.dart
|
||||
- match: '(\})'
|
||||
captures:
|
||||
1: keyword.other.dart
|
||||
pop: true
|
||||
- include: main
|
||||
- match: (\$)(\w+)
|
||||
captures:
|
||||
1: keyword.other.dart
|
||||
2: variable.parameter.dart
|
||||
- match: \\.
|
||||
scope: constant.character.escape.dart
|
||||
strings:
|
||||
- match: (?<!r)"""
|
||||
push:
|
||||
- meta_scope: string.interpolated.triple.double.dart
|
||||
- match: '"""(?!")'
|
||||
pop: true
|
||||
- include: string-interp
|
||||
- match: (?<!r)'''
|
||||
push:
|
||||
- meta_scope: string.interpolated.triple.single.dart
|
||||
- match: "'''(?!')"
|
||||
pop: true
|
||||
- include: string-interp
|
||||
- match: r"""
|
||||
push:
|
||||
- meta_scope: string.quoted.triple.double.dart
|
||||
- match: '"""(?!")'
|
||||
pop: true
|
||||
- match: r'''
|
||||
push:
|
||||
- meta_scope: string.quoted.triple.single.dart
|
||||
- match: "'''(?!')"
|
||||
pop: true
|
||||
- match: (?<!\\|r)"
|
||||
push:
|
||||
- meta_scope: string.interpolated.double.dart
|
||||
- match: '"'
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- include: string-interp
|
||||
- match: r"
|
||||
push:
|
||||
- meta_scope: string.quoted.double.dart
|
||||
- match: '"'
|
||||
pop: true
|
||||
- include: regexp
|
||||
- match: (?<!\|r)'
|
||||
push:
|
||||
- meta_scope: string.interpolated.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- include: string-interp
|
||||
- match: r'
|
||||
push:
|
||||
- meta_scope: string.quoted.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- include: regexp
|
|
@ -0,0 +1,88 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: DotENV
|
||||
file_extensions:
|
||||
- .env
|
||||
- .envrc
|
||||
- .env.dist
|
||||
- .env.local
|
||||
- .env.sample
|
||||
- .env.example
|
||||
- .env.test
|
||||
- .env.test.local
|
||||
- .env.dev
|
||||
- .env.development
|
||||
- .env.development.local
|
||||
- .env.prod
|
||||
- .env.production
|
||||
- .env.production.local
|
||||
- .env.dusk.local
|
||||
scope: source.env
|
||||
contexts:
|
||||
main:
|
||||
- match: (#).*$\n?
|
||||
comment: "Comments - starts with #"
|
||||
scope: comment.line.number-sign.env
|
||||
captures:
|
||||
1: punctuation.definition.comment.env
|
||||
- match: (\")
|
||||
comment: Strings (double)
|
||||
captures:
|
||||
1: punctuation.definition.string.begin.env
|
||||
push:
|
||||
- meta_scope: string.quoted.double.env
|
||||
- match: (\")
|
||||
captures:
|
||||
1: punctuation.definition.string.end
|
||||
pop: true
|
||||
- include: interpolation
|
||||
- include: variable
|
||||
- include: escape-characters
|
||||
- match: (\')
|
||||
comment: Strings (single)
|
||||
captures:
|
||||
1: punctuation.definition.string.begin.env
|
||||
push:
|
||||
- meta_scope: string.quoted.single.env
|
||||
- match: (\')
|
||||
captures:
|
||||
1: punctuation.definition.string.end
|
||||
pop: true
|
||||
- match: '(?<=[\w])\s?='
|
||||
comment: Assignment Operator
|
||||
scope: keyword.operator.assignment.env
|
||||
- match: '([\w]+)(?=\s?\=)'
|
||||
comment: Variable
|
||||
scope: variable.other.env
|
||||
- match: (?i)\s?(export)
|
||||
comment: Keywords
|
||||
scope: keyword.other.env
|
||||
- match: (?i)(?<=\=)\s?(true|false|null)
|
||||
comment: Constants
|
||||
scope: constant.language.env
|
||||
- match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b'
|
||||
comment: Numeric
|
||||
scope: constant.numeric.env
|
||||
escape-characters:
|
||||
- match: '\\[nrt\\\$\"\'']'
|
||||
scope: constant.character.escape.env
|
||||
interpolation:
|
||||
- match: '(\$\{|\{)'
|
||||
comment: 'Template Syntax: "foo ${bar} {$baz}"'
|
||||
captures:
|
||||
1: string.interpolated.env keyword.other.template.begin.env
|
||||
push:
|
||||
- match: '(\})'
|
||||
captures:
|
||||
1: string.interpolated.env keyword.other.template.end.env
|
||||
pop: true
|
||||
- match: '(?x)(\$+)?([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*?\b)'
|
||||
captures:
|
||||
1: punctuation.definition.variable.env variable.other.env
|
||||
2: variable.other.env
|
||||
variable:
|
||||
- match: '(?x)(\$+)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*?\b)'
|
||||
captures:
|
||||
1: punctuation.definition.variable.env variable.other.env
|
||||
2: variable.other.env
|
|
@ -0,0 +1,510 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Elixir
|
||||
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.definition.parameters.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.definition.parameters.elixir
|
||||
pop: true
|
||||
- include: core_syntax
|
||||
|
||||
function_body:
|
||||
- meta_scope: meta.function.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.guard.elixir
|
||||
|
||||
numeric:
|
||||
- match: '\b(0x[0-9A-Fa-f](?>_?[0-9A-Fa-f])*|0b[01]+|0o[0-7]+|\d(?>_?\d)*(\.\d(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?)\b'
|
||||
scope: constant.numeric.elixir
|
||||
|
||||
binary:
|
||||
- match: (?><<)(?!<)
|
||||
scope: punctuation.definition.binary.begin.elixir
|
||||
push:
|
||||
- meta_scope: binary.elixir
|
||||
- match: '>>'
|
||||
scope: punctuation.definition.binary.end.elixir
|
||||
pop: true
|
||||
- match: ','
|
||||
scope: punctuation.binary.elixir
|
||||
- include: numeric
|
||||
- include: simple_string
|
||||
- match: '::'
|
||||
scope: punctuation.binary.elixir
|
||||
push:
|
||||
- meta_scope: keyword.type.binary.elixir
|
||||
- match: (?=,|>>)
|
||||
pop: true
|
||||
- include: numeric
|
||||
- match: '[a-z][\w-]*(?:\((?:(\d+)|([a-z_]\w+))\))?'
|
||||
captures:
|
||||
1: constant.numeric.elixir
|
||||
2: variable.numeric.elixir
|
||||
|
||||
escaped_char:
|
||||
- match: '\\(x[\da-fA-F]{1,2}|.)'
|
||||
scope: constant.character.escaped.elixir
|
||||
|
||||
interpolated_elixir:
|
||||
- match: '(#)\{'
|
||||
scope: punctuation.section.embedded.elixir
|
||||
captures:
|
||||
1: punctuation.embedded.elixir
|
||||
push:
|
||||
- meta_scope: source.elixir.embedded.source
|
||||
- match: '\}'
|
||||
scope: punctuation.section.embedded.elixir
|
||||
pop: true
|
||||
- include: nest_curly_and_self
|
||||
- include: main
|
||||
|
||||
nest_curly_and_self:
|
||||
- match: '\{'
|
||||
scope: punctuation.section.scope.elixir
|
||||
push:
|
||||
- match: '\}'
|
||||
scope: 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: '\[(?:\^?\])?'
|
||||
scope: punctuation.definition.character-class.elixir
|
||||
push:
|
||||
- meta_scope: string.regexp.character-class.elixir
|
||||
- match: '\]'
|
||||
scope: punctuation.definition.character-class.elixir
|
||||
pop: true
|
||||
- include: escaped_char
|
||||
- match: \(
|
||||
scope: punctuation.definition.group.elixir
|
||||
push:
|
||||
- meta_scope: string.regexp.group.elixir
|
||||
- match: \)
|
||||
scope: 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
|
||||
|
||||
simple_string:
|
||||
- match: "'"
|
||||
comment: single quoted string (allows for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.single.elixir
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '"'
|
||||
comment: double quoted string (allows for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.double.elixir
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
|
||||
string:
|
||||
- match: (?>''')
|
||||
comment: Single-quoted heredocs
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.single.heredoc.elixir
|
||||
- match: ^\s*'''
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: (?>""")
|
||||
comment: Double-quoted heredocs
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.double.heredoc.elixir
|
||||
- match: ^\s*"""
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- include: simple_string
|
||||
- match: '~[a-z](?>""")'
|
||||
comment: Double-quoted heredocs sigils
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.double.heredoc.elixir
|
||||
- match: ^\s*"""
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '~[a-z]\{'
|
||||
comment: sigil (allow for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.interpolated.elixir
|
||||
- match: '\}[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '~[a-z]\['
|
||||
comment: sigil (allow for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.interpolated.elixir
|
||||
- match: '\][a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '~[a-z]\<'
|
||||
comment: sigil (allow for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.interpolated.elixir
|
||||
- match: '\>[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '~[a-z]\('
|
||||
comment: sigil (allow for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.interpolated.elixir
|
||||
- match: '\)[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: '~[a-z]([^\w])'
|
||||
comment: sigil (allow for interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.interpolated.elixir
|
||||
- match: '\1[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- include: escaped_char
|
||||
- match: '~[A-Z](?>""")'
|
||||
comment: Double-quoted heredocs sigils
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: ^\s*"""
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- match: '~[A-Z]\{'
|
||||
comment: sigil (without interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: '\}[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- match: '~[A-Z]\['
|
||||
comment: sigil (without interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: '\][a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- match: '~[A-Z]\<'
|
||||
comment: sigil (without interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: '\>[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- match: '~[A-Z]\('
|
||||
comment: sigil (without interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: '\)[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
- match: '~[A-Z]([^\w])'
|
||||
comment: sigil (without interpolation)
|
||||
scope: punctuation.definition.string.begin.elixir
|
||||
push:
|
||||
- meta_scope: string.quoted.other.literal.upper.elixir
|
||||
- match: '\1[a-z]*'
|
||||
scope: punctuation.definition.string.end.elixir
|
||||
pop: true
|
||||
|
||||
def_blocks:
|
||||
- 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*)(?:(\()|\s*)'
|
||||
captures:
|
||||
1: keyword.control.module.elixir
|
||||
2: entity.name.function.public.elixir
|
||||
3: punctuation.definition.parameters.elixir
|
||||
push: function_body
|
||||
- match: '^\s*(defp|defmacrop)\s+([a-zA-Z_]\w*)(?:(\()|\s*)'
|
||||
captures:
|
||||
1: keyword.control.module.elixir
|
||||
2: entity.name.function.private.elixir
|
||||
3: punctuation.definition.parameters.elixir
|
||||
push: function_body
|
||||
|
||||
docs:
|
||||
- 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
|
||||
|
||||
punctuations:
|
||||
- match: '<-|->'
|
||||
scope: keyword.operator.arrow.elixir
|
||||
- match: '<>'
|
||||
scope: keyword.operator.binary-concatenation.elixir
|
||||
- match: '\|>'
|
||||
scope: keyword.operator.pipe.elixir
|
||||
- match: \+\+|--
|
||||
scope: keyword.operator.list-manipulation.elixir
|
||||
- match: \.\.
|
||||
scope: keyword.operator.range.elixir
|
||||
- match: =>
|
||||
scope: keyword.operator.map-pair.elixir
|
||||
- match: (\|\|\||&&&|^^^|<<<|>>>|~~~)
|
||||
scope: keyword.operator.bitwise.elixir
|
||||
- match: \||\*\*|\\\\|~
|
||||
scope: keyword.operator.other.elixir
|
||||
- match: "===?|!==?|<=?|>=?"
|
||||
scope: keyword.operator.comparison.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.assignment.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
|
||||
|
||||
core_syntax:
|
||||
- include: binary
|
||||
- include: numeric
|
||||
- include: string
|
||||
- include: def_blocks
|
||||
- include: docs
|
||||
- include: punctuations
|
||||
|
||||
- match: '(?<!\.)\b(do|end|case|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|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: ":'"
|
||||
scope: punctuation.definition.constant.elixir
|
||||
push:
|
||||
- meta_scope: constant.other.symbol.single-quoted.elixir
|
||||
- match: "'"
|
||||
scope: punctuation.definition.constant.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- match: ':"'
|
||||
scope: punctuation.definition.constant.elixir
|
||||
push:
|
||||
- meta_scope: constant.other.symbol.double-quoted.elixir
|
||||
- match: '"'
|
||||
scope: punctuation.definition.constant.elixir
|
||||
pop: true
|
||||
- include: interpolated_elixir
|
||||
- include: escaped_char
|
||||
- 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
|
|
@ -0,0 +1,672 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: "F#"
|
||||
file_extensions:
|
||||
- fs
|
||||
- fsi
|
||||
- fsx
|
||||
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: records
|
||||
- include: strp_inlined
|
||||
- include: keywords
|
||||
- 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: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: 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
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: \s*(?=(->))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- 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: (\(\*(?!\)))
|
||||
captures:
|
||||
1: comment.block.fsharp
|
||||
push:
|
||||
- meta_scope: comment.block.fsharp
|
||||
- match: (\*\))
|
||||
captures:
|
||||
1: comment.block.fsharp
|
||||
pop: true
|
||||
- match: //.*$
|
||||
scope: comment.line.double-slash.fsharp
|
||||
common_binding_definition:
|
||||
- include: comments
|
||||
- include: attributes
|
||||
- match: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))\s*((?=,)|(?=\=))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: keywords
|
||||
- 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''._]+)\s*(when)'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: entity.name.type.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (?=:)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: "([[:alpha:]0-9'^._]+)"
|
||||
comment: Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: (\(|\))
|
||||
scope: keyword.symbol.fsharp
|
||||
- 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: definition
|
||||
- include: variables
|
||||
- include: keywords
|
||||
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: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: keyword.symbol.fsharp
|
||||
5: 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(let mutable|static let mutable|let inline|let|member val|static member inline|static member|default|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: common_binding_definition
|
||||
- match: '\b(static val mutable|val mutable|val)(\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: \n$
|
||||
pop: true
|
||||
- include: common_binding_definition
|
||||
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: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- match: '((''|\^)[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: 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.fsharp
|
||||
- include: constants
|
||||
- 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: generic_declaration
|
||||
- match: '(?!when|and|or\b)\b([\w0-9''`^._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: (\|)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
- 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|or|use|use\!|struct|while|mutable)(?!')\b
|
||||
scope: keyword.fsharp
|
||||
- match: '(&&&|\|\|\||\^\^\^|~~~|<<<|>>>|\|>|\->|\<\-|:>|:\?>|:|\[|\]|\;|<>|=|@|\|\||&&|{|}|\||_|\.\.|\,|\+|\-|\*|\/|\^|\!|\>|\>\=|\>\>|\<|\<\=|\(|\)|\<\<)'
|
||||
scope: keyword.symbol.fsharp
|
||||
member_declaration:
|
||||
- include: comments
|
||||
- include: common_declaration
|
||||
- match: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))\s*((?=,)|(?=\=))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: keywords
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\(|\))
|
||||
scope: keyword.symbol.fsharp
|
||||
- match: '(\?{0,1})([[:alpha:]0-9''`^._]+|``[[:alpha:]0-9''`^:,._ ]+``)\s*(:{0,1})(\s*([?[:alpha:]0-9''`<>._ ]+)){0,1}'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: 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: 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
|
||||
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
|
||||
- match: (<)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
push:
|
||||
- match: ((?<!:)>)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
pop: true
|
||||
- match: '((''|\^)``[[:alpha:]0-9`^:,._ ]+``|(''|\^)[[:alpha:]0-9`^:._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (static member|member|new)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
- include: common_binding_definition
|
||||
- match: '([\w0-9''`^._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: keywords
|
||||
- match: \s*(private|internal|public)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: '\s*(?=(=)|[\n=]|(\(\))|(as))'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- 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
|
||||
strp_inlined:
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: strp_inlined_body
|
||||
strp_inlined_body:
|
||||
- include: comments
|
||||
- include: anonymous_functions
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: strp_inlined_body
|
||||
- match: '(static member|member)\s*([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)\s*(:)'
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
2: variable.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
- include: compiler_directives
|
||||
- include: constants
|
||||
- include: strings
|
||||
- include: chars
|
||||
- include: double_tick
|
||||
- include: keywords
|
||||
- include: text
|
||||
- include: definition
|
||||
- include: attributes
|
||||
- include: keywords
|
||||
- include: cexprs
|
||||
- include: text
|
||||
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: '(\?{0,1})(``[[:alpha:]0-9''`^:,._ ]+``|[[:alpha:]0-9''`<>^._ ]\w*)'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
|
@ -0,0 +1,672 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: "F#"
|
||||
file_extensions:
|
||||
- fs
|
||||
- fsi
|
||||
- fsx
|
||||
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: records
|
||||
- include: strp_inlined
|
||||
- include: keywords
|
||||
- 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: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: 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
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: \s*(?=(->))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- 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: (\(\*(?!\)))
|
||||
captures:
|
||||
1: comment.block.fsharp
|
||||
push:
|
||||
- meta_scope: comment.block.fsharp
|
||||
- match: (\*\))
|
||||
captures:
|
||||
1: comment.block.fsharp
|
||||
pop: true
|
||||
- match: //.*$
|
||||
scope: comment.line.double-slash.fsharp
|
||||
common_binding_definition:
|
||||
- include: comments
|
||||
- include: attributes
|
||||
- match: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))\s*((?=,)|(?=\=))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: keywords
|
||||
- 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''._]+)\s*(when)'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: entity.name.type.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (?=:)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: "([[:alpha:]0-9'^._]+)"
|
||||
comment: Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: (\(|\))
|
||||
scope: keyword.symbol.fsharp
|
||||
- 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: definition
|
||||
- include: variables
|
||||
- include: keywords
|
||||
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: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: keyword.symbol.fsharp
|
||||
5: 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(let mutable|static let mutable|let inline|let|member val|static member inline|static member|default|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: common_binding_definition
|
||||
- match: '\b(static val mutable|val mutable|val)(\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: \n$
|
||||
pop: true
|
||||
- include: common_binding_definition
|
||||
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: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- match: '((''|\^)[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: 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.fsharp
|
||||
- include: constants
|
||||
- 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: generic_declaration
|
||||
- match: '(?!when|and|or\b)\b([\w0-9''`^._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: (\|)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
- 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|or|use|use\!|struct|while|mutable)(?!')\b
|
||||
scope: keyword.fsharp
|
||||
- match: '(&&&|\|\|\||\^\^\^|~~~|<<<|>>>|\|>|\->|\<\-|:>|:\?>|:|\[|\]|\;|<>|=|@|\|\||&&|{|}|\||_|\.\.|\,|\+|\-|\*|\/|\^|\!|\>|\>\=|\>\>|\<|\<\=|\(|\)|\<\<)'
|
||||
scope: keyword.symbol.fsharp
|
||||
member_declaration:
|
||||
- include: comments
|
||||
- include: common_declaration
|
||||
- match: (:)\s*(\()\s*(static member|member)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.symbol.fsharp
|
||||
3: keyword.fsharp
|
||||
push:
|
||||
- match: (\))\s*((?=,)|(?=\=))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: member_declaration
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: variables
|
||||
- include: keywords
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\(|\))
|
||||
scope: keyword.symbol.fsharp
|
||||
- match: '(\?{0,1})([[:alpha:]0-9''`^._]+|``[[:alpha:]0-9''`^:,._ ]+``)\s*(:{0,1})(\s*([?[:alpha:]0-9''`<>._ ]+)){0,1}'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
4: 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: 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
|
||||
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
|
||||
- match: (<)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
push:
|
||||
- match: ((?<!:)>)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
pop: true
|
||||
- match: '((''|\^)``[[:alpha:]0-9`^:,._ ]+``|(''|\^)[[:alpha:]0-9`^:._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- match: (static member|member|new)
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
- include: common_binding_definition
|
||||
- match: '([\w0-9''`^._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- include: keywords
|
||||
- match: \s*(private|internal|public)
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: '\s*(?=(=)|[\n=]|(\(\))|(as))'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- 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
|
||||
strp_inlined:
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: strp_inlined_body
|
||||
strp_inlined_body:
|
||||
- include: comments
|
||||
- include: anonymous_functions
|
||||
- match: '(\^[[:alpha:]0-9''._]+)'
|
||||
captures:
|
||||
1: entity.name.type.fsharp
|
||||
- match: \b(and|when|or)\b
|
||||
scope: keyword.fsharp
|
||||
- match: (\()
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
pop: true
|
||||
- include: strp_inlined_body
|
||||
- match: '(static member|member)\s*([[:alpha:]0-9''`<>^._]+|``[[:alpha:]0-9'' <>^._]+``)\s*(:)'
|
||||
captures:
|
||||
1: keyword.fsharp
|
||||
2: variable.fsharp
|
||||
3: keyword.symbol.fsharp
|
||||
- include: compiler_directives
|
||||
- include: constants
|
||||
- include: strings
|
||||
- include: chars
|
||||
- include: double_tick
|
||||
- include: keywords
|
||||
- include: text
|
||||
- include: definition
|
||||
- include: attributes
|
||||
- include: keywords
|
||||
- include: cexprs
|
||||
- include: text
|
||||
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: '(\?{0,1})(``[[:alpha:]0-9''`^:,._ ]+``|[[:alpha:]0-9''`<>^._ ]\w*)'
|
||||
captures:
|
||||
1: keyword.symbol.fsharp
|
||||
2: variable.parameter.fsharp
|
|
@ -0,0 +1,497 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
name: HTML (EEx)
|
||||
file_extensions:
|
||||
- html.eex
|
||||
first_line_match: (?i)<(!DOCTYPE\s*)?html
|
||||
scope: text.html.elixir
|
||||
|
||||
variables:
|
||||
unquoted_attribute_value: (?:[^\s<>/''"]|/(?!>))+
|
||||
not_equals_lookahead: (?=\s*[^\s=])
|
||||
|
||||
contexts:
|
||||
interpolation:
|
||||
- match: <%+[-=]?
|
||||
scope: punctuation.section.embedded.elixir
|
||||
embed: scope:source.elixir
|
||||
embed_scope: source.elixir.embedded.html
|
||||
escape: \%>
|
||||
escape_captures:
|
||||
0: punctuation.section.embedded.elixir
|
||||
|
||||
immediately-pop:
|
||||
- match: ''
|
||||
pop: true
|
||||
|
||||
else-pop:
|
||||
- match: (?=\S)
|
||||
pop: true
|
||||
|
||||
main:
|
||||
- include: interpolation
|
||||
- match: (<\?)(xml)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.xml.html
|
||||
push:
|
||||
- meta_scope: meta.tag.preprocessor.xml.html
|
||||
- match: '\?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-generic-attribute
|
||||
- include: string-double-quoted
|
||||
- include: string-single-quoted
|
||||
- match: <!--
|
||||
scope: punctuation.definition.comment.begin.html
|
||||
push:
|
||||
- meta_scope: comment.block.html
|
||||
- match: '(-*)--\s*>'
|
||||
scope: punctuation.definition.comment.end.html
|
||||
captures:
|
||||
1: invalid.illegal.bad-comments-or-CDATA.html
|
||||
pop: true
|
||||
- match: -{2,}
|
||||
scope: invalid.illegal.bad-comments-or-CDATA.html
|
||||
- match: <!
|
||||
scope: punctuation.definition.tag.html
|
||||
push:
|
||||
- meta_scope: meta.tag.sgml.html
|
||||
- match: ">"
|
||||
scope: punctuation.definition.tag.html
|
||||
pop: true
|
||||
- match: (?i:DOCTYPE)
|
||||
scope: entity.name.tag.doctype.html
|
||||
push:
|
||||
- meta_scope: meta.tag.sgml.doctype.html
|
||||
- match: (?=>)
|
||||
pop: true
|
||||
- match: '"[^">]*"'
|
||||
scope: string.quoted.double.doctype.identifiers-and-DTDs.html
|
||||
- match: '\[CDATA\['
|
||||
push:
|
||||
- meta_scope: constant.other.inline-data.html
|
||||
- match: ']](?=>)'
|
||||
pop: true
|
||||
- match: (\s*)(?!--|>)\S(\s*)
|
||||
scope: invalid.illegal.bad-comments-or-CDATA.html
|
||||
- match: (</?)([a-z_][a-z0-9:_]*-[a-z0-9:_-]+)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.custom.html
|
||||
push:
|
||||
- meta_scope: meta.tag.custom.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: '(?:^\s+)?(<)((?i:style))\b(?![^>]*/>)'
|
||||
captures:
|
||||
0: meta.tag.style.begin.html
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.style.html
|
||||
push:
|
||||
- match: (?i)(</)(style)(>)
|
||||
captures:
|
||||
0: meta.tag.style.end.html
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.style.html
|
||||
3: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- match: '(>)\s*'
|
||||
captures:
|
||||
1: meta.tag.style.begin.html punctuation.definition.tag.end.html
|
||||
embed: scope:source.css
|
||||
embed_scope: source.css.embedded.html
|
||||
escape: (?i)(?=</style)
|
||||
- match: ''
|
||||
push:
|
||||
- meta_scope: meta.tag.style.begin.html
|
||||
- match: '(?=>)'
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: '(<)((?i:script))\b(?![^>]*/>)(?![^>]*(?i:type.?=.?text/((?!javascript).*)))'
|
||||
captures:
|
||||
0: meta.tag.script.begin.html
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.script.html
|
||||
push:
|
||||
- match: (?i)(-->)?\s*(</)(script)(>)
|
||||
captures:
|
||||
0: meta.tag.script.end.html
|
||||
1: comment.block.html punctuation.definition.comment.html
|
||||
2: punctuation.definition.tag.begin.html
|
||||
3: entity.name.tag.script.html
|
||||
4: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- match: '(>)\s*(<!--)?'
|
||||
captures:
|
||||
1: meta.tag.script.begin.html punctuation.definition.tag.end.html
|
||||
2: comment.block.html punctuation.definition.comment.html
|
||||
embed: scope:source.js
|
||||
embed_scope: source.js.embedded.html
|
||||
escape: (?i)(?=(-->)?\s*</script)
|
||||
- match: ''
|
||||
push:
|
||||
- meta_scope: meta.tag.script.begin.html
|
||||
- match: '(?=>)'
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:body|head|html)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.structure.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.structure.any.html
|
||||
- match: '>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:address|blockquote|dd|div|section|article|aside|header|footer|nav|menu|dl|dt|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|pre)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.block.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.block.any.html
|
||||
- match: '>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:hr)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.block.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.block.any.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:form|fieldset)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.block.form.html
|
||||
push:
|
||||
- meta_scope: meta.tag.block.form.html
|
||||
- match: '>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:abbr|acronym|area|b|base|basefont|bdo|big|br|caption|cite|code|del|dfn|em|font|head|html|i|img|ins|isindex|kbd|li|link|map|meta|noscript|param|q|s|samp|script|small|span|strike|strong|style|sub|sup|title|tt|u|var)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.inline.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.inline.any.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:button|input|label|legend|optgroup|option|select|textarea)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.inline.form.html
|
||||
push:
|
||||
- meta_scope: meta.tag.inline.form.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- match: (</?)((?i:a)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.inline.a.html
|
||||
push:
|
||||
- meta_scope: meta.tag.inline.a.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- include: interpolation
|
||||
- match: (</?)((?i:col|colgroup|table|tbody|td|tfoot|th|thead|tr)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.inline.table.html
|
||||
push:
|
||||
- meta_scope: meta.tag.inline.table.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- include: interpolation
|
||||
- match: (</?)([A-Za-z0-9:_]+-[A-Za-z0-9:_-]+)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: invalid.illegal.uppercase-custom-tag-name.html
|
||||
push:
|
||||
- meta_scope: meta.tag.custom.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- include: interpolation
|
||||
- match: (</?)([a-zA-Z0-9:]+)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.other.html
|
||||
push:
|
||||
- meta_scope: meta.tag.other.html
|
||||
- match: '(?: ?/)?>'
|
||||
scope: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-attributes
|
||||
- include: interpolation
|
||||
- include: entities
|
||||
- match: <>
|
||||
scope: invalid.illegal.incomplete.html
|
||||
entities-common:
|
||||
- match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)
|
||||
scope: constant.character.entity.html
|
||||
captures:
|
||||
1: punctuation.definition.entity.html
|
||||
3: punctuation.definition.entity.html
|
||||
attribute-entities:
|
||||
- include: entities-common
|
||||
entities:
|
||||
- include: entities-common
|
||||
- match: '&'
|
||||
scope: invalid.illegal.bad-ampersand.html
|
||||
string-double-quoted:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: entities
|
||||
string-single-quoted:
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: entities
|
||||
|
||||
tag-generic-attribute:
|
||||
- match: '[a-zA-Z0-9:\-_.]+'
|
||||
scope: entity.other.attribute-name.html
|
||||
push:
|
||||
- tag-generic-attribute-meta
|
||||
- tag-generic-attribute-equals
|
||||
|
||||
- match: '[a-zA-Z0-9:\-_.]+'
|
||||
scope: entity.other.attribute-name.html
|
||||
|
||||
tag-generic-attribute-meta:
|
||||
- meta_scope: meta.attribute-with-value.html
|
||||
- include: immediately-pop
|
||||
|
||||
tag-generic-attribute-equals:
|
||||
- match: '='
|
||||
scope: punctuation.separator.key-value.html
|
||||
set: tag-generic-attribute-value
|
||||
- match: '{{not_equals_lookahead}}'
|
||||
pop: true
|
||||
|
||||
tag-generic-attribute-value:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- include: interpolation
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- include: interpolation
|
||||
- match: '{{unquoted_attribute_value}}'
|
||||
scope: string.unquoted.html
|
||||
- include: else-pop
|
||||
|
||||
tag-class-attribute:
|
||||
- match: '\bclass\b'
|
||||
scope: entity.other.attribute-name.class.html
|
||||
push:
|
||||
- tag-class-attribute-meta
|
||||
- tag-class-attribute-equals
|
||||
|
||||
tag-class-attribute-meta:
|
||||
- meta_scope: meta.attribute-with-value.class.html
|
||||
- include: immediately-pop
|
||||
|
||||
tag-class-attribute-equals:
|
||||
- match: '='
|
||||
scope: punctuation.separator.key-value.html
|
||||
set: tag-class-attribute-value
|
||||
- match: '{{not_equals_lookahead}}'
|
||||
pop: true
|
||||
|
||||
tag-class-attribute-value:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- meta_content_scope: meta.class-name.html
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- include: interpolation
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- meta_content_scope: meta.class-name.html
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- include: interpolation
|
||||
- match: '{{unquoted_attribute_value}}'
|
||||
scope: string.unquoted.html meta.class-name.html
|
||||
- include: else-pop
|
||||
|
||||
tag-id-attribute:
|
||||
- match: '\bid\b'
|
||||
scope: entity.other.attribute-name.id.html
|
||||
push:
|
||||
- tag-id-attribute-meta
|
||||
- tag-id-attribute-equals
|
||||
|
||||
tag-id-attribute-meta:
|
||||
- meta_scope: meta.attribute-with-value.id.html
|
||||
- include: immediately-pop
|
||||
|
||||
tag-id-attribute-equals:
|
||||
- match: '='
|
||||
scope: punctuation.separator.key-value.html
|
||||
set: tag-id-attribute-value
|
||||
- match: '{{not_equals_lookahead}}'
|
||||
pop: true
|
||||
|
||||
tag-id-attribute-value:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- meta_content_scope: meta.toc-list.id.html
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.html
|
||||
set:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- meta_content_scope: meta.toc-list.id.html
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: attribute-entities
|
||||
- match: '{{unquoted_attribute_value}}'
|
||||
scope: string.unquoted.html meta.toc-list.id.html
|
||||
- include: else-pop
|
||||
|
||||
tag-style-attribute:
|
||||
- match: '\bstyle\b'
|
||||
scope: entity.other.attribute-name.style.html
|
||||
push:
|
||||
- tag-style-attribute-meta
|
||||
- tag-style-attribute-equals
|
||||
|
||||
tag-style-attribute-meta:
|
||||
- meta_scope: meta.attribute-with-value.style.html
|
||||
- include: immediately-pop
|
||||
|
||||
tag-style-attribute-equals:
|
||||
- match: '='
|
||||
scope: punctuation.separator.key-value.html
|
||||
set: tag-style-attribute-value
|
||||
- match: '{{not_equals_lookahead}}'
|
||||
pop: true
|
||||
|
||||
tag-style-attribute-value:
|
||||
- match: '"'
|
||||
scope: string.quoted.double punctuation.definition.string.begin.html
|
||||
embed: scope:source.css#rule-list-body
|
||||
embed_scope: source.css
|
||||
escape: '"'
|
||||
escape_captures:
|
||||
0: string.quoted.double punctuation.definition.string.end.html
|
||||
- match: "'"
|
||||
scope: string.quoted.single punctuation.definition.string.begin.html
|
||||
embed: scope:source.css#rule-list-body
|
||||
embed_scope: source.css
|
||||
escape: "'"
|
||||
escape_captures:
|
||||
0: string.quoted.single punctuation.definition.string.end.html
|
||||
- include: else-pop
|
||||
|
||||
tag-event-attribute:
|
||||
- match: |-
|
||||
(?x)\bon(
|
||||
abort|autocomplete|autocompleteerror|blur|cancel|canplay
|
||||
|canplaythrough|change|click|close|contextmenu|cuechange|dblclick|drag
|
||||
|dragend|dragenter|dragexit|dragleave|dragover|dragstart|drop
|
||||
|durationchange|emptied|ended|error|focus|input|invalid|keydown
|
||||
|keypress|keyup|load|loadeddata|loadedmetadata|loadstart|mousedown
|
||||
|mouseenter|mouseleave|mousemove|mouseout|mouseover|mouseup|mousewheel
|
||||
|pause|play|playing|progress|ratechange|reset|resize|scroll|seeked
|
||||
|seeking|select|show|sort|stalled|submit|suspend|timeupdate|toggle
|
||||
|volumechange|waiting
|
||||
)\b
|
||||
scope: entity.other.attribute-name.event.html
|
||||
push:
|
||||
- tag-event-attribute-meta
|
||||
- tag-event-attribute-equals
|
||||
|
||||
tag-event-attribute-meta:
|
||||
- meta_scope: meta.attribute-with-value.event.html
|
||||
- include: immediately-pop
|
||||
|
||||
tag-event-attribute-equals:
|
||||
- match: '='
|
||||
scope: punctuation.separator.key-value.html
|
||||
set: tag-event-attribute-value
|
||||
- match: '{{not_equals_lookahead}}'
|
||||
pop: true
|
||||
|
||||
tag-event-attribute-value:
|
||||
- match: '"'
|
||||
scope: string.quoted.double punctuation.definition.string.begin.html
|
||||
embed: scope:source.js
|
||||
embed_scope: meta.attribute-with-value.event.html
|
||||
escape: '"'
|
||||
escape_captures:
|
||||
0: string.quoted.double punctuation.definition.string.end.html
|
||||
- match: "'"
|
||||
scope: string.quoted.single punctuation.definition.string.begin.html meta.attribute-with-value.event.html
|
||||
embed: scope:source.js
|
||||
embed_scope: meta.attribute-with-value.event.html
|
||||
escape: "'"
|
||||
escape_captures:
|
||||
0: string.quoted.single punctuation.definition.string.end.html
|
||||
- include: else-pop
|
||||
|
||||
# This is to prevent breaking syntaxes referencing the old context name
|
||||
tag-stuff:
|
||||
- include: tag-attributes
|
||||
|
||||
tag-attributes:
|
||||
- include: tag-id-attribute
|
||||
- include: tag-class-attribute
|
||||
- include: tag-style-attribute
|
||||
- include: tag-event-attribute
|
||||
- include: tag-generic-attribute
|
||||
|
|
@ -0,0 +1,662 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: HTML (Twig)
|
||||
file_extensions:
|
||||
- twig
|
||||
- html.twig
|
||||
scope: text.html.twig
|
||||
contexts:
|
||||
main:
|
||||
- match: '(<)([a-zA-Z0-9:]++)(?=[^>]*></\2>)'
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.html
|
||||
push:
|
||||
- meta_scope: meta.tag.any.html
|
||||
- match: (>(<)/)(\2)(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: meta.scope.between-tag-pair.html
|
||||
3: entity.name.tag.html
|
||||
4: punctuation.definition.tag.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: (<\?)(xml)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.xml.html
|
||||
push:
|
||||
- meta_scope: meta.tag.preprocessor.xml.html
|
||||
- match: (\?>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.xml.html
|
||||
pop: true
|
||||
- include: tag-generic-attribute
|
||||
- include: string-double-quoted
|
||||
- include: string-single-quoted
|
||||
- match: <!--
|
||||
captures:
|
||||
0: punctuation.definition.comment.html
|
||||
push:
|
||||
- meta_scope: comment.block.html
|
||||
- match: '--\s*>'
|
||||
captures:
|
||||
0: punctuation.definition.comment.html
|
||||
pop: true
|
||||
- match: "--"
|
||||
scope: invalid.illegal.bad-comments-or-CDATA.html
|
||||
- include: embedded-code
|
||||
- match: <!
|
||||
captures:
|
||||
0: punctuation.definition.tag.html
|
||||
push:
|
||||
- meta_scope: meta.tag.sgml.html
|
||||
- match: ">"
|
||||
captures:
|
||||
0: punctuation.definition.tag.html
|
||||
pop: true
|
||||
- match: (?i:DOCTYPE)
|
||||
captures:
|
||||
1: entity.name.tag.doctype.html
|
||||
push:
|
||||
- meta_scope: meta.tag.sgml.doctype.html
|
||||
- match: (?=>)
|
||||
captures:
|
||||
1: entity.name.tag.doctype.html
|
||||
pop: true
|
||||
- match: '"[^">]*"'
|
||||
scope: string.quoted.double.doctype.identifiers-and-DTDs.html
|
||||
- match: '\[CDATA\['
|
||||
push:
|
||||
- meta_scope: constant.other.inline-data.html
|
||||
- match: "]](?=>)"
|
||||
pop: true
|
||||
- match: (\s*)(?!--|>)\S(\s*)
|
||||
scope: invalid.illegal.bad-comments-or-CDATA.html
|
||||
- include: embedded-code
|
||||
- match: '(?:^\s+)?(<)((?i:style))\b(?![^>]*/>)'
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.style.html
|
||||
3: punctuation.definition.tag.html
|
||||
push:
|
||||
- meta_scope: source.css.embedded.html
|
||||
- match: (</)((?i:style))(>)(?:\s*\n)?
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.style.html
|
||||
3: punctuation.definition.tag.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: (>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
push:
|
||||
- match: (?=</(?i:style))
|
||||
pop: true
|
||||
- include: embedded-code
|
||||
- include: scope:source.css
|
||||
- match: '(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)'
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.script.html
|
||||
push:
|
||||
- meta_scope: source.js.embedded.html
|
||||
- match: (?<=</(script|SCRIPT))(>)(?:\s*\n)?
|
||||
captures:
|
||||
2: punctuation.definition.tag.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: (?<!</(?:script|SCRIPT))(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.script.html
|
||||
push:
|
||||
- match: (</)((?i:script))
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.script.html
|
||||
pop: true
|
||||
- match: (//).*?((?=</script)|$\n?)
|
||||
scope: comment.line.double-slash.js
|
||||
captures:
|
||||
1: punctuation.definition.comment.js
|
||||
- match: /\*
|
||||
captures:
|
||||
0: punctuation.definition.comment.js
|
||||
push:
|
||||
- meta_scope: comment.block.js
|
||||
- match: \*/|(?=</script)
|
||||
captures:
|
||||
0: punctuation.definition.comment.js
|
||||
pop: true
|
||||
- include: php
|
||||
- include: twig-print-tag
|
||||
- include: twig-statement-tag
|
||||
- include: twig-comment-tag
|
||||
- include: scope:source.js
|
||||
- match: (</?)((?i:body|head|html)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.structure.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.structure.any.html
|
||||
- match: (>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.html
|
||||
2: entity.name.tag.structure.any.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: (</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.block.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.block.any.html
|
||||
- match: (>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: (</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\b)
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.inline.any.html
|
||||
push:
|
||||
- meta_scope: meta.tag.inline.any.html
|
||||
- match: "((?: ?/)?>)"
|
||||
captures:
|
||||
1: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- match: "(</?)([a-zA-Z0-9:]+)"
|
||||
captures:
|
||||
1: punctuation.definition.tag.begin.html
|
||||
2: entity.name.tag.other.html
|
||||
push:
|
||||
- meta_scope: meta.tag.other.html
|
||||
- match: (>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.end.html
|
||||
pop: true
|
||||
- include: tag-stuff
|
||||
- include: entities
|
||||
- match: <>
|
||||
scope: invalid.illegal.incomplete.html
|
||||
- match: <
|
||||
scope: invalid.illegal.bad-angle-bracket.html
|
||||
- include: twig-print-tag
|
||||
- include: twig-statement-tag
|
||||
- include: twig-comment-tag
|
||||
embedded-code:
|
||||
- include: ruby
|
||||
- include: php
|
||||
- include: twig-print-tag
|
||||
- include: twig-statement-tag
|
||||
- include: twig-comment-tag
|
||||
- include: python
|
||||
entities:
|
||||
- match: "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)"
|
||||
scope: constant.character.entity.html
|
||||
captures:
|
||||
1: punctuation.definition.entity.html
|
||||
3: punctuation.definition.entity.html
|
||||
- match: "&"
|
||||
scope: invalid.illegal.bad-ampersand.html
|
||||
php:
|
||||
- match: (?=(^\s*)?<\?)
|
||||
push:
|
||||
- match: (?!(^\s*)?<\?)
|
||||
pop: true
|
||||
- include: scope:text.html.php
|
||||
python:
|
||||
- match: (?:^\s*)<\?python(?!.*\?>)
|
||||
push:
|
||||
- meta_scope: source.python.embedded.html
|
||||
- match: \?>(?:\s*$\n)?
|
||||
pop: true
|
||||
- include: scope:source.python
|
||||
ruby:
|
||||
- match: "<%+#"
|
||||
captures:
|
||||
0: punctuation.definition.comment.erb
|
||||
push:
|
||||
- meta_scope: comment.block.erb
|
||||
- match: "%>"
|
||||
captures:
|
||||
0: punctuation.definition.comment.erb
|
||||
pop: true
|
||||
- match: <%+(?!>)=?
|
||||
captures:
|
||||
0: punctuation.section.embedded.ruby
|
||||
push:
|
||||
- meta_scope: source.ruby.embedded.html
|
||||
- match: "-?%>"
|
||||
captures:
|
||||
0: punctuation.section.embedded.ruby
|
||||
pop: true
|
||||
- match: (#).*?(?=-?%>)
|
||||
scope: comment.line.number-sign.ruby
|
||||
captures:
|
||||
1: punctuation.definition.comment.ruby
|
||||
- include: scope:source.ruby
|
||||
- match: <\?r(?!>)=?
|
||||
captures:
|
||||
0: punctuation.section.embedded.ruby.nitro
|
||||
push:
|
||||
- meta_scope: source.ruby.nitro.embedded.html
|
||||
- match: '-?\?>'
|
||||
captures:
|
||||
0: punctuation.section.embedded.ruby.nitro
|
||||
pop: true
|
||||
- match: (#).*?(?=-?\?>)
|
||||
scope: comment.line.number-sign.ruby.nitro
|
||||
captures:
|
||||
1: punctuation.definition.comment.ruby.nitro
|
||||
- include: scope:source.ruby
|
||||
string-double-quoted:
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: embedded-code
|
||||
- include: entities
|
||||
string-single-quoted:
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: embedded-code
|
||||
- include: entities
|
||||
tag-generic-attribute:
|
||||
- match: '\b([a-zA-Z\-:]+)'
|
||||
scope: entity.other.attribute-name.html
|
||||
tag-id-attribute:
|
||||
- match: \b(id)\b\s*(=)
|
||||
captures:
|
||||
1: entity.other.attribute-name.id.html
|
||||
2: punctuation.separator.key-value.html
|
||||
push:
|
||||
- meta_scope: meta.attribute-with-value.id.html
|
||||
- match: (?<='|")
|
||||
captures:
|
||||
1: entity.other.attribute-name.id.html
|
||||
2: punctuation.separator.key-value.html
|
||||
pop: true
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.double.html
|
||||
- meta_content_scope: meta.toc-list.id.html
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: embedded-code
|
||||
- include: entities
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.html
|
||||
push:
|
||||
- meta_scope: string.quoted.single.html
|
||||
- meta_content_scope: meta.toc-list.id.html
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.html
|
||||
pop: true
|
||||
- include: embedded-code
|
||||
- include: entities
|
||||
tag-stuff:
|
||||
- include: tag-id-attribute
|
||||
- include: tag-generic-attribute
|
||||
- include: string-double-quoted
|
||||
- include: string-single-quoted
|
||||
- include: embedded-code
|
||||
twig-arrays:
|
||||
- match: '(?<=[\s\(\{\[:,])\['
|
||||
captures:
|
||||
0: punctuation.section.array.begin.twig
|
||||
push:
|
||||
- meta_scope: meta.array.twig
|
||||
- match: '\]'
|
||||
captures:
|
||||
0: punctuation.section.array.end.twig
|
||||
pop: true
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
- include: twig-constants
|
||||
- include: twig-strings
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- match: ","
|
||||
scope: punctuation.separator.object.twig
|
||||
twig-comment-tag:
|
||||
- match: '\{#-?'
|
||||
captures:
|
||||
0: punctuation.definition.comment.begin.twig
|
||||
push:
|
||||
- meta_scope: comment.block.twig
|
||||
- match: '-?#\}'
|
||||
captures:
|
||||
0: punctuation.definition.comment.end.twig
|
||||
pop: true
|
||||
twig-constants:
|
||||
- match: '(?i)(?<=[\s\[\(\{:,])(?:true|false|null|none)(?=[\s\)\]\}\,])'
|
||||
scope: constant.language.twig
|
||||
- match: '(?<=[\s\[\(\{:,]|\.\.|\*\*)[0-9]+(?:\.[0-9]+)?(?=[\s\)\]\}\,]|\.\.|\*\*)'
|
||||
scope: constant.numeric.twig
|
||||
twig-filters:
|
||||
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\s\|\]\}\):,]|\.\.|\*\*)'
|
||||
captures:
|
||||
1: support.function.twig
|
||||
twig-filters-ud:
|
||||
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)'
|
||||
captures:
|
||||
1: meta.function-call.other.twig
|
||||
twig-filters-warg:
|
||||
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\()'
|
||||
captures:
|
||||
1: support.function.twig
|
||||
2: punctuation.definition.parameters.begin.twig
|
||||
push:
|
||||
- meta_content_scope: meta.function.arguments.twig
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
twig-filters-warg-ud:
|
||||
- match: '(?<=(?:[a-zA-Z0-9_\x{7f}-\x{ff}\]\)\''\"]\|)|\{%\sfilter\s)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(\()'
|
||||
captures:
|
||||
1: meta.function-call.other.twig
|
||||
2: punctuation.definition.parameters.begin.twig
|
||||
push:
|
||||
- meta_content_scope: meta.function.arguments.twig
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
twig-functions:
|
||||
- match: (?<=is\s)(defined|empty|even|iterable|odd)
|
||||
captures:
|
||||
1: support.function.twig
|
||||
twig-functions-warg:
|
||||
- match: '(?<=[\s\(\[\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\()'
|
||||
captures:
|
||||
1: support.function.twig
|
||||
2: punctuation.definition.parameters.begin.twig
|
||||
push:
|
||||
- meta_content_scope: meta.function.arguments.twig
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
twig-hashes:
|
||||
- match: '(?<=[\s\(\{\[:,])\{'
|
||||
captures:
|
||||
0: punctuation.section.hash.begin.twig
|
||||
push:
|
||||
- meta_scope: meta.hash.twig
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.section.hash.end.twig
|
||||
pop: true
|
||||
- include: twig-hashes
|
||||
- include: twig-arrays
|
||||
- include: twig-constants
|
||||
- include: twig-strings
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- match: ":"
|
||||
scope: punctuation.separator.key-value.twig
|
||||
- match: ","
|
||||
scope: punctuation.separator.object.twig
|
||||
twig-keywords:
|
||||
- match: (?<=\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\s)
|
||||
scope: keyword.control.twig
|
||||
twig-macros:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=[\s\(\[\{:,])
|
||||
([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
||||
(?:
|
||||
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
||||
)?
|
||||
(\()
|
||||
captures:
|
||||
1: meta.function-call.twig
|
||||
2: punctuation.separator.property.twig
|
||||
3: variable.other.property.twig
|
||||
4: punctuation.definition.parameters.begin.twig
|
||||
push:
|
||||
- meta_content_scope: meta.function.arguments.twig
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-operators
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
twig-objects:
|
||||
- match: '(?<=[\s\{\[\(:,])([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?=[\s\}\[\]\(\)\.\|,:])'
|
||||
captures:
|
||||
1: variable.other.twig
|
||||
twig-operators:
|
||||
- match: (?<=\s)(\+|-|//?|%|\*\*?)(?=\s)
|
||||
captures:
|
||||
1: keyword.operator.arithmetic.twig
|
||||
- match: (?<=\s)(=|~)(?=\s)
|
||||
captures:
|
||||
1: keyword.operator.assignment.twig
|
||||
- match: (?<=\s)(b-(?:and|or|xor))(?=\s)
|
||||
captures:
|
||||
1: keyword.operator.bitwise.twig
|
||||
- match: '(?<=\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\s)'
|
||||
captures:
|
||||
1: keyword.operator.comparison.twig
|
||||
- match: (?<=\s)(\?|:|and|not|or)(?=\s)
|
||||
captures:
|
||||
1: keyword.operator.logical.twig
|
||||
- match: '(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]\)''"])\.\.(?=[a-zA-Z0-9_\x{7f}-\x{ff}''"])'
|
||||
captures:
|
||||
0: keyword.operator.other.twig
|
||||
- match: '(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]\}\)''"])\|(?=[a-zA-Z_\x{7f}-\x{ff}])'
|
||||
captures:
|
||||
0: keyword.operator.other.twig
|
||||
twig-print-tag:
|
||||
- match: '\{\{-?'
|
||||
captures:
|
||||
0: punctuation.section.tag.twig
|
||||
push:
|
||||
- meta_scope: meta.tag.template.value.twig
|
||||
- match: '-?\}\}'
|
||||
captures:
|
||||
0: punctuation.section.tag.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-operators
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
twig-properties:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}])
|
||||
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
||||
(?=[\.\s\|\[\)\]\}:,])
|
||||
captures:
|
||||
1: punctuation.separator.property.twig
|
||||
2: variable.other.property.twig
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}])
|
||||
(\.)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)
|
||||
(\()
|
||||
captures:
|
||||
1: punctuation.separator.property.twig
|
||||
2: variable.other.property.twig
|
||||
3: punctuation.definition.parameters.begin.twig
|
||||
push:
|
||||
- meta_content_scope: meta.function.arguments.twig
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.end.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=[a-zA-Z0-9_\x{7f}-\x{ff}\]])
|
||||
(?:
|
||||
(\[)('[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*')(\])
|
||||
|(\[)("[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*")(\])
|
||||
|(\[)([a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(\])
|
||||
)
|
||||
captures:
|
||||
1: punctuation.section.array.begin.twig
|
||||
2: variable.other.property.twig
|
||||
3: punctuation.section.array.end.twig
|
||||
4: punctuation.section.array.begin.twig
|
||||
5: variable.other.property.twig
|
||||
6: punctuation.section.array.end.twig
|
||||
7: punctuation.section.array.begin.twig
|
||||
8: variable.other.property.twig
|
||||
9: punctuation.section.array.end.twig
|
||||
twig-statement-tag:
|
||||
- match: '\{%-?'
|
||||
captures:
|
||||
0: punctuation.section.tag.twig
|
||||
push:
|
||||
- meta_scope: meta.tag.template.block.twig
|
||||
- match: '-?%\}'
|
||||
captures:
|
||||
0: punctuation.section.tag.twig
|
||||
pop: true
|
||||
- include: twig-constants
|
||||
- include: twig-keywords
|
||||
- include: twig-operators
|
||||
- include: twig-functions-warg
|
||||
- include: twig-functions
|
||||
- include: twig-macros
|
||||
- include: twig-filters-warg
|
||||
- include: twig-filters
|
||||
- include: twig-filters-warg-ud
|
||||
- include: twig-filters-ud
|
||||
- include: twig-objects
|
||||
- include: twig-properties
|
||||
- include: twig-strings
|
||||
- include: twig-arrays
|
||||
- include: twig-hashes
|
||||
twig-strings:
|
||||
- match: (?:(?<!\\)|(?<=\\\\))'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.twig
|
||||
push:
|
||||
- meta_scope: string.quoted.single.twig
|
||||
- match: (?:(?<!\\)|(?<=\\\\))'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.twig
|
||||
pop: true
|
||||
- match: (?:(?<!\\)|(?<=\\\\))"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.twig
|
||||
push:
|
||||
- meta_scope: string.quoted.double.twig
|
||||
- match: (?:(?<!\\)|(?<=\\\\))"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.twig
|
||||
pop: true
|
|
@ -0,0 +1,23 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: hosts
|
||||
file_extensions:
|
||||
- hosts
|
||||
scope: source.hosts
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- scope: comment.line.number-sign
|
||||
match: \#.*
|
||||
comment: comment
|
||||
|
||||
- match: ^\s*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|[0-9a-f:]+)
|
||||
comment: ipaddress
|
||||
scope: constant.numeric.ipaddress
|
||||
|
||||
|
||||
- match: \s(localhost|ip6-loopback|ip6-localhost|ip6-localnet|ip6-mcastprefix|ip6-allnodes|ip6-allrouters|ip6-allhosts|broadcasthost)\b
|
||||
scope: keyword.host.predefined}
|
||||
comment: prefdfined
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: INI
|
||||
file_extensions:
|
||||
- ini
|
||||
- INI
|
||||
- inf
|
||||
- INF
|
||||
- reg
|
||||
- REG
|
||||
- lng
|
||||
- cfg
|
||||
- CFG
|
||||
- desktop
|
||||
- url
|
||||
- URL
|
||||
- .editorconfig
|
||||
- .hgrc
|
||||
- hgrc
|
||||
scope: source.ini
|
||||
contexts:
|
||||
main:
|
||||
- match: ^\s*(;|#).*$\n?
|
||||
scope: comment.line.semicolon.ini
|
||||
captures:
|
||||
1: punctuation.definition.comment.ini
|
||||
- match: '^\s*(\[)(.*?)(\])'
|
||||
scope: meta.tag.section.ini
|
||||
captures:
|
||||
1: punctuation.definition.section.ini
|
||||
2: entity.section.ini
|
||||
3: punctuation.definition.section.ini
|
||||
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
||||
scope: meta.declaration.ini
|
||||
captures:
|
||||
1: meta.property.ini
|
||||
2: punctuation.definition.quote.ini
|
||||
3: keyword.name.ini
|
||||
4: punctuation.definition.quote.ini
|
||||
5: punctuation.definition.equals.ini
|
||||
6: meta.value.ini
|
||||
7: punctuation.definition.quote.ini
|
||||
8: string.name.value.ini
|
||||
9: punctuation.definition.quote.ini
|
||||
10: comment.declarationline.semicolon.ini
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,398 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Kotlin
|
||||
file_extensions:
|
||||
- kt
|
||||
- kts
|
||||
scope: source.Kotlin
|
||||
contexts:
|
||||
main:
|
||||
- include: comments
|
||||
- match: '^\s*(package)\b(?:\s*([^ ;$]+)\s*)?'
|
||||
captures:
|
||||
1: keyword.other.kotlin
|
||||
2: entity.name.package.kotlin
|
||||
- include: imports
|
||||
- include: statements
|
||||
classes:
|
||||
- match: (?<!::)(?=\b(?:companion|class|object|interface)\b)
|
||||
push:
|
||||
- match: '(?=$|\})'
|
||||
pop: true
|
||||
- include: comments
|
||||
- match: \b(companion\s*)?(class|object|interface)\b
|
||||
captures:
|
||||
1: storage.modifier.kotlin
|
||||
2: storage.modifier.kotlin
|
||||
push:
|
||||
- match: '(?=<|\{|\(|:|$)'
|
||||
pop: true
|
||||
- include: comments
|
||||
- match: \w+
|
||||
scope: entity.name.type.class.kotlin
|
||||
- match: <
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: generics
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: parameters
|
||||
- match: (:)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: "(?={|$)"
|
||||
pop: true
|
||||
- match: \w+
|
||||
scope: entity.other.inherited-class.kotlin
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: expressions
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: statements
|
||||
comments:
|
||||
- match: /\*
|
||||
captures:
|
||||
0: punctuation.definition.comment.kotlin
|
||||
push:
|
||||
- meta_scope: comment.block.kotlin
|
||||
- match: \*/
|
||||
captures:
|
||||
0: punctuation.definition.comment.kotlin
|
||||
pop: true
|
||||
- match: \s*((//).*$\n?)
|
||||
captures:
|
||||
1: comment.line.double-slash.kotlin
|
||||
2: punctuation.definition.comment.kotlin
|
||||
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]+)?)([LlFf])?\b'
|
||||
scope: constant.numeric.kotlin
|
||||
- match: '\b([A-Z][A-Z0-9_]+)\b'
|
||||
scope: constant.other.kotlin
|
||||
expressions:
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: expressions
|
||||
- include: types
|
||||
- include: strings
|
||||
- include: constants
|
||||
- include: comments
|
||||
- include: keywords
|
||||
functions:
|
||||
- match: (?=\s*\b(?:fun)\b)
|
||||
push:
|
||||
- match: '(?=$|\})'
|
||||
pop: true
|
||||
- match: \b(fun)\b
|
||||
captures:
|
||||
1: keyword.other.kotlin
|
||||
push:
|
||||
- match: (?=\()
|
||||
pop: true
|
||||
- match: <
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: generics
|
||||
- match: '([\.<\?>\w]+\.)?(\w+)'
|
||||
captures:
|
||||
2: entity.name.function.kotlin
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: parameters
|
||||
- match: (:)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: "(?={|=|$)"
|
||||
pop: true
|
||||
- include: types
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '(?=\})'
|
||||
pop: true
|
||||
- include: statements
|
||||
- match: (=)
|
||||
captures:
|
||||
1: keyword.operator.assignment.kotlin
|
||||
push:
|
||||
- match: (?=$)
|
||||
pop: true
|
||||
- include: expressions
|
||||
generics:
|
||||
- match: (:)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: (?=,|>)
|
||||
pop: true
|
||||
- include: types
|
||||
- include: keywords
|
||||
- match: \w+
|
||||
scope: storage.type.generic.kotlin
|
||||
getters-and-setters:
|
||||
- match: \b(get)\b\s*\(\s*\)
|
||||
captures:
|
||||
1: entity.name.function.kotlin
|
||||
push:
|
||||
- match: '\}|(?=\bset\b)|$'
|
||||
pop: true
|
||||
- match: (=)
|
||||
captures:
|
||||
1: keyword.operator.assignment.kotlin
|
||||
push:
|
||||
- match: (?=$|\bset\b)
|
||||
pop: true
|
||||
- include: expressions
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: expressions
|
||||
- match: \b(set)\b\s*(?=\()
|
||||
captures:
|
||||
1: entity.name.function.kotlin
|
||||
push:
|
||||
- match: '\}|(?=\bget\b)|$'
|
||||
pop: true
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: parameters
|
||||
- match: (=)
|
||||
captures:
|
||||
1: keyword.operator.assignment.kotlin
|
||||
push:
|
||||
- match: (?=$|\bset\b)
|
||||
pop: true
|
||||
- include: expressions
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: expressions
|
||||
imports:
|
||||
- match: '^\s*(import)\s+[^ $]+\s+(as)?'
|
||||
captures:
|
||||
1: keyword.other.kotlin
|
||||
2: keyword.other.kotlin
|
||||
keywords:
|
||||
- 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|!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.assign.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:
|
||||
- match: \b(namespace)\b
|
||||
scope: keyword.other.kotlin
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: statements
|
||||
parameters:
|
||||
- match: (:)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: (?=,|\)|=)
|
||||
pop: true
|
||||
- include: types
|
||||
- match: (=)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: (?=,|\))
|
||||
pop: true
|
||||
- include: expressions
|
||||
- include: keywords
|
||||
- match: \w+
|
||||
scope: variable.parameter.function.kotlin
|
||||
statements:
|
||||
- include: namespaces
|
||||
- include: typedefs
|
||||
- include: classes
|
||||
- include: functions
|
||||
- include: variables
|
||||
- include: getters-and-setters
|
||||
- include: expressions
|
||||
strings:
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.kotlin
|
||||
push:
|
||||
- meta_scope: string.quoted.third.kotlin
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.kotlin
|
||||
pop: true
|
||||
- match: '(\$\w+|\$\{[^\}]+\})'
|
||||
scope: variable.parameter.template.kotlin
|
||||
- match: \\.
|
||||
scope: constant.character.escape.kotlin
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.kotlin
|
||||
push:
|
||||
- meta_scope: string.quoted.double.kotlin
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.kotlin
|
||||
pop: true
|
||||
- match: '(\$\w+|\$\{[^\}]+\})'
|
||||
scope: variable.parameter.template.kotlin
|
||||
- match: \\.
|
||||
scope: constant.character.escape.kotlin
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.kotlin
|
||||
push:
|
||||
- meta_scope: string.quoted.single.kotlin
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.kotlin
|
||||
pop: true
|
||||
- match: \\.
|
||||
scope: constant.character.escape.kotlin
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.kotlin
|
||||
push:
|
||||
- meta_scope: string.quoted.single.kotlin
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.kotlin
|
||||
pop: true
|
||||
typedefs:
|
||||
- match: (?=\s*(?:type))
|
||||
push:
|
||||
- match: (?=$)
|
||||
pop: true
|
||||
- match: \b(type)\b
|
||||
scope: keyword.other.kotlin
|
||||
- match: <
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: generics
|
||||
- include: expressions
|
||||
types:
|
||||
- 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|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)<\b
|
||||
captures:
|
||||
1: storage.type.buildin.collection.kotlin
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: types
|
||||
- include: keywords
|
||||
- match: \w+<
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: types
|
||||
- include: keywords
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: statements
|
||||
- match: \(
|
||||
push:
|
||||
- match: \)
|
||||
pop: true
|
||||
- include: types
|
||||
- match: (->)
|
||||
scope: keyword.operator.declaration.kotlin
|
||||
variables:
|
||||
- match: (?=\s*\b(?:var|val)\b)
|
||||
push:
|
||||
- match: (?=:|=|(\b(by)\b)|$)
|
||||
pop: true
|
||||
- match: \b(var|val)\b
|
||||
captures:
|
||||
1: keyword.other.kotlin
|
||||
push:
|
||||
- match: (?=:|=|(\b(by)\b)|$)
|
||||
pop: true
|
||||
- match: <
|
||||
push:
|
||||
- match: ">"
|
||||
pop: true
|
||||
- include: generics
|
||||
- match: '([\.<\?>\w]+\.)?(\w+)'
|
||||
captures:
|
||||
2: entity.name.variable.kotlin
|
||||
- match: (:)
|
||||
captures:
|
||||
1: keyword.operator.declaration.kotlin
|
||||
push:
|
||||
- match: (?==|$)
|
||||
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
|
||||
push:
|
||||
- match: (?=$)
|
||||
pop: true
|
||||
- include: expressions
|
||||
- include: getters-and-setters
|
|
@ -0,0 +1,618 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Less
|
||||
file_extensions:
|
||||
- less
|
||||
- css.less
|
||||
scope: source.css.less
|
||||
|
||||
variables:
|
||||
unicode: '\\\h{1,6}[ \t\n\f]?'
|
||||
escape: '(?:{{unicode}}|\\[^\n\f\h])'
|
||||
nonascii: '[\p{L}\p{M}\p{S}\p{N}&&[^[:ascii:]]]'
|
||||
nmstart: '(?:[[_a-zA-Z]{{nonascii}}]|{{escape}})'
|
||||
nmchar: '(?:[[-\w]{{nonascii}}]|{{escape}})'
|
||||
ident: '(?:--{{nmchar}}+|-?{{nmstart}}{{nmchar}}*)'
|
||||
combinators: '(?:>{1,3}|[~+])'
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- include: comment-block
|
||||
- include: comment-line
|
||||
- include: commas
|
||||
- include: css-variables
|
||||
- include: terminator
|
||||
- include: literal-string
|
||||
- include: at-rules
|
||||
- include: selector
|
||||
- include: rule-list
|
||||
- include: numeric-values
|
||||
- include: property-names
|
||||
- include: property-list
|
||||
- include: less-functions
|
||||
- include: less-declarations
|
||||
- include: less-variables
|
||||
- include: less-operators
|
||||
- include: less-parameters
|
||||
|
||||
qualified-name:
|
||||
- match: '(?:({{ident}})|(\*))?([|])(?!=)'
|
||||
captures:
|
||||
1: entity.other.namespace-prefix.css
|
||||
2: entity.name.namespace.wildcard.css
|
||||
3: punctuation.separator.namespace.css
|
||||
|
||||
commas:
|
||||
- match: '\s*(,)\s*'
|
||||
captures:
|
||||
0: meta.selector.css
|
||||
1: punctuation.separator.css
|
||||
|
||||
terminator:
|
||||
- match: '\s*(;)\s*'
|
||||
captures:
|
||||
1: punctuation.terminator.statement.css
|
||||
|
||||
color-values:
|
||||
- match: \b(yellowgreen|yellow|whitesmoke|white|wheat|violet|turquoise|tomato|thistle|teal|tan|steelblue|springgreen|snow|slategrey|slategray|slateblue|skyblue|silver|sienna|seashell|seagreen|sandybrown|salmon|saddlebrown|royalblue|rosybrown|red|rebeccapurple|purple|powderblue|plum|pink|peru|peachpuff|papayawhip|palevioletred|paleturquoise|palegreen|palegoldenrod|orchid|orangered|orange|olivedrab|olive|oldlace|navy|navajowhite|moccasin|mistyrose|mintcream|midnightblue|mediumvioletred|mediumturquoise|mediumspringgreen|mediumslateblue|mediumseagreen|mediumpurple|mediumorchid|mediumblue|mediumaquamarine|maroon|linen|limegreen|lime|lightyellow|lightsteelblue|lightslategrey|lightslategray|lightskyblue|lightseagreen|lightsalmon|lightpink|lightgrey|lightgreen|lightgray|lightgoldenrodyellow|lightcyan|lightcoral|lightblue|lemonchiffon|lawngreen|lavenderblush|lavender|khaki|ivory|indigo|indianred|hotpink|honeydew|grey|greenyellow|green|gray|goldenrod|gold|ghostwhite|gainsboro|fuchsia|forestgreen|floralwhite|firebrick|dodgerblue|dimgrey|dimgray|deepskyblue|deeppink|darkviolet|darkturquoise|darkslategrey|darkslategray|darkslateblue|darkseagreen|darksalmon|darkred|darkorchid|darkorange|darkolivegreen|darkmagenta|darkkhaki|darkgrey|darkgreen|darkgray|darkgoldenrod|darkcyan|darkblue|crimson|cornsilk|cornflowerblue|coral|chocolate|chartreuse|cadetblue|burlywood|brown|blueviolet|blue|blanchedalmond|black|bisque|beige|azure|aquamarine|aqua|antiquewhite|aliceblue)\b
|
||||
comment: http://www.w3.org/TR/CSS21/syndata.html#value-def-color
|
||||
scope: support.constant.color.w3c-standard-color-name.css
|
||||
- match: (hsla?|rgba?)\s*(\()
|
||||
captures:
|
||||
1: support.function.misc.css
|
||||
2: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- match: '(?x)\b(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*){2}(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\b)(\s*,\s*((0?\.[0-9]+)|[0-1]))?'
|
||||
scope: constant.other.color.rgb-value.css
|
||||
- match: '\b([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%'
|
||||
scope: constant.other.color.rgb-percentage.css
|
||||
- include: numeric-values
|
||||
|
||||
comment-block:
|
||||
- match: /\*
|
||||
scope: punctuation.definition.comment.css
|
||||
push:
|
||||
- meta_scope: comment.block.css
|
||||
- match: \*/
|
||||
scope: punctuation.definition.comment.css
|
||||
pop: true
|
||||
|
||||
comment-line:
|
||||
- match: //
|
||||
scope: punctuation.definition.comment.css
|
||||
push:
|
||||
- meta_scope: comment.line.double-slash.less
|
||||
- match: $\n?
|
||||
scope: punctuation.definition.comment.css
|
||||
pop: true
|
||||
|
||||
at-rules:
|
||||
- match: ((@)(?:-(?:webkit|moz|o)-)?(charset|import|namespace|page|font-face|supports|document)\b)
|
||||
captures:
|
||||
1: keyword.control.at-rule.css
|
||||
2: punctuation.definition.keyword.css
|
||||
push:
|
||||
- meta_scope: meta.at-rule.css
|
||||
- match: '\s*(?=[\{;])'
|
||||
pop: true
|
||||
- match: (url)(\()
|
||||
captures:
|
||||
1: meta.function-call.css support.function.url.css
|
||||
2: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: literal-string
|
||||
- include: unquoted-string
|
||||
- include: comment-block
|
||||
- include: literal-string
|
||||
- include: less-parameters
|
||||
- match: \s*((@)keyframes)(?=.*?)
|
||||
captures:
|
||||
1: keyword.control.at-rule.css
|
||||
2: punctuation.definition.keyword.css
|
||||
push:
|
||||
- meta_scope: meta.at-rule.keyframes.css
|
||||
- match: '\s*(?=[\{;])'
|
||||
pop: true
|
||||
- include: comment-block
|
||||
- match: '[a-zA-Z0-9_-]+'
|
||||
scope: variable.other.css
|
||||
- match: \s*((@)media)(?=\s+.*?)
|
||||
captures:
|
||||
1: keyword.control.at-rule.media.css
|
||||
2: punctuation.definition.keyword.css
|
||||
3: support.constant.media.css
|
||||
push:
|
||||
- meta_scope: meta.at-rule.media.css
|
||||
- match: '\s*(?=\{)'
|
||||
pop: true
|
||||
- include: comment-block
|
||||
- include: less-operators
|
||||
- match: (?i)\s*(only|not)?\s*(all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)?
|
||||
captures:
|
||||
1: keyword.operator.logic.media.css
|
||||
2: support.constant.media.css
|
||||
- match: '\('
|
||||
scope: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: vendor-prefixes
|
||||
- match: |-
|
||||
(?x)
|
||||
(
|
||||
((min|max)-)?
|
||||
(
|
||||
((device-)?(height|width|aspect-ratio|pixel-ratio))|
|
||||
(color(-index)?)|monochrome|resolution
|
||||
)
|
||||
)|grid|scan|orientation
|
||||
\s*(?=[:)])
|
||||
captures:
|
||||
0: support.type.property-name.media.css
|
||||
- match: \b(portrait|landscape|progressive|interlace)
|
||||
scope: support.constant.property-value.css
|
||||
- match: ':'
|
||||
scope: punctuation.separator.key-value.css
|
||||
- include: comment-block
|
||||
- include: comment-line
|
||||
- include: numeric-values
|
||||
- include: css-variables
|
||||
- include: property-names
|
||||
- include: property-values
|
||||
- include: less-functions
|
||||
- include: less-variables
|
||||
- include: less-operators
|
||||
|
||||
less-data-uri:
|
||||
- match: (url)(\()(?=(data:|"data:|'data:))
|
||||
captures:
|
||||
1: support.function.misc.css
|
||||
2: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: less-interpolation
|
||||
- include: literal-string
|
||||
- include: unquoted-string
|
||||
|
||||
less-functions:
|
||||
- match: \b(unit|tan|sqrt|spin|softlight|sin|screen|saturation|saturate|round|replace|red|pow|pi|percentage|overlay|negation|multiply|mod|mix|min|max|luma|lightness|lighten|length|isnumber|hue|hsvvalue|hsvsaturation|hsvhue|hsva|hsv|hsla|hsl|hardlight|greyscale|green|format|floor|fadeout|fadein|fade|extract|exclusion|escape|e|difference|desaturate|data-uri|darken|cos|convert|convert|contrast|color|ceil|calc|blue|average|atan|asin|argb|alpha|acos|abs)(\()
|
||||
captures:
|
||||
1: support.function.less
|
||||
2: meta.group.less punctuation.definition.group.begin.less
|
||||
push:
|
||||
- meta_scope: meta.function-call.less
|
||||
- meta_content_scope: meta.group.less meta.function.parameters.less
|
||||
- match: '\)'
|
||||
scope: meta.group.less punctuation.definition.group.end.less
|
||||
pop: true
|
||||
- match: ':'
|
||||
scope: punctuation.separator.key-value.css
|
||||
- include: comment-block
|
||||
- include: commas
|
||||
- include: terminator
|
||||
- include: color-values
|
||||
- include: numeric-values
|
||||
- include: literal-string
|
||||
- include: css-variables
|
||||
- include: less-functions
|
||||
- include: less-variables
|
||||
- include: less-operators
|
||||
|
||||
less-operators:
|
||||
- match: /|$|%|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|%=|\+=|\-=|&=|\bnot\b|\bor\b|\band\b|\bwhen\b|\bfrom\b|\bto\b
|
||||
scope: keyword.operator.less
|
||||
|
||||
property-list:
|
||||
- match: '\{'
|
||||
scope: punctuation.section.property-list.begin.css
|
||||
push:
|
||||
- match: '\}'
|
||||
scope: punctuation.section.property-list.end.css
|
||||
pop: true
|
||||
- include: main
|
||||
|
||||
less-parameters:
|
||||
- match: '\('
|
||||
scope: punctuation.definition.group.begin.less
|
||||
push:
|
||||
- meta_scope: meta.group.less meta.function.parameters.less
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.less
|
||||
pop: true
|
||||
- match: ':'
|
||||
scope: punctuation.separator.key-value.css
|
||||
- include: comment-line
|
||||
- include: comment-block
|
||||
- include: commas
|
||||
- include: terminator
|
||||
- include: property-list
|
||||
- include: color-values
|
||||
- include: numeric-values
|
||||
- include: literal-string
|
||||
- include: css-variables
|
||||
- include: less-functions
|
||||
- include: less-variables
|
||||
- include: less-operators
|
||||
|
||||
less-declarations:
|
||||
- match: '(@)([a-zA-Z0-9_-][\w-]*)'
|
||||
scope: variable.declaration.less
|
||||
captures:
|
||||
1: punctuation.definition.variable.less
|
||||
|
||||
less-interpolation:
|
||||
- match: '(@)({)([a-zA-Z0-9_-][\w-]*)(})'
|
||||
scope: variable.other.less
|
||||
captures:
|
||||
1: punctuation.definition.variable.less
|
||||
2: punctuation.definition.string.begin.less
|
||||
3: string.interpolated.less
|
||||
4: punctuation.definition.string.end.less
|
||||
|
||||
css-variables:
|
||||
- match: '\b(var)(?=\()'
|
||||
scope: support.function.var.css
|
||||
push:
|
||||
- meta_scope: meta.function-call.css
|
||||
- meta_content_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: meta.group.css punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- match: '(\()((--)({{nmchar}}+))'
|
||||
captures:
|
||||
1: punctuation.definition.group.begin.css
|
||||
2: support.type.custom-property.css
|
||||
3: punctuation.definition.custom-property.css
|
||||
4: support.type.custom-property.name.css
|
||||
|
||||
less-variables:
|
||||
- match: '(@{1,2})([a-zA-Z0-9_-][\w-]*)'
|
||||
scope: variable.other.less
|
||||
captures:
|
||||
1: punctuation.definition.variable.less
|
||||
- include: less-interpolation
|
||||
- match: (~)(")
|
||||
captures:
|
||||
1: keyword.operator.less
|
||||
2: punctuation.definition.string.begin.less
|
||||
push:
|
||||
- meta_scope: string.quoted.double.css markup.raw.less
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.less
|
||||
pop: true
|
||||
- include: less-interpolation
|
||||
- match: (~)(')
|
||||
captures:
|
||||
1: keyword.operator.less
|
||||
2: punctuation.definition.string.begin.less
|
||||
push:
|
||||
- meta_scope: string.quoted.single.css markup.raw.less
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.end.less
|
||||
pop: true
|
||||
- include: less-interpolation
|
||||
|
||||
numeric-values:
|
||||
- match: '(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b'
|
||||
scope: constant.other.color.rgb-value.css
|
||||
captures:
|
||||
1: punctuation.definition.constant.css
|
||||
- match: '(?x)(?:-|\+)?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+))((?:vw|vmin|vmax|vh|turn|s|rem|rad|px|pt|pc|ms|mm|in|grad|fr|ex|em|dppx|dpi|dpcm|deg|cm|ch)\b|%)?'
|
||||
scope: constant.numeric.css
|
||||
captures:
|
||||
1: keyword.other.unit.css
|
||||
|
||||
vendor-prefixes:
|
||||
- match: '(-webkit-|-o-|-ms-|-moz-|-khtml-)(?=[A-Za-z])'
|
||||
scope: support.type.vendor-prefix.css
|
||||
|
||||
property-names:
|
||||
- include: vendor-prefixes
|
||||
- include: comment-block
|
||||
- match: '(--)({{nmchar}}+)'
|
||||
scope: support.type.custom-property.css
|
||||
captures:
|
||||
1: punctuation.definition.custom-property.css
|
||||
2: support.type.custom-property.name.css
|
||||
- match: |-
|
||||
\b(?x)(
|
||||
display|width|background-color|height|position|font-family|font-weight
|
||||
| top|opacity|cursor|background-image|right|visibility|box-sizing
|
||||
| user-select|left|float|margin-left|margin-top|line-height
|
||||
| padding-left|z-index|margin-bottom|margin-right|margin
|
||||
| vertical-align|padding-top|white-space|border-radius|padding-bottom
|
||||
| padding-right|padding|bottom|clear|max-width|box-shadow|content
|
||||
| border-color|min-height|min-width|font-style|border-width
|
||||
| border-collapse|background-size|text-overflow|max-height|text-transform
|
||||
| text-shadow|text-indent|border-style|overflow-y|list-style-type
|
||||
| word-wrap|border-spacing|appearance|zoom|overflow-x|border-top-left-radius
|
||||
| border-bottom-left-radius|border-top-color|pointer-events
|
||||
| border-bottom-color|align-items|justify-content|letter-spacing
|
||||
| border-top-right-radius|border-bottom-right-radius|border-right-width
|
||||
| font-smoothing|border-bottom-width|border-right-color|direction
|
||||
| border-top-width|src|border-left-color|border-left-width
|
||||
| tap-highlight-color|table-layout|background-clip|word-break
|
||||
| transform-origin|resize|filter|backface-visibility|text-rendering
|
||||
| box-orient|transition-property|transition-duration|word-spacing
|
||||
| quotes|outline-offset|animation-timing-function|animation-duration
|
||||
| animation-name|transition-timing-function|border-bottom-style
|
||||
| border-bottom|transition-delay|transition|unicode-bidi|border-top-style
|
||||
| border-top|unicode-range|list-style-position|orphans|outline-width
|
||||
| line-clamp|order|flex-direction|box-pack|animation-fill-mode
|
||||
| outline-color|list-style-image|list-style|touch-action|flex-grow
|
||||
| border-left-style|border-left|animation-iteration-count
|
||||
| page-break-inside|box-flex|box-align|page-break-after|animation-delay
|
||||
| widows|border-right-style|border-right|flex-align|outline-style
|
||||
| outline|background-origin|animation-direction|fill-opacity
|
||||
| background-attachment|flex-wrap|transform-style|counter-increment
|
||||
| overflow-wrap|counter-reset|animation-play-state
|
||||
| will-change|box-ordinal-group|image-rendering|mask-image|flex-flow
|
||||
| background-position-y|stroke-width|background-position-x|background-position
|
||||
| background-blend-mode|flex-shrink|flex-basis|flex-order|flex-item-align
|
||||
| flex-line-pack|flex-negative|flex-pack|flex-positive|flex-preferred-size
|
||||
| flex|user-drag|font-stretch|column-count|empty-cells|align-self
|
||||
| caption-side|mask-size|column-gap|mask-repeat|box-direction
|
||||
| font-feature-settings|mask-position|align-content|object-fit
|
||||
| columns|text-fill-color|clip-path|stop-color|font-kerning
|
||||
| page-break-before|stroke-dasharray|size|fill-rule|border-image-slice
|
||||
| column-width|break-inside|column-break-before|border-image-width
|
||||
| stroke-dashoffset|border-image-repeat|border-image-outset|line-break
|
||||
| stroke-linejoin|stroke-linecap|stroke-miterlimit|stroke-opacity
|
||||
| stroke|shape-rendering|border-image-source|border-image|border
|
||||
| tab-size|writing-mode|perspective-origin-y|perspective-origin-x
|
||||
| perspective-origin|perspective|text-align-last|text-align|clip-rule
|
||||
| clip|text-anchor|column-rule-color|box-decoration-break|column-fill
|
||||
| fill|column-rule-style|mix-blend-mode|text-emphasis-color
|
||||
| baseline-shift|dominant-baseline|page|alignment-baseline
|
||||
| column-rule-width|column-rule|break-after|font-variant-ligatures
|
||||
| transform-origin-y|transform-origin-x|transform|object-position
|
||||
| break-before|column-span|isolation|shape-outside|all
|
||||
| color-interpolation-filters|marker|marker-end|marker-start
|
||||
| marker-mid|color-rendering|color-interpolation|background-repeat-x
|
||||
| background-repeat-y|background-repeat|background|mask-type
|
||||
| flood-color|flood-opacity|text-orientation|mask-composite
|
||||
| text-emphasis-style|paint-order|lighting-color|shape-margin
|
||||
| text-emphasis-position|text-emphasis|shape-image-threshold
|
||||
| mask-clip|mask-origin|mask|font-variant-caps|font-variant-alternates
|
||||
| font-variant-east-asian|font-variant-numeric|font-variant-position
|
||||
| font-variant|font-size-adjust|font-size|font-language-override
|
||||
| font-display|font-synthesis|font|line-box-contain|text-justify
|
||||
| text-decoration-color|text-decoration-style|text-decoration-line
|
||||
| text-decoration|text-underline-position|grid-template-rows
|
||||
| grid-template-columns|grid-template-areas|grid-template|rotate|scale
|
||||
| translate|scroll-behavior|grid-column-start|grid-column-end
|
||||
| grid-column-gap|grid-row-start|grid-row-end|grid-auto-rows
|
||||
| grid-area|grid-auto-flow|grid-auto-columns|image-orientation
|
||||
| hyphens|overflow-scrolling|overflow|color-profile|kerning
|
||||
| nbsp-mode|color|image-resolution|grid-row-gap|grid-row|grid-column
|
||||
| blend-mode|azimuth|pause-after|pause-before|pause|pitch-range|pitch
|
||||
| text-height|system|negative|prefix|suffix|range|pad|fallback
|
||||
| additive-symbols|symbols|speak-as|speak|grid-gap
|
||||
)\b
|
||||
scope: meta.property-name.css support.type.property-name.css
|
||||
- match: '\b(animation-name|animation)\b'
|
||||
scope: meta.property-name.css support.type.property-name.css
|
||||
push:
|
||||
- meta_content_scope: meta.property-value.css
|
||||
- match: '\s*(?=;|(?=[{}]))'
|
||||
pop: true
|
||||
- match: ':'
|
||||
scope: punctuation.separator.key-value.css
|
||||
- include: comment-block
|
||||
- include: comment-line
|
||||
- include: property-values
|
||||
- match: '[a-zA-Z0-9_-]+'
|
||||
scope: variable.other.css
|
||||
|
||||
property-values:
|
||||
- match: \!\s*important
|
||||
scope: keyword.other.important.css
|
||||
captures:
|
||||
1: punctuation.definition.keyword.css
|
||||
- include: comment-block
|
||||
- include: literal-string
|
||||
- include: vendor-prefixes
|
||||
- include: color-values
|
||||
- include: numeric-values
|
||||
- include: css-variables
|
||||
- include: less-variables
|
||||
- include: less-data-uri
|
||||
- include: less-functions
|
||||
- include: less-operators
|
||||
- include: selector
|
||||
- match: \b(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|subpixel-antialiased|strict|stretch|step-start|step-end|static|start|sRGB|square|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|scale-down|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-y|pan-x|pan-up|pan-right|pan-left|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeSpeed|optimizeQuality|optimizeLegibility|open-quote|opacity|oblique|nw-resize|nowrap|not-allowed|normal|nonzero|none|no-repeat|no-open-quote|no-drop|no-close-quote|newspaper|ne-resize|n-resize|multiply|move|miter|middle|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linearRGB|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision |geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|evenodd |end |ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|crispEdges|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|close-quote|circle|char|center|capitalize|butt|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|bevel|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?![-])\b
|
||||
scope: support.constant.property-value.css
|
||||
- match: (\b(?i:webdings|verdana|utopia|trebuchet|times|tahoma|system|symbol|serif|sans-serif|monospace|lucida|impact|helvetica|georgia|garamond|futura|fantasy|cursive|courier|comic|century|arial)\b)
|
||||
scope: support.constant.font-name.css
|
||||
- match: (rect)\s*(\()
|
||||
captures:
|
||||
1: support.function.misc.css
|
||||
2: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: numeric-values
|
||||
- match: '(whiteness|url-prefix|url|translate[XYZ]|translate3d|translate|tint|skew[XY]|skew|shade|sepia|scale[XYZ]|scale|saturation|saturate|rotate[XYZ]|rotate3d|rotate|rgba|rgb|repeating-radial-gradient|repeating-linear-gradient|regexp|rect|radial-gradient|opacity|minmax|matrix3d|matrix|local|linear-gradient|lightness|invert|image-set|image|hsla|hsl|grayscale|gray|format|drop-shadow|domain|device-cmyk|cubic-bezier|cross-fade|counters|counter|contrast|color|brightness|blur|blenda|blend|blackness|attr)\s*(\()'
|
||||
captures:
|
||||
1: support.function.css
|
||||
2: meta.group.css punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.function-call.css
|
||||
- meta_content_scope: meta.group.css meta.function.parameters.css
|
||||
- match: '\)'
|
||||
scope: meta.group.css punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: literal-string
|
||||
- include: color-values
|
||||
- include: numeric-values
|
||||
- include: css-variables
|
||||
- include: less-variables
|
||||
- include: less-functions
|
||||
- include: property-names
|
||||
|
||||
rule-list:
|
||||
- include: property-names
|
||||
- match: (:)\s*
|
||||
captures:
|
||||
1: punctuation.separator.key-value.css
|
||||
push:
|
||||
- meta_scope: meta.property-value.css
|
||||
- match: '\s*(?=;|(?=[{}]))'
|
||||
pop: true
|
||||
- include: property-values
|
||||
|
||||
selector:
|
||||
# Combinators
|
||||
# https://drafts.csswg.org/selectors-4/#combinators
|
||||
# https://drafts.csswg.org/css-scoping/#deep-combinator
|
||||
- match: '\s*({{combinators}})(?![>~+]\s*)'
|
||||
scope: meta.selector.css
|
||||
captures:
|
||||
1: punctuation.separator.combinator.css
|
||||
- match: '&'
|
||||
scope: meta.selector.css keyword.operator.ampersand.less
|
||||
push:
|
||||
- match: '\s'
|
||||
scope: meta.selector.css
|
||||
pop: true
|
||||
- include: selector
|
||||
- match: '(-+|_+)[a-zA-Z_][a-zA-Z0-9_-]*'
|
||||
scope: meta.selector.css entity.other.attribute-name.css
|
||||
- match: '([\.#])(?![0-9])[a-zA-Z0-9_-]+(?=\()'
|
||||
scope: meta.selector.css entity.other.attribute-name.class.css entity.other.less.mixin
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
- match: '\b(use|tspan|tref|textPath|text|symbol|switch|stop|rect|radialGradient|polyline|polygon|pattern|path|mask|marker|linearGradient|line|image|glyphRef|glyph|g|foreignObject|filter|ellipse|defs|clipPath|circle|xmp|wbr|video|var|ul|u|tt|track|tr|title|time|thead|th|tfoot|textarea|template|td|tbody|table|svg|sup|summary|sub|style|strong|strike|span|source|small|shadow|select|section|script|samp|s|rtc|rt|rp|q|progress|pre|picture|param|p|output|option|optgroup|ol|object|noscript|noframes|nav|meter|meta|menu|mark|map|main|link|li|legend|label|keygen|kbd|isindex|ins|input|img|iframe|i|html|hr|hgroup|header|head|h[1-6]|frameset|frame|form|footer|figcaption|figure|fieldset|eventsource|embed|em|element|dt|dl|div|dialog|dir|dfn|details|del|dd|datalist|data|content|colgroup|col|code|cite|caption|canvas|button|br|body|blockquote|big|bdo|bdi|basefont|base|b|audio|aside|article|area|applet|address|acronym|abbr|a)\b(\s*)(?=([a-z.,+~{#\s\[\)]|:+[a-z]|$))'
|
||||
captures:
|
||||
1: meta.selector.css entity.name.tag.css
|
||||
2: meta.selector.css
|
||||
- match: '(\.)(?=-?([a-zA-Z_]|@{)[a-zA-Z0-9_-]*)'
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
push:
|
||||
- meta_scope: meta.selector.css entity.other.attribute-name.class.css
|
||||
- include: less-interpolation
|
||||
- match: '(\s*)(?=[^a-zA-Z0-9_-])'
|
||||
captures:
|
||||
1: meta.selector.css
|
||||
pop: true
|
||||
- match: "(#)(?=-?([a-zA-Z_]|@{)[a-zA-Z0-9_-]*)"
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
push:
|
||||
- meta_scope: meta.selector.css entity.other.attribute-name.id.css
|
||||
- include: less-interpolation
|
||||
- match: '(?=[^a-zA-Z0-9_-])'
|
||||
pop: true
|
||||
- match: '\*'
|
||||
scope: entity.name.tag.wildcard.css
|
||||
- match: (:)(visited|valid|target|scope|root|right|required|read-write|read-only|out-of-range|optional|only-of-type|only-child|link|left|last-of-type|last-child|invalid|indeterminate|in-range|hover|fullscreen|focus|first-of-type|first-child|first|enabled|empty|disabled|default|checked|any|active)\b
|
||||
scope: meta.selector.css entity.other.pseudo-class.css
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
- match: (:)(extend)\b
|
||||
scope: meta.selector.css entity.other.pseudo-class.less
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
- match: ((:)not|lang|dir)(\()
|
||||
captures:
|
||||
1: entity.other.pseudo-class.css
|
||||
2: punctuation.definition.entity.css
|
||||
3: punctuation.definition.group.begin.css
|
||||
push:
|
||||
- meta_scope: meta.selector.css meta.group.css
|
||||
- match: '\)'
|
||||
scope: punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- include: selector
|
||||
- match: ((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(?=\()
|
||||
captures:
|
||||
1: entity.other.pseudo-class.css
|
||||
2: punctuation.definition.entity.css
|
||||
push:
|
||||
- meta_scope: meta.selector.css
|
||||
- match: '\)'
|
||||
scope: meta.group.css punctuation.definition.group.end.css
|
||||
pop: true
|
||||
- match: '\('
|
||||
scope: meta.group.css punctuation.definition.group.begin.css
|
||||
- match: '[+-]'
|
||||
scope: keyword.operator.css
|
||||
- match: '[0-9]+(n*)'
|
||||
scope: meta.group.css constant.numeric.css
|
||||
captures:
|
||||
1: keyword.other.unit.css
|
||||
- match: (:|::)(selection|first-line|first-letter|before|backdrop|after)\b
|
||||
scope: meta.selector.css entity.other.pseudo-element.css
|
||||
captures:
|
||||
1: punctuation.definition.entity.css
|
||||
- match: '\['
|
||||
scope: punctuation.definition.entity.css
|
||||
push:
|
||||
- meta_scope: meta.attribute-selector.css
|
||||
- include: qualified-name
|
||||
- match: '({{ident}})'
|
||||
scope: entity.other.attribute-name.css
|
||||
- match: '\s*([~*|^$]?=)\s*'
|
||||
captures:
|
||||
1: keyword.operator.attribute-selector.css
|
||||
push:
|
||||
- include: literal-string
|
||||
- include: unquoted-string
|
||||
- match: '(?=(\s|\]))'
|
||||
pop: true
|
||||
- match: '(?:\s+([iI]))?' # case insensitive flag
|
||||
captures:
|
||||
1: keyword.other.css
|
||||
- match: '\]'
|
||||
scope: punctuation.definition.entity.css
|
||||
pop: true
|
||||
|
||||
unquoted-string:
|
||||
- match: '[^\s\]\[''"]'
|
||||
scope: string.unquoted.css
|
||||
|
||||
literal-string:
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.begin.css
|
||||
push:
|
||||
- meta_scope: string.quoted.single.css
|
||||
- match: (')|(\n)
|
||||
captures:
|
||||
1: punctuation.definition.string.end.css
|
||||
2: invalid.illegal.newline.css
|
||||
pop: true
|
||||
- include: string-content
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.css
|
||||
push:
|
||||
- meta_scope: string.quoted.double.css
|
||||
- match: (")|(\n)
|
||||
captures:
|
||||
1: punctuation.definition.string.end.css
|
||||
2: invalid.illegal.newline.css
|
||||
pop: true
|
||||
- include: string-content
|
||||
|
||||
string-content:
|
||||
- match: \\\s*\n
|
||||
scope: constant.character.escape.newline.css
|
||||
- match: '\\(\h{1,6}|.)'
|
||||
scope: constant.character.escape.css
|
||||
- include: less-interpolation
|
|
@ -0,0 +1,609 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Nix
|
||||
file_extensions:
|
||||
- nix
|
||||
scope: source.nix
|
||||
contexts:
|
||||
main:
|
||||
- include: expression
|
||||
comment:
|
||||
- match: '/\*([^*]|\*[^\/])*'
|
||||
push:
|
||||
- meta_scope: comment.block.nix
|
||||
- match: \*\/
|
||||
pop: true
|
||||
- include: comment-remark
|
||||
- match: '\#'
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.nix
|
||||
- match: $
|
||||
pop: true
|
||||
- include: comment-remark
|
||||
attribute-bind:
|
||||
- include: attribute-name
|
||||
- include: attribute-bind-from-equals
|
||||
attribute-bind-from-equals:
|
||||
- match: \=
|
||||
captures:
|
||||
0: keyword.operator.bind.nix
|
||||
push:
|
||||
- match: \;
|
||||
captures:
|
||||
0: punctuation.terminator.bind.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
attribute-inherit:
|
||||
- match: \binherit\b
|
||||
captures:
|
||||
0: keyword.other.inherit.nix
|
||||
push:
|
||||
- match: \;
|
||||
captures:
|
||||
0: punctuation.terminator.inherit.nix
|
||||
pop: true
|
||||
- match: \(
|
||||
captures:
|
||||
0: punctuation.section.function.arguments.nix
|
||||
push:
|
||||
- match: (?=\;)
|
||||
pop: true
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.section.function.arguments.nix
|
||||
push:
|
||||
- match: (?=\;)
|
||||
pop: true
|
||||
- include: bad-reserved
|
||||
- include: attribute-name-single
|
||||
- include: others
|
||||
- include: expression
|
||||
- match: '(?=[a-zA-Z\_])'
|
||||
push:
|
||||
- match: (?=\;)
|
||||
pop: true
|
||||
- include: bad-reserved
|
||||
- include: attribute-name-single
|
||||
- include: others
|
||||
- include: others
|
||||
attribute-name:
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
scope: entity.other.attribute-name.multipart.nix
|
||||
- match: \.
|
||||
- include: string-quoted
|
||||
- include: interpolation
|
||||
attribute-name-single:
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
scope: entity.other.attribute-name.single.nix
|
||||
attrset-contents:
|
||||
- include: attribute-inherit
|
||||
- include: bad-reserved
|
||||
- include: attribute-bind
|
||||
- include: others
|
||||
attrset-definition:
|
||||
- match: '(?=\{)'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: '(\{)'
|
||||
captures:
|
||||
0: punctuation.definition.attrset.nix
|
||||
push:
|
||||
- match: '(\})'
|
||||
captures:
|
||||
0: punctuation.definition.attrset.nix
|
||||
pop: true
|
||||
- include: attrset-contents
|
||||
- match: '(?<=\})'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
attrset-definition-brace-opened:
|
||||
- match: '(?<=\})'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.definition.attrset.nix
|
||||
pop: true
|
||||
- include: attrset-contents
|
||||
attrset-for-sure:
|
||||
- match: (?=\brec\b)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: \brec\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: '(?=\{)'
|
||||
pop: true
|
||||
- include: others
|
||||
- include: attrset-definition
|
||||
- include: others
|
||||
- match: '(?=\{\s*(\}|[^,?]*(=|;)))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: attrset-definition
|
||||
- include: others
|
||||
attrset-or-function:
|
||||
- match: '\{'
|
||||
captures:
|
||||
0: punctuation.definition.attrset-or-function.nix
|
||||
push:
|
||||
- match: '(?=([\])};]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: '(?=(\s*\}|\"|\binherit\b|\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*(\s*\.|\s*=[^=])))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: attrset-definition-brace-opened
|
||||
- match: '(?=(\.\.\.|\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*\s*[,?]))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-definition-brace-opened
|
||||
- include: bad-reserved
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
captures:
|
||||
0: variable.parameter.function.maybe.nix
|
||||
push:
|
||||
- match: '(?=([\])};]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: (?=\.)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: attrset-definition-brace-opened
|
||||
- match: \s*(\,)
|
||||
captures:
|
||||
1: keyword.operator.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-definition-brace-opened
|
||||
- match: (?=\=)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: attribute-bind-from-equals
|
||||
- include: attrset-definition-brace-opened
|
||||
- match: (?=\?)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-parameter-default
|
||||
- match: \,
|
||||
captures:
|
||||
0: keyword.operator.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-definition-brace-opened
|
||||
- include: others
|
||||
- include: others
|
||||
bad-reserved:
|
||||
- match: '(?<![\w''-])(if|then|else|assert|with|let|in|rec|inherit)(?![\w''-])'
|
||||
scope: invalid.illegal.reserved.nix
|
||||
comment-remark:
|
||||
- match: (TODO|FIXME|BUG|\!\!\!):?
|
||||
captures:
|
||||
1: markup.bold.comment.nix
|
||||
constants:
|
||||
- match: \b(builtins|true|false|null)\b
|
||||
captures:
|
||||
0: constant.language.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- match: \b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\b
|
||||
captures:
|
||||
0: support.function.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- match: '\b[0-9]+\b'
|
||||
captures:
|
||||
0: constant.numeric.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
expression:
|
||||
- include: parens-and-cont
|
||||
- include: list-and-cont
|
||||
- include: string
|
||||
- include: interpolation
|
||||
- include: with-assert
|
||||
- include: function-for-sure
|
||||
- include: attrset-for-sure
|
||||
- include: attrset-or-function
|
||||
- include: let
|
||||
- include: if
|
||||
- include: operator-unary
|
||||
- include: constants
|
||||
- include: bad-reserved
|
||||
- include: parameter-name-and-cont
|
||||
- include: others
|
||||
expression-cont:
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: parens
|
||||
- include: list
|
||||
- include: string
|
||||
- include: interpolation
|
||||
- include: function-for-sure
|
||||
- include: attrset-for-sure
|
||||
- include: attrset-or-function
|
||||
- match: '(\bor\b|\.|==|!=|!|\<\=|\<|\>\=|\>|&&|\|\||-\>|//|\?|\+\+|-|\*|/(?=([^*]|$))|\+)'
|
||||
scope: keyword.operator.nix
|
||||
- include: constants
|
||||
- include: bad-reserved
|
||||
- include: parameter-name
|
||||
- include: others
|
||||
function-body:
|
||||
- match: '(@\s*([a-zA-Z\_][a-zA-Z0-9\_\''\-]*)\s*)?(\:)'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression
|
||||
function-body-from-colon:
|
||||
- match: (\:)
|
||||
captures:
|
||||
0: punctuation.definition.function.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression
|
||||
function-contents:
|
||||
- include: bad-reserved
|
||||
- include: function-parameter
|
||||
- include: others
|
||||
function-definition:
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-body-from-colon
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- match: '(\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*)'
|
||||
captures:
|
||||
0: variable.parameter.function.4.nix
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- match: \@
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-until-colon-no-arg
|
||||
- include: others
|
||||
- include: others
|
||||
- match: '(?=\{)'
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-until-colon-with-arg
|
||||
- include: others
|
||||
function-definition-brace-opened:
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-body-from-colon
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-close-brace-with-arg
|
||||
- match: (?=.?)
|
||||
push:
|
||||
- match: '(?=\})'
|
||||
pop: true
|
||||
- include: function-contents
|
||||
- include: others
|
||||
function-for-sure:
|
||||
- match: '(?=(\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*\s*[:@]|\{[^}]*\}\s*:|\{[^#}"''/=]*[,\?]))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: function-definition
|
||||
function-header-close-brace-no-arg:
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.definition.entity.function.nix
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: others
|
||||
function-header-close-brace-with-arg:
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.definition.entity.function.nix
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-terminal-arg
|
||||
- include: others
|
||||
function-header-open-brace:
|
||||
- match: '\{'
|
||||
captures:
|
||||
0: punctuation.definition.entity.function.2.nix
|
||||
push:
|
||||
- match: '(?=\})'
|
||||
pop: true
|
||||
- include: function-contents
|
||||
function-header-terminal-arg:
|
||||
- match: (?=@)
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- match: \@
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- match: '(\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*)'
|
||||
push:
|
||||
- meta_scope: variable.parameter.function.3.nix
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: others
|
||||
- include: others
|
||||
function-header-until-colon-no-arg:
|
||||
- match: '(?=\{)'
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-open-brace
|
||||
- include: function-header-close-brace-no-arg
|
||||
function-header-until-colon-with-arg:
|
||||
- match: '(?=\{)'
|
||||
push:
|
||||
- match: (?=\:)
|
||||
pop: true
|
||||
- include: function-header-open-brace
|
||||
- include: function-header-close-brace-with-arg
|
||||
function-parameter:
|
||||
- match: (\.\.\.)
|
||||
push:
|
||||
- meta_scope: keyword.operator.nix
|
||||
- match: '(,|(?=\}))'
|
||||
pop: true
|
||||
- include: others
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
captures:
|
||||
0: variable.parameter.function.1.nix
|
||||
push:
|
||||
- match: '(,|(?=\}))'
|
||||
captures:
|
||||
0: keyword.operator.nix
|
||||
pop: true
|
||||
- include: whitespace
|
||||
- include: comment
|
||||
- include: function-parameter-default
|
||||
- include: expression
|
||||
- include: others
|
||||
function-parameter-default:
|
||||
- match: \?
|
||||
captures:
|
||||
0: keyword.operator.nix
|
||||
push:
|
||||
- match: "(?=[,}])"
|
||||
pop: true
|
||||
- include: expression
|
||||
if:
|
||||
- match: (?=\bif\b)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: \bif\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: \bth(?=en\b)
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
- match: (?<=th)en\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: \bel(?=se\b)
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
- match: (?<=el)se\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
illegal:
|
||||
- match: .
|
||||
scope: invalid.illegal
|
||||
interpolation:
|
||||
- match: '\$\{'
|
||||
captures:
|
||||
0: punctuation.section.embedded.begin.nix
|
||||
push:
|
||||
- meta_scope: markup.italic
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.section.embedded.end.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
let:
|
||||
- match: (?=\blet\b)
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: \blet\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(in|else|then)\b))'
|
||||
pop: true
|
||||
- match: '(?=\{)'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: '\{'
|
||||
push:
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- include: attrset-contents
|
||||
- match: '(^|(?<=\}))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- include: others
|
||||
- include: attrset-contents
|
||||
- include: others
|
||||
- match: \bin\b
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression
|
||||
list:
|
||||
- match: '\['
|
||||
captures:
|
||||
0: punctuation.definition.list.nix
|
||||
push:
|
||||
- match: '\]'
|
||||
captures:
|
||||
0: punctuation.definition.list.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
list-and-cont:
|
||||
- match: '(?=\[)'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: list
|
||||
- include: expression-cont
|
||||
operator-unary:
|
||||
- match: (!|-)
|
||||
scope: keyword.operator.unary.nix
|
||||
others:
|
||||
- include: whitespace
|
||||
- include: comment
|
||||
- include: illegal
|
||||
parameter-name:
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
captures:
|
||||
0: variable.parameter.name.nix
|
||||
parameter-name-and-cont:
|
||||
- match: '\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*'
|
||||
captures:
|
||||
0: variable.parameter.name.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
parens:
|
||||
- match: \(
|
||||
captures:
|
||||
0: punctuation.definition.expression.nix
|
||||
push:
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.expression.nix
|
||||
pop: true
|
||||
- include: expression
|
||||
parens-and-cont:
|
||||
- match: (?=\()
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: parens
|
||||
- include: expression-cont
|
||||
string:
|
||||
- match: (?=\'\')
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: \'\'
|
||||
captures:
|
||||
0: punctuation.definition.string.other.start.nix
|
||||
push:
|
||||
- meta_scope: string.quoted.other.nix
|
||||
- match: \'\'(?!\$|\'|\\.)
|
||||
captures:
|
||||
0: punctuation.definition.string.other.end.nix
|
||||
pop: true
|
||||
- match: \'\'(\$|\'|\\.)
|
||||
scope: constant.character.escape.nix
|
||||
- include: interpolation
|
||||
- include: expression-cont
|
||||
- match: (?=\")
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: string-quoted
|
||||
- include: expression-cont
|
||||
- match: '([a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+)'
|
||||
captures:
|
||||
0: string.unquoted.path.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- match: '(\<[a-zA-Z0-9\.\_\-\+]+(\/[a-zA-Z0-9\.\_\-\+]+)*\>)'
|
||||
captures:
|
||||
0: string.unquoted.spath.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
- match: '([a-zA-Z][a-zA-Z0-9\+\-\.]*\:[a-zA-Z0-9\%\/\?\:\@\&\=\+\$\,\-\_\.\!\~\*\'']+)'
|
||||
captures:
|
||||
0: string.unquoted.url.nix
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- include: expression-cont
|
||||
string-quoted:
|
||||
- match: \"
|
||||
captures:
|
||||
0: punctuation.definition.string.double.start.nix
|
||||
push:
|
||||
- meta_scope: string.quoted.double.nix
|
||||
- match: \"
|
||||
captures:
|
||||
0: punctuation.definition.string.double.end.nix
|
||||
pop: true
|
||||
- match: \\.
|
||||
scope: constant.character.escape.nix
|
||||
- include: interpolation
|
||||
whitespace:
|
||||
- match: \s+
|
||||
with-assert:
|
||||
- match: '(?<![\w''-])(with|assert)(?![\w''-])'
|
||||
captures:
|
||||
0: keyword.other.nix
|
||||
push:
|
||||
- match: \;
|
||||
pop: true
|
||||
- include: expression
|
|
@ -0,0 +1,219 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: orgmode
|
||||
file_extensions:
|
||||
- org
|
||||
scope: text.orgmode
|
||||
contexts:
|
||||
main:
|
||||
- match: |-
|
||||
(?x)
|
||||
^(\*+) # leading stars
|
||||
\s*([A-Z_]{2,})? # todo keywords
|
||||
\s*(\[\#[A-Ca-c]\])? # priority
|
||||
\s*(?=\s+[A-Za-z0-9]+) # expected heading text
|
||||
comment: Outline headings
|
||||
captures:
|
||||
1: punctuation.definition.heading.orgmode
|
||||
2: keyword.other.todo.orgmode
|
||||
3: constant.other.priority.orgmode
|
||||
push:
|
||||
- meta_scope: markup.heading.orgmode
|
||||
- meta_content_scope: entity.name.section.orgmode
|
||||
- match: (?=\s*$\n?)
|
||||
pop: true
|
||||
- include: heading-inline
|
||||
- match: "^-{5,}$"
|
||||
scope: meta.separator.orgmode
|
||||
- match: '^\s*([-+]|\s+\*)\s+(.*?)\s+::'
|
||||
captures:
|
||||
1: keyword.operator.list.orgmode
|
||||
2: markup.bold.definition.orgmode
|
||||
push:
|
||||
- meta_scope: meta.list.definition.orgmode
|
||||
- match: $
|
||||
pop: true
|
||||
- include: inline
|
||||
- match: '^\s*?([-+]|\s+\*|\d+[).])'
|
||||
captures:
|
||||
1: keyword.operator.list.orgmode
|
||||
push:
|
||||
- meta_scope: meta.list.plain.orgmode
|
||||
- match: $
|
||||
pop: true
|
||||
- include: list-inline
|
||||
- match: (?i)^#\+(BEGIN_(QUOTE|VERSE|CENTER))$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
push:
|
||||
- meta_scope: markup.quote.orgmode
|
||||
- match: (?i)^#\+(END_\2)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- match: "^#[^+].*$"
|
||||
scope: comment.line.number-sign.orgmode
|
||||
- match: ^:(PROPERTIES):$
|
||||
captures:
|
||||
1: keyword.control.drawer.orgmode
|
||||
push:
|
||||
- meta_scope: meta.drawer.properties.orgmode
|
||||
- match: ^:(END):$
|
||||
captures:
|
||||
1: keyword.control.drawer.orgmode
|
||||
pop: true
|
||||
- include: properties
|
||||
- match: ^:(.+):$
|
||||
captures:
|
||||
1: keyword.control.drawer.orgmode
|
||||
push:
|
||||
- meta_scope: meta.drawer.other.orgmode
|
||||
- match: ^:(END):$
|
||||
captures:
|
||||
1: keyword.control.drawer.orgmode
|
||||
pop: true
|
||||
- match: (?i)#\+(BEGIN_LaTeX)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.latex.orgmode
|
||||
- match: (?i)#\+(END_LaTeX)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:text.tex.latex
|
||||
- match: (?i)#\+(BEGIN_HTML)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.html.orgmode
|
||||
- match: (?i)#\+(END_HTML)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:text.html.basic
|
||||
- match: (?i)#\+(BEGIN_SRC)\s+(python)\s*(.*)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
2: constant.other.language.orgmode
|
||||
3: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.source.python.orgmode
|
||||
- match: (?i)#\+(END_SRC)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:source.python
|
||||
- match: (?i)#\+(BEGIN_SRC)\s+(ruby)\s*(.*)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
2: constant.other.language.orgmode
|
||||
3: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.source.ruby.orgmode
|
||||
- match: (?i)#\+(END_SRC)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:source.ruby
|
||||
- match: (?i)#\+(BEGIN_SRC)\s+((?:emacs-)?lisp)\s*(.*)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
2: constant.other.language.orgmode
|
||||
3: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.source.lisp.orgmode
|
||||
- match: (?i)#\+(END_SRC)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:source.lisp
|
||||
- match: (?i)#\+(BEGIN_SRC)\s+(sh)\s*(.*)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
2: constant.other.language.orgmode
|
||||
3: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.source.shell.orgmode
|
||||
- match: (?i)#\+(END_SRC)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- include: scope:source.shell
|
||||
- match: '(?i)#\+(BEGIN_(SRC|EXAMPLE))(?:\s+([\w-]+)?\s*(.*))?$'
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
3: constant.other.language.orgmode
|
||||
4: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.block.source.other.orgmode
|
||||
- meta_content_scope: markup.raw.block.orgmode
|
||||
- match: (?i)#\+(END_\2)$
|
||||
captures:
|
||||
1: keyword.control.block.orgmode
|
||||
pop: true
|
||||
- match: '#\+(OPTIONS):'
|
||||
captures:
|
||||
1: keyword.control.pragma.orgmode
|
||||
push:
|
||||
- meta_scope: meta.pragma.options.orgmode
|
||||
- match: $
|
||||
pop: true
|
||||
- match: '([^\s]+):([^\s]+)'
|
||||
scope: meta.option.orgmode
|
||||
captures:
|
||||
1: variable.parameter.option.orgmode
|
||||
2: string.other.option.orgmode
|
||||
- match: '#\+(CALL):\s+[A-Za-z-]+(?:\[([^\]]*)\])?\(?'
|
||||
captures:
|
||||
1: keyword.control.pragma.orgmode
|
||||
2: string.other.header-args.orgmode
|
||||
push:
|
||||
- meta_scope: meta.pragma.call.orgmode
|
||||
- match: '\)?([^)]*)$'
|
||||
captures:
|
||||
1: string.other.header-args.orgmode
|
||||
pop: true
|
||||
- match: (\w+)=
|
||||
scope: meta.assignment.orgmode
|
||||
captures:
|
||||
1: variable.parameter.header-args.orgmode
|
||||
- match: '^#\+([a-zA-Z_-]+): ?(.*)$'
|
||||
scope: meta.pragma.orgmode
|
||||
captures:
|
||||
1: keyword.control.pragma.orgmode
|
||||
2: string.unquoted.pragma.orgmode
|
||||
- include: inline
|
||||
heading-inline:
|
||||
- match: ':([^:^\s]*)(?=:)'
|
||||
scope: meta.keyword.orgmode
|
||||
captures:
|
||||
1: string.quoted.keyword.orgmode
|
||||
- include: inline
|
||||
inline:
|
||||
- match: '(?<=^|[.,:;\s])/[^/]+/(?=$|[.,:;\s])'
|
||||
scope: markup.italic.orgmode
|
||||
- match: '(?<=^|[.,:;\s])\*[^*]+\*(?=$|[.,:;\s])'
|
||||
scope: markup.bold.orgmode
|
||||
- match: '(?<=^|[.,:;\s])_[^_]+_(?=$|[.,:;\s])'
|
||||
scope: markup.underline.orgmode
|
||||
- match: '(?<=^|[.,:;\s])([~=]).+?\1(?=$|[.,:;\s])'
|
||||
scope: markup.raw.inline.orgmode
|
||||
- match: '\[(?:\[([^\]]*)\])?\[([^\]]*)\]\]'
|
||||
scope: meta.link.orgmode
|
||||
captures:
|
||||
1: markup.underline.link.orgmode
|
||||
2: string.other.link.orgmode
|
||||
- match: (?:http|ftp)s?:\/\/\S+
|
||||
scope: markup.underline.url.orgmode
|
||||
list-inline:
|
||||
- match: '\[[ -X]\]'
|
||||
scope: keyword.operator.checkbox.orgmode
|
||||
- include: inline
|
||||
properties:
|
||||
- match: '^:([A-Za-z_]+):\s(.*)$'
|
||||
scope: meta.property.orgmode
|
||||
captures:
|
||||
1: keyword.control.property.orgmode
|
||||
2: string.unquoted.propval.orgmode
|
|
@ -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|supportswildcards)\b'
|
||||
- match: '(\[)\s*\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength)\b'
|
||||
captures:
|
||||
1: punctuation.section.bracket.begin.powershell
|
||||
2: support.function.attribute.powershell
|
||||
|
@ -165,11 +165,31 @@ 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:"
|
||||
|
@ -222,14 +242,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: '`[`0abefnrtv"''$]'
|
||||
- match: '`[0abnfrvt"''$`]'
|
||||
scope: constant.character.escape.powershell
|
||||
- include: unicodeEscape
|
||||
- match: '""'
|
||||
scope: constant.character.escape.powershell
|
||||
function:
|
||||
|
@ -342,11 +362,6 @@ contexts:
|
|||
- match: '(?!\d+|\.)(?:\p{L}|\p{N}|\.)+'
|
||||
scope: storage.type.powershell
|
||||
- include: main
|
||||
unicodeEscape:
|
||||
- match: '`u\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\g<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.
|
||||
|
@ -359,10 +374,10 @@ 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)((?:\.(?:\p{L}|\d|_)+)*\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))((?:\.(?:\p{L}|\d|_)+)*\b)?\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.variable.automatic.powershell
|
||||
0: support.constant.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'
|
||||
|
@ -411,7 +426,7 @@ 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
|
||||
|
@ -423,7 +438,7 @@ contexts:
|
|||
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
|
|
@ -0,0 +1,460 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# Syntax for Protocol Buffer definition files.
|
||||
# Works with proto2 and proto3.
|
||||
# See official Protobuff documentation at https://developers.google.com/protocol-buffers/docs/proto3
|
||||
#
|
||||
# Authors: Jiarong Wei, Raul Rangel & Guillaume Wenzek
|
||||
#
|
||||
# .sublime-syntax reference: http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Protocol Buffer
|
||||
file_extensions:
|
||||
- proto
|
||||
- protodevel
|
||||
scope: source.proto
|
||||
|
||||
first_line_match: '^(syntax)\s*(=)\s*("proto\d")\s*(;)\s*$'
|
||||
|
||||
variables:
|
||||
ident: '\b([A-Za-z][A-Za-z0-9_]*)\b'
|
||||
|
||||
contexts:
|
||||
prototype:
|
||||
- include: comments
|
||||
|
||||
main:
|
||||
- include: syntax
|
||||
- include: package
|
||||
- include: import
|
||||
- include: option
|
||||
- include: enum
|
||||
- include: message
|
||||
- include: extend
|
||||
- include: service
|
||||
|
||||
# This is proto1 syntax which is deprecated, only providing minimal support.
|
||||
- match: '\b(parsed)?\s*(class)\s+{{ident}}\s+{'
|
||||
scope: meta.parsed.message.proto
|
||||
captures:
|
||||
1: storage.modifier.proto
|
||||
2: storage.type.message.proto
|
||||
3: entity.name.class.proto
|
||||
push:
|
||||
- match: '}'
|
||||
pop: true
|
||||
- include: message_body
|
||||
# Groups are deprecated, only providing minimal support.
|
||||
- match: '\b(group)\s+{{ident}}\s+=\s+(\d+)\s+{'
|
||||
scope: meta.group.proto
|
||||
captures:
|
||||
1: storage.type.proto invalid.deprecated.group.proto
|
||||
2: variable.other.field.proto
|
||||
3: constant.numeric.proto
|
||||
push:
|
||||
- match: '}'
|
||||
pop: true
|
||||
- include: message_body
|
||||
|
||||
|
||||
# Comments
|
||||
comments:
|
||||
- match: //
|
||||
scope: punctuation.definition.comment.begin.proto
|
||||
push:
|
||||
- meta_scope: comment.line.proto
|
||||
- match: '$'
|
||||
pop: true
|
||||
- match: /\*
|
||||
scope: punctuation.definition.comment.proto
|
||||
push:
|
||||
- meta_scope: comment.block.proto
|
||||
- match: \*/
|
||||
scope: punctuation.definition.comment.proto
|
||||
pop: true
|
||||
|
||||
|
||||
# Others
|
||||
or_pop:
|
||||
# Pop when seeing unexpected characters.
|
||||
- match: '(?=\S)'
|
||||
pop: true
|
||||
|
||||
field_name_or_pop:
|
||||
- match: '{{ident}}'
|
||||
scope: variable.other.field.proto
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
one_liner:
|
||||
- match: ;
|
||||
scope: punctuation.terminator.proto
|
||||
pop: true
|
||||
- match: $
|
||||
pop: true
|
||||
|
||||
semicolon_or_pop:
|
||||
- match: ';'
|
||||
captures:
|
||||
0: punctuation.terminator.proto
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
assignment_or_pop:
|
||||
- match: '='
|
||||
scope: keyword.operator.assignment.proto
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
|
||||
# Syntax
|
||||
syntax:
|
||||
- match: '^\s*(syntax)\s*(=)'
|
||||
captures:
|
||||
1: keyword.other.syntax.proto
|
||||
2: keyword.operator.assignment.proto
|
||||
push:
|
||||
- include: string
|
||||
- include: one_liner
|
||||
|
||||
|
||||
# Import
|
||||
import:
|
||||
- match: '\b(import)\b\s*(weak|public)?\b'
|
||||
captures:
|
||||
1: keyword.other.import.proto
|
||||
2: storage.modifier.proto
|
||||
push:
|
||||
- include: string
|
||||
- include: one_liner
|
||||
|
||||
|
||||
# Package
|
||||
package:
|
||||
- match: \b(package)\b
|
||||
scope: keyword.other.namespace.proto
|
||||
push:
|
||||
- match: '{{ident}}(\.)'
|
||||
captures:
|
||||
1: variable.namespace.proto
|
||||
2: punctuation.separator.namespace.proto
|
||||
- match: '{{ident}}'
|
||||
scope: entity.name.namespace.proto
|
||||
- include: one_liner
|
||||
|
||||
|
||||
# Option
|
||||
option:
|
||||
- match: '\b(option)\b'
|
||||
scope: storage.type.annotation.proto
|
||||
push:
|
||||
- match: ';'
|
||||
scope: punctuation.terminator.option.proto
|
||||
pop: true
|
||||
- include: option_inline
|
||||
- include: or_pop
|
||||
|
||||
option_inline:
|
||||
- match: '{{ident}}'
|
||||
scope: variable.annotation.proto
|
||||
- include: full_option_name
|
||||
- match: =
|
||||
scope: keyword.operator.assignment.proto
|
||||
push: option_value
|
||||
|
||||
full_option_name:
|
||||
- match: \(
|
||||
scope: punctuation.definition.name.option.begin.proto
|
||||
push:
|
||||
- match: (\))(?:(\.){{ident}})?
|
||||
captures:
|
||||
1: punctuation.definition.name.option.end.proto
|
||||
2: punctuation.accessor.proto
|
||||
3: variable.annotation.proto
|
||||
pop: true
|
||||
- match: '{{ident}}(\.)'
|
||||
captures:
|
||||
1: variable.namespace.proto
|
||||
2: punctuation.accessor.proto
|
||||
- match: '{{ident}}'
|
||||
scope: variable.annotation.proto
|
||||
|
||||
|
||||
# Message
|
||||
message:
|
||||
- match: '\b(message)\b\s*{{ident}}'
|
||||
captures:
|
||||
1: storage.type.message.proto
|
||||
2: entity.name.class.proto
|
||||
push:
|
||||
- meta_scope: meta.class.proto
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.message.begin.proto
|
||||
set: message_body
|
||||
- include: or_pop
|
||||
|
||||
message_body:
|
||||
- meta_scope: meta.class.proto
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.message.end.proto
|
||||
pop: true
|
||||
- include: option
|
||||
- include: message
|
||||
- include: extend
|
||||
- include: oneof
|
||||
- include: enum
|
||||
- include: reserved
|
||||
- include: field
|
||||
|
||||
field:
|
||||
- match: '\b(optional|required|repeated)\b'
|
||||
captures:
|
||||
1: storage.modifier.proto
|
||||
push: [ field_end_or_pop, field_name_or_pop, message_type_or_pop ]
|
||||
- match: '\b(map)\b\s*\b(<)'
|
||||
captures:
|
||||
1: support.type.map.proto
|
||||
2: punctuation.definition.map.begin.proto
|
||||
push: [ field_end_or_pop, field_name_or_pop, map_type ]
|
||||
# field are assumed 'optional' by default in proto3.
|
||||
- match: '(?={{ident}})'
|
||||
push: [ field_end_or_pop, field_name_or_pop, message_type_or_pop ]
|
||||
|
||||
# Enum
|
||||
enum:
|
||||
- match: '\b(enum)\b\s*{{ident}}'
|
||||
captures:
|
||||
1: storage.type.enum.proto
|
||||
2: entity.name.enum.proto
|
||||
push:
|
||||
- meta_scope: meta.enum.proto
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.enum.begin.proto
|
||||
set: enum_body
|
||||
- include: or_pop
|
||||
|
||||
enum_body:
|
||||
- meta_scope: meta.enum.proto
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.enum.end.proto
|
||||
pop: true
|
||||
- include: option
|
||||
- match: '{{ident}}'
|
||||
scope: constant.other.enum.proto
|
||||
push:
|
||||
- semicolon_or_pop
|
||||
- field_attributes_or_pop
|
||||
- number_or_pop
|
||||
- assignment_or_pop
|
||||
|
||||
|
||||
# Extend
|
||||
extend:
|
||||
- match: '\b(extend)\b'
|
||||
scope: storage.modifier.extend.proto
|
||||
push: [ extend_body_or_pop, message_type_or_pop]
|
||||
|
||||
extend_body_or_pop:
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.extend.begin.proto
|
||||
set:
|
||||
- meta_scope: meta.extend.body.proto
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.extend.end.proto
|
||||
pop: true
|
||||
- include: message_body
|
||||
- include: or_pop
|
||||
|
||||
|
||||
# Oneof
|
||||
oneof:
|
||||
- match: '\b(oneof)\b\s*{{ident}}'
|
||||
captures:
|
||||
1: storage.modifier.oneof.proto
|
||||
2: entity.name.member.proto
|
||||
push:
|
||||
- meta_scope: meta.oneof.proto
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.oneof.begin.proto
|
||||
set: oneof_body
|
||||
- include: or_pop
|
||||
|
||||
oneof_body:
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.oneof.end.proto
|
||||
pop: true
|
||||
- match: '(?=\S)'
|
||||
push: [ field_end_or_pop, field_name_or_pop, message_type_or_pop ]
|
||||
|
||||
|
||||
# Service
|
||||
service:
|
||||
- match: '\b(service)\b\s*{{ident}}'
|
||||
captures:
|
||||
1: storage.type.service.proto
|
||||
2: entity.name.class.proto
|
||||
push:
|
||||
- meta_scope: meta.service.proto
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.service.begin.proto
|
||||
set:
|
||||
- meta_scope: meta.service.proto
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.service.end.proto
|
||||
pop: true
|
||||
- include: option
|
||||
- include: rpc
|
||||
- include: or_pop
|
||||
|
||||
|
||||
# Rpc
|
||||
rpc:
|
||||
- match: '\b(rpc)\b\s*{{ident}}'
|
||||
captures:
|
||||
1: storage.type.rpc.proto
|
||||
2: entity.name.function.rpc.proto
|
||||
push: [rpc_body, rpc_param, rpc_returns, rpc_param]
|
||||
|
||||
rpc_returns:
|
||||
- match: returns
|
||||
scope: keyword.other.returns.proto
|
||||
pop: true
|
||||
|
||||
rpc_param:
|
||||
- match: \(
|
||||
scope: punctuation.definition.parameter.rpc.begin.proto
|
||||
set:
|
||||
- match: \)
|
||||
scope: punctuation.definition.parameter.rpc.end.proto
|
||||
pop: true
|
||||
- match: '\bstream\b'
|
||||
scope: storage.modifier.proto
|
||||
- match: (?=\S)
|
||||
push: message_type_or_pop
|
||||
|
||||
rpc_body:
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.rpc.begin.proto
|
||||
set:
|
||||
- meta_scope: meta.rpc.body.proto
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.rpc.end.proto
|
||||
pop: true
|
||||
- include: option
|
||||
- match: ;
|
||||
scope: punctuation.terminator.proto
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
|
||||
# Reserved
|
||||
reserved:
|
||||
- match: '\b(reserved)\b'
|
||||
scope: storage.modifier.proto
|
||||
push:
|
||||
- include: numeric_range
|
||||
- include: string
|
||||
- match: '\b(extensions)\b'
|
||||
scope: storage.modifier.proto
|
||||
push: numeric_range
|
||||
|
||||
numeric_range:
|
||||
- match: \d+
|
||||
scope: constant.numeric.proto
|
||||
- match: max
|
||||
scope: constant.language.proto
|
||||
- match: ','
|
||||
scope: punctuation.separator.proto
|
||||
- match: to
|
||||
scope: keyword.other.to.proto
|
||||
- match: ';'
|
||||
scope: punctuation.terminator.proto
|
||||
pop: true
|
||||
|
||||
field_end_or_pop:
|
||||
- match: ''
|
||||
set:
|
||||
- semicolon_or_pop
|
||||
- field_attributes_or_pop
|
||||
- number_or_pop
|
||||
- assignment_or_pop
|
||||
|
||||
field_attributes_or_pop:
|
||||
- match: '\['
|
||||
scope: punctuation.definition.attributes.begin.proto
|
||||
set:
|
||||
- meta_scope: meta.field.attributes.proto
|
||||
- match: \b(default|deprecated|packed)\b
|
||||
scope: support.function.proto
|
||||
- match: \,
|
||||
scope: punctuation.separator.option.proto
|
||||
- match: '\]'
|
||||
scope: punctuation.definition.attributes.end.proto
|
||||
pop: true
|
||||
- include: option_inline
|
||||
- include: or_pop
|
||||
|
||||
|
||||
# Values
|
||||
option_value:
|
||||
# Reuse prototxt syntax to parse embedded literal or protos.
|
||||
- match: '{'
|
||||
scope: punctuation.definition.block.option.begin.proto
|
||||
push:
|
||||
- meta_scope: meta.embedded.prototxt
|
||||
- match: '}'
|
||||
scope: punctuation.definition.block.option.end.proto
|
||||
pop: true
|
||||
- include: scope:text.prototxt
|
||||
- include: scope:text.prototxt#field_value_or_pop
|
||||
|
||||
number_or_pop:
|
||||
- match: \d+
|
||||
scope: constant.numeric.proto
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
string:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.proto
|
||||
push:
|
||||
- meta_scope: string.quoted.double.proto
|
||||
- meta_include_prototype: false
|
||||
- match: '\\"'
|
||||
scope: constant.character.escape.proto
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.proto
|
||||
pop: true
|
||||
- match: (?=$) # pop if string is malformed.
|
||||
pop: true
|
||||
|
||||
|
||||
# All types
|
||||
message_type_or_pop:
|
||||
# see documentation for the list of base types:
|
||||
# https://developers.google.com/protocol-buffers/docs/proto#scalar
|
||||
- match: '(double|float|bool|string|bytes)'
|
||||
scope: support.type.proto
|
||||
pop: true
|
||||
- match: '(u|s)?int(32|64)'
|
||||
scope: support.type.proto
|
||||
pop: true
|
||||
- match: 's?fixed(32|64)'
|
||||
scope: support.type.proto
|
||||
pop: true
|
||||
- match: '{{ident}}(\.)'
|
||||
captures:
|
||||
1: variable.namespace.proto
|
||||
2: punctuation.accessor.proto
|
||||
- match: '{{ident}}'
|
||||
# TODO: Use the convention decided in https://github.com/sublimehq/Packages/issues/582
|
||||
scope: storage.type.proto variable.type.proto
|
||||
pop: true
|
||||
|
||||
map_type:
|
||||
- match: ','
|
||||
scope: punctuation.separator.map.proto
|
||||
- match: '>'
|
||||
scope: punctuation.definition.map.end.proto
|
||||
pop: true
|
||||
- match: '(?={{ident}})'
|
||||
push: message_type_or_pop
|
|
@ -0,0 +1,186 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# Syntax for Protocol Buffer serialized as human readable text.
|
||||
# Works with proto2 and proto3.
|
||||
# See official Protobuff documentation at https://developers.google.com/protocol-buffers/docs/proto3
|
||||
#
|
||||
# Author: Raul Rangel & Guillaume Wenzek
|
||||
#
|
||||
# .sublime-syntax reference: http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Protocol Buffer (TEXT)
|
||||
file_extensions:
|
||||
- pb.txt
|
||||
- proto.text
|
||||
- textpb
|
||||
- pbtxt
|
||||
- prototxt
|
||||
scope: text.prototxt
|
||||
variables:
|
||||
stringEscape: '(?:\\(?:[''"\\/abfnrtv?]|[0-9]{3}|(?i:u|x)[0-9A-Fa-f]+))'
|
||||
field_name: '\b([A-Za-z][A-Za-z0-9_]*)\b'
|
||||
integer: '(?:\+|-)?(?:0|[1-9]\d*)'
|
||||
exp: '(?i:e(?:\+|-)?{{integer}})'
|
||||
|
||||
contexts:
|
||||
prototype:
|
||||
- include: comments
|
||||
|
||||
or_pop:
|
||||
# Pop if nothing matched (whitespace are ignored).
|
||||
- match: '(?=\S)'
|
||||
pop: true
|
||||
|
||||
main:
|
||||
- include: field
|
||||
|
||||
comments:
|
||||
- match: '#'
|
||||
scope: punctuation.definition.comment.begin.prototxt
|
||||
push:
|
||||
- meta_scope: comment.line.prototxt
|
||||
- match: '$'
|
||||
pop: true
|
||||
|
||||
field:
|
||||
- match: '{{field_name}}'
|
||||
scope: variable.other.member.prototxt
|
||||
push: field_sep_or_pop
|
||||
- match: \[
|
||||
scope: punctuation.definition.field_name.begin.prototxt
|
||||
push:
|
||||
- match: \]
|
||||
set: field_sep_or_pop
|
||||
scope: punctuation.definition.field_name.end.prototxt
|
||||
- match: '{{field_name}}(\.)'
|
||||
captures:
|
||||
1: variable.other.namespace.prototxt
|
||||
2: punctuation.accessor.prototxt
|
||||
- match: '{{field_name}}'
|
||||
scope: variable.other.member.prototxt
|
||||
|
||||
field_sep_or_pop:
|
||||
- match: '(:)|(?=\{|<)'
|
||||
scope: punctuation.separator.key-value.prototxt
|
||||
set: [comma_or_pop, field_value_or_pop]
|
||||
- include: or_pop
|
||||
|
||||
field_value_or_pop:
|
||||
- match: '{'
|
||||
scope: punctuation.definition.dictionary.begin.prototxt
|
||||
set:
|
||||
- meta_scope: meta.message.prototxt
|
||||
- match: '}'
|
||||
scope: punctuation.definition.dictionary.end.prototxt
|
||||
pop: true
|
||||
- include: field
|
||||
- match: '<'
|
||||
scope: punctuation.definition.dictionary.begin.prototxt
|
||||
set:
|
||||
- meta_scope: meta.message.prototxt
|
||||
- match: '>'
|
||||
scope: punctuation.definition.dictionary.end.prototxt
|
||||
pop: true
|
||||
- include: field
|
||||
- include: constant
|
||||
- include: string_double_multiline
|
||||
- include: string_single_multiline
|
||||
- include: enum_value
|
||||
- include: number
|
||||
- include: array
|
||||
- include: or_pop
|
||||
|
||||
array:
|
||||
- match: '\['
|
||||
scope: punctuation.definition.array.begin.prototxt
|
||||
set:
|
||||
- match: '\]'
|
||||
scope: punctuation.definition.array.end.prototxt
|
||||
pop: true
|
||||
- match: \,
|
||||
scope: punctuation.separator.array.prototxt
|
||||
- match: (?=\S)
|
||||
push: field_value_or_pop
|
||||
|
||||
comma_or_pop:
|
||||
- match: ','
|
||||
scope: punctuation.separator.prototxt
|
||||
pop: true
|
||||
- include: or_pop
|
||||
|
||||
constant:
|
||||
- match: \b(true|True|t|false|False|f)\b
|
||||
scope: constant.language.prototxt
|
||||
pop: true
|
||||
- match: (\+|-)?\b(?i:inf|infinity)\b
|
||||
scope: constant.language.prototxt
|
||||
pop: true
|
||||
- match: \b(?i:nan)\b
|
||||
scope: constant.language.prototxt
|
||||
pop: true
|
||||
|
||||
number:
|
||||
- match: |-
|
||||
(?xi:
|
||||
{{integer}}?\.\d+{{exp}}?(f?) # literal with a dot: .3 .3e+4 1.3 1.3f
|
||||
|{{integer}}(f) # literal with a 'f': 1f
|
||||
|{{integer}}{{exp}}(f?) # literal with an exp: .3e+4 1e-3 1e3f
|
||||
)\b
|
||||
scope: constant.numeric.float.prototxt
|
||||
captures:
|
||||
1: punctuation.definition.numeric.float.prototxt
|
||||
2: punctuation.definition.numeric.float.prototxt
|
||||
3: punctuation.definition.numeric.float.prototxt
|
||||
pop: true
|
||||
- match: '{{integer}}\b'
|
||||
scope: constant.numeric.integer.prototxt
|
||||
pop: true
|
||||
- match: '(0)[0-8]+\b'
|
||||
scope: constant.numeric.octal.prototxt
|
||||
captures:
|
||||
1: punctuation.definition.numeric.octal.prototxt
|
||||
pop: true
|
||||
- match: '(0[xX])[0-9A-Fa-f]+\b'
|
||||
scope: constant.numeric.hex.prototxt
|
||||
captures:
|
||||
1: punctuation.definition.numeric.hex.prototxt
|
||||
pop: true
|
||||
|
||||
enum_value:
|
||||
- match: '{{field_name}}'
|
||||
scope: constant.numeric.enum.prototxt
|
||||
pop: true
|
||||
|
||||
string_double_multiline:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.prototxt
|
||||
set:
|
||||
- meta_scope: string.quoted.double.prototxt
|
||||
- meta_include_prototype: false
|
||||
- match: '{{stringEscape}}'
|
||||
scope: constant.character.escape.prototxt
|
||||
- match: \\.
|
||||
scope: invalid.illegal.unrecognized-string-escape.prototxt
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.prototxt
|
||||
set:
|
||||
- include: string_double_multiline
|
||||
- include: or_pop
|
||||
|
||||
string_single_multiline:
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.quoted.single.begin.prototxt
|
||||
set:
|
||||
- meta_scope: string.quoted.single.prototxt
|
||||
- meta_include_prototype: false
|
||||
# Note that technically "bytes" field main don't respect escapes,
|
||||
# but there is no way to know if the given string will be interpreted as
|
||||
# "bytes".
|
||||
- match: '{{stringEscape}}'
|
||||
scope: constant.character.escape.prototxt
|
||||
- match: \\.
|
||||
scope: invalid.illegal.unrecognized-string-escape.prototxt
|
||||
- match: "'"
|
||||
scope: punctuation.definition.string.quoted.single.end.prototxt
|
||||
set:
|
||||
- include: string_single_multiline
|
||||
- include: or_pop
|
|
@ -0,0 +1,54 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Robot Framework syntax highlighting.
|
||||
file_extensions:
|
||||
- robot
|
||||
scope: source.robot
|
||||
contexts:
|
||||
main:
|
||||
- match: '\$\{(\d+|\d+\.\d*|0[bB][01]+|0[oO][0-7]+|0[xX][0-9a-fA-F]+)\}'
|
||||
comment: "Robot Framework numbers, like ${1} or ${12.3}"
|
||||
scope: constant.numeric.robot
|
||||
- match: '(?i)(%\{[\w|\s]+\})'
|
||||
comment: "Robot Framework environment variable, like %{USER}"
|
||||
scope: variable.parameter.robot
|
||||
- match: '((?<!\\)|(?<=\\\\))[$&]{'
|
||||
comment: Robot Framework scalar and dictionary variables
|
||||
push:
|
||||
- meta_scope: entity.name.class
|
||||
- match: '\}'
|
||||
pop: true
|
||||
- match: '((?<!\\)(@{)|(?<=\\\\)(@{))'
|
||||
comment: Robot Framework list variables
|
||||
push:
|
||||
- meta_scope: entity.name.class
|
||||
- match: '(}\[.+])|(})'
|
||||
pop: true
|
||||
- match: '(?i)^(\|\s*)?(\*{1,3} ?)(settings?|variables?|keywords?|test cases?)( ?\*{1,3})?(\s*\|)?'
|
||||
comment: Robot Framework data tables
|
||||
scope: string.robot.header
|
||||
- match: '(?i)(^\|\s*)?\[?Documentation\]?\s+'
|
||||
comment: Test case, keyword and settings table documentation
|
||||
push:
|
||||
- meta_scope: comment
|
||||
- match: ^(?!\s*+\.\.\.)
|
||||
pop: true
|
||||
- match: '(^| {2,}|\t|\\| {1,})(?<!\\\\)#'
|
||||
comment: Comment character
|
||||
push:
|
||||
- meta_scope: comment
|
||||
- match: $
|
||||
pop: true
|
||||
- match: '(?i)\s+\[(Tags|Setup|Teardown|Template|Timeout|Arguments|Return)\]'
|
||||
comment: Tests case and keyword settings
|
||||
scope: storage.type
|
||||
- match: (?i)^(\|\s*)?(Library|Resource|Test Timeout|Test Template|Test Teardown|Test Setup|Default Tags|Force Tags|Metadata|Variables|Suite Setup|Suite Teardown)(?:( )|( \| ))
|
||||
comment: Settings table settings, like Library
|
||||
scope: constant.language
|
||||
- match: '^(\|\s+)?(?!^\.{3})(?![\|$&])\S+'
|
||||
comment: Keywords and test cases
|
||||
push:
|
||||
- meta_scope: keyword.control.robot
|
||||
- match: '($|\||\s{2,})'
|
||||
pop: true
|
|
@ -0,0 +1,292 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# https://www.sublimetext.com/docs/3/syntax.html
|
||||
# http://man7.org/linux/man-pages/man5/ssh_config.5.html
|
||||
name: SSH Config
|
||||
file_extensions:
|
||||
- ssh_config
|
||||
scope: text.ssh_config
|
||||
contexts:
|
||||
main:
|
||||
- include: comments
|
||||
- include: host
|
||||
- include: match
|
||||
|
||||
options:
|
||||
- include: comments
|
||||
- include: hostname
|
||||
- include: localcommand
|
||||
- include: proxycommand
|
||||
- include: boolean-option
|
||||
- include: boolean-option-plus
|
||||
- include: generic-option
|
||||
|
||||
tokens:
|
||||
# http://man7.org/linux/man-pages/man5/ssh_config.5.html#TOKENS
|
||||
- match: '%[%CdhiLlnprTu]'
|
||||
scope: constant.character.escape.ssh_config
|
||||
|
||||
pop-nl:
|
||||
- match: '\n'
|
||||
pop: true
|
||||
|
||||
pop-before-nl:
|
||||
- match: '(?=\n)'
|
||||
pop: true
|
||||
|
||||
pop-before-match-option:
|
||||
- include: pop-before-nl
|
||||
- match: (?i)(?=[ \t]*(all|canonical|exec|host|originalhost|user|localuser)\b)
|
||||
pop: true
|
||||
|
||||
pop-before-next-host:
|
||||
- match: (?i)(?=^[ \t]*(host|match)\b)
|
||||
pop: true
|
||||
|
||||
# Host
|
||||
host:
|
||||
- match: '(?i)^[ \t]*(host)\b'
|
||||
captures:
|
||||
1: meta.block.host.ssh_config keyword.declaration.host-alias.ssh_config
|
||||
set: host-aliases
|
||||
|
||||
host-aliases:
|
||||
- meta_scope: meta.block.host.ssh_config
|
||||
- match: (?=\n)
|
||||
set: host-body
|
||||
- include: host-patterns
|
||||
|
||||
host-body:
|
||||
- meta_scope: meta.block.host.ssh_config
|
||||
- include: pop-before-next-host
|
||||
- include: options
|
||||
|
||||
# Match
|
||||
match:
|
||||
- match: '(?i)^[ \t]*(match)\b'
|
||||
captures:
|
||||
1: meta.block.match.ssh_config keyword.control.conditional.ssh_config
|
||||
set: match-conditions
|
||||
|
||||
match-conditions:
|
||||
- meta_scope: meta.block.match.ssh_config meta.statement.conditional.ssh_config
|
||||
- match: (?=\n)
|
||||
set: match-body
|
||||
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.ssh_config
|
||||
- match: (?i)\b(all)\b
|
||||
scope: constant.language.boolean.ssh_config
|
||||
- match: (?i)\b(canonical)\b
|
||||
scope: keyword.other.ssh_config
|
||||
|
||||
- match: (?i)\b(exec)\b[ \t]*(\")
|
||||
captures:
|
||||
1: keyword.other.ssh_config
|
||||
2: string.quoted.double.ssh_config punctuation.definition.string.begin.ssh_config
|
||||
escape: (?<!\\)\"(?=\s*(?:#.*)?)
|
||||
escape_captures:
|
||||
0: string.quoted.double.ssh_config punctuation.definition.string.end.ssh_config
|
||||
embed: scope:source.shell
|
||||
- match: (?i)\b(exec)\b[ \t]+
|
||||
captures:
|
||||
1: keyword.other.ssh_config
|
||||
with_prototype:
|
||||
- include: match-exec-tokens
|
||||
- include: pop-before-match-option
|
||||
push:
|
||||
- meta_content_scope: source.embedded.shell
|
||||
- include: scope:source.shell
|
||||
|
||||
- match: (?i)\b((original)?host)\b
|
||||
scope: keyword.other.ssh_config
|
||||
push:
|
||||
- include: pop-before-match-option
|
||||
- include: host-patterns
|
||||
|
||||
- match: (?i)\b((local)?user)\b
|
||||
scope: keyword.other.ssh_config
|
||||
push:
|
||||
- include: pop-before-match-option
|
||||
- match: '\S'
|
||||
scope: string.unquoted.ssh_config
|
||||
|
||||
match-body:
|
||||
- meta_scope: meta.block.match.ssh_config
|
||||
- include: pop-before-next-host
|
||||
- include: options
|
||||
|
||||
# Options
|
||||
hostname:
|
||||
- match: '(?i)^[ \t]*(hostname)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.declaration.host.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
push:
|
||||
- include: pop-nl
|
||||
- include: hostname-or-ip-value
|
||||
|
||||
hostname-or-ip-value:
|
||||
- match: |-
|
||||
(?x:
|
||||
(
|
||||
((?:\d{1,3}\.){3}\d{1,3})| # simple IPv4
|
||||
((?i:[a-f0-9:]+:+)+[a-f0-9]+)| # simple IPv6
|
||||
(\S+) # anything else
|
||||
)
|
||||
[ \t]* # any whitespace
|
||||
(\S*) # anything else on the line
|
||||
)
|
||||
scope: meta.mapping.value.ssh_config
|
||||
captures:
|
||||
1: meta.string.host.ssh_config
|
||||
2: constant.numeric.ip4.ssh_config
|
||||
3: constant.numeric.ip6.ssh_config
|
||||
4: string.unquoted.hostname.ssh_config
|
||||
5: invalid.illegal.ssh_config
|
||||
|
||||
host-patterns:
|
||||
# http://man7.org/linux/man-pages/man5/ssh_config.5.html#PATTERNS
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.ssh_config
|
||||
- match: '[^\s*?]+'
|
||||
scope: entity.name.label.host-alias.ssh_config
|
||||
- match: '\*|\?'
|
||||
scope: entity.name.label.host-alias.ssh_config constant.language.wildcard.ssh_config
|
||||
|
||||
match-exec-tokens:
|
||||
# http://man7.org/linux/man-pages/man5/ssh_config.5.html#TOKENS
|
||||
- match: '%[%hiLlnpru]'
|
||||
scope: constant.character.escape.ssh_config
|
||||
|
||||
proxycommand:
|
||||
- match: '^\s*(?i)(proxycommand)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.other.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
with_prototype:
|
||||
- match: '%[%hpr]'
|
||||
scope: constant.character.escape.ssh_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.ssh_config source.embedded.shell
|
||||
- match: none
|
||||
scope: constant.language.set.ssh_config
|
||||
pop: true
|
||||
- include: scope:source.shell
|
||||
- include: pop-nl
|
||||
|
||||
localcommand:
|
||||
- match: '^\s*(?i)(localcommand)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.other.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
with_prototype:
|
||||
- match: '%[%CdhilnprTu]'
|
||||
scope: constant.character.escape.ssh_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.ssh_config source.embedded.shell
|
||||
- match: none
|
||||
scope: constant.language.set.ssh_config
|
||||
pop: true
|
||||
- include: scope:source.shell
|
||||
- include: pop-nl
|
||||
|
||||
boolean-value:
|
||||
- match: (?i)\b(yes|no)\b
|
||||
scope: constant.language.boolean.ssh_config
|
||||
|
||||
boolean-option:
|
||||
- match: |-
|
||||
(?xi)
|
||||
^\s*(
|
||||
(?:Pubkey|HostBased|Password|ChallengeResponse|KbdInteractive|(?:Rhosts)?RSA)Authentication| # Auth
|
||||
ForwardAgent|ForwardX11(?:Trusted)?|ClearAllForwardings|ExitOnForwardFailure| # Fwds
|
||||
BatchMode|CheckHostIP|Compression|EnableSSHKeySign|GatewayPorts|HashKnownHosts|
|
||||
IdentitiesOnly|PermitLocalCommand|NoHostAuthenticationForLocalhost|
|
||||
TCPKeepAlive|UsePrivilegedPort|VisualHostKey|
|
||||
GSSAPI(?:Authentication|KeyExchange|DelegateCredentials|RenewalForcesRekey|TrustDNS) # GSSAPI
|
||||
)\b[ \t]*(=)?
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.other.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.ssh_config
|
||||
- include: pop-nl
|
||||
- match: '[ \t]+\S+'
|
||||
scope: invalid.illegal.ssh_config
|
||||
- include: boolean-value
|
||||
- match: (?i)y(es?)?|no?
|
||||
- match: \S+
|
||||
scope: invalid.illegal.ssh_config
|
||||
|
||||
boolean-option-plus:
|
||||
# ask
|
||||
- match: (?i)^\s*(StrictHostKeyChecking|VerifyHostKeyDNS)\b[ \t]*(=)?
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.other.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.ssh_config
|
||||
- include: pop-nl
|
||||
- match: '[ \t]+\S+'
|
||||
scope: invalid.illegal.ssh_config
|
||||
- include: boolean-value
|
||||
- match: (?i)\b(ask)\b
|
||||
scope: constant.language.set.ssh_config
|
||||
- match: (?i)y(es?)?|no?|a(s?k)?
|
||||
- match: \S+
|
||||
scope: invalid.illegal.ssh_config
|
||||
|
||||
generic-option:
|
||||
- match: '^\s*([a-zA-Z1]+)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.ssh_config keyword.other.ssh_config
|
||||
2: keyword.operator.assignment.ssh_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.ssh_config
|
||||
- include: boolean-value
|
||||
- include: tokens
|
||||
- match: '\d+'
|
||||
scope: constant.numeric.ssh_config
|
||||
- match: \"
|
||||
scope: punctuation.definition.string.begin.ssh_config
|
||||
push:
|
||||
- meta_scope: string.quoted.double.ssh_config
|
||||
- match: \"
|
||||
scope: punctuation.definition.string.end.ssh_config
|
||||
pop: true
|
||||
- match: \n|$
|
||||
scope: invalid.illegal.ssh_config
|
||||
pop: true
|
||||
- include: tokens
|
||||
- match: \*|\?
|
||||
scope: constant.language.wildcard.ssh_config
|
||||
- match: ','
|
||||
scope: punctuation.separator.sequence.ssh_config
|
||||
- match: '\S'
|
||||
scope: string.unquoted.ssh_config
|
||||
push:
|
||||
- meta_content_scope: string.unquoted.ssh_config
|
||||
- include: pop-before-nl
|
||||
- include: tokens
|
||||
- match: \*|\?
|
||||
scope: constant.language.wildcard.ssh_config
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.ssh_config
|
||||
- match: ','
|
||||
scope: punctuation.separator.sequence.ssh_config
|
||||
- include: pop-nl
|
||||
|
||||
comments:
|
||||
- match: '^\s*(#)'
|
||||
captures:
|
||||
1: punctuation.definition.comment.ssh_config
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.ssh_config
|
||||
- include: pop-nl
|
||||
- match: '^\s*(;)'
|
||||
captures:
|
||||
1: punctuation.definition.comment.ssh_config
|
||||
push:
|
||||
- meta_scope: comment.line.semi-colon.ssh_config
|
||||
- include: pop-nl
|
|
@ -0,0 +1,184 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# https://www.sublimetext.com/docs/3/syntax.html
|
||||
# http://man7.org/linux/man-pages/man5/sshd_config.5.html
|
||||
name: SSHD Config
|
||||
file_extensions:
|
||||
- sshd_config
|
||||
scope: text.sshd_config
|
||||
contexts:
|
||||
main:
|
||||
- include: comments
|
||||
- include: match
|
||||
- include: generic-option
|
||||
|
||||
options:
|
||||
- include: comments
|
||||
- include: forcecommand
|
||||
- include: generic-option
|
||||
|
||||
tokens:
|
||||
# http://man7.org/linux/man-pages/man5/sshd_config.5.html#TOKENS
|
||||
- match: '%[%DFfhiKksTtUu]'
|
||||
scope: constant.character.escape.sshd_config
|
||||
|
||||
pop-nl:
|
||||
- match: '\n'
|
||||
pop: true
|
||||
|
||||
pop-before-nl:
|
||||
- match: '(?=\n)'
|
||||
pop: true
|
||||
|
||||
pop-before-match-option:
|
||||
- include: pop-before-nl
|
||||
- match: (?i)(?=[ \t]*(all|user|group|host|(?:local)?address|localport)\b)
|
||||
pop: true
|
||||
|
||||
pop-before-next-match:
|
||||
- match: (?i)(?=^[ \t]*(match)\b)
|
||||
pop: true
|
||||
|
||||
# Match
|
||||
match:
|
||||
- match: '(?i)^[ \t]*(match)\b'
|
||||
captures:
|
||||
1: meta.block.match.sshd_config keyword.control.conditional.sshd_config
|
||||
set: match-conditions
|
||||
|
||||
match-conditions:
|
||||
- meta_scope: meta.block.match.sshd_config meta.statement.conditional.sshd_config
|
||||
- match: (?=\n)
|
||||
set: match-body
|
||||
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.sshd_config
|
||||
- match: (?i)\b(all)\b
|
||||
scope: constant.language.boolean.sshd_config
|
||||
|
||||
- match: (?i)\b(user|group|host)\b
|
||||
scope: keyword.other.sshd_config
|
||||
push:
|
||||
- include: pop-before-match-option
|
||||
- include: string-patterns
|
||||
|
||||
- match: (?i)\b((?:local)?address)\b
|
||||
scope: keyword.other.sshd_config
|
||||
push:
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.sshd_config
|
||||
- match: ','
|
||||
scope: punctuation.separator.sequence.sshd_config
|
||||
- match: '\*|\?'
|
||||
scope: constant.language.wildcard.sshd_config
|
||||
- include: ip-addresses
|
||||
- include: pop-before-match-option
|
||||
|
||||
- match: (?i)\b(localport)\b
|
||||
scope: keyword.other.sshd_config
|
||||
push:
|
||||
- match: \d+
|
||||
scope: constant.numeric.integer.decimal.sshd_config
|
||||
- include: pop-before-match-option
|
||||
|
||||
match-body:
|
||||
- meta_scope: meta.block.match.sshd_config
|
||||
- include: pop-before-next-match
|
||||
- include: options
|
||||
|
||||
string-patterns:
|
||||
# http://man7.org/linux/man-pages/man5/sshd_config.5.html#PATTERNS
|
||||
- match: '[^\s*?!,]+'
|
||||
scope: string.unquoted.sshd_config
|
||||
- match: '!'
|
||||
scope: string.unquoted.sshd_config keyword.operator.logical.sshd_config
|
||||
- match: ','
|
||||
scope: string.unquoted.sshd_config punctuation.separator.sequence.sshd_config
|
||||
- match: '\*|\?'
|
||||
scope: string.unquoted.sshd_config constant.language.wildcard.sshd_config
|
||||
|
||||
ip-addresses:
|
||||
- match: |-
|
||||
(?x:
|
||||
(
|
||||
((?:\d{1,3}\.){3}\d{1,3})(?:(/)(\d{1,3}))?| # simple IPv4 with CIDR
|
||||
((?i:[a-f0-9:]+:+)+[a-f0-9]+) # simple IPv6
|
||||
)
|
||||
)
|
||||
captures:
|
||||
1: meta.string.host.sshd_config
|
||||
2: constant.numeric.ip4.sshd_config
|
||||
3: punctuation.separator.sequence.sshd_config
|
||||
4: constant.other.range.sshd_config
|
||||
5: constant.numeric.ip6.sshd_config
|
||||
|
||||
forcecommand:
|
||||
- match: '^\s*(?i)(forcecommand)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.sshd_config keyword.other.sshd_config
|
||||
2: keyword.operator.assignment.sshd_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.sshd_config source.embedded.shell
|
||||
- match: none
|
||||
scope: constant.language.set.sshd_config
|
||||
pop: true
|
||||
- include: scope:source.shell
|
||||
- include: pop-nl
|
||||
|
||||
generic-option:
|
||||
- match: '^\s*([a-zA-Z1]+)\b[ \t]*(=)?'
|
||||
captures:
|
||||
1: meta.mapping.key.sshd_config keyword.other.sshd_config
|
||||
2: keyword.operator.assignment.sshd_config
|
||||
push:
|
||||
- meta_content_scope: meta.mapping.value.sshd_config
|
||||
- include: tokens
|
||||
- match: \"
|
||||
scope: punctuation.definition.string.begin.sshd_config
|
||||
push:
|
||||
- meta_scope: string.quoted.double.sshd_config
|
||||
- match: \"
|
||||
scope: punctuation.definition.string.end.sshd_config
|
||||
pop: true
|
||||
- match: \n|$
|
||||
scope: invalid.illegal.sshd_config
|
||||
pop: true
|
||||
- include: generic-option-value
|
||||
- match: '(?=\S)'
|
||||
push:
|
||||
- meta_content_scope: string.unquoted.sshd_config
|
||||
- include: pop-before-nl
|
||||
- include: generic-option-value
|
||||
- include: pop-nl
|
||||
|
||||
generic-option-value:
|
||||
- match: '(?i)\b(yes|no)\b'
|
||||
scope: constant.language.boolean.sshd_config
|
||||
- match: '(?i)\b(any|none)\b'
|
||||
scope: constant.language.set.sshd_config
|
||||
- match: '(?i)\bdefault\b'
|
||||
scope: constant.language.default.sshd_config
|
||||
- include: ip-addresses
|
||||
- include: tokens
|
||||
- match: \*|\?
|
||||
scope: constant.language.wildcard.sshd_config
|
||||
- match: '\d+'
|
||||
scope: constant.numeric.sshd_config
|
||||
- match: '!'
|
||||
scope: keyword.operator.logical.sshd_config
|
||||
- match: ','
|
||||
scope: punctuation.separator.sequence.sshd_config
|
||||
|
||||
comments:
|
||||
- match: '^\s*(#)'
|
||||
captures:
|
||||
1: punctuation.definition.comment.sshd_config
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.sshd_config
|
||||
- include: pop-nl
|
||||
- match: '^\s*(;)'
|
||||
captures:
|
||||
1: punctuation.definition.comment.sshd_config
|
||||
push:
|
||||
- meta_scope: comment.line.semi-colon.sshd_config
|
||||
- include: pop-nl
|
|
@ -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
|
|
@ -0,0 +1,401 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: TOML
|
||||
|
||||
file_extensions:
|
||||
- toml
|
||||
- tml
|
||||
- Cargo.lock
|
||||
- Gopkg.lock
|
||||
- Pipfile
|
||||
|
||||
scope: source.toml
|
||||
|
||||
variables:
|
||||
ws: '[ \t]*'
|
||||
wsnl: '([ \t\n])*'
|
||||
|
||||
# Used to detect the possible start of a key.
|
||||
peek_key_start: '(?=[A-Za-z0-9_''"-])'
|
||||
dot_peek_key: '{{ws}}(\.){{ws}}{{peek_key_start}}'
|
||||
|
||||
# integer = [ "-" / "+" ] int
|
||||
# int = DIGIT / digit1-9 1*( DIGIT / "_" DIGIT )
|
||||
integer: '([\+\-]?) (?: [0-9] | [1-9] (?: [0-9] | _ [0-9] )+ )'
|
||||
|
||||
HEXDIG: '[0-9A-Fa-f]'
|
||||
hex_int: '0x{{HEXDIG}}(?:{{HEXDIG}}|_{{HEXDIG}})*'
|
||||
oct_int: '0o[0-7](?:[0-7]|_[0-7])*'
|
||||
bin_int: '0b[0-1](?:[0-1]|_[0-1])*'
|
||||
|
||||
# frac = "." DIGIT *( DIGIT / "_" DIGIT )
|
||||
frac: '\. [0-9] (?: [0-9] | _ [0-9] )*'
|
||||
# exp = ("e" / "E") integer
|
||||
exp: '[eE] {{integer}}'
|
||||
|
||||
# date-time = offset-date-time / local-date-time / local-date / local-time
|
||||
date_time: '{{offset_date_time}} | {{local_date_time}} | {{local_date}} | {{local_time}}'
|
||||
# date-fullyear = 4DIGIT
|
||||
date_fullyear: '[0-9]{4}'
|
||||
# date-month = 2DIGIT ; 01-12
|
||||
date_month: '[0-1][0-9]'
|
||||
# date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year
|
||||
date_mday: '[0-3][0-9]'
|
||||
# time-hour = 2DIGIT ; 00-23
|
||||
time_hour: '[0-2][0-9]'
|
||||
# time-minute = 2DIGIT ; 00-59
|
||||
time_minute: '[0-5][0-9]'
|
||||
# time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules
|
||||
time_second: '[0-6][0-9]'
|
||||
# time-secfrac = "." 1*DIGIT
|
||||
time_secfrac: '\.[0-9]+'
|
||||
# time-numoffset = ( "+" / "-" ) time-hour ":" time-minute
|
||||
time_numoffset: '[+-] {{time_hour}} : {{time_minute}}'
|
||||
# time-offset = "Z" / time-numoffset
|
||||
time_offset: '(?: Z | {{time_numoffset}} )'
|
||||
# partial-time = time-hour ":" time-minute ":" time-second [time-secfrac]
|
||||
partial_time: '{{time_hour}} : {{time_minute}} : {{time_second}} (?: {{time_secfrac}} )?'
|
||||
# full-date = date-fullyear "-" date-month "-" date-mday
|
||||
full_date: '{{date_fullyear}} - {{date_month}} - {{date_mday}}'
|
||||
# full-time = partial-time time-offset
|
||||
full_time: '{{partial_time}} {{time_offset}}'
|
||||
# offset-date-time = full-date T|%20 full-time
|
||||
offset_date_time: '{{full_date}} [T ] {{full_time}}'
|
||||
# local-date-time = full-date T|%20 partial-time
|
||||
local_date_time: '{{full_date}} [T ] {{partial_time}}'
|
||||
# local-date = full-date
|
||||
local_date: '{{full_date}}'
|
||||
# local-time = partial-time
|
||||
local_time: '{{partial_time}}'
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^{{ws}}'
|
||||
# Ignore leading whitespace for all expressions.
|
||||
- include: comments
|
||||
- include: tables
|
||||
- include: keyval
|
||||
- include: illegal
|
||||
|
||||
illegal:
|
||||
- match: (.*)
|
||||
# Invalid things -> everything unmatched
|
||||
captures:
|
||||
1: invalid.illegal.toml
|
||||
|
||||
comments:
|
||||
- match: '{{ws}}((#).*)'
|
||||
captures:
|
||||
1: comment.line.number-sign.toml
|
||||
2: punctuation.definition.comment.toml
|
||||
|
||||
data-types:
|
||||
- include: inline-table
|
||||
- include: array
|
||||
- include: string
|
||||
- include: date-time
|
||||
- include: float
|
||||
- include: integer
|
||||
- include: boolean
|
||||
- match: '{{ws}}$'
|
||||
# Don't show an incomplete line as invalid to avoid frequent red
|
||||
# highlighting while typing.
|
||||
pop: true
|
||||
- match: '\w+|.'
|
||||
scope: invalid.illegal.value.toml
|
||||
pop: true
|
||||
|
||||
boolean:
|
||||
- match: (true|false)
|
||||
captures:
|
||||
1: constant.language.toml
|
||||
pop: true
|
||||
|
||||
integer:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<!\w)
|
||||
{{hex_int}}
|
||||
|{{oct_int}}
|
||||
|{{bin_int}}
|
||||
|{{integer}}
|
||||
(?!\w)
|
||||
captures:
|
||||
0: constant.numeric.integer.toml
|
||||
1: keyword.operator.arithmetic.toml
|
||||
pop: true
|
||||
|
||||
float:
|
||||
# float = integer ( frac / ( frac exp ) / exp )
|
||||
# frac = "." DIGIT *( DIGIT / "_" DIGIT )
|
||||
# exp = ("e" / "E") integer
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<!\w)
|
||||
{{integer}}
|
||||
(?: {{frac}} | (?: {{frac}} {{exp}} ) | {{exp}} )
|
||||
(?!\w)
|
||||
captures:
|
||||
0: constant.numeric.float.toml
|
||||
1: keyword.operator.arithmetic.toml
|
||||
pop: true
|
||||
- match: '(?<!\w)([+-])?(inf|nan)(?!\w)'
|
||||
captures:
|
||||
0: constant.numeric.float.toml
|
||||
1: keyword.operator.arithmetic.toml
|
||||
pop: true
|
||||
|
||||
date-time:
|
||||
- match: '(?x) {{date_time}}'
|
||||
scope: constant.other.datetime.toml
|
||||
pop: true
|
||||
|
||||
string:
|
||||
- match: "'''"
|
||||
# multi-line literal string (no escape sequences)
|
||||
scope: punctuation.definition.string.begin.toml
|
||||
set:
|
||||
- meta_scope: string.quoted.triple.literal.block.toml
|
||||
- match: "'''"
|
||||
scope: punctuation.definition.string.end.toml
|
||||
pop: true
|
||||
- match: '"""'
|
||||
# multi-line basic string
|
||||
scope: punctuation.definition.string.begin.toml
|
||||
set:
|
||||
- meta_scope: string.quoted.triple.basic.block.toml
|
||||
- match: '"""'
|
||||
scope: punctuation.definition.string.end.toml
|
||||
pop: true
|
||||
- include: string-escape
|
||||
- include: basic-string
|
||||
- include: literal-string
|
||||
|
||||
basic-string:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.toml
|
||||
set:
|
||||
- meta_scope: string.quoted.double.basic.toml
|
||||
- include: string-escape
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.toml
|
||||
pop: true
|
||||
- match: '\n'
|
||||
scope: invalid.illegal.string.non-terminated.toml
|
||||
pop: true
|
||||
|
||||
string-escape:
|
||||
- match: '\\(?:[btnfr"\\]|u\h{4}|U\h{8})'
|
||||
scope: constant.character.escape.toml
|
||||
- match: '\\.'
|
||||
scope: invalid.illegal.string.escape.toml
|
||||
|
||||
literal-string:
|
||||
- match: '('')[^'']*('')'
|
||||
# There is ambiguity in what is allowed in a literal string.
|
||||
# See: https://github.com/toml-lang/toml/issues/473
|
||||
scope: string.quoted.single.literal.toml
|
||||
captures:
|
||||
1: punctuation.definition.string.begin.toml
|
||||
2: punctuation.definition.string.end.toml
|
||||
pop: true
|
||||
|
||||
array:
|
||||
- match: '\['
|
||||
scope: punctuation.definition.array.begin.toml
|
||||
set: [maybe-empty-array, maybe-array-comments]
|
||||
|
||||
maybe-empty-array:
|
||||
- match: ']'
|
||||
scope: punctuation.definition.array.end.toml
|
||||
pop: true
|
||||
- match: ''
|
||||
set: [array-sep, data-types]
|
||||
|
||||
array-sep:
|
||||
- match: '{{wsnl}}'
|
||||
- include: comments
|
||||
- match: ']'
|
||||
scope: punctuation.definition.array.end.toml
|
||||
pop: true
|
||||
- match: ','
|
||||
scope: punctuation.separator.array.toml
|
||||
set:
|
||||
- match: '{{wsnl}}'
|
||||
- include: comments
|
||||
- match: ']'
|
||||
scope: punctuation.definition.array.end.toml
|
||||
pop: true
|
||||
- match: '(?=[^\n])'
|
||||
set: [array-sep, data-types]
|
||||
- match: '\w+|.'
|
||||
scope: invalid.illegal.array.toml
|
||||
|
||||
maybe-array-comments:
|
||||
- match: '{{wsnl}}'
|
||||
- include: comments
|
||||
- match: '(?=[^\n])'
|
||||
pop: true
|
||||
|
||||
inline-table:
|
||||
- match: '\{'
|
||||
scope: punctuation.definition.inline-table.begin.toml
|
||||
set:
|
||||
- match: '{{ws}}'
|
||||
- match: '\}'
|
||||
# Empty table.
|
||||
scope: punctuation.definition.inline-table.end.toml
|
||||
pop: true
|
||||
- match: ''
|
||||
set: [inline-keyval-sep, key]
|
||||
|
||||
inline-keyval-sep:
|
||||
- match: '{{ws}}(=){{ws}}'
|
||||
captures:
|
||||
1: punctuation.definition.key-value.toml
|
||||
set: [inline-table-keyvals, data-types]
|
||||
- match: '(?=\w+|.)'
|
||||
scope: invalid.illegal.inline-sep.toml
|
||||
pop: true
|
||||
|
||||
inline-table-keyvals:
|
||||
- match: '{{ws}}'
|
||||
- match: '\}'
|
||||
scope: punctuation.definition.inline-table.end.toml
|
||||
pop: true
|
||||
- match: ','
|
||||
scope: punctuation.separator.inline-table.toml
|
||||
set:
|
||||
- match: '{{ws}}'
|
||||
- match: ''
|
||||
set: [inline-keyval-sep, key]
|
||||
- match: '(?=\w+|.)'
|
||||
scope: invalid.illegal.inline-key.toml
|
||||
pop: true
|
||||
|
||||
keyval:
|
||||
- match: '{{peek_key_start}}'
|
||||
push: [keyval-sep, key]
|
||||
|
||||
keyval-sep:
|
||||
- match: '{{ws}}(=){{ws}}'
|
||||
captures:
|
||||
# This could arguably be keyword.operator.assignment.toml, but since
|
||||
# Monokai uses the same color for non-C sources with entity.name.tag,
|
||||
# it doesn't have the appropriate visual distinction.
|
||||
1: punctuation.definition.key-value.toml
|
||||
set: [maybe-comment-eol, data-types]
|
||||
- match: '{{ws}}$'
|
||||
# Don't show an incomplete line as invalid to avoid flickering.
|
||||
pop: true
|
||||
- match: '.+$'
|
||||
scope: invalid.illegal.keyval.toml
|
||||
pop: true
|
||||
|
||||
key:
|
||||
- meta_scope: meta.tag.key.toml
|
||||
- match: '{{peek_key_start}}'
|
||||
push: [maybe-dot-key, key-simple]
|
||||
- match: '(?={{ws}}=)'
|
||||
pop: true
|
||||
- match: '{{ws}}$'
|
||||
# Early exit to avoid errors while typing.
|
||||
pop: true
|
||||
- match: '.'
|
||||
scope: invalid.illegal.key.toml
|
||||
pop: true
|
||||
|
||||
key-simple:
|
||||
- match: '[A-Za-z0-9_-]+'
|
||||
scope: entity.name.tag.toml
|
||||
pop: true
|
||||
- include: key-quoted
|
||||
- match: '\S+'
|
||||
scope: invalid.illegal.key.toml
|
||||
pop: true
|
||||
|
||||
key-quoted:
|
||||
- include: basic-string
|
||||
- include: literal-string
|
||||
|
||||
maybe-dot-key:
|
||||
- match: '{{dot_peek_key}}'
|
||||
captures:
|
||||
1: punctuation.separator.key.toml
|
||||
push: key-simple
|
||||
- match: '(?={{ws}}(?:=|$))'
|
||||
pop: true
|
||||
- match: '.'
|
||||
scope: invalid.illegal.key.toml
|
||||
pop: true
|
||||
|
||||
maybe-comment-eol:
|
||||
- include: comments
|
||||
- match: '$'
|
||||
pop: true
|
||||
- match: '.+'
|
||||
# This also highlights trailing whitespece. Although that is valid
|
||||
# TOML, it doesn't seem bad to me. If that's annoying, change this
|
||||
# to '[^ \n]+'.
|
||||
scope: invalid.illegal.trailing.toml
|
||||
pop: true
|
||||
|
||||
tables:
|
||||
- match: '\[?\[{{ws}}\]\]?'
|
||||
scope: invalid.illegal.table.toml
|
||||
|
||||
- match: '(\[\[){{ws}}'
|
||||
# Array table. Same as std-table with double-brackets.
|
||||
captures:
|
||||
1: punctuation.definition.table.array.begin.toml
|
||||
push: [maybe-comment-eol, table-array-name]
|
||||
|
||||
- match: '(\[){{ws}}'
|
||||
# std-table = ws "[" ws key (ws "." ws key)* ws "]" ws comment?
|
||||
captures:
|
||||
1: punctuation.definition.table.begin.toml
|
||||
push: [maybe-comment-eol, table-name]
|
||||
|
||||
table-name:
|
||||
- meta_content_scope: meta.tag.table.toml
|
||||
- match: '{{ws}}(\])'
|
||||
captures:
|
||||
1: punctuation.definition.table.end.toml
|
||||
pop: true
|
||||
- include: table-name-inc
|
||||
|
||||
table-array-name:
|
||||
- meta_content_scope: meta.tag.table.array.toml
|
||||
- match: '{{ws}}(\]\])'
|
||||
captures:
|
||||
1: punctuation.definition.table.array.end.toml
|
||||
pop: true
|
||||
- include: table-name-inc
|
||||
|
||||
table-name-inc:
|
||||
- match: '{{peek_key_start}}'
|
||||
push: [maybe-dot-table-name, table-name-simple]
|
||||
- match: '[^\]]+\]?'
|
||||
scope: invalid.illegal.table.toml
|
||||
pop: true
|
||||
|
||||
table-name-simple:
|
||||
- match: '[A-Za-z0-9_-]+'
|
||||
scope: entity.name.table.toml
|
||||
pop: true
|
||||
- include: key-quoted
|
||||
- match: '.'
|
||||
scope: invalid.illegal.table.toml
|
||||
pop: true
|
||||
|
||||
maybe-dot-table-name:
|
||||
- match: '{{dot_peek_key}}'
|
||||
captures:
|
||||
1: punctuation.separator.table.toml
|
||||
push: table-name-simple
|
||||
- match: '(?={{ws}}(?:\]|$))'
|
||||
pop: true
|
||||
- match: '.'
|
||||
scope: invalid.illegal.table.toml
|
||||
pop: true
|
|
@ -0,0 +1,133 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Terraform
|
||||
file_extensions:
|
||||
- tf
|
||||
- tfvars
|
||||
- hcl
|
||||
scope: source.terraform
|
||||
contexts:
|
||||
main:
|
||||
- match: "#|//"
|
||||
comment: Comments
|
||||
captures:
|
||||
0: punctuation.definition.comment.terraform
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.terraform
|
||||
- match: $\n?
|
||||
captures:
|
||||
0: punctuation.definition.comment.terraform
|
||||
pop: true
|
||||
- match: /\*
|
||||
comment: Block comments
|
||||
captures:
|
||||
0: punctuation.definition.comment.terraform
|
||||
push:
|
||||
- meta_scope: comment.block.terraform
|
||||
- match: \*/
|
||||
captures:
|
||||
0: punctuation.definition.comment.terraform
|
||||
pop: true
|
||||
- match: \b(true|false|yes|no|on|off)\b
|
||||
comment: Language constants (true, false, yes, no, on, off)
|
||||
scope: constant.language.terraform
|
||||
- match: '\b([0-9]+)([kKmMgG]b?)?\b'
|
||||
comment: Numbers
|
||||
scope: constant.numeric.terraform
|
||||
- match: '\b(0x[0-9A-Fa-f]+)([kKmMgG]b?)?\b'
|
||||
comment: Hex numbers
|
||||
scope: constant.numeric.terraform
|
||||
- match: '(resource|data)\s+(")?(\w+)(")?\s+(")?([\w\-]+)(")?\s+({)'
|
||||
scope: meta.resource.terraform
|
||||
captures:
|
||||
1: storage.type.function.terraform
|
||||
2: string.terraform punctuation.definition.string.begin.terraform
|
||||
3: string.value.terraform
|
||||
4: string.terraform punctuation.definition.string.end.terraform
|
||||
5: string.terraform punctuation.definition.string.begin.terraform
|
||||
6: string.value.terraform
|
||||
7: string.terraform punctuation.definition.string.end.terraform
|
||||
8: punctuation.definition.tag.terraform
|
||||
- match: '(provider|provisioner|variable|output|module|atlas)\s+(")?([\w\-]+)(")?\s+({)'
|
||||
captures:
|
||||
1: storage.type.function.terraform
|
||||
2: string.terraform punctuation.definition.string.begin.terraform
|
||||
3: string.value.terraform
|
||||
4: string.terraform punctuation.definition.string.end.terraform
|
||||
5: punctuation.definition.tag.terraform
|
||||
- match: '([\w_-]+)\s*(=)\s*'
|
||||
comment: Value assignments (left hand side not in double quotes)
|
||||
captures:
|
||||
1: variable.other.assignment.terraform
|
||||
2: keyword.operator.terraform
|
||||
- match: '(")([\w_-]+)(")\s*(=)\s*'
|
||||
comment: Value assignments (left hand side in double quotes)
|
||||
captures:
|
||||
1: punctuation.quote.double.terraform
|
||||
2: variable.assignment.terraform
|
||||
3: punctuation.quote.double.terraform
|
||||
4: keyword.operator.terraform
|
||||
- match: '([\w\-_]+)\s+({)'
|
||||
comment: Maps
|
||||
captures:
|
||||
1: entity.name.section.terraform
|
||||
2: punctuation.definition.tag.terraform
|
||||
- include: strings
|
||||
- match: (?>\s*<<(\w+))
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.terraform
|
||||
1: keyword.operator.heredoc.terraform
|
||||
push:
|
||||
- meta_scope: string.unquoted.heredoc.terraform
|
||||
- match: ^\s*\1$
|
||||
captures:
|
||||
0: punctuation.definition.string.end.terraform keyword.operator.heredoc.terraform
|
||||
pop: true
|
||||
string_interpolation:
|
||||
- match: '\$\{'
|
||||
captures:
|
||||
0: entity.tag.embedded.start.terraform
|
||||
push:
|
||||
- meta_scope: source.terraform.embedded.source
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: entity.tag.embedded.end.terraform
|
||||
pop: true
|
||||
- include: main
|
||||
- include: string_interpolation_functions
|
||||
- include: string_interpolation_keywords
|
||||
- match: (\.)
|
||||
captures:
|
||||
0: keyword.control.period.terraform
|
||||
- include: strings
|
||||
string_interpolation_functions:
|
||||
- match: (base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|ceil|chomp|cidrhost|cidrnetmask|cidrsubnet|coalesce|coalescelist|compact|concat|contains|dirname|distinct|element|file|flatten|floor|format|formatlist|index|join|jsonencode|keys|length|list|log|lookup|lower|map|matchkeys|max|md5|merge|min|pathexpand|pow|replace|sha1|sha256|sha512|signum|slice|sort|split|substr|timestamp|title|trimspace|upper|urlencode|uuid|values|zipmap)(\()
|
||||
comment: Builtin functions
|
||||
captures:
|
||||
1: keyword.other.function.inline.terraform
|
||||
2: keyword.other.section.begin.terraform
|
||||
push:
|
||||
- match: (\))
|
||||
captures:
|
||||
1: keyword.other.section.end.terraform
|
||||
pop: true
|
||||
- include: string_interpolation_functions
|
||||
- include: string_interpolation_keywords
|
||||
string_interpolation_keywords:
|
||||
- match: '(terraform|var|self|count|module|path|data|local)(\.[\w\*]+)+'
|
||||
captures:
|
||||
0: entity.other.attribute-name.terraform
|
||||
strings:
|
||||
- match: \"
|
||||
comment: Strings
|
||||
captures:
|
||||
0: string.terraform punctuation.definition.string.begin.terraform
|
||||
push:
|
||||
- match: \"
|
||||
captures:
|
||||
0: string.terraform punctuation.definition.string.end.terraform
|
||||
pop: true
|
||||
- include: string_interpolation
|
||||
- match: '([\w\-\/\._\\%]+)'
|
||||
scope: string.quoted.double.terraform
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,91 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: VimL
|
||||
file_extensions:
|
||||
- vim
|
||||
- .vimrc
|
||||
scope: source.viml
|
||||
contexts:
|
||||
main:
|
||||
- include: comment
|
||||
- include: string_quoted_double
|
||||
- include: string_quoted_single
|
||||
- include: string_regex
|
||||
- include: inline_comment
|
||||
- include: number_int
|
||||
- include: number_hex
|
||||
- include: keyword
|
||||
- include: support_function
|
||||
- include: support_variable
|
||||
- include: support_type
|
||||
- include: function_params
|
||||
- include: function_definition
|
||||
- include: function_call
|
||||
- include: function
|
||||
- include: variable
|
||||
- include: expr
|
||||
comment:
|
||||
- match: ^\s*".*$
|
||||
scope: comment.line.quotes.viml
|
||||
captures:
|
||||
1: punctuation.definition.comment.vim
|
||||
expr:
|
||||
- match: (\|\||&&|==(\?|#)?|(!|>|<)=(#|\?)?|(=|!)~(#|\?)?|(>|<)(#|\?)is|isnot|\.|\*|\\|%)
|
||||
scope: storage.function.viml
|
||||
function:
|
||||
- match: \b(fu(n|nction)?|end(f|fu|fun|function)?)\b
|
||||
scope: storage.function.viml
|
||||
function_call:
|
||||
- match: '(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\()'
|
||||
scope: support.function.any-method
|
||||
function_definition:
|
||||
- match: '^\s*(function)\s*!?\s+(?=(s:)?[0-9a-zA-Z_#]+\s*\()'
|
||||
captures:
|
||||
1: storage.function.viml
|
||||
push:
|
||||
- meta_scope: meta.function.viml
|
||||
- match: (\()
|
||||
captures:
|
||||
1: punctuation.definition.parameters.begin.viml
|
||||
pop: true
|
||||
- match: "(s:)?[0-9a-zA-Z_#]+"
|
||||
scope: entity.name.function.viml
|
||||
function_params:
|
||||
- match: '-\w+='
|
||||
scope: support.type.viml
|
||||
inline_comment:
|
||||
- match: '(?!\$)(")(?!\{).*$\n?'
|
||||
scope: comment.line.quotes.viml
|
||||
captures:
|
||||
1: punctuation.definition.comment.vim
|
||||
keyword:
|
||||
- match: \b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\b
|
||||
scope: keyword.control.viml
|
||||
number_hex:
|
||||
- match: "0x[0-9a-f]+"
|
||||
scope: constant.numeric.hex
|
||||
number_int:
|
||||
- match: '-?\d+'
|
||||
scope: constant.numeric.integer
|
||||
string_quoted_double:
|
||||
- match: '"(\\\\|\\"|\n[^\S\n]*\\|[^\n"])*"'
|
||||
scope: string.quoted.double.viml
|
||||
string_quoted_single:
|
||||
- match: '''(''''|\n[^\S\n]*\\|[^\n''])*'''
|
||||
scope: string.quoted.single.viml
|
||||
string_regex:
|
||||
- match: '/(\\\\|\\/|\n[^\S\n]*\\|[^\n/])*/'
|
||||
scope: string.regexp.viml
|
||||
support_function:
|
||||
- match: \b(set(local|global)?|let|command|filetype|colorscheme|\w*map|\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\b
|
||||
scope: support.function.viml
|
||||
support_type:
|
||||
- match: <.*?>
|
||||
scope: support.type.viml
|
||||
support_variable:
|
||||
- match: '\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\b'
|
||||
scope: support.variable.viml
|
||||
variable:
|
||||
- match: '([sSgGbBwWlLaAvV]:|@|$|&(?!&))\w*'
|
||||
scope: variable.other.viml
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,122 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
name: jsonnet
|
||||
file_extensions: [jsonnet, libsonnet, libjsonnet]
|
||||
scope: source.jsonnet
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: \b(\d+([Ee][+-]?\d+)?)\b
|
||||
scope: constant.numeric.jsonnet
|
||||
|
||||
- match: \b\d+[.]\d*([Ee][+-]?\d+)?\b
|
||||
scope: constant.numeric.jsonnet
|
||||
|
||||
- match: \b[.]\d+([Ee][+-]?\d+)?\b
|
||||
scope: constant.numeric.jsonnet
|
||||
|
||||
- match: \bstd[.](abs|acos|asciiLower|asciiUpper|asin|assertEqual|atan|base64|base64Decode|base64DecodeBytes)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](ceil|char|codepoint|cos|count|endsWith)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](escapeStringBash|escapeStringDollars|escapeStringJson|escapeStringPython)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](exp|exponent|extVar|filter|filterMap|flattenArrays|floor|foldl|foldr|format)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](isArray|isBoolean|isFunction|isNumber|isObject|isString|join|length|lines|log|makeArray)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](manifestIni|manifestJsonEx|manifestPython|manifestPythonVars|manifestXmlJsonml|manifestYamlDoc|manifestYamlStream)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](mantissa|map|mapWithIndex|mapWithKey|max|md5|mergePatch|min|mod)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](objectFields|objectFieldsAll|objectHas|objectHasAll|parseInt|pow|prune|range)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](set|setDiff|setInter|setMember|setUnion|sign|sin|sort|split|splitLimit|sqrt)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](startsWith|stringChars|strReplace|substr|tan|toString|type|uniq)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \bstd[.](native|thisFile)\b
|
||||
scope: support.function.jsonnet
|
||||
|
||||
- match: \b[$]\b
|
||||
scope: variable.language.jsonnet
|
||||
|
||||
- match: \b[a-zA-Z_][a-z0-9A-Z_]*\s*(\([^)]*\))?\s*\+?::?:?
|
||||
scope: entity.name.function.jsonnet
|
||||
|
||||
- match: \b(import|importstr)\b
|
||||
scope: storage.type.jsonnet
|
||||
|
||||
- match: \b(function)\b
|
||||
scope: keyword.other.jsonnet
|
||||
|
||||
- match: \b(self|super)\b
|
||||
scope: variable.language.jsonnet
|
||||
|
||||
- match: \b(if|then|else|for|in)\b
|
||||
scope: keyword.control.jsonnet
|
||||
|
||||
- match: \b(local|tailstrict)\b
|
||||
scope: keyword.other.jsonnet
|
||||
|
||||
- match: \b(true|false|null)\b
|
||||
scope: constant.language.jsonnet
|
||||
|
||||
- match: \b(error|assert)\b
|
||||
scope: keyword.control.jsonnet
|
||||
|
||||
- match: //.*$
|
||||
scope: comment.line.jsonnet
|
||||
|
||||
- match: '#.*$'
|
||||
scope: comment.block.jsonnet
|
||||
|
||||
- match: /\*
|
||||
push: comment
|
||||
|
||||
- match: \|\|\|
|
||||
push: unquoted
|
||||
|
||||
- match: '"'
|
||||
push: string
|
||||
|
||||
- match: "\'"
|
||||
push: single_string
|
||||
|
||||
comment:
|
||||
- meta_scope: comment.block.jsonnet
|
||||
- match: \*/
|
||||
pop: true
|
||||
|
||||
unquoted:
|
||||
- meta_scope: string.unquoted.block.jsonnet
|
||||
- match: \|\|\|
|
||||
pop: true
|
||||
|
||||
string:
|
||||
- meta_scope: string.double.jsonnet
|
||||
- match: '"'
|
||||
pop: true
|
||||
- match: \\(["\\/bfnrt]|(u[0-9a-fA-F]{4}))
|
||||
scope: constant.character.escape.jsonnet
|
||||
- match: \\[^"\\/bfnrtu]
|
||||
scope: invalid.illegal.jsonnet
|
||||
|
||||
single_string:
|
||||
- meta_scope: string.double.jsonnet
|
||||
- match: "\'"
|
||||
pop: true
|
||||
- match: \\(["\\/bfnrt]|(u[0-9a-fA-F]{4}))
|
||||
scope: constant.character.escape.jsonnet
|
||||
- match: \\[^"\\/bfnrtu]
|
||||
scope: invalid.illegal.jsonnet
|
|
@ -0,0 +1,387 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: PureScript
|
||||
file_extensions:
|
||||
- purs
|
||||
scope: source.purescript
|
||||
contexts:
|
||||
main:
|
||||
- match: ^\s*\b(module)\b
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
push:
|
||||
- meta_scope: meta.section.module.purescript
|
||||
- match: \b(where)\b
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
pop: true
|
||||
- include: module-name
|
||||
- match: \b(import)\b
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
push:
|
||||
- meta_scope: keyword.control.import.purescript
|
||||
- match: '([A-Za-z0-9.]*)\s*'
|
||||
captures:
|
||||
1: support.other.module.purescript
|
||||
- match: \(
|
||||
push:
|
||||
- match: ',?\s*([A-Z][\w'']*)\s*(?:\(([A-Z][\w\s,'']*|..)\))?'
|
||||
captures:
|
||||
1: entity.name.type.purescript
|
||||
2: entity.name.function.constructor.purescript
|
||||
- match: ',?\s?class\s+([A-Z][\w'']*)'
|
||||
captures:
|
||||
1: entity.name.typeclass.purescript
|
||||
- match: ',?\s?([\w'']*)'
|
||||
captures:
|
||||
1: entity.name.function
|
||||
- match: \)
|
||||
pop: true
|
||||
- match: '(as)\s+([A-Z][\w'']*)'
|
||||
captures:
|
||||
1: keyword.control.import.as
|
||||
2: support.other.module.purescript
|
||||
- match: '(hiding)\s+\((?:,?\s?([A-Z][\w'']*))+\)'
|
||||
meta_scope: meta.section.module.purescript
|
||||
captures:
|
||||
1: keyword.control.import.hiding.purescript
|
||||
- match: $
|
||||
pop: true
|
||||
- include: module-name
|
||||
- match: ^\s*\b(class)\b
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
push:
|
||||
- meta_scope: meta.declaration.typeclass.purescript
|
||||
- match: \b(where)\b|$
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
pop: true
|
||||
- match: '([A-Z][\w.'']*)'
|
||||
scope: entity.other.inherited-class.purescript
|
||||
- include: generic-tyvar
|
||||
- match: ^\s*\b(instance)\b
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
push:
|
||||
- meta_scope: meta.declaration.instance.purescript
|
||||
- match: \b(where)\b|$
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
pop: true
|
||||
- include: type-signature
|
||||
- match: '^\s*([a-z_][\w\d\'']*|\(.+\))\s*(::)'
|
||||
captures:
|
||||
1: entity.name.function.purescript
|
||||
2: keyword.operator.has-type.purescript
|
||||
push:
|
||||
- meta_scope: meta.declaration.function.purescript
|
||||
- match: $
|
||||
pop: true
|
||||
- include: type-signature
|
||||
- match: \s*(foreign)\s+(import)\s+(data)\s+(.+?)\s+(::)
|
||||
scope: meta.declaration.ffi.data.purescript
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
2: keyword.other.purescript
|
||||
3: keyword.other.purescript
|
||||
4: entity.name.function.ffi.purescript
|
||||
- match: \s*(foreign)\s+(import)\s+(.+?)\s+
|
||||
captures:
|
||||
1: keyword.other.purescript
|
||||
2: keyword.other.purescript
|
||||
3: entity.name.function.ffi.purescript
|
||||
push:
|
||||
- meta_scope: meta.declaration.ffi.function.purescript
|
||||
- match: \s*(::)(.+?)
|
||||
captures:
|
||||
1: keyword.operator.has-type.purescript
|
||||
pop: true
|
||||
- include: ffi
|
||||
- include: comments
|
||||
- include: reserveds
|
||||
- include: constants
|
||||
- include: numbers
|
||||
- include: strings
|
||||
- include: operator
|
||||
- include: monoid
|
||||
- include: prelude
|
||||
- include: array
|
||||
- include: eff
|
||||
- include: either
|
||||
- include: enum
|
||||
- include: error
|
||||
- include: global
|
||||
- include: ioref
|
||||
- include: maybe
|
||||
- include: monad
|
||||
- include: random
|
||||
- include: regex
|
||||
- include: st
|
||||
- include: string
|
||||
- include: trace
|
||||
- include: tuple
|
||||
- include: data
|
||||
array:
|
||||
- include: array-op
|
||||
- include: array-constant
|
||||
array-op:
|
||||
- match: (:)
|
||||
scope: keyword.operator.array.purescript
|
||||
array-constant:
|
||||
- match: \[\]
|
||||
scope: constant.other.purescript
|
||||
comments:
|
||||
- match: \-\-.*
|
||||
scope: comment.line.purescript
|
||||
- match: '\{\-'
|
||||
push:
|
||||
- meta_scope: comment.block.purescript
|
||||
- match: '\-\}'
|
||||
pop: true
|
||||
constants:
|
||||
- match: \b(true|false)\b
|
||||
scope: constant.language.purescript
|
||||
data:
|
||||
- match: '\b([A-Z]\w*)\b'
|
||||
scope: constant.other.purescript
|
||||
decl-ctor:
|
||||
- match: '\s*([A-Z][\w\.]*?)\s+([A-Z][\w\.]*)\s*'
|
||||
captures:
|
||||
1: storage.type.purescript
|
||||
2: constant.other.purescript
|
||||
eff:
|
||||
- include: eff-data
|
||||
eff-data:
|
||||
- match: \b(Effect)\b
|
||||
scope: support.function.data.eff.purescript
|
||||
either:
|
||||
- include: either-data
|
||||
- include: either-function
|
||||
either-data:
|
||||
- match: \b(Left|Right)\b
|
||||
scope: support.function.data.either.purescript
|
||||
either-function:
|
||||
- match: \b(either)\b
|
||||
scope: support.function.either.purescript
|
||||
enum:
|
||||
- include: enum-function
|
||||
- include: enum-typeclass
|
||||
enum-function:
|
||||
- match: \b(fromEnum|toEnum)\b
|
||||
scope: support.function.enum.purescript
|
||||
enum-typeclass:
|
||||
- match: \b(Enum)\b
|
||||
scope: storage.type.enum.purescript
|
||||
error:
|
||||
- include: error-function
|
||||
error-function:
|
||||
- match: \b(catchError|throwError)\b
|
||||
scope: support.function.error.purescript
|
||||
ffi:
|
||||
- match: '"'
|
||||
push:
|
||||
- match: '"'
|
||||
pop: true
|
||||
- include: scope:source.js
|
||||
generic-tyvar:
|
||||
- match: '\b([a-z][\w'']*)\b'
|
||||
scope: variable.other.purescript
|
||||
global:
|
||||
- include: global-constant
|
||||
- include: global-function
|
||||
global-constant:
|
||||
- match: \b(infinity|nan)\b
|
||||
scope: constant.support.global.purescript
|
||||
global-function:
|
||||
- match: \b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|isFinite|isNaN|parseFloat|parseInt|toExponential|toFixed|toPrecision)\b
|
||||
scope: support.function.global.purescript
|
||||
ioref:
|
||||
- include: ioref-data
|
||||
- include: ioref-function
|
||||
ioref-data:
|
||||
- match: \b(IORef|Ref)\b
|
||||
scope: support.function.data.ioref.purescript
|
||||
ioref-function:
|
||||
- match: \b(modifyIORef|newIORef|readIORef|unsafeRunIORef|writeIORef)\b
|
||||
scope: support.function.ioref.purescript
|
||||
maybe:
|
||||
- include: maybe-data
|
||||
- include: maybe-function
|
||||
maybe-data:
|
||||
- match: \b(Just|Nothing)\b
|
||||
scope: support.function.data.maybe.purescript
|
||||
maybe-function:
|
||||
- match: \b(maybe|fromMaybe)\b
|
||||
scope: support.function.maybe.purescript
|
||||
module-name:
|
||||
- match: '([A-Za-z][\w\.'']*)'
|
||||
scope: support.other.module.purescript
|
||||
monad:
|
||||
- include: monad-function
|
||||
monad-function:
|
||||
- match: \b(replicateM|mapM|sequence|join|foldM|when)\b
|
||||
scope: support.function.monad.purescript
|
||||
monoid:
|
||||
- include: monoid-function
|
||||
- include: monoid-typeclass
|
||||
monoid-function:
|
||||
- match: \b(mconcat|mempty)\b
|
||||
scope: support.function.monoid.purescript
|
||||
monoid-typeclass:
|
||||
- match: \b(Monoid)\b
|
||||
scope: storage.type.monoid.purescript
|
||||
numbers:
|
||||
- match: \b([0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\b
|
||||
scope: constant.numeric.purescript
|
||||
- match: \b([0-9]+\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\b
|
||||
scope: constant.numeric.float.purescript
|
||||
operator:
|
||||
- match: '[|!%$#?~+:\-.=</>\\]+'
|
||||
comment: In case this regex seems overly general, note that Purescript permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.
|
||||
scope: keyword.operator.purescript
|
||||
prelude:
|
||||
- include: prelude-data
|
||||
- include: prelude-function
|
||||
prelude-data:
|
||||
- match: \b(Ref)\b
|
||||
scope: support.function.data.prelude.purescript
|
||||
prelude-function:
|
||||
- match: \b(const|flip)\b
|
||||
scope: support.function.prelude.purescript
|
||||
- include: prelude-function-alternative
|
||||
- include: prelude-function-applicative
|
||||
- include: prelude-function-bits
|
||||
- include: prelude-function-boollike
|
||||
- include: prelude-function-category
|
||||
- include: prelude-function-monad
|
||||
- include: prelude-function-num
|
||||
- include: prelude-function-ord
|
||||
- include: prelude-function-read
|
||||
- include: prelude-function-ref
|
||||
- include: prelude-function-show
|
||||
prelude-function-alternative:
|
||||
- match: \b(empty)\b
|
||||
scope: support.function.prelude.alternative.purescript
|
||||
prelude-function-applicative:
|
||||
- match: \b(pure)\b
|
||||
scope: support.function.prelude.applicative.purescript
|
||||
prelude-function-bits:
|
||||
- match: \b(complement|shl|shr|numAnd|numComplement|numOr|numShl|numShr|numXor|numZshr|zshr)\b
|
||||
scope: support.function.prelude.bits.purescript
|
||||
prelude-function-boollike:
|
||||
- match: \b(boolAnd|boolNot|boolOr|not)\b
|
||||
scope: support.function.prelude.boollike.purescript
|
||||
prelude-function-category:
|
||||
- match: \b(identity)\b
|
||||
scope: support.function.prelude.category.purescript
|
||||
prelude-function-monad:
|
||||
- match: \b(return)\b
|
||||
scope: support.function.prelude.monad.purescript
|
||||
prelude-function-num:
|
||||
- match: \b(negate|numAdd|numDiv|numMod|numMul|numNegate|numSub)\b
|
||||
scope: support.function.prelude.num.purescript
|
||||
prelude-function-ord:
|
||||
- match: \b(numLess|numLessEq|numGreater|numGreaterEq)\b
|
||||
scope: support.function.prelude.ord.purescript
|
||||
prelude-function-read:
|
||||
- match: \b(read|readNumber)\b
|
||||
scope: support.function.prelude.read.purescript
|
||||
prelude-function-ref:
|
||||
- match: \b(liftRef|refEq|refIneq|unsafeRefEq|unsafeRefIneq)\b
|
||||
scope: support.function.prelude.ref.purescript
|
||||
prelude-function-show:
|
||||
- match: \b(show|showNumber)\b
|
||||
scope: support.function.prelude.show.purescript
|
||||
random:
|
||||
- include: random-data
|
||||
- include: random-function
|
||||
random-data:
|
||||
- match: \b(Random)\b
|
||||
scope: support.function.data.random.purescript
|
||||
random-function:
|
||||
- match: \b(random)\b
|
||||
scope: support.function.random.purescript
|
||||
regex:
|
||||
- include: regex-data
|
||||
- include: regex-function
|
||||
regex-data:
|
||||
- match: \b(Regex)\b
|
||||
scope: support.function.data.regex.purescript
|
||||
regex-function:
|
||||
- match: \b(match|regex|replaceR|search|test)\b
|
||||
scope: support.function.regex.purescript
|
||||
reserveds:
|
||||
- include: reserveds-control
|
||||
- include: reserveds-other
|
||||
reserveds-control:
|
||||
- match: \b(case|do|else|if|in|let|of|then)\b
|
||||
scope: keyword.control.purescript
|
||||
reserveds-other:
|
||||
- match: \b(as|class|data|forall|foreign|import|infix|infixl|infixr|instance|module|newtype|qualified|type|where)\b
|
||||
scope: keyword.other.purescript
|
||||
st:
|
||||
- include: st-data
|
||||
- include: st-function
|
||||
st-data:
|
||||
- match: \b(ST|STRef|STArray)\b
|
||||
scope: support.function.data.st.purescript
|
||||
st-function:
|
||||
- match: \b(modifySTRef|newSTArray|newSTRef|peekSTArray|pokeSTArray|readSTRef|runST|runSTArray|writeSTRef)\b
|
||||
scope: support.function.st.purescript
|
||||
string:
|
||||
- include: string-function
|
||||
string-function:
|
||||
- match: \b(charAt|indexOfS|lastIndexOfS|lengthS|localeCompare|replace|sliceS|split|substr|substring|toLower|toUpper|trim)\b
|
||||
scope: support.function.string.purescript
|
||||
strings:
|
||||
- match: (\")
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.purescript
|
||||
push:
|
||||
- meta_scope: string.quoted.double.purescript
|
||||
- match: (\")
|
||||
captures:
|
||||
0: punctuation.definition.string.end.purescript
|
||||
pop: true
|
||||
- include: strings-escapes
|
||||
strings-escapes:
|
||||
- match: '\\(''|\"|\\|/|b|f|n|r|t|v|0|u[0-9a-fA-F]{4})'
|
||||
scope: constant.character.escape
|
||||
trace:
|
||||
- include: trace-data
|
||||
- include: trace-function
|
||||
trace-data:
|
||||
- match: \b(Trace)\b
|
||||
scope: support.function.data.trace.purescript
|
||||
trace-function:
|
||||
- match: \b(print|trace)\b
|
||||
scope: support.function.trace.purescript
|
||||
tuple:
|
||||
- include: tuple-function
|
||||
tuple-function:
|
||||
- match: \b(curry|uncurry|unzip|zip)\b
|
||||
scope: support.function.tuple.purescript
|
||||
type-constraint:
|
||||
- match: '\s*(?:([A-Z][\w.'']*)(?:\s+([a-z_][\w.'']*))+ | \(([A-Z][\w.'']*)(?:\s+([a-z_][\w.'']*))+\))\s*(=>)'
|
||||
scope: meta.constraint.purescript
|
||||
captures:
|
||||
1: entity.other.inherited-class.purescript
|
||||
2: variable.other.purescript
|
||||
3: entity.other.inherited-class.purescript
|
||||
4: variable.other.purescript
|
||||
5: keyword.operator.purescript
|
||||
type-signature:
|
||||
- include: type-simple
|
||||
- include: type-constraint
|
||||
type-simple:
|
||||
- match: \((->)\)|(->)
|
||||
scope: arrow.operator.purescript
|
||||
captures:
|
||||
1: keyword.operator.purescript
|
||||
2: keyword.operator.purescript
|
||||
- match: '([A-Z][\w.'']*)'
|
||||
scope: storage.type.purescript
|
||||
- include: generic-tyvar
|
|
@ -0,0 +1,19 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: requirements.txt
|
||||
file_extensions:
|
||||
- requirements.txt
|
||||
scope: source.requirementstxt
|
||||
contexts:
|
||||
main:
|
||||
- match: (#).*$\n?
|
||||
scope: comment.line.requirementstxt
|
||||
captures:
|
||||
1: punctuation.definition.comment.requirementstxt
|
||||
- match: '(?i)^[a-z0-9_\-\.]+'
|
||||
scope: string.package_name.requirementstxt
|
||||
- match: (?i)==|<|<=|>=|>
|
||||
scope: keyword.operator.logical.punctuation.requirementstxt
|
||||
- match: '(?i)\d+\.[\da-z\-_\.]*'
|
||||
scope: constant.numeric.verions.requirementstxt
|
|
@ -0,0 +1,27 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Highlight non-printables
|
||||
file_extensions:
|
||||
- show-nonprintable
|
||||
scope: whitespace
|
||||
contexts:
|
||||
main:
|
||||
- match: "•"
|
||||
scope: support.function.show-nonprintable.space
|
||||
- match: "├─*┤"
|
||||
scope: constant.character.escape.show-nonprintable.tab
|
||||
- match: "↹"
|
||||
scope: constant.character.escape.show-nonprintable.tab
|
||||
- match: "␊"
|
||||
scope: keyword.operator.show-nonprintable.line-feed
|
||||
- match: "␍"
|
||||
scope: string.show-nonprintable.carriage-return
|
||||
- match: "␀"
|
||||
scope: entity.other.attribute-name.show-nonprintable.null
|
||||
- match: "␇"
|
||||
scope: entity.other.attribute-name.show-nonprintable.bell
|
||||
- match: "␛"
|
||||
scope: entity.other.attribute-name.show-nonprintable.escape
|
||||
- match: "␈"
|
||||
scope: entity.other.attribute-name.show-nonprintable.backspace
|
|
@ -0,0 +1,41 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: syslog
|
||||
file_extensions:
|
||||
- log
|
||||
scope: source.syslog
|
||||
contexts:
|
||||
main:
|
||||
- match: \b(WAR|WARNING)\b
|
||||
scope: invalid.deprecated
|
||||
- match: (^(INVITE|ACK|PUBLISH|OPTIONS|CANCEL|BYE|SUBSCRIBE|NOTIFY|INFO|REFER|UPDATE|MESSAGE) sip.+$|SIP/2.0 180 Ringing|SIP/2.0 200 OK)
|
||||
scope: variable.parameter
|
||||
- match: '-----\>step.+$'
|
||||
scope: support.function
|
||||
- match: '.+\*{3,}.+'
|
||||
scope: comment
|
||||
- match: \b(INFO|VERBOSE)\b
|
||||
scope: comment
|
||||
- match: \bNOTICE\b
|
||||
scope: support.class
|
||||
- match: \b(ERR|ERROR)\b
|
||||
scope: invalid.illegal
|
||||
- match: '^\s*\[.+?\]'
|
||||
scope: string.quote.single
|
||||
- match: (--->|<---)( SIP read from | Transmitting \(NAT\) to | SIP transmit to).+$
|
||||
scope: comment.line
|
||||
- match: \<— SIP read from .+ —\>
|
||||
scope: constant.character
|
||||
- match: \<— Transmitting \(NAT\) .+ —\>
|
||||
scope: constant.numeric
|
||||
- match: (SEND\:|recv\:).+\>
|
||||
scope: constant.numeric
|
||||
- match: ^Call-ID\:.+$
|
||||
scope: constant.numeric
|
||||
- match: ^(User-Agent|Server)\:.+$
|
||||
scope: entity.name.function
|
||||
- match: (AMI Send\:|AMI Recv\:|m\=).+
|
||||
scope: constant.language
|
||||
- match: .*<conference-info.+
|
||||
scope: constant.o
|
|
@ -0,0 +1,94 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
name: varlink
|
||||
file_extensions:
|
||||
- varlink
|
||||
scope: source.varlink
|
||||
|
||||
variables:
|
||||
interface_name: '([a-z](\-*[a-z0-9])*(\.[a-z0-9](\-*[a-z0-9])*)+)'
|
||||
identifier: '([A-Z][a-zA-Z0-9_]*)'
|
||||
field_name: '[A-Za-z]([_]?[A-Za-z0-9])*'
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- include: statements
|
||||
|
||||
statements:
|
||||
- include: comments
|
||||
|
||||
- match: '(interface)\s+(\b{{interface_name}}\b)'
|
||||
scope: meta.type.declaration.varlink
|
||||
captures:
|
||||
1: storage.type.interface.varlink
|
||||
2: entity.name.interface.varlink
|
||||
|
||||
- match: '(method)\s+(\b{{identifier}}\b)\s*(?=[(])'
|
||||
scope: meta.method.declaration.varlink
|
||||
captures:
|
||||
1: storage.type.method.varlink
|
||||
2: entity.name.method.varlink
|
||||
push: [ method-return, block ]
|
||||
|
||||
- match: '(type)\s+(\b{{identifier}}\b)\s*(?=[(])'
|
||||
scope: meta.type.declaration.varlink
|
||||
captures:
|
||||
1: storage.type.type.varlink
|
||||
2: entity.name.type.varlink
|
||||
push: block
|
||||
|
||||
- match: '(error)\s+(\b{{identifier}}\b)\s*(?=[(])'
|
||||
scope: meta.error.declaration.varlink
|
||||
captures:
|
||||
1: storage.type.error.varlink
|
||||
2: entity.name.error.varlink
|
||||
push: block
|
||||
|
||||
method-return:
|
||||
- match: '(->)\s*(?=[(])'
|
||||
scope: keyword.operator.varlink
|
||||
set: block
|
||||
|
||||
block:
|
||||
- include: comments
|
||||
- match: '\)'
|
||||
scope: punctuation.section.group.end.varlink
|
||||
pop: true
|
||||
- match: '\('
|
||||
scope: punctuation.section.group.begin.varlink
|
||||
push: block-inner
|
||||
|
||||
block-inner:
|
||||
- include: comments
|
||||
- match: '(?=\))'
|
||||
pop: true
|
||||
- match: '\b{{field_name}}\b'
|
||||
scope: variable.parameter.varlink
|
||||
- match: ','
|
||||
scope: punctuation.separator.varlink
|
||||
- match: ":"
|
||||
scope: punctuation.separator.varlink
|
||||
push: type
|
||||
|
||||
type:
|
||||
- include: comments
|
||||
- match: '(?=\()'
|
||||
push: block
|
||||
- match: '(?=\))'
|
||||
pop: true
|
||||
- match: '(?=,)'
|
||||
pop: true
|
||||
- match: '\b(string|bool|int|float|object)\b'
|
||||
scope: storage.type.varlink
|
||||
- match: '(\[\]|\[string\]|\?)'
|
||||
scope: storage.modifier.varlink
|
||||
- match: '\b{{identifier}}\b'
|
||||
scope: entity.name.type.varlink
|
||||
|
||||
comments:
|
||||
- match: "#"
|
||||
scope: punctuation.definition.comment.varlink
|
||||
push:
|
||||
- meta_scope: comment.line.documentation.varlink
|
||||
- match: $\n?
|
||||
pop: true
|
|
@ -0,0 +1,616 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!-- author: Mark Herpich https://twitter.com/markisrocking -->
|
||||
<!--
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Mark Herpich
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
-->
|
||||
<plist version="1.2">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>1337</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#191919</string>
|
||||
<key>caret</key>
|
||||
<string>#F8F8F0</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#3B3A32</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#3D3D3D55</string>
|
||||
<key>selection</key>
|
||||
<string>#515151</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#6d6d6d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fbe3bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fdb082</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ff8942</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fdb082</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e9fdac</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ff5e5e</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ff5e5e</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#fbdfb5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#8cdaff</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>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#8cdaff</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8cdaff</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#fc9354</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ff5e5e</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#97d8ea</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#6699cc</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ecfdb9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fbe3bf</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Namespaces</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.namespace, entity.name.type.namespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFB2F9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Namespace Alias</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.namespace.use-as.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Namespace Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.namespace.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D66990</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>PHP Namespace Separator</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.separator.inheritance.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS Functions / Property Values</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.misc.css, support.constant.property-value.css, support.constant.font-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fdb082</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Tagbraces</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.template.value.twig, meta.tag.template.block.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CD5AC5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E05D8C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Objects</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E5A5E0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Object Properties</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.property.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFE1FC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Language Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFD2A6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Numerical Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFD0FB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Filters</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#90E7F7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig User-Defined Filters</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call.other.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FAB85A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Twig Macros</string>
|
||||
<key>scope</key>
|
||||
<string>meta.function-call.twig</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FAB85A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#f92649</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#ff9664</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ffffff</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>#d0d0d0</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>#66a9ec</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Literal</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.super, variable.language.this, variable.language.self</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#d699ff</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<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>#F92672</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>#A6E22E</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>#CC00FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitGutter ignored</string>
|
||||
<key>scope</key>
|
||||
<string>markup.ignored.git_gutter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#999999</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitGutter untracked</string>
|
||||
<key>scope</key>
|
||||
<string>markup.untracked.git_gutter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#565656</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC00FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>233F0694-0B9C-43E3-A44A-ECECF7DF6C73</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.1337</string>
|
||||
<key>author</key>
|
||||
<string>Mark Herpich</string>
|
||||
<key>comment</key>
|
||||
<string>http://www.twitter.com/markisrocking</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,818 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Dark Neon</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#000000</string>
|
||||
<key>caret</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>invisibles</key>
|
||||
<string>#CAE2FB3D</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#FFFFFF24</string>
|
||||
<key>selection</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7C7C7C</string>
|
||||
<key>background</key>
|
||||
<string>#212121</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword.control</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword.Operator</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AAAAAA</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFB6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support</string>
|
||||
<key>scope</key>
|
||||
<string>support</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFB6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#CFCB90</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage.modifier</string>
|
||||
<key>scope</key>
|
||||
<string>storage.modifier</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#99CC99</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>normal</string>
|
||||
<key>foreground</key>
|
||||
<string>#CCFF66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FF73FD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#c6c5fe</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD5FF1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid – Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#562D56BF</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD5FF1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Embedded Source (Bright)</string>
|
||||
<key>scope</key>
|
||||
<string>text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA08</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Entity inherited-class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#9B5C2E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String embedded-variable</string>
|
||||
<key>scope</key>
|
||||
<string>source string source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#EDEDED</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>source string source punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00A0A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#00A0A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E9C062</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.«special»</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FF8000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.group</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.group</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF0F</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#C6A24F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String.regexp.character-class</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.character-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#B18A3D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8A9A95</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#DAD085</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>♦ Support.constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FFD2A7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Line</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8996A8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>c C/C++ Preprocessor Directive</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.c keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#AFC4DB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>j Cast</string>
|
||||
<key>scope</key>
|
||||
<string>meta.cast</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#676767</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.sgml.html meta.doctype, meta.sgml.html meta.doctype entity, meta.sgml.html meta.doctype string, meta.xml-processing, meta.xml-processing entity, meta.xml-processing string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#494949</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.«all»</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag, meta.tag entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>normal</string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.inline</string>
|
||||
<key>scope</key>
|
||||
<string>source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Meta.tag.attribute-name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#aaaaaa</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>✘ Namespaces</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.namespace, entity.other.attribute-name.namespace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E18964</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#66CCFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css:pseudo-class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.tag.pseudo-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css#id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#8B98AB</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css.class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#62B1FE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-name:</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EDEDED</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css property-value;</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F9EE98</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8693A5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#87C38A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>§ css constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#8F9D6A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#0E2231</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#420E09</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#4A410D</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>⎇ diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#253B22</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F8</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>--------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#E9C062</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#E9C062</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Underline</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#E18964</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FEE09C12</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#E1D4B9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading, markup.heading entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#632D04</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FEDCC5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: List</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E1D4B9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Raw</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#B1B3BA08</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#578BB3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Comment</string>
|
||||
<key>scope</key>
|
||||
<string>markup comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>##555555</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#242424</string>
|
||||
<key>foreground</key>
|
||||
<string>#60A633</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Log Entry</string>
|
||||
<key>scope</key>
|
||||
<string>meta.line.entry.logfile, meta.line.exit.logfile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EEEEEE29</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Log Entry Error</string>
|
||||
<key>scope</key>
|
||||
<string>meta.line.error.logfile</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#751012</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>D039AEA9-9DD2-4237-A963-E84494B0B3FB</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.dark_neon</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,526 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitHub</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#333333</string>
|
||||
<key>foreground</key>
|
||||
<string>#333333</string>
|
||||
<key>invisibles</key>
|
||||
<string>#E0E0E0</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#F8EEC7</string>
|
||||
<key>selection</key>
|
||||
<string>#B0CDE7</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#B0CDE7</string>
|
||||
<key>inactiveSelection</key>
|
||||
<string>#EDEDED</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#FFE792</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#969896</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operators</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator, support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A71D5D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operators</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086B3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#a71d5d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#a71d5d</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Types</string>
|
||||
<key>scope</key>
|
||||
<string>support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086B3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0086b3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#df5000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Functions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#795da3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Functions</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086B3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type, entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
<string>support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086b3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exceptions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F93232</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Sections</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Numbers</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086b3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, string, string punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#183691</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Regular Expressions</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp, string.regexp constant.character, string.regexp punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#009926</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Symbols</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.symbol</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#990073</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>string source, text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>variable.other.property</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#333</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#333333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#f00</string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
|
||||
<!-- HTML -->
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tags</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string />
|
||||
<key>foreground</key>
|
||||
<string>#63a35c</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tags Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string />
|
||||
<key>foreground</key>
|
||||
<string>#333</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag string punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#183691</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Entities</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Names</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#795da3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Values</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#183691</string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
<!-- CSS/SASS -->
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>meta.selector, meta.selector entity, meta.selector entity punctuation, entity.name.tag.css, entity.other.attribute-name.class, keyword.control.html.sass</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#63a35c</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.class, constant.other.unit</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#795da3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name, support.constant.property-value</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0086b3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
|
||||
<!-- Ruby -->
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.special-method.ruby.gem</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0086B3</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>variable.other.block.ruby</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
<!-- Haskell -->
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>support.function.prelude, variable.other.generic-type.haskell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#000</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>constant.other.haskell, support.constant.haskell</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#445588</string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
<!-- Diff -->
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#770000</string>
|
||||
<key>background</key>
|
||||
<string>#FFDDDD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#003300</string>
|
||||
<key>background</key>
|
||||
<string>#DDFFDD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#ececec</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>BF4E1964-0DB9-4E88-8142-E8F52D7EDEEC</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,999 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>author</key>
|
||||
<string>@tapionlinna</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>name</key>
|
||||
<string>Monokai Extended Bright</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.monokai_bright_extended</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>activeGuide</key>
|
||||
<string>#9D550FB0</string>
|
||||
<key>background</key>
|
||||
<string>#272822</string>
|
||||
<key>bracketContentsForeground</key>
|
||||
<string>#F8F8F2A5</string>
|
||||
<key>bracketContentsOptions</key>
|
||||
<string>underline</string>
|
||||
<key>bracketsForeground</key>
|
||||
<string>#F8F8F2A5</string>
|
||||
<key>bracketsOptions</key>
|
||||
<string>underline</string>
|
||||
<key>caret</key>
|
||||
<string>#F8F8F0</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#FFE792</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F2</string>
|
||||
<key>inactiveSelection</key>
|
||||
<string>#bbbbbb</string>
|
||||
<key>inactiveSelectionForeground</key>
|
||||
<string>#222222</string>
|
||||
<key>invisibles</key>
|
||||
<string>#3B3A32</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#3E3D32</string>
|
||||
<key>selection</key>
|
||||
<string>#9D550F</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#1C1C1C</string>
|
||||
<key>selectionForeground</key>
|
||||
<string>#fffff8</string>
|
||||
<key>tagsOptions</key>
|
||||
<string>stippled_underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</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>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD971F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String constant</string>
|
||||
<key>scope</key>
|
||||
<string>string constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String.regexp</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6AA11</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String variable</string>
|
||||
<key>scope</key>
|
||||
<string>string variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Support.function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Doctype/XML Processing</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.doctype.xml, declaration.sgml.html declaration.doctype, declaration.sgml.html declaration.doctype entity, declaration.sgml.html declaration.doctype string, declaration.xml-processing, declaration.xml-processing entity, declaration.xml-processing string, doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#73817D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: punctuations tags</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag.end, punctuation.definition.tag.begin, punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: tag-name</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: @import</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.control.at-rule.import.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: @at-rule</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor.at-rule keyword.control.at-rule</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6AA11</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: id</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.id</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6AA11</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: class</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector.css entity.other.attribute-name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: property-name</string>
|
||||
<key>scope</key>
|
||||
<string>support.type.property-name.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: property-value</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6F080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: additional-constants</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value support.constant.named-color.css, meta.property-value constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EDF080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: constructor.argument</string>
|
||||
<key>scope</key>
|
||||
<string>meta.constructor.argument.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F6AA11</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>LESS variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.less</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>LESS mixins</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.less.mixin</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9DF39F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CoffeeScript String Interpolated</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded.coffee</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e69f66</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F92672</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#AE81FF</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JSON String</string>
|
||||
<key>scope</key>
|
||||
<string>meta.structure.dictionary.json string.quoted.double.json</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CFCFC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.range</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.range</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#3BC0F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Plain</string>
|
||||
<key>scope</key>
|
||||
<string>text.html.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Raw Inline</string>
|
||||
<key>scope</key>
|
||||
<string>text.html.markdown markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#EC3533</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Linebreak</string>
|
||||
<key>scope</key>
|
||||
<string>text.html.markdown meta.dummy.line-break</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E0EDDD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>Markdown.heading, markup.heading | markup.heading entity.name, markup.heading.markdown punctuation.definition.heading.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#FD971F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 1</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.1.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#fc951e</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 2</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.2.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#e8891c</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 3</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.3.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#d47d19</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 4</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.4.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#bf7117</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 5</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.5.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ab6515</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading 6</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.6.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#965912</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672DD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Underline</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: strike</string>
|
||||
<key>scope</key>
|
||||
<string>markup.strike</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#cc4273</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Blockquote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote, punctuation.definition.blockquote.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Quote</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Link</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link.title.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Raw Block</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.block</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Raw Block</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.block.fenced.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#222</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: List Items punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.list_item.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#93A1A1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Fenced Code Block</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.fenced.markdown,variable.language.fenced.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#222222</string>
|
||||
<key>foreground</key>
|
||||
<string>#93A1A1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Fenced markdown language</string>
|
||||
<key>scope</key>
|
||||
<string>variable.language.fenced.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#C6CECE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Table</string>
|
||||
<key>scope</key>
|
||||
<string>markup.table</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FF3A281A</string>
|
||||
<key>foreground</key>
|
||||
<string>#B42A1D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Separator</string>
|
||||
<key>scope</key>
|
||||
<string>meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF0F</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF33</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>LaTeX: Math Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.math.tex</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<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>#F92672</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>#A6E22E</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>#FC951E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitGutter ignored</string>
|
||||
<key>scope</key>
|
||||
<string>markup.ignored.git_gutter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#565656</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>GitGutter untracked</string>
|
||||
<key>scope</key>
|
||||
<string>markup.untracked.git_gutter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#565656</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric.line-number.find-in-files - match</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FFA0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>scope</key>
|
||||
<string>entity.name.filename.find-in-files</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Nginx path</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.path.nginx</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#fc951e</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>b76b4488-20c3-40a7-9499-457a451ee558</string>
|
||||
</dict>
|
||||
</plist>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,663 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Name: One Half Dark
|
||||
Author: Son A. Pham <sp@sonpham.me>
|
||||
Url: https://github.com/sonph/onehalf
|
||||
License: The MIT License (MIT)
|
||||
|
||||
A dark Sublime Text color scheme based on Atom's One. See
|
||||
github.com/sonph/onehalf for installation instructions, a light color
|
||||
scheme, and versions for other editors/terminals such as Vim or iTerm.
|
||||
|
||||
Red: #e06c75
|
||||
Green: #98c379
|
||||
Yellow: #e5c07b
|
||||
Blue: #61afef
|
||||
Purple: #c678dd
|
||||
Cyan: #56b6c2
|
||||
White: #dcdfe4
|
||||
Black: #282c34
|
||||
Fg: #dcdfe4
|
||||
Bg: #282c34
|
||||
Comment: #5c6370
|
||||
Gutter foreground: #919baa
|
||||
Gutter background: #282c34
|
||||
Selection: #474e5d
|
||||
-->
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>OneHalfLight</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.one_half_dark</string>
|
||||
<key>uuid</key>
|
||||
<string></string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>author</key>
|
||||
<string>Son A. Pham <sp@sonpham.me></string>
|
||||
<key>comment</key>
|
||||
<string>A dark iTerm color scheme based on Atom's One. See github.com/sonph/onehalf for installation instructions, a light color scheme, and versions for other editors/terminals such as (Neo)Vim and Sublime Text.</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
<key>background</key>
|
||||
<string>#282c34</string>
|
||||
<key>bracketsOptions</key>
|
||||
<string>underline</string>
|
||||
<key>caret</key>
|
||||
<string>#a3b3cc</string>
|
||||
<key>gutter</key>
|
||||
<string>#282c34</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#919baa</string>
|
||||
<key>invisibles</key>
|
||||
<string>#5c6370</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#313640</string>
|
||||
<key>selection</key>
|
||||
<string>#474e5d</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#474e5d</string>
|
||||
<key>tagsForeground</key>
|
||||
<string></string>
|
||||
<key>tagsOptions</key>
|
||||
<string>stippled_underline</string>
|
||||
<key>bracketContentsOptions</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#5c6370</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>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></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></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>#e5c07b</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>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings, Inherited Class</string>
|
||||
<key>scope</key>
|
||||
<string>string</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>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: 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>HTML: Tag attributes</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e5c07b</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>#e5c07b</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>Markdown: Headings</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold, punctuation.definition.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c678dd</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: 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>Markdown: 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>Markdown: Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Link Url</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#98c379</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Lists</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Quotes</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#98c379</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Source</string>
|
||||
<key>scope</key>
|
||||
<string>source.java meta.class.java meta.method.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Class Body</string>
|
||||
<key>scope</key>
|
||||
<string>source.java meta.class.java meta.class.body.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Function Arguments</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function.js variable.parameter.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: New Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js variable.other.object.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Variables in Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function-call.method.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: New Block Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e06c75</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Block Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js variable.other.object.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Block Variables in Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js meta.function-call.method.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function-call.method.js variable.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Properties</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.property.object.js entity.name.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#61afef</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Prototypes</string>
|
||||
<key>scope</key>
|
||||
<string>source.js support.constant.prototype.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</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></string>
|
||||
<key>foreground</key>
|
||||
<string></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>#e5c07b</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>#98c379</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></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>#e06c75</string>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</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>#e5c07b</string>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</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>#e5c07b</string>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</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>#c678dd</string>
|
||||
<key>foreground</key>
|
||||
<string>#dcdfe4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,663 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Name: One Half Light
|
||||
Author: Son A. Pham <sp@sonpham.me>
|
||||
Url: https://github.com/sonph/onehalf
|
||||
License: The MIT License (MIT)
|
||||
|
||||
A light Sublime Text color scheme based on Atom's One. See
|
||||
github.com/sonph/onehalf for installation instructions, a dark color scheme,
|
||||
and versions for other editors/terminals such as Vim or iTerm.
|
||||
|
||||
Red: #e45649
|
||||
Green: #50a14f
|
||||
Yellow: #c18401
|
||||
Blue: #0184bc
|
||||
Purple: #a626a4
|
||||
Cyan: #0997b3
|
||||
White: #fafafa
|
||||
Black: #383a42
|
||||
Fg: #383a42
|
||||
Bg: #fafafa
|
||||
Comment: #a0a1a7
|
||||
Gutter foreground: #d4d4d4
|
||||
Gutter background: #fafafa
|
||||
Selection: #bfceff
|
||||
-->
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>OneHalfLight</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.light.one_half_light</string>
|
||||
<key>uuid</key>
|
||||
<string></string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>author</key>
|
||||
<string>Son A. Pham <sp@sonpham.me></string>
|
||||
<key>comment</key>
|
||||
<string>A light iTerm color scheme based on Atom's One. See github.com/sonph/onehalf for installation instructions, a dark color scheme, and versions for other editors/terminals such as (Neo)Vim and Sublime Text.</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
<key>background</key>
|
||||
<string>#fafafa</string>
|
||||
<key>bracketsOptions</key>
|
||||
<string>underline</string>
|
||||
<key>caret</key>
|
||||
<string>#383a42</string>
|
||||
<key>gutter</key>
|
||||
<string>#fafafa</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#d4d4d4</string>
|
||||
<key>invisibles</key>
|
||||
<string>#a0a1a7</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#f0f0f0</string>
|
||||
<key>selection</key>
|
||||
<string>#bfceff</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#bfceff</string>
|
||||
<key>tagsForeground</key>
|
||||
<string></string>
|
||||
<key>tagsOptions</key>
|
||||
<string>stippled_underline</string>
|
||||
<key>bracketContentsOptions</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a0a1a7</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>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></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></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a626a4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</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>#0184bc</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>#c18401</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>#c18401</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>#0184bc</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a626a4</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>#0184bc</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings, Inherited Class</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#50a14f</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>#c18401</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c18401</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c18401</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c18401</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tags</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tag attributes</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#c18401</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>#c18401</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>#a626a4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Headings</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading punctuation.definition.heading, entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#0184bc</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Bold</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold, punctuation.definition.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a626a4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Italic</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic, punctuation.definition.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#a626a4</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Code</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.inline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#50a14f</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Link Url</string>
|
||||
<key>scope</key>
|
||||
<string>meta.link</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#50a14f</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Lists</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markdown: Quotes</string>
|
||||
<key>scope</key>
|
||||
<string>markup.quote</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#50a14f</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Source</string>
|
||||
<key>scope</key>
|
||||
<string>source.java meta.class.java meta.method.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Java Class Body</string>
|
||||
<key>scope</key>
|
||||
<string>source.java meta.class.java meta.class.body.java</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Function Arguments</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function.js variable.parameter.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: New Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js variable.other.object.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Variables in Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function-call.method.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: New Block Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#e45649</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Block Variables</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js variable.other.object.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Block Variables in Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.block.js meta.function-call.method.js variable.other.readwrite.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Function Calls</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.function-call.method.js variable.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Properties</string>
|
||||
<key>scope</key>
|
||||
<string>source.js meta.property.object.js entity.name.function.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0184bc</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Javascript: Prototypes</string>
|
||||
<key>scope</key>
|
||||
<string>source.js support.constant.prototype.js</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#383a42</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></string>
|
||||
<key>foreground</key>
|
||||
<string></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>#e5c07b</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>#50a14f</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>#0997b3</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></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>#e06c75</string>
|
||||
<key>foreground</key>
|
||||
<string>#fafafa</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>#e5c07b</string>
|
||||
<key>foreground</key>
|
||||
<string>#fafafa</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>#e5c07b</string>
|
||||
<key>foreground</key>
|
||||
<string>#fafafa</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>#c678dd</string>
|
||||
<key>foreground</key>
|
||||
<string>#fafafa</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,30 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!-- Generated by: TmTheme-Editor -->
|
||||
<!-- ============================================ -->
|
||||
<!-- app: http://tmtheme-editor.herokuapp.com -->
|
||||
<!-- code: https://github.com/aziz/tmTheme-Editor -->
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Monokai</string>
|
||||
<string>Sublime Snazzy</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#272822</string>
|
||||
<string>#282A36</string>
|
||||
<key>caret</key>
|
||||
<string>#F8F8F0</string>
|
||||
<string>#97979B</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#3B3A32</string>
|
||||
<string>#686868</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#3E3D32</string>
|
||||
<string>#000000</string>
|
||||
<key>selection</key>
|
||||
<string>#49483E</string>
|
||||
<string>#57C7FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -35,7 +31,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
<string>#686868</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -46,7 +42,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
<string>#F3F99D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -57,7 +53,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
<string>#F1F1F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -68,7 +64,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
<string>#5AF78E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -79,7 +75,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
<string>#5AF78E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -101,7 +97,7 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
<string>#FF5C57</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -114,7 +110,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
<string>#FF5C57</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -127,7 +123,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
<string>#9AEDFE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -140,7 +136,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
<string>#9AEDFE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -153,7 +149,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
<string>#9AEDFE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -166,7 +162,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
<string>#9AEDFE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -179,7 +175,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD971F</string>
|
||||
<string>#FF6AC1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -192,7 +188,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
<string>#5AF78E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -205,7 +201,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
<string>#9AEDFE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -218,7 +214,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
<string>#F3F99D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -231,7 +227,7 @@
|
|||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
<string>#F3F99D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -241,10 +237,8 @@
|
|||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
<string>#F3F99D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -266,11 +260,11 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F92672</string>
|
||||
<string>#FF5C57</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
<string>#F1F1F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
|
@ -281,9 +275,9 @@
|
|||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#AE81FF</string>
|
||||
<string>#FF5C57</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
<string>#57C7FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
|
@ -294,4 +288,4 @@
|
|||
<key>semanticClass</key>
|
||||
<string>theme.dark.monokai</string>
|
||||
</dict>
|
||||
</plist>
|
||||
</plist>
|
|
@ -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>
|
|
@ -0,0 +1,504 @@
|
|||
<?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>
|
||||
<!--
|
||||
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
||||
palette number from 00 to 0f, and AA is the special value 00 to indicate
|
||||
that this encoding is being used.
|
||||
-->
|
||||
<key>author</key>
|
||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||
<key>name</key>
|
||||
<string>ANSI Dark</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#00000000</string>
|
||||
<key>caret</key>
|
||||
<string>#07000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#07000000</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#07000000</string>
|
||||
<key>selection</key>
|
||||
<string>#07000000</string>
|
||||
<key>gutter</key>
|
||||
<string>#00000000</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#07000000</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>#07000000</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>#02000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#07000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Labels</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#06000000</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>#03000000</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>#07000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#06000000</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>#02000000</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>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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>#01000000</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>#03000000</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>#04000000</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>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Values</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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></string>
|
||||
<key>foreground</key>
|
||||
<string>#04000000</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>#03000000</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>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#02000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown, punctuation.definition.string.begin.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#01000000</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>#03000000</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>#03000000</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>#02000000</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>#01000000</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>#05000000</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>#06000000</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>#06000000</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>#06000000</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>#05000000</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>#01000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#03000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>uuid</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,504 @@
|
|||
<?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>
|
||||
<!--
|
||||
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
||||
palette number from 00 to 0f, and AA is the special value 00 to indicate
|
||||
that this encoding is being used.
|
||||
-->
|
||||
<key>author</key>
|
||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||
<key>name</key>
|
||||
<string>ANSI Light</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#07000000</string>
|
||||
<key>caret</key>
|
||||
<string>#00000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#00000000</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#00000000</string>
|
||||
<key>selection</key>
|
||||
<string>#00000000</string>
|
||||
<key>gutter</key>
|
||||
<string>#07000000</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#00000000</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>#00000000</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>#02000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</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>#00000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Labels</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#06000000</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>#03000000</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>#00000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#06000000</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>#02000000</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>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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>#01000000</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>#03000000</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>#04000000</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>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Values</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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></string>
|
||||
<key>foreground</key>
|
||||
<string>#04000000</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>#03000000</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>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#02000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown, punctuation.definition.string.begin.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#01000000</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>#03000000</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>#03000000</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>#02000000</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>#01000000</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>#05000000</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>#06000000</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>#06000000</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>#06000000</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>#05000000</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>#01000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</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>#03000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>uuid</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,543 @@
|
|||
<?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>
|
||||
<!--
|
||||
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
||||
palette number from 00 to 0f, and AA is the special value 00 to indicate
|
||||
that this encoding is being used.
|
||||
-->
|
||||
<key>author</key>
|
||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||
<key>name</key>
|
||||
<string>Base16</string>
|
||||
<key>colorSpaceName</key>
|
||||
<string>sRGB</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#00000000</string>
|
||||
<key>caret</key>
|
||||
<string>#07000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#08000000</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#08000000</string>
|
||||
<key>selection</key>
|
||||
<string>#0b000000</string>
|
||||
<key>gutter</key>
|
||||
<string>#0a000000</string>
|
||||
<key>gutterForeground</key>
|
||||
<string>#08000000</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>#07000000</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>#08000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#07000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Labels</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.label</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#0e000000</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>#03000000</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>#0f000000</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>#04000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#06000000</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>#02000000</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>#09000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floats</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#09000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Boolean</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#09000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#09000000</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>#01000000</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>#09000000</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>#04000000</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>#05000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Values</string>
|
||||
<key>scope</key>
|
||||
<string>none</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#09000000</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></string>
|
||||
<key>foreground</key>
|
||||
<string>#04000000</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>#09000000</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>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#03000000</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>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#05000000</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>#02000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Link Text</string>
|
||||
<key>scope</key>
|
||||
<string>string.other.link, punctuation.definition.string.end.markdown, punctuation.definition.string.begin.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#01000000</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>#09000000</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>#09000000</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>#0b000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#07000000</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>#02000000</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>#01000000</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>#05000000</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>#06000000</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>#06000000</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>#06000000</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>#05000000</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>#01000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#0f000000</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>#09000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#00000000</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>#0e000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#0f000000</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>#08000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#0f000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>uuid</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,744 @@
|
|||
<?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>Jani Nurminen. Adapted and modified by Colin T.A. Gray and William D. Neumann</string>
|
||||
<key>name</key>
|
||||
<string>zenburn</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>caret</key>
|
||||
<string>#D6D6D6</string>
|
||||
<key>foreground</key>
|
||||
<string>#DEDEDE</string>
|
||||
<key>invisibles</key>
|
||||
<string>#A5A5A552</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#303030</string>
|
||||
<key>selection</key>
|
||||
<string>#8383839C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#87AE86</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>preprocessor</string>
|
||||
<key>scope</key>
|
||||
<string>meta.preprocessor, punctuation.definition.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E8BC92</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>phpdoc</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.phpdoc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#568E4D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>comment punctuation (/*, #, //)</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.comment, punctuation.whitespace.comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A0CFA1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>embedded ruby in string delimiters</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#898989</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>embedded ruby in string</string>
|
||||
<key>scope</key>
|
||||
<string>source.ruby.embedded</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC9495</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Directive</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.directive</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#DEDEDE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Line-number directives</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.directive.line-number</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Characters</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FF8080</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string, string.unquoted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D68686</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Heredoc</string>
|
||||
<key>scope</key>
|
||||
<string>string.unquoted.heredoc</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6D6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant.numeric, constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#87D6D5</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant, support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CC9495</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Other constant</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6AE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, keyword.control , meta.selector.css , entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Instance Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable.other.readwrite.instance</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Module Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.module,support.other.module</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FF8000</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>#ECECEC</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floating-point infix operators</string>
|
||||
<key>scope</key>
|
||||
<string>source.ocaml keyword.operator.symbol.infix.floating-point</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Floating-point prefix operators</string>
|
||||
<key>scope</key>
|
||||
<string>source.ocaml keyword.operator.symbol.prefix.floating-point</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage Types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type , storage.modifier , support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFB9D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variant Types</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class.variant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#4080A0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict />
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type , entity.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6D6</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>#D78D1B</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Type name</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type.user-defined , meta.property-list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFE000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class type name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type , entity.name.type.class , entity.other.attribute-name.class.css , support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F4A020</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFCCEE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#D6D7AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D7AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string><?php</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.section.embedded.begin.php,punctuation.section.embedded.end.php</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#898989</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>php function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function.construct</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>$variable prefix</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>function/method</string>
|
||||
<key>scope</key>
|
||||
<string>support.function,meta.function-name,entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFD87</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>built-in function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C7BA18</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>braces</string>
|
||||
<key>scope</key>
|
||||
<string>meta.brace</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#78CECC80</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>string begin</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.string.begin,punctuation.definition.string.end</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6D680</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>html tag begin/end</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag.begin.html,punctuation.definition.tag.end.html,meta.tag.structure.any.html</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FED5AE94</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>yaml entity</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag.yaml</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>unquoted yaml string</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.entry</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D6D6D6</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>SQL</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.other.DML.sql, keyword.other.data-integrity.sql</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#B7B7B7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>other SQL</string>
|
||||
<key>scope</key>
|
||||
<string>source.sql, constant.other.database-name.sql, constant.other.table-name.sql, keyword.operator.star</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#95BFF3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff</string>
|
||||
<key>scope</key>
|
||||
<string>source.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.toc</string>
|
||||
<key>scope</key>
|
||||
<string>source.diff meta.diff.comment, source.diff meta.toc-list.comment.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#9F9D15</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff from-file</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.from-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#CA7172</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff to-file</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.to-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#60B38A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff range</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.range.unified</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>foreground</key>
|
||||
<string>#8CD0D3</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>foreground</key>
|
||||
<string>#60B38A</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted.diff</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#393939</string>
|
||||
<key>foreground</key>
|
||||
<string>#CA7172</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>regex</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#C76F41</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>regex - repitition</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#9E6A5F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>regex - repitition {}</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.arbitrary-repitition</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF5E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>regex - character class</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp.character-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CB8E81</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>regex - character class []</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.character-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF5E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>markdown inline code</string>
|
||||
<key>scope</key>
|
||||
<string>markup.raw.inline.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#FED6AF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>markdown heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading.markdown,punctuation.definition.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
<key>foreground</key>
|
||||
<string>#FFFFFF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>markdown list</string>
|
||||
<key>scope</key>
|
||||
<string>markup.list</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#DEDEDE</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><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 Error</string>
|
||||
<key>scope</key>
|
||||
<string>sublimelinter.mark.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D02000</string>
|
||||
</dict>
|
||||
</dict></array>
|
||||
<key>uuid</key>
|
||||
<string>A34A7407-68B9-48E5-883E-E551F7561026</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -19,54 +19,52 @@ fn parse_str_color(s: &str) -> Result<Rgba<u8>, Error> {
|
|||
#[structopt(name = "silicon", rename_all = "kebab")]
|
||||
pub struct Config {
|
||||
/// The syntax highlight theme. It can be a theme name or path to a .tmTheme file.
|
||||
#[structopt(long, default_value = "base16-eighties.dark")]
|
||||
theme: String,
|
||||
#[structopt(long, default_value = "Monokai Extended")]
|
||||
pub theme: String,
|
||||
|
||||
/// The base font.
|
||||
#[structopt(long)]
|
||||
font: Option<String>,
|
||||
pub font: Option<String>,
|
||||
|
||||
/// Size of the base font.
|
||||
#[structopt(long, value_name = "size", default_value = "27.0")]
|
||||
font_size: f32,
|
||||
pub font_size: f32,
|
||||
|
||||
/// The CJK font.
|
||||
#[structopt(long, value_name = "font")]
|
||||
cjk_font: Option<String>,
|
||||
pub cjk_font: Option<String>,
|
||||
|
||||
/// Size of the CJK font.
|
||||
#[structopt(long, value_name = "size", default_value = "27.0")]
|
||||
cjk_size: f32,
|
||||
pub cjk_size: f32,
|
||||
|
||||
/// Pad between lines
|
||||
#[structopt(long, default_value = "2")]
|
||||
line_pad: u32,
|
||||
pub line_pad: u32,
|
||||
|
||||
/// List all themes.
|
||||
#[structopt(long)]
|
||||
pub list_themes: bool,
|
||||
|
||||
// Build theme cache.
|
||||
// #[structopt(long)]
|
||||
// build_cache: bool,
|
||||
/// Read input from clipboard.
|
||||
#[structopt(long)]
|
||||
from_clipboard: bool,
|
||||
pub from_clipboard: bool,
|
||||
|
||||
// Copy the output image to clipboard.
|
||||
// #[structopt(short = "c", long)]
|
||||
// to_clipboard: bool,
|
||||
#[structopt(short = "c", long)]
|
||||
pub to_clipboard: bool,
|
||||
|
||||
/// Write output image to specific location instead of cwd.
|
||||
#[structopt(short = "o", long, value_name = "path")]
|
||||
pub output: Option<PathBuf>,
|
||||
|
||||
/// Hide the window controls.
|
||||
#[structopt(long)]
|
||||
no_window_controls: bool,
|
||||
pub no_window_controls: bool,
|
||||
|
||||
/// Hide the line number.
|
||||
#[structopt(long)]
|
||||
no_line_number: bool,
|
||||
pub no_line_number: bool,
|
||||
|
||||
/// Background color of the image
|
||||
#[structopt(
|
||||
|
@ -75,7 +73,7 @@ pub struct Config {
|
|||
default_value = "#abb8c3",
|
||||
parse(try_from_str = "parse_str_color")
|
||||
)]
|
||||
background: Rgba<u8>,
|
||||
pub background: Rgba<u8>,
|
||||
|
||||
/// Color of shadow
|
||||
#[structopt(
|
||||
|
@ -84,38 +82,39 @@ pub struct Config {
|
|||
default_value = "#555555",
|
||||
parse(try_from_str = "parse_str_color")
|
||||
)]
|
||||
shadow_color: Rgba<u8>,
|
||||
pub shadow_color: Rgba<u8>,
|
||||
|
||||
/// Blur radius of the shadow
|
||||
#[structopt(long, value_name = "radius", default_value = "10.0")]
|
||||
shadow_blur_radius: f32,
|
||||
pub shadow_blur_radius: f32,
|
||||
|
||||
/// Pad horiz
|
||||
#[structopt(long, default_value = "80")]
|
||||
pad_horiz: u32,
|
||||
pub pad_horiz: u32,
|
||||
|
||||
/// Pad vert
|
||||
#[structopt(long, default_value = "100")]
|
||||
pad_vert: u32,
|
||||
pub pad_vert: u32,
|
||||
|
||||
/// Shadow's offset in Y axis
|
||||
#[structopt(long, value_name = "offset", default_value = "0")]
|
||||
shadow_offset_y: i32,
|
||||
pub shadow_offset_y: i32,
|
||||
|
||||
/// Shadow's offset in X axis
|
||||
#[structopt(long, value_name = "offset", default_value = "0")]
|
||||
shadow_offset_x: i32,
|
||||
pub shadow_offset_x: i32,
|
||||
|
||||
/// The language for syntax highlighting. You can use full name ("Rust") or file extension ("rs").
|
||||
#[structopt(short = "l", long)]
|
||||
language: Option<String>,
|
||||
pub language: Option<String>,
|
||||
|
||||
// Draw a custom text on the bottom right corner
|
||||
// #[structopt(long)]
|
||||
// watermark: Option<String>,
|
||||
|
||||
/// File to read. If not set, stdin will be use.
|
||||
#[structopt(value_name = "FILE", parse(from_os_str))]
|
||||
file: Option<PathBuf>,
|
||||
pub file: Option<PathBuf>,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
|
|
18
src/main.rs
18
src/main.rs
|
@ -2,7 +2,7 @@
|
|||
extern crate failure;
|
||||
|
||||
use crate::config::Config;
|
||||
use crate::utils::{add_window_controls, round_corner};
|
||||
use crate::utils::{add_window_controls, round_corner, dump_image_to_clipboard};
|
||||
use failure::Error;
|
||||
use std::io::stdout;
|
||||
use structopt::StructOpt;
|
||||
|
@ -53,13 +53,17 @@ fn run() -> Result<(), Error> {
|
|||
|
||||
let image = config.get_shadow_adder().apply_to(&image);
|
||||
|
||||
if let Some(path) = &config.output {
|
||||
image
|
||||
.save(path)
|
||||
.map_err(|e| format_err!("Failed to save image to {}: {}", path.display(), e))?;
|
||||
if config.to_clipboard {
|
||||
dump_image_to_clipboard(&image)?;
|
||||
} else {
|
||||
let mut stdout = stdout();
|
||||
image.write_to(&mut stdout, ImageFormat::PNG)?;
|
||||
if let Some(path) = &config.output {
|
||||
image
|
||||
.save(path)
|
||||
.map_err(|e| format_err!("Failed to save image to {}: {}", path.display(), e))?;
|
||||
} else {
|
||||
let mut stdout = stdout();
|
||||
image.write_to(&mut stdout, ImageFormat::PNG)?;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
20
src/utils.rs
20
src/utils.rs
|
@ -1,8 +1,10 @@
|
|||
use image::imageops::{blur, crop};
|
||||
use image::Pixel;
|
||||
use image::{Pixel, ImageOutputFormat};
|
||||
use image::{DynamicImage, GenericImage, GenericImageView, Rgba, RgbaImage};
|
||||
use imageproc::drawing::{draw_filled_rect_mut, draw_line_segment_mut};
|
||||
use imageproc::rect::Rect;
|
||||
use failure::Error;
|
||||
use std::process::Command;
|
||||
|
||||
pub trait ToRgba {
|
||||
type Target;
|
||||
|
@ -244,3 +246,19 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
pub fn dump_image_to_clipboard(image: &DynamicImage) -> Result<(), Error> {
|
||||
let mut temp = tempfile::NamedTempFile::new()?;
|
||||
image.write_to(&mut temp, ImageOutputFormat::PNG)?;
|
||||
Command::new("xclip")
|
||||
.args(&["-sel", "clip", "-t", "image/png", temp.path().to_str().unwrap()])
|
||||
.status()
|
||||
.map_err(|e| format_err!("Failed to copy image to clipboard: {}", e))?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
pub fn dump_image_to_clipboard(image: &DynamicImage) -> Result<(), Error> {
|
||||
format_err!("This feature hasn't been implemented in your system")
|
||||
}
|
Loading…
Reference in New Issue