mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-01 10:52:24 +01:00
Compare commits
2096 Commits
v0.6.0
...
bat-plugin
Author | SHA1 | Date | |
---|---|---|---|
|
aa35cb52c4 | ||
|
446b9181e6 | ||
|
040242c9be | ||
|
dbf78d280a | ||
|
bc91af3ee5 | ||
|
3811615606 | ||
|
3339eee2dc | ||
|
e9f8370b13 | ||
|
892b186ba5 | ||
|
6db64cf050 | ||
|
5f139e5ec2 | ||
|
8b50ef87fd | ||
|
405e5f7460 | ||
|
8d4f8ba1b2 | ||
|
d3f89bc4bc | ||
|
5fe9b3e1b3 | ||
|
dc7d5a862f | ||
|
4789c71a37 | ||
|
be99b759d3 | ||
|
5f7ae6b277 | ||
|
ea5aaa03a2 | ||
|
7334ab4542 | ||
|
719248f1c1 | ||
|
ef3e398b2b | ||
|
52bab63e18 | ||
|
0851bbbb28 | ||
|
05ebf5ed26 | ||
|
adea895026 | ||
|
a6bd28a78b | ||
|
b5294f1cb2 | ||
|
5114c0189d | ||
|
f2727d74d5 | ||
|
735bee47eb | ||
|
a05ac53040 | ||
|
acb1231e40 | ||
|
3ae05333b0 | ||
|
4291fd5c65 | ||
|
b0898900ce | ||
|
3239d3be2a | ||
|
19033d7315 | ||
|
520081a92c | ||
|
47e0dc22d2 | ||
|
33a984992b | ||
|
b1e67e215c | ||
|
49317adcd3 | ||
|
738304fe27 | ||
|
a191552031 | ||
|
cec7229b6a | ||
|
e735562098 | ||
|
1b030dc03b | ||
|
c0ec03e08a | ||
|
9ab378b5dc | ||
|
a153a78d7a | ||
|
3ff738602e | ||
|
282b70291f | ||
|
6330f36495 | ||
|
e7df748b6d | ||
|
67124f8513 | ||
|
16f940c2d3 | ||
|
da5921b4a9 | ||
|
cde239e809 | ||
|
97a98e037d | ||
|
3ffff8d2d8 | ||
|
95796a9cc0 | ||
|
7be9485c36 | ||
|
448bfaf748 | ||
|
0655ecf23d | ||
|
671fc952bc | ||
|
3c057aa590 | ||
|
8e8c350391 | ||
|
1ee49b4d97 | ||
|
14ddda0a8b | ||
|
36093dd3bc | ||
|
ad6cae433a | ||
|
e4f6fb2afe | ||
|
d21f1e8f17 | ||
|
f6ce5d2054 | ||
|
b60225051d | ||
|
f2166ec6ec | ||
|
491d32cbf3 | ||
|
478712be38 | ||
|
d5d2fc4016 | ||
|
ed7cd1c45b | ||
|
f340893a21 | ||
|
9ad147278f | ||
|
4e36a56014 | ||
|
312c8ef01f | ||
|
f3f8194932 | ||
|
6ce26c43c9 | ||
|
486510395b | ||
|
2ae4ffcdfa | ||
|
f5a7f86a64 | ||
|
0fa99518ce | ||
|
a565662cf3 | ||
|
af44f0b3ff | ||
|
5ae1957c0e | ||
|
36be8d5929 | ||
|
a05c8ee1a8 | ||
|
eb4b1eb28f | ||
|
9287cf6b0b | ||
|
76aa138230 | ||
|
59a8f58be7 | ||
|
d3956be616 | ||
|
53fb0baa06 | ||
|
c2232d457f | ||
|
77f51f0ee3 | ||
|
743c4ccb17 | ||
|
5b37438f08 | ||
|
3f7bff90ba | ||
|
0c19d3e51a | ||
|
e73c3d2378 | ||
|
31ca212f86 | ||
|
68528983d7 | ||
|
f89869b5b2 | ||
|
d4744dbed5 | ||
|
abbccc91ed | ||
|
080c5f3de4 | ||
|
079f6be88c | ||
|
c522ba78ed | ||
|
392bff6666 | ||
|
6dc621ec18 | ||
|
3358b075fb | ||
|
a02713dc15 | ||
|
ee1f5a9e89 | ||
|
84a15f0b6e | ||
|
a3ea798246 | ||
|
63ad53817d | ||
|
6d0eb0749e | ||
|
36c1ea4599 | ||
|
e250da8aaa | ||
|
7fceb4878f | ||
|
29711c178a | ||
|
8072d5a3e3 | ||
|
a5234105e5 | ||
|
4236fa97cb | ||
|
f5e3d9f010 | ||
|
6313e9ef2a | ||
|
ce89fb2751 | ||
|
3338699257 | ||
|
747b15436a | ||
|
206bf5b8d6 | ||
|
9a2979df5f | ||
|
b8e79a2160 | ||
|
715b0d8bf5 | ||
|
0eb4aaac1e | ||
|
bc86c29185 | ||
|
d2175d6382 | ||
|
b3aefd2d41 | ||
|
f7eb55aa01 | ||
|
5e63d67960 | ||
|
6fd78ea3f6 | ||
|
b12503a46a | ||
|
ea2faf45e4 | ||
|
1822c981da | ||
|
5519f9c716 | ||
|
dd0925a946 | ||
|
d7671fa8e3 | ||
|
e79b07bf5e | ||
|
619cf6e6d6 | ||
|
d6ed5e6746 | ||
|
59d4cfb75c | ||
|
194e7bbcd1 | ||
|
5d92a7c591 | ||
|
7fbe090525 | ||
|
eaf64df4c6 | ||
|
a1558fb6bf | ||
|
18e999c92a | ||
|
d5f737f402 | ||
|
7fe4fdf33d | ||
|
0b63ad5e8b | ||
|
4081ace4b9 | ||
|
dde770aa21 | ||
|
6eb2cc9cac | ||
|
f28d9db3d0 | ||
|
deb80af449 | ||
|
dc0acbbb90 | ||
|
92ba42a602 | ||
|
d5e61d2316 | ||
|
ed3246c423 | ||
|
2339d78bf4 | ||
|
3a3cd0acba | ||
|
ce4ddc0911 | ||
|
aed4ea144f | ||
|
eea061c1d9 | ||
|
10288e309e | ||
|
ebdb00d4fc | ||
|
6fc7ebf37a | ||
|
8f6a0cd9e2 | ||
|
994c21a5e1 | ||
|
554374667e | ||
|
043f3381b0 | ||
|
d04a83de7b | ||
|
b622a4d890 | ||
|
b551d28a2f | ||
|
e6caa04209 | ||
|
adadedeab1 | ||
|
a6cf5235aa | ||
|
1477338106 | ||
|
418fce5683 | ||
|
7a15ba3796 | ||
|
0f002a5b06 | ||
|
5344a32d34 | ||
|
c9645693a4 | ||
|
f607263bdc | ||
|
f309d2fbd2 | ||
|
47283f226a | ||
|
aefc8fd824 | ||
|
405a80f3ee | ||
|
ad98d35a48 | ||
|
b69ab219d7 | ||
|
dc8225f682 | ||
|
9d9b266f54 | ||
|
b9d01c1a61 | ||
|
122cae7902 | ||
|
44a332c1c4 | ||
|
5143f3ad43 | ||
|
a6dc25a216 | ||
|
f04d2a9d6a | ||
|
eb3b3b9f8d | ||
|
0994f3783f | ||
|
974dec38e3 | ||
|
a0c363647f | ||
|
d989224a8a | ||
|
82f439e715 | ||
|
b034879eae | ||
|
9ed9a6fc3d | ||
|
e84b702309 | ||
|
6226eba52a | ||
|
9e0ea06435 | ||
|
863d9cacd0 | ||
|
4baa346aae | ||
|
7956485e37 | ||
|
372e42f350 | ||
|
9124271eaf | ||
|
156dec2737 | ||
|
27f046ec03 | ||
|
74ae3dee91 | ||
|
87978e7755 | ||
|
d935ea1cda | ||
|
9602195910 | ||
|
8ca852c728 | ||
|
df067f7d1f | ||
|
a8a81e99d2 | ||
|
65e7c531de | ||
|
7c41bd72da | ||
|
355a82db54 | ||
|
b3e17bde82 | ||
|
4b38e7b1d7 | ||
|
43afae34be | ||
|
27fa55d274 | ||
|
19c3e82abf | ||
|
f1c0fd7343 | ||
|
12dfbdc400 | ||
|
c86a179412 | ||
|
0748783404 | ||
|
b3247d9364 | ||
|
ba8a694314 | ||
|
b146958ecb | ||
|
ff70a80741 | ||
|
ecdb17148d | ||
|
11bd523f7e | ||
|
01fbedc246 | ||
|
05e4e1f2f2 | ||
|
20223ad77c | ||
|
51edacb5eb | ||
|
5197ef9048 | ||
|
19678527e5 | ||
|
5d319dee94 | ||
|
15c701b196 | ||
|
d8339808a1 | ||
|
3b263f0917 | ||
|
43e1a11ad8 | ||
|
ed09f90e5e | ||
|
cbd96237fd | ||
|
f5c1cb2dff | ||
|
5eb93a6eae | ||
|
25fa577cd0 | ||
|
deddc81426 | ||
|
133b06e945 | ||
|
699f1e65cc | ||
|
9ef87dab27 | ||
|
5125e9c941 | ||
|
6c62ed5608 | ||
|
bf78288e9e | ||
|
f8498b260b | ||
|
79f08588c6 | ||
|
2d92a4dbb3 | ||
|
f508ddf66d | ||
|
02218c916c | ||
|
89217e0d58 | ||
|
cb4973987b | ||
|
905902d811 | ||
|
c83e382eac | ||
|
f6975e2acd | ||
|
d8b813c0bf | ||
|
5236ed135e | ||
|
47d955a2ab | ||
|
bd797c75a4 | ||
|
05c11964fc | ||
|
8ecd23eab4 | ||
|
1ef0206f24 | ||
|
6694aa369e | ||
|
0331d28ee4 | ||
|
51c7eb7ac1 | ||
|
5516bcb839 | ||
|
056b966501 | ||
|
28eca6a2be | ||
|
b7fd55242e | ||
|
8161955cc7 | ||
|
3b020fd95a | ||
|
697d106bd4 | ||
|
50e1c6074f | ||
|
a610987ef7 | ||
|
a7fd9f4b1b | ||
|
5f5b77cdda | ||
|
83808a63be | ||
|
6d5ff671e7 | ||
|
ffdf349a96 | ||
|
f3d53b79a2 | ||
|
6acec2c074 | ||
|
1bac3750df | ||
|
b040efff79 | ||
|
a81009607a | ||
|
c0e09662b4 | ||
|
ccf4563573 | ||
|
fb1ab09e3e | ||
|
f464b1ba39 | ||
|
2ea6348b85 | ||
|
6e536ab06d | ||
|
7537e309d8 | ||
|
84e2a2e5d1 | ||
|
f6fc826dc6 | ||
|
375d55aa5d | ||
|
6ef2bb3283 | ||
|
fc0794a83d | ||
|
589df6792f | ||
|
945bba777b | ||
|
64763eafbe | ||
|
3da4651569 | ||
|
311ed2feca | ||
|
33c11d64f0 | ||
|
a4b674902f | ||
|
3fa09dbe2e | ||
|
bf2b2df9c9 | ||
|
3617c98cf5 | ||
|
774d36c989 | ||
|
6abd61865f | ||
|
3c59b98dc8 | ||
|
21338ed789 | ||
|
dc8ab0b5ce | ||
|
ddb39ef2f6 | ||
|
355e62efe9 | ||
|
fddd11a205 | ||
|
8b37e62cf3 | ||
|
4296d47dcb | ||
|
42f1ef019a | ||
|
fe8e526292 | ||
|
0e9d612173 | ||
|
06c601bc7c | ||
|
229fbc1a18 | ||
|
e05f5010da | ||
|
073b9968c0 | ||
|
d3aa17ae77 | ||
|
4187eed12b | ||
|
12ecb325c9 | ||
|
90e48e9b61 | ||
|
35f31270f3 | ||
|
2a71852070 | ||
|
c8dd32802d | ||
|
71f04dc0e8 | ||
|
49f8bbfee4 | ||
|
f4217eba73 | ||
|
14900f6ed8 | ||
|
c18afcb01a | ||
|
63043d4a60 | ||
|
76034880ae | ||
|
768189859a | ||
|
6e5a2a5c51 | ||
|
9935c4984c | ||
|
a0a5e30c39 | ||
|
4126bbeead | ||
|
a5b79295d7 | ||
|
e917784932 | ||
|
f46b90d28d | ||
|
64cbfbed47 | ||
|
1ced35ec76 | ||
|
16d346773b | ||
|
b02120cf66 | ||
|
702b5caf2d | ||
|
d395f64f58 | ||
|
c9627040cc | ||
|
b1f69434f9 | ||
|
bcca56e3b1 | ||
|
2f98610929 | ||
|
89539ff247 | ||
|
aa74d19940 | ||
|
cf7d9ef962 | ||
|
425a0f90e9 | ||
|
a27814db8e | ||
|
9702f5256c | ||
|
23fd11e806 | ||
|
304ee1489c | ||
|
07d4179274 | ||
|
1439dde265 | ||
|
bef0bf1654 | ||
|
8435cad602 | ||
|
52c11fe23d | ||
|
6fc9641f6a | ||
|
8b6341458b | ||
|
8b787b4f70 | ||
|
ef5154d5b3 | ||
|
7c49919297 | ||
|
395a169104 | ||
|
93f710bdff | ||
|
170badfdd1 | ||
|
978b9adc56 | ||
|
3aea51455b | ||
|
f827ed338b | ||
|
73dab51ad1 | ||
|
9328007d05 | ||
|
8d173cd960 | ||
|
fb0f12a221 | ||
|
9866408b72 | ||
|
aaac56d895 | ||
|
516da7719f | ||
|
d4df0b4405 | ||
|
bfa9c3bef6 | ||
|
2904f24ea8 | ||
|
91a347bf6d | ||
|
e219c8fc03 | ||
|
9eb26b702c | ||
|
c933be926d | ||
|
fc88040b31 | ||
|
5db3c93057 | ||
|
aa442b5795 | ||
|
09711cd6f9 | ||
|
b16cacc758 | ||
|
51451a9636 | ||
|
fbc03da997 | ||
|
1a610dbdd2 | ||
|
a30e3c9066 | ||
|
613b41e357 | ||
|
d405aa98d5 | ||
|
285b1556a9 | ||
|
8321cc661c | ||
|
848ceb6f10 | ||
|
3559079de0 | ||
|
b3ab843954 | ||
|
867cf63dd9 | ||
|
0b44aa6f68 | ||
|
aa09a9dc04 | ||
|
7c4edacb2b | ||
|
782ede5db5 | ||
|
1537733e6b | ||
|
ba0d43672b | ||
|
4384d25c79 | ||
|
b6e3786529 | ||
|
6fff01397d | ||
|
0cd52e5be1 | ||
|
c14dd34dca | ||
|
e04fbd1992 | ||
|
d89fa3ebc2 | ||
|
db57454f3f | ||
|
8f93844427 | ||
|
52f84b063c | ||
|
2e7f2b6c07 | ||
|
35347c2310 | ||
|
b489fc75c9 | ||
|
fc24cb2a77 | ||
|
2540311cdf | ||
|
3880888286 | ||
|
5a806c2149 | ||
|
8a926d511a | ||
|
8885285b10 | ||
|
d1f0181947 | ||
|
b147443c32 | ||
|
b8a18d3ebb | ||
|
694b31909a | ||
|
a98811b6d7 | ||
|
cfc505e1e5 | ||
|
3af3549232 | ||
|
643f0bcbe3 | ||
|
9db9a38565 | ||
|
ca60937c2e | ||
|
2aa3ed9da8 | ||
|
7768433d09 | ||
|
c569774e1a | ||
|
0371f55541 | ||
|
bc35592fd9 | ||
|
f5d834407e | ||
|
557a748ac7 | ||
|
3f10f71ad2 | ||
|
7b6388b19f | ||
|
b98ec4bbc5 | ||
|
94fd481f36 | ||
|
94496df3b0 | ||
|
0e5ea9c354 | ||
|
7eabb5e05a | ||
|
9ad401be87 | ||
|
f874c8e4db | ||
|
025c5c061b | ||
|
573f34d757 | ||
|
eac36dd3b5 | ||
|
70cf8a4ec5 | ||
|
37d0d8984c | ||
|
2e8c0a39db | ||
|
deec2902e4 | ||
|
e3343759b7 | ||
|
fa72f86e17 | ||
|
6527126e50 | ||
|
4aec022065 | ||
|
a26c5b8219 | ||
|
d36b091fd7 | ||
|
3dcf02549e | ||
|
e402011a73 | ||
|
dc1620d1f0 | ||
|
c48e779e8a | ||
|
dd0d44bbb3 | ||
|
060b9981b5 | ||
|
b25713938d | ||
|
5b09561114 | ||
|
fcde4824d5 | ||
|
b0e5828d3f | ||
|
b7d499d1be | ||
|
1ae16fca90 | ||
|
0e2bef3b79 | ||
|
221c9815a5 | ||
|
c5c683f67c | ||
|
149a0177cd | ||
|
252e5a6b13 | ||
|
faa27ed6e3 | ||
|
f3227c259e | ||
|
2cfeebab90 | ||
|
8dd67cca0c | ||
|
eda72c31b2 | ||
|
7809008016 | ||
|
c2c2b0211a | ||
|
dd6f57e107 | ||
|
dfe7a60140 | ||
|
fc30277cfa | ||
|
02e6ff4183 | ||
|
e3b1142364 | ||
|
8832ff3c6a | ||
|
505ff10dc6 | ||
|
9a3a5545e7 | ||
|
43919066ad | ||
|
7ada963ec2 | ||
|
4c523af1ab | ||
|
c5c28eb05b | ||
|
22924532d0 | ||
|
7c227169a4 | ||
|
8e4b0b4377 | ||
|
6d27df3b77 | ||
|
73d14f4655 | ||
|
19b8c53c46 | ||
|
cd7be018fe | ||
|
03a2710a08 | ||
|
09fbabb0b8 | ||
|
de6cb75f4b | ||
|
83c9cb7907 | ||
|
7ffb04a17a | ||
|
c38c186d26 | ||
|
e22a9a69b1 | ||
|
59f9adc706 | ||
|
fed30b1b36 | ||
|
411d68e839 | ||
|
77d42a17c6 | ||
|
e7c55bffe9 | ||
|
da10166625 | ||
|
b6b7262962 | ||
|
3ed83913b2 | ||
|
63460f4bf9 | ||
|
c67b439752 | ||
|
2b44940f81 | ||
|
26136be903 | ||
|
6a52f69b58 | ||
|
60406c7c2d | ||
|
2465438ec3 | ||
|
99a61580e1 | ||
|
dec94b4111 | ||
|
ebb97e94a9 | ||
|
5e1f9fadf4 | ||
|
fe08de846d | ||
|
35e3c51b75 | ||
|
59c9105c25 | ||
|
b458292a69 | ||
|
78aed2cb69 | ||
|
46487b201f | ||
|
939a6a5f4d | ||
|
caf0743811 | ||
|
9ccb667653 | ||
|
b600f62ab6 | ||
|
ace655e164 | ||
|
21ae26cb17 | ||
|
478233f795 | ||
|
e87c554ccd | ||
|
df33ed05dd | ||
|
c9efdd68ed | ||
|
8381945cb5 | ||
|
2046b47739 | ||
|
0c302f088a | ||
|
a41db63907 | ||
|
3573c48e98 | ||
|
e94980bfd0 | ||
|
5422982207 | ||
|
4fe5497d19 | ||
|
1b549ecc66 | ||
|
b5bdba8b16 | ||
|
522c97f5ad | ||
|
7fbb3a5352 | ||
|
b3f34529b5 | ||
|
d388d07e9f | ||
|
c76e27851c | ||
|
8c0dcf3b57 | ||
|
962b3a78c0 | ||
|
aa5b941ed5 | ||
|
af8a8035e8 | ||
|
037a66c57b | ||
|
1a04dcf10f | ||
|
2eae8b578e | ||
|
17189fce9b | ||
|
a0225018e6 | ||
|
361b7aa0da | ||
|
334590932a | ||
|
3f4638204f | ||
|
5e7061b9f6 | ||
|
7a1cd5226f | ||
|
285ac75738 | ||
|
00ff54be4e | ||
|
aab35e3faa | ||
|
bfa5342331 | ||
|
c0d945c0ac | ||
|
22bdc7c20f | ||
|
3ed0081f1f | ||
|
6d0e7650c3 | ||
|
552545fe5f | ||
|
dcfe883f4b | ||
|
f45fa5e187 | ||
|
05e9da390f | ||
|
cc0f8ca813 | ||
|
9c16571347 | ||
|
2765c6ba3b | ||
|
28f3f3c9c9 | ||
|
73d9a95862 | ||
|
9c9a9ac452 | ||
|
29ea396c31 | ||
|
171d215f91 | ||
|
cc6109a751 | ||
|
47bb4a9c0f | ||
|
b149ea91dd | ||
|
6d1c7d5f57 | ||
|
07bd7503c5 | ||
|
1b5af89ddd | ||
|
3d07dec8fd | ||
|
a63bb08eda | ||
|
e0207f8167 | ||
|
3099f51ba7 | ||
|
19e7763f35 | ||
|
73cff42ec9 | ||
|
b349155f2f | ||
|
ab4c120ea5 | ||
|
947133d295 | ||
|
bf96e6e642 | ||
|
cffacad306 | ||
|
cc7b89faf8 | ||
|
c1e4746d50 | ||
|
8331eec7fc | ||
|
0547068ed0 | ||
|
18d8389785 | ||
|
165d25d941 | ||
|
c4fb77b042 | ||
|
973ea984c8 | ||
|
3e9afe2974 | ||
|
73c16574e6 | ||
|
60e00d49a9 | ||
|
2d22c705ba | ||
|
68d525cd8b | ||
|
c3fc1b88fe | ||
|
84b0702399 | ||
|
f3489ffa29 | ||
|
8e6ba2a3e1 | ||
|
48e799e7a6 | ||
|
bc01999f0d | ||
|
b0fcb3065f | ||
|
94d8cd5100 | ||
|
5596c6133b | ||
|
304332e380 | ||
|
fb989d8c94 | ||
|
026220b960 | ||
|
543a253bc1 | ||
|
8f8e44e87a | ||
|
2da11097f9 | ||
|
d124ebeced | ||
|
986d0e9777 | ||
|
f4202361b4 | ||
|
6d981498d8 | ||
|
bd2e9917da | ||
|
a6810e3353 | ||
|
591eba66a3 | ||
|
a5a9ac83e5 | ||
|
15b122a448 | ||
|
44a905d135 | ||
|
8884104e82 | ||
|
277cc5fa21 | ||
|
0cbd7d583c | ||
|
3c3fc92863 | ||
|
e69d650598 | ||
|
9385c81882 | ||
|
1b84f9f1ae | ||
|
d879fbd8a1 | ||
|
1fbdef06aa | ||
|
f5531cc7fa | ||
|
2ccff145ed | ||
|
43b2ee5e71 | ||
|
51463a4b41 | ||
|
4f0116bee7 | ||
|
31793cfa62 | ||
|
6d75540d4e | ||
|
ba5cbe208f | ||
|
2b82203041 | ||
|
35da065445 | ||
|
12a1fe3ad4 | ||
|
91057f2a09 | ||
|
15060f00a5 | ||
|
1a82a03d5d | ||
|
4674105698 | ||
|
ca3e9a385f | ||
|
f05c222221 | ||
|
3dc5fc54df | ||
|
bac84b4c8b | ||
|
a5b9a80216 | ||
|
142d5e60ec | ||
|
61f947a580 | ||
|
c4bbf28862 | ||
|
9befa81e36 | ||
|
414c7ac83d | ||
|
3a612f063e | ||
|
9daea73bba | ||
|
8e8131590c | ||
|
3acfe790b9 | ||
|
877d9120c9 | ||
|
c15b88f250 | ||
|
2889e017cd | ||
|
47ea99090f | ||
|
1c1ba04c41 | ||
|
456216ab37 | ||
|
49d7bf8c39 | ||
|
dade4cc6f3 | ||
|
c747ac181d | ||
|
9837948c3a | ||
|
072fb380d8 | ||
|
85594956cf | ||
|
88eba56607 | ||
|
cc6cf48256 | ||
|
e571cb553b | ||
|
bf9f6e872d | ||
|
8348c1b746 | ||
|
0a9744ac95 | ||
|
95954b7c57 | ||
|
a707f81726 | ||
|
dae6664555 | ||
|
9dd807344c | ||
|
2ecebf8ff2 | ||
|
6d3cb5f99f | ||
|
ec8072d51f | ||
|
7a7bb80e23 | ||
|
99ac5c3045 | ||
|
efab00a9de | ||
|
9ab0801ee1 | ||
|
cfdb853ea6 | ||
|
41e857ea16 | ||
|
5b2da2b08d | ||
|
5e0a608ea6 | ||
|
3729aefb6f | ||
|
8a2122b4a4 | ||
|
cc6f6fdb1d | ||
|
5ec4936a4f | ||
|
be84682bcb | ||
|
b07f3b4e74 | ||
|
fc1f37d3df | ||
|
a3f037773a | ||
|
c71c8980cf | ||
|
6bf7b79f13 | ||
|
5d9adc14e7 | ||
|
575888d81b | ||
|
3539d3e72d | ||
|
bb25111ca9 | ||
|
3c756a65a6 | ||
|
8d574826c9 | ||
|
7c7eebbe83 | ||
|
57ad85814b | ||
|
4b2b419400 | ||
|
b83716f0eb | ||
|
6872a4dd7f | ||
|
4d6b2fec13 | ||
|
57c1a7fd69 | ||
|
bf78b74db4 | ||
|
f80fba4d24 | ||
|
d075d2b453 | ||
|
5650624822 | ||
|
bf07b0be58 | ||
|
eeea53759b | ||
|
a39f1e0f9b | ||
|
1614f80366 | ||
|
e293c58bb0 | ||
|
3015ebfba1 | ||
|
d7da4f5f2b | ||
|
c1af6ff2e6 | ||
|
aa4000cb0d | ||
|
33128d75f2 | ||
|
bf87f37039 | ||
|
62e715ff5b | ||
|
b3903175c8 | ||
|
de47bd2323 | ||
|
19b55706ee | ||
|
6c68198d19 | ||
|
f3c760c25f | ||
|
24fe946c06 | ||
|
de6680bdf2 | ||
|
0a28da0cd0 | ||
|
a838ff47b5 | ||
|
8bd078caeb | ||
|
bce304a800 | ||
|
206d3e7b91 | ||
|
4be32cf746 | ||
|
4ec6075f81 | ||
|
aa00e0a6b0 | ||
|
bb7fae72c9 | ||
|
7bd19640a2 | ||
|
b7271a2a6d | ||
|
ecde418abb | ||
|
51036ced9d | ||
|
b6c1ec3a24 | ||
|
46004001cb | ||
|
f10c8ce25e | ||
|
acc370d345 | ||
|
457ab84065 | ||
|
3bcb5452aa | ||
|
1f0e53a44d | ||
|
2d5cf1d3cf | ||
|
a81254ed2a | ||
|
fdef133d3d | ||
|
fd01f0a0ee | ||
|
5b095ed6f3 | ||
|
e7a3f34959 | ||
|
06d0c8f056 | ||
|
4064b8ff14 | ||
|
83ecc3d3ac | ||
|
6615eceb18 | ||
|
53f5a37f01 | ||
|
bbef2f41ec | ||
|
b6e729abeb | ||
|
5fe98689d4 | ||
|
8832a96e82 | ||
|
09631ed119 | ||
|
9257c7ce20 | ||
|
b30f9a1677 | ||
|
e6c3f96931 | ||
|
85ff81f238 | ||
|
5e0b7f013a | ||
|
aa205c6a9f | ||
|
44bfad24a1 | ||
|
13e01841ca | ||
|
a999975bc9 | ||
|
edf30e1fa1 | ||
|
f41bf2082a | ||
|
894d3f1722 | ||
|
83d96e2bbb | ||
|
e26ec31463 | ||
|
e3bc41dbe6 | ||
|
7a180e22ff | ||
|
3609700b5e | ||
|
389f64df57 | ||
|
e85064e4cf | ||
|
dd95f8b5cb | ||
|
975487f630 | ||
|
4ba7546c65 | ||
|
c97aa55163 | ||
|
2e1e30705a | ||
|
c92ac809a5 | ||
|
ec842e8d51 | ||
|
6d6e3900c3 | ||
|
0516a0d7a6 | ||
|
adbbe158db | ||
|
6d2be4a305 | ||
|
78c9a5d45b | ||
|
5fa1645165 | ||
|
bbf6ec0458 | ||
|
e58b20f68d | ||
|
0ce697daba | ||
|
a2dfadc6c8 | ||
|
6df8b3fe72 | ||
|
b623adc6df | ||
|
2f77da7813 | ||
|
9897c99190 | ||
|
aebc30447f | ||
|
d2bae54ed0 | ||
|
501c369f39 | ||
|
db3468a815 | ||
|
3aabed44ce | ||
|
3af7a6b082 | ||
|
2e985198c6 | ||
|
74a2ef8138 | ||
|
88ea21b276 | ||
|
62397dbd0b | ||
|
317b086f66 | ||
|
12340c1d10 | ||
|
e747199711 | ||
|
df7ce883c7 | ||
|
eb3e2dca24 | ||
|
2d9b936b0a | ||
|
66c7aca2f6 | ||
|
0c3344d0c4 | ||
|
0ac211140a | ||
|
5d490664ca | ||
|
d170dd305d | ||
|
b50bd58795 | ||
|
1da279a290 | ||
|
100b9a470b | ||
|
43c2b36eaa | ||
|
203d0bd8ae | ||
|
14092fbadb | ||
|
35ad76771d | ||
|
96151c44aa | ||
|
02dcb01120 | ||
|
51d25e5859 | ||
|
b8535689d3 | ||
|
8ff890635f | ||
|
29b6ba0758 | ||
|
ca5793dbea | ||
|
0fdaa8e745 | ||
|
5a71044d5a | ||
|
8d091051af | ||
|
34da1ef9d6 | ||
|
e31e35c46b | ||
|
6258dda0f8 | ||
|
e6565b2134 | ||
|
2f9ecf9044 | ||
|
a74d35582e | ||
|
8886faa019 | ||
|
4bd1b157ae | ||
|
1ecb70e082 | ||
|
9eed16beb4 | ||
|
c432a064a4 | ||
|
2d1a92b7cc | ||
|
cb31127b32 | ||
|
2beec1f3ea | ||
|
8d531b6436 | ||
|
30993a8bfc | ||
|
2258fb2713 | ||
|
a46191b8bf | ||
|
9c4c3e965b | ||
|
31acbe20d3 | ||
|
fd52c01e78 | ||
|
6ca5543648 | ||
|
83afcdcf49 | ||
|
59ca0069a6 | ||
|
6d6184500e | ||
|
1c24ec16e2 | ||
|
5efc0033a1 | ||
|
c9237cccab | ||
|
02cd68db37 | ||
|
e4df5643dc | ||
|
89b62d579f | ||
|
436a16aba6 | ||
|
32d22f464d | ||
|
71b2089384 | ||
|
57aa88a13a | ||
|
5ef35a10cf | ||
|
f84aceec3d | ||
|
f18009e5d5 | ||
|
83c7750656 | ||
|
c477e23fe9 | ||
|
31fb7087f1 | ||
|
6bc477e88f | ||
|
52d6701f8f | ||
|
f97634011e | ||
|
a4ffc9d5ed | ||
|
a86f3e5b81 | ||
|
d9e8bbcb10 | ||
|
8b0886ac32 | ||
|
aa182dad76 | ||
|
41a1952928 | ||
|
9885d4ebf0 | ||
|
222e080ce7 | ||
|
046409d7c9 | ||
|
5df449bcf3 | ||
|
6017989c4c | ||
|
d349974089 | ||
|
ccdea6a429 | ||
|
fdf11326ef | ||
|
565a80305c | ||
|
57a8122a6b | ||
|
bc5517da78 | ||
|
ad18f070ae | ||
|
e305402212 | ||
|
d62b99f543 | ||
|
4d8133eb34 | ||
|
5cba5b9989 | ||
|
31f23123ef | ||
|
b9dac6ca5d | ||
|
c3f85c8372 | ||
|
7f5d6d9791 | ||
|
96d4cdb7cb | ||
|
9f1f3ab5e3 | ||
|
6e90f17a15 | ||
|
5b654480f4 | ||
|
803447e2a1 | ||
|
99c04a8740 | ||
|
e4370d8d3f | ||
|
883cc964ae | ||
|
1d4cee11b7 | ||
|
9f91a7d797 | ||
|
4a6b4fb632 | ||
|
7c730d11c3 | ||
|
21de52ebea | ||
|
cab5ddf6ae | ||
|
b3657aef2b | ||
|
b0f8841217 | ||
|
febe335831 | ||
|
cbe68ba84c | ||
|
9110b00e2e | ||
|
4b012de7db | ||
|
49370e2175 | ||
|
02a89d8ee8 | ||
|
a70efae79b | ||
|
78a681f027 | ||
|
3a85fd767b | ||
|
2ffbe08eb1 | ||
|
f9d5e81f0e | ||
|
00d1267bdd | ||
|
001ee34d01 | ||
|
db157567fd | ||
|
9e0fab16ff | ||
|
a9af4f4ca1 | ||
|
96d682ca49 | ||
|
7056bea9e0 | ||
|
63e13d8e54 | ||
|
81587b3578 | ||
|
663c7cf1d7 | ||
|
8705d018fd | ||
|
8c33a32256 | ||
|
37a720be06 | ||
|
aacbdcfc44 | ||
|
794f3d08f4 | ||
|
3147f0536a | ||
|
42de486e94 | ||
|
54c9d7cdb2 | ||
|
c8e394f3f0 | ||
|
4b65e6e443 | ||
|
5a6c65c589 | ||
|
75246fb25b | ||
|
0cc1084819 | ||
|
21eedaf76e | ||
|
2656c503a4 | ||
|
2b3457e8d6 | ||
|
f5d606c4fc | ||
|
0e38c1728e | ||
|
6faf61552e | ||
|
fcf5ec2f77 | ||
|
99819087f1 | ||
|
3956e96e74 | ||
|
a0b89a68d9 | ||
|
62014c1094 | ||
|
58dcabffe6 | ||
|
c264f74771 | ||
|
f53ea60ed4 | ||
|
05027b7c74 | ||
|
3a62e3d188 | ||
|
963d9ee584 | ||
|
12e4fd138b | ||
|
3c5ce9f86c | ||
|
2461d22212 | ||
|
611c6e9c74 | ||
|
38efdb5148 | ||
|
5fdeeabb44 | ||
|
b0d19752c6 | ||
|
a95a577622 | ||
|
ca44a80a42 | ||
|
bf841e63bd | ||
|
d357227e57 | ||
|
993d703ba0 | ||
|
b449b82191 | ||
|
bfac6fd85c | ||
|
2575aae945 | ||
|
b0191cdf2c | ||
|
fc121f0c87 | ||
|
fa10b48c71 | ||
|
d4db1c6af3 | ||
|
f651e2cfca | ||
|
9d9f99c2d1 | ||
|
9c8dda1f9d | ||
|
89521a5134 | ||
|
d11355f985 | ||
|
7ccda6e6e9 | ||
|
1de423c78b | ||
|
3943857087 | ||
|
27bb5c5976 | ||
|
3f614cb274 | ||
|
1e407d972f | ||
|
52b3c5fce4 | ||
|
5d53273ef4 | ||
|
bf9faa9c28 | ||
|
0356b7f2c3 | ||
|
19c8558152 | ||
|
a137db86a4 | ||
|
2a28f04e09 | ||
|
8dfa69fde4 | ||
|
541f014d50 | ||
|
233d375983 | ||
|
b09d245dea | ||
|
44deddbbfe | ||
|
aa8a2b1769 | ||
|
4cdac180d8 | ||
|
d079bf86b1 | ||
|
62b4452057 | ||
|
c3ec92a13f | ||
|
c3230a68bb | ||
|
d9f163f466 | ||
|
d0da5af810 | ||
|
a2b2ec467a | ||
|
83b3009f0f | ||
|
4ea70f8409 | ||
|
0d2ef02c9e | ||
|
2d7796284b | ||
|
19aa878a08 | ||
|
9f52012443 | ||
|
e57e9b6dbb | ||
|
74e8373e34 | ||
|
ec2722d465 | ||
|
9e2ea5fdd4 | ||
|
48b4a6a906 | ||
|
92e93682c6 | ||
|
99226b745f | ||
|
4840c7cd78 | ||
|
71ab4a2058 | ||
|
a2c09b41bc | ||
|
0ef792ac1e | ||
|
01af28b781 | ||
|
3a7743ffc5 | ||
|
9cc8e52512 | ||
|
698a6b5acf | ||
|
7a51c7fd30 | ||
|
7c3e9f81cb | ||
|
6e3e7dafca | ||
|
fca83bf79a | ||
|
b8ffb8d463 | ||
|
1dae5bbc95 | ||
|
1a1932b67a | ||
|
8be375e75b | ||
|
e63e4232db | ||
|
cef04665eb | ||
|
76569b9527 | ||
|
1d46eb8ea3 | ||
|
6b79ac995e | ||
|
ee928b034e | ||
|
fc5790eb4a | ||
|
5213ffee0e | ||
|
5ebf0215c5 | ||
|
9957da6b93 | ||
|
342cae2dc6 | ||
|
d2b26a5f1f | ||
|
9d08c0102e | ||
|
a3357547ea | ||
|
7a9decad70 | ||
|
c4d0d068e4 | ||
|
c03a027240 | ||
|
a8d7141c4c | ||
|
3eb704e016 | ||
|
0f06d3b90d | ||
|
589c94aa93 | ||
|
798b742617 | ||
|
11a72ab765 | ||
|
0319149b4d | ||
|
2f823d59b0 | ||
|
981352992b | ||
|
384ea38bd9 | ||
|
268c0963b4 | ||
|
8b481dd41f | ||
|
6f88ba0e6f | ||
|
9e65ecd03e | ||
|
9cb43ef64d | ||
|
bb18ece8a4 | ||
|
2ab6474761 | ||
|
fe20328ab7 | ||
|
d84ac09abd | ||
|
69e6cae0a7 | ||
|
302707f3ce | ||
|
2e2043971b | ||
|
e54e218e3b | ||
|
bd17fd571f | ||
|
3f6e88b4be | ||
|
28af18ba27 | ||
|
8f1babf346 | ||
|
fa25695b74 | ||
|
943b1f82b6 | ||
|
b7a09516e7 | ||
|
c4031ad65c | ||
|
2eaced4d30 | ||
|
bdea2fe94c | ||
|
c96ff30876 | ||
|
4c100cffdb | ||
|
d6abad908a | ||
|
f1129189ea | ||
|
7e84477408 | ||
|
6b86ab5cd0 | ||
|
5074b96cd5 | ||
|
3094ac90b7 | ||
|
35b6067496 | ||
|
5aa20c090b | ||
|
9c371ed8a2 | ||
|
f03ab11623 | ||
|
887e61a99d | ||
|
0aca8cab0b | ||
|
d08d1f8c45 | ||
|
403ab6e443 | ||
|
b8687bc969 | ||
|
9166c9dd35 | ||
|
cc52f79e42 | ||
|
59140b458c | ||
|
82981c9663 | ||
|
157b8dd848 | ||
|
1fb669ae1a | ||
|
7d07aa395a | ||
|
c2c7070712 | ||
|
daf06bb026 | ||
|
5b11b1ba47 | ||
|
ee287447c5 | ||
|
257f978ceb | ||
|
8e803bdb02 | ||
|
a265242e6e | ||
|
3aa9b31bda | ||
|
c692c4770a | ||
|
6ceba56288 | ||
|
4be66f8b88 | ||
|
54a85d98f1 | ||
|
491a5a17f3 | ||
|
b3373398e8 | ||
|
0040fef215 | ||
|
1a6e8d297f | ||
|
f39487fca9 | ||
|
2596bfe7a7 | ||
|
406bffa8c8 | ||
|
48441b99ef | ||
|
ce4717144a | ||
|
f59d00d4c7 | ||
|
dcfdbf82dd | ||
|
0cb884d501 | ||
|
7bc4020a92 | ||
|
0792195156 | ||
|
83f24ffcfb | ||
|
74ec390770 | ||
|
9014ffcfd8 | ||
|
81af375289 | ||
|
d707eab95c | ||
|
d64c55ef11 | ||
|
2b1d53fb27 | ||
|
bf696f58c8 | ||
|
296bad8ffd | ||
|
94310af30c | ||
|
38c096bf79 | ||
|
696d1b3ed3 | ||
|
17d98724a5 | ||
|
7d7ee1b594 | ||
|
682b4209f2 | ||
|
41ddcbd240 | ||
|
48a7ce3bf2 | ||
|
3bcc4d0d55 | ||
|
8821bca656 | ||
|
56111aa20d | ||
|
5fe8a8342b | ||
|
989109145a | ||
|
23afc8e90c | ||
|
8e18786556 | ||
|
81488adf8b | ||
|
e37e9c1214 | ||
|
a4828387c1 | ||
|
abeac8b12e | ||
|
82e7786e74 | ||
|
0064321323 | ||
|
9e622a1a5f | ||
|
59ca933aee | ||
|
793af6b911 | ||
|
c8abe3f235 | ||
|
5d71056209 | ||
|
eb7d4d002a | ||
|
62b32bd848 | ||
|
8961f7aef8 | ||
|
17f3a3b95d | ||
|
261a7ea154 | ||
|
53a973e9dd | ||
|
cba9df746e | ||
|
12eee0c590 | ||
|
b76f5e72d4 | ||
|
702cb198da | ||
|
5f826419d1 | ||
|
13f671b499 | ||
|
49f4322054 | ||
|
0c9e044e41 | ||
|
74d4377ed2 | ||
|
6a124591df | ||
|
7a87315b94 | ||
|
0cde4e9121 | ||
|
36dde9275a | ||
|
a8f759c080 | ||
|
f034be71e7 | ||
|
eee35e54e9 | ||
|
ec0ce05455 | ||
|
13e6b3fac7 | ||
|
26c951fec4 | ||
|
590960f7f5 | ||
|
b4d54106fe | ||
|
f3b90ddb38 | ||
|
3bacfc5184 | ||
|
f8d0956893 | ||
|
1dc328ad49 | ||
|
5e5cb89da6 | ||
|
057e4eced1 | ||
|
27974616bf | ||
|
319ab779ee | ||
|
37831cdcb3 | ||
|
70480ee9d4 | ||
|
371c929ede | ||
|
864656bd11 | ||
|
2e9cf63a5f | ||
|
886b22e0ee | ||
|
72618db179 | ||
|
c8273369cc | ||
|
95a56a2795 | ||
|
859ff50766 | ||
|
ce583eb9bf | ||
|
3a195be14e | ||
|
5f6e310152 | ||
|
5449472f15 | ||
|
82e20bfe14 | ||
|
47abb192bc | ||
|
03a7d6be92 | ||
|
a927815292 | ||
|
3447a03433 | ||
|
03c2281828 | ||
|
c386cb35fb | ||
|
97ea3dd4dc | ||
|
a6d9d1551f | ||
|
34619a2e89 | ||
|
83d408bab3 | ||
|
8067fd9eda | ||
|
98ba9e0101 | ||
|
1b8ce60054 | ||
|
d5a31dc2ec | ||
|
051dd4ba87 | ||
|
2ad1848859 | ||
|
90e7d2fe33 | ||
|
04fa84aea7 | ||
|
a3f8140fbe | ||
|
96aedf6240 | ||
|
4cc2989fe9 | ||
|
0ecc94956b | ||
|
61e47e0c13 | ||
|
f5145ef130 | ||
|
edd27645d0 | ||
|
fc6f4f31dd | ||
|
f2cef702a0 | ||
|
8b3d54ce29 | ||
|
47a3721890 | ||
|
495fab24a5 | ||
|
fccbe4f4f2 | ||
|
9793bb3938 | ||
|
496dd29cb9 | ||
|
116d76a00f | ||
|
dd336e6fb2 | ||
|
c33af3581a | ||
|
2f4ecf8fc5 | ||
|
e037afeaca | ||
|
7b87af1748 | ||
|
0eee26fb09 | ||
|
3355aeba22 | ||
|
42e3825daf | ||
|
014d754588 | ||
|
4e11abdf9b | ||
|
570805bc98 | ||
|
e7e1967bb0 | ||
|
9a050cd87f | ||
|
d39507889a | ||
|
3e8d444c78 | ||
|
522ab7a83c | ||
|
0c5b4fcd4a | ||
|
37b3b8730d | ||
|
7c50fe5fec | ||
|
40a827ebcb | ||
|
376c556862 | ||
|
83772bd2cf | ||
|
4aef8c180a | ||
|
131d113ff5 | ||
|
38178fedf4 | ||
|
59f2e2d58d | ||
|
8d3136eb6f | ||
|
136a745c5d | ||
|
5edd8260e8 | ||
|
02f2b55d5f | ||
|
6386a4b812 | ||
|
c13935f3c0 | ||
|
fb3c775c8b | ||
|
8adce9fae8 | ||
|
eb2f3ddb7c | ||
|
dfd3ef022e | ||
|
978def2d40 | ||
|
57aed07814 | ||
|
bd8a13dbc9 | ||
|
ba29e07636 | ||
|
32346612b7 | ||
|
0550a286bd | ||
|
dfe5eb3e98 | ||
|
2c2861db6a | ||
|
bb0a3d586e | ||
|
90397a8aac | ||
|
84ba323b1c | ||
|
a8851e1307 | ||
|
d4a39f99d2 | ||
|
8c500a7e40 | ||
|
acf51bd7b3 | ||
|
83dc13a86d | ||
|
094c526a0e | ||
|
62f2d0c100 | ||
|
fc1ca0875a | ||
|
a7338e2ea2 | ||
|
9b8ddb24d1 | ||
|
7e0115641d | ||
|
fedd32173e | ||
|
4855a47105 | ||
|
06b7be7ee9 | ||
|
cfa2cb6ec7 | ||
|
b1b8addf7e | ||
|
4be5adc6f5 | ||
|
a9a31dca7f | ||
|
517be5c7bc | ||
|
9a9902bf9b | ||
|
4e40d4c720 | ||
|
916c1e4359 | ||
|
439be03634 | ||
|
b611d2aef4 | ||
|
a2075b0f24 | ||
|
3c1dd8558d | ||
|
17382d36b7 | ||
|
2e07aabb74 | ||
|
f525fb974e | ||
|
edf62953c4 | ||
|
260c5dcb75 | ||
|
1bc62cd7b5 | ||
|
b1183f72a5 | ||
|
a5e98146fb | ||
|
6d32d3dbec | ||
|
c6bbca62ef | ||
|
dd9755f223 | ||
|
61e39158de | ||
|
65023a987e | ||
|
91843f6f65 | ||
|
696547b646 | ||
|
4d2682325b | ||
|
65811d9034 | ||
|
f2b7c060a3 | ||
|
08dd251b9c | ||
|
d081473261 | ||
|
3901480c59 | ||
|
1cad3f56ec | ||
|
147503bd56 | ||
|
d1b0e955ea | ||
|
4021cf8128 | ||
|
7155f76963 | ||
|
b63f31e15d | ||
|
9c3d8c4028 | ||
|
d33b7071e3 | ||
|
ca066bf7cd | ||
|
4ac3161c19 | ||
|
d479e07bcb | ||
|
369ba7bb0a | ||
|
9df85edc4c | ||
|
d007caf39c | ||
|
7d453dfdc5 | ||
|
60f48a0c91 | ||
|
25640a8a81 | ||
|
944866affd | ||
|
22ded00824 | ||
|
85e84ab3eb | ||
|
993b76654d | ||
|
2b2743b120 | ||
|
f01263bcff | ||
|
8648b86a73 | ||
|
39d9343a7d | ||
|
5faf7ca158 | ||
|
ebe475247c | ||
|
63f6343cf1 | ||
|
ad42b275a9 | ||
|
2dac1c8785 | ||
|
1225e65299 | ||
|
d1bb47d741 | ||
|
f079c14068 | ||
|
388f4c71fd | ||
|
b675e1bb61 | ||
|
f96220f33d | ||
|
6739230039 | ||
|
710018b845 | ||
|
7779d9f622 | ||
|
e98f34b1e8 | ||
|
9ace915d71 | ||
|
e5c415555d | ||
|
5ef1c6cce2 | ||
|
93881d9a64 | ||
|
87776ae07e | ||
|
6c71a4324b | ||
|
90ee939671 | ||
|
cae06bf649 | ||
|
89220da47b | ||
|
903af3ee09 | ||
|
0418e6294b | ||
|
eabd100dad | ||
|
f66a5bfa42 | ||
|
8d0b8a227b | ||
|
e400ebd1bd | ||
|
6684c0b07a | ||
|
6568d03924 | ||
|
67fe804256 | ||
|
126729f87a | ||
|
0aca27511a | ||
|
77ff853739 | ||
|
20ba984c6d | ||
|
6311ca22f9 | ||
|
41d547532f | ||
|
e9156f8090 | ||
|
1eaa681c7e | ||
|
d96ae099ef | ||
|
40e5befdc7 | ||
|
f94ff93953 | ||
|
3523f60299 | ||
|
83dc8468b0 | ||
|
826624c9fa | ||
|
0fed098c53 | ||
|
cc7eafb7fb | ||
|
f35c41ba13 | ||
|
1f4246eb3c | ||
|
9300392c43 | ||
|
8d3ce5f88a | ||
|
a1d18d8c8c | ||
|
d43431d8f1 | ||
|
8baa76aa8f | ||
|
01846fad30 | ||
|
18255f9835 | ||
|
7b94f2c1d7 | ||
|
7ca73c2e79 | ||
|
75cb1ce196 | ||
|
35026a033a | ||
|
48031f282c | ||
|
7b2e98d5b7 | ||
|
fb71b67a8d | ||
|
d48f51e39d | ||
|
9b1930b2b3 | ||
|
96d8013581 | ||
|
46b345f2c2 | ||
|
4e5b40e274 | ||
|
d0e7ca159a | ||
|
e981e97407 | ||
|
a8ec3b826c | ||
|
f4a59d74f1 | ||
|
b9b6d9e31e | ||
|
d65ae517dd | ||
|
bb675e57c7 | ||
|
9fe38e200e | ||
|
a2fcb09d7a | ||
|
8c7916e128 | ||
|
3d23daa7b4 | ||
|
572cbb00e2 | ||
|
dedaebdf15 | ||
|
3d90c6adee | ||
|
06a521ec34 | ||
|
37f7c94ba4 | ||
|
396e1ac6b6 | ||
|
49e2073910 | ||
|
7d18649284 | ||
|
850677f121 | ||
|
c132e19e74 | ||
|
3334f74b72 | ||
|
b9ce3c248c | ||
|
310654d49f | ||
|
3f37d292ec | ||
|
0a42d2b897 | ||
|
3b5fcf4619 | ||
|
ab2a6ad1d5 | ||
|
7db30f9123 | ||
|
59f2b30768 | ||
|
9fb14d78e1 | ||
|
921a65f0a1 | ||
|
b9c07e52e8 | ||
|
edbb4b2fc9 | ||
|
15b1676b72 | ||
|
753a124ef2 | ||
|
58a4d009fa | ||
|
4664fb6f91 | ||
|
e287594654 | ||
|
1e19404736 | ||
|
2253d07341 | ||
|
7208a63a49 | ||
|
0273848f54 | ||
|
e542621125 | ||
|
26439b41d2 | ||
|
a2ee753b25 | ||
|
d3243903c0 | ||
|
cf68b13322 | ||
|
837d0998da | ||
|
23d80f9e84 | ||
|
e981bd88c1 | ||
|
710a1df4ff | ||
|
cfd33168af | ||
|
eefdb186b8 | ||
|
fc0ad4db2e | ||
|
f03b45f3e5 | ||
|
9a74bf1a88 | ||
|
ff0b331dd6 | ||
|
00bfbbf884 | ||
|
e44045a71a | ||
|
962abcef80 | ||
|
95f2e5bbb7 | ||
|
f46123e149 | ||
|
f0f77b1673 | ||
|
39112e80c3 | ||
|
a84c598e2c | ||
|
6b2f78ec51 | ||
|
938005864f | ||
|
3a5f8ece49 | ||
|
047a6f3b85 | ||
|
f09b75dafa | ||
|
54ec2e7bd0 | ||
|
e57b2e9528 | ||
|
ea2179b352 | ||
|
c8478cedc5 | ||
|
1692e5fef7 | ||
|
7ba5bc78b7 | ||
|
25c2e1725e | ||
|
853e48e3f3 | ||
|
f5d359927a | ||
|
4df5973fde | ||
|
45f3c73331 | ||
|
4102175d98 | ||
|
30ee2a464f | ||
|
7a5d1f27e7 | ||
|
ac5ff9d454 | ||
|
c9c3341a38 | ||
|
a736889ef1 | ||
|
ea5e096705 | ||
|
12330fd154 | ||
|
337ee568b1 | ||
|
608cefb05c | ||
|
8d0aa39181 | ||
|
5815364206 | ||
|
79f016e15c | ||
|
26f9125ebb | ||
|
9814eab13f | ||
|
82ca8804a2 | ||
|
b48b9fcf3b | ||
|
c64ab29739 | ||
|
83dd3fb551 | ||
|
ed345f2889 | ||
|
d2492980c0 | ||
|
47d5130764 | ||
|
4ba45e2ba2 | ||
|
7076ae5cd9 | ||
|
2e71146801 | ||
|
f3824bad17 | ||
|
ec908d5937 | ||
|
3a75d85b80 | ||
|
63d652dab5 | ||
|
7f2e61d579 | ||
|
e289a2c698 | ||
|
83a213bae7 | ||
|
3967e28ded | ||
|
2dc2a3712a | ||
|
10e0f9efb0 | ||
|
f8ea075e78 | ||
|
c187dce2c2 | ||
|
108c907d69 | ||
|
187a3b9341 | ||
|
9c2d4f6a51 | ||
|
c1126157d4 | ||
|
dcfa810112 | ||
|
f963104006 | ||
|
45e1c0ea6f | ||
|
590a1e9a4b | ||
|
8e2c6abb13 | ||
|
28266ee441 | ||
|
21821f1d4c | ||
|
772ce2e4fe | ||
|
35ca1c5191 | ||
|
0cc60a1519 | ||
|
ee6659dacf | ||
|
76c615a304 | ||
|
e8c04672f0 | ||
|
7f5a5612e4 | ||
|
eee5d424bb | ||
|
e5311e4b30 | ||
|
a1b9334a44 | ||
|
d86b7cf7e0 | ||
|
67834da681 | ||
|
dcdf8dfaa7 | ||
|
9a44fa11c0 | ||
|
4ee0b2e16d | ||
|
518997135e | ||
|
69fc1caead | ||
|
175dd4c290 | ||
|
e9210c0f6c | ||
|
3795acbd17 | ||
|
c7d08cfcfd | ||
|
8ec96da9f0 | ||
|
c9d7e3652b | ||
|
dfa024f9e6 | ||
|
b2757cb461 | ||
|
416a0fd439 | ||
|
9b1b3dda14 | ||
|
ae7db313a6 | ||
|
3c4384990d | ||
|
260814c377 | ||
|
3675a82a1b | ||
|
5b2b594919 | ||
|
9d53ce6be6 | ||
|
51e05499a9 | ||
|
dd40f7545d | ||
|
c709bf2103 | ||
|
f37dbb80a8 | ||
|
0a1e08da96 | ||
|
06b8dcb7eb | ||
|
493a4e719e | ||
|
27e0ca98d9 | ||
|
1b2066c5f2 | ||
|
4ec3cdb5b8 | ||
|
72152296c7 | ||
|
2b9d25df05 | ||
|
cc8186103b | ||
|
0ad09df7ab | ||
|
7ef0fe091d | ||
|
89fcbb2b15 | ||
|
a7e2bb86cb | ||
|
1ce0bc8e0d | ||
|
fde00eec98 | ||
|
bb6594e691 | ||
|
e7c5561df7 | ||
|
0aabbc03d7 | ||
|
8a5b59febc | ||
|
7afdd44c43 | ||
|
d72549a873 | ||
|
1ba8540e5f | ||
|
a6cee4da67 | ||
|
cd6850947e | ||
|
14bfedeb20 | ||
|
8fe65252f7 | ||
|
5e9351445f | ||
|
2fdfb8de40 | ||
|
f8c759edff | ||
|
e34431f922 | ||
|
c96927b550 | ||
|
921cc0d1cb | ||
|
dbc49e534a | ||
|
7755ed79e0 | ||
|
50aabf331d | ||
|
f259ff2920 | ||
|
82f14121bd | ||
|
a21ae614e6 | ||
|
b94c94e845 | ||
|
161d107ec3 | ||
|
ecf147fd96 | ||
|
f0771d6532 | ||
|
d8f28c177a | ||
|
fbee9df719 | ||
|
6e9ca7d6dc | ||
|
a9ec5c063a | ||
|
8470fd7173 | ||
|
76b7418e35 | ||
|
10c5f79640 | ||
|
9e11d66979 | ||
|
fa3244f7c1 | ||
|
906774e6d3 | ||
|
cec9cc073c | ||
|
a16789a060 | ||
|
e09499b3df | ||
|
cff01d81fa | ||
|
31608c9a03 | ||
|
357ce84c56 | ||
|
3a5c52641b | ||
|
6e8fca5bb2 | ||
|
63c77383ce | ||
|
4df22e617f | ||
|
6473e8c1be | ||
|
972a764a74 | ||
|
54143d1403 | ||
|
6523bbf62f | ||
|
05e2c2c66b | ||
|
69227222b5 | ||
|
49af3e854b | ||
|
6a8e4757b7 | ||
|
91deef8b13 | ||
|
61e888de7f | ||
|
f3f9f10f05 | ||
|
29ffa2a832 | ||
|
42a873fdb8 | ||
|
82f048aedb | ||
|
ae08785ec8 | ||
|
a500629359 | ||
|
724a5fac99 | ||
|
c483e49b92 | ||
|
94c9b40694 | ||
|
0c9dc3b257 | ||
|
3b5174bb1d | ||
|
3324505383 | ||
|
de7872f8a8 | ||
|
abf0229741 | ||
|
e04bccd12d | ||
|
668c8a6703 | ||
|
bd68684537 | ||
|
c2847f6a9f | ||
|
cf7ed042c1 | ||
|
6b92814ea0 | ||
|
a236a9b195 | ||
|
b68c5d8576 | ||
|
fee57d71d9 | ||
|
5d3205acc0 | ||
|
4e6816abd6 | ||
|
72e8036edc | ||
|
397def1320 | ||
|
d2d29180a7 | ||
|
2f263c9fbf | ||
|
4ff360669f | ||
|
549e5d7355 | ||
|
dd48d29c28 | ||
|
98ee5f7400 | ||
|
638c04c13e | ||
|
b1c865acaa | ||
|
d3d795ffb2 | ||
|
0571c51487 | ||
|
348c9f3562 | ||
|
6b6a8f8e16 | ||
|
6aa002850c | ||
|
49c22c8d39 | ||
|
673caf6b59 | ||
|
e6ffab3cb4 | ||
|
4e43f8fa74 | ||
|
bac1b16885 | ||
|
778a4929a8 | ||
|
5c22dd4248 | ||
|
214cd0f8ea | ||
|
9fd61fcb6d | ||
|
edf1d3b256 | ||
|
eca47b2a28 | ||
|
62424e70d7 | ||
|
4791f15222 | ||
|
159f234b78 | ||
|
3ec96127f2 | ||
|
a9acb2711b | ||
|
a3182e68e4 | ||
|
0691b18231 | ||
|
c711cd1b2e | ||
|
14e6b41a5f | ||
|
532af6556d | ||
|
26717b0cd2 | ||
|
1f177f0a1c | ||
|
54c81fa543 | ||
|
34dee9e3aa | ||
|
c073d4a118 | ||
|
e79c5516bf | ||
|
4776c2a575 | ||
|
f98a96c1ed | ||
|
8a3446d219 | ||
|
5d5bf616ca | ||
|
b68c038db8 | ||
|
1117d2f9cb | ||
|
d0ba5bcb32 | ||
|
f8d39d5624 | ||
|
9998e2eac6 | ||
|
7cac07d845 | ||
|
148caa1381 | ||
|
ab27cac0cc | ||
|
01fcbf2183 | ||
|
8a0c30b385 | ||
|
bc21c4d0e0 | ||
|
0800562ba2 | ||
|
1f9befbcd1 | ||
|
a5c779c518 | ||
|
f37f100352 | ||
|
18d1a3b973 | ||
|
dc10246bd2 | ||
|
44bdae0212 | ||
|
1ece38a4c4 | ||
|
e90308e1f8 | ||
|
d702d6740c | ||
|
c6a526f99c | ||
|
278d841408 | ||
|
5f576f1ecf | ||
|
48c6ea6b25 | ||
|
558134f6c8 | ||
|
1dd57e6d7e | ||
|
20ba84d1fa | ||
|
e81f9b23e6 | ||
|
50dc4a79b0 | ||
|
8fa8f44706 | ||
|
ecd862d9ff | ||
|
cbed338c3a | ||
|
4492d99556 | ||
|
d96ee2261f | ||
|
dda27b253b | ||
|
78f26d0caf | ||
|
abcd09f869 | ||
|
41a5ff039b | ||
|
155bad3862 | ||
|
7c98a1c901 | ||
|
c1246fcd53 | ||
|
9f401ea122 | ||
|
9c782fb692 | ||
|
154186a58d | ||
|
b22a9f8fe3 | ||
|
5219c40ed8 | ||
|
a25ee0e6fd | ||
|
496e0bc046 | ||
|
7082fd09f0 | ||
|
857cc215b4 | ||
|
481268f018 | ||
|
f7d9f49503 | ||
|
88fcfd76aa | ||
|
76e34b29ec | ||
|
01984e1d02 | ||
|
536390509f | ||
|
58198d0700 | ||
|
afc5aacb28 | ||
|
30b742e984 | ||
|
671deeef8c | ||
|
a892caeb33 | ||
|
a770cbf25e | ||
|
931c6e9414 | ||
|
8dc7e2efa3 | ||
|
10965a6122 | ||
|
e43d97dc15 | ||
|
2c7087b8de | ||
|
bb1f5aa841 | ||
|
2109a7830b | ||
|
ec27c78a8a | ||
|
67fe833bc8 | ||
|
e956225b4d | ||
|
314ec881ef | ||
|
25a6a55437 | ||
|
5bff4548be | ||
|
866b9e16a8 | ||
|
5af176c94f | ||
|
9e7da05459 | ||
|
1ae02c65fb | ||
|
495e7fd3b1 | ||
|
b48f0fe389 | ||
|
c19c704a43 | ||
|
693bd5929d | ||
|
8275b0436d | ||
|
278bde5cee | ||
|
eee7e5a575 | ||
|
ad7b634ee6 | ||
|
1310f83c8d | ||
|
897b9e7030 | ||
|
1891e194b5 | ||
|
cea05e9f22 | ||
|
d2d01b9fe8 | ||
|
2a7851530d | ||
|
1a6709c2cb | ||
|
5842d58c01 | ||
|
e3c71adba7 | ||
|
504f28b3a1 | ||
|
d977ba9194 | ||
|
9c09799e1f | ||
|
d83c93c805 | ||
|
fc8fd1e63f | ||
|
404d6a4a81 | ||
|
25d96da4a2 | ||
|
e97095b724 | ||
|
ce96df00b6 | ||
|
f98fc5f06a | ||
|
1dbb4ef683 | ||
|
0502a3bd4a | ||
|
869cf6368c | ||
|
078228deac | ||
|
e09d7dabb8 | ||
|
6d1cc8c2c8 | ||
|
87f021078e | ||
|
d5b0502419 | ||
|
860f3e9006 | ||
|
1be346a038 | ||
|
f9fd5e4851 | ||
|
da09f3877b | ||
|
e30e1bab2e | ||
|
f140f6da46 | ||
|
3446fdf5f2 | ||
|
e1345cdc2a | ||
|
a2676ccc55 | ||
|
b39e28d2c8 | ||
|
0d71968615 | ||
|
80da0dc619 | ||
|
64903bb858 | ||
|
3456ce1187 | ||
|
886a5b3d24 | ||
|
238482e5f3 | ||
|
79b960e17e | ||
|
6aa626f1c4 | ||
|
1b30539493 | ||
|
96b24d8a7e | ||
|
20b02e72b3 | ||
|
254efac9c2 | ||
|
dcec322117 | ||
|
d781156327 | ||
|
732750c274 | ||
|
6b6baa3118 | ||
|
54c434934e | ||
|
ad6e0a2581 | ||
|
bd619db3ca | ||
|
e098eb43a2 | ||
|
ea369ee17f | ||
|
63d32bc818 | ||
|
dccf8d8221 | ||
|
97129ab9d8 | ||
|
52d0d6ca30 | ||
|
a05494e9d9 | ||
|
84ac92efbb | ||
|
b4c6e412dc | ||
|
3e21d69a92 | ||
|
b7690d4bb1 | ||
|
d404139ff7 | ||
|
9ef1e9f792 | ||
|
503fe0b641 | ||
|
1807f9653c | ||
|
1e74f0e2a9 | ||
|
c1e1f753cf | ||
|
d90797f8e9 | ||
|
b4096e5627 | ||
|
4e3ab4d399 | ||
|
f0d936763c | ||
|
7897260bf0 | ||
|
eb6e43b9a9 | ||
|
7cdcdbb31d | ||
|
9159341714 | ||
|
b23ff24ebc | ||
|
e1ecc17f69 | ||
|
0fe3badf19 | ||
|
89d4cb951a | ||
|
e9681bf22d | ||
|
1b6df8a480 | ||
|
cf24986edb | ||
|
b9c556a0b6 | ||
|
9d6bde48fa | ||
|
d6c8fee044 | ||
|
8b4abb03db | ||
|
375cf76e15 | ||
|
1a4acc435e | ||
|
d8030626f8 | ||
|
fb61aa4f60 | ||
|
76df41fa97 | ||
|
97efd75cee | ||
|
53d0c1deca | ||
|
155179a07a | ||
|
ba00caf9c3 | ||
|
ac418ba21c | ||
|
acde83af31 | ||
|
021a68eb21 | ||
|
566aab3b05 | ||
|
f88eba6476 | ||
|
1d9e7ac4c2 | ||
|
80ae2ecbf8 | ||
|
96d4492d27 | ||
|
c90f0b8e21 | ||
|
4b866ab6af | ||
|
2dbd91e543 | ||
|
785da3d9df | ||
|
d455cb7c32 | ||
|
d2b4766f92 | ||
|
5cf92b4f94 | ||
|
7b803a50af | ||
|
67ec5fe2b7 | ||
|
3447ed4def | ||
|
532fb921a6 | ||
|
ba4d5a2e7d | ||
|
026273a05c | ||
|
8903b64830 | ||
|
194155f062 | ||
|
a6ff3b900d | ||
|
8a52bcf92d | ||
|
0b1535f63b | ||
|
0a5b3eaf3e | ||
|
11294249f8 | ||
|
35a1236ad0 | ||
|
af8da50c2c | ||
|
649d1e3df2 | ||
|
199cfd4519 | ||
|
c7cce0752b | ||
|
3a89486189 | ||
|
720a2fb7a5 | ||
|
e3c990f11e | ||
|
90c7d0c365 | ||
|
56002267d2 | ||
|
84734eac9d |
1
.github/.codecov.yml
vendored
Normal file
1
.github/.codecov.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
comment: false
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
github: [sharkdp, keith-hall, Enselic]
|
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Report a bug.
|
||||
title: ""
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
Hey there, thank you for reporting a bug!
|
||||
|
||||
Please note that the following bugs have already been reported:
|
||||
|
||||
* dpkg: error processing archive /some/path/some-program.deb (--unpack):
|
||||
trying to overwrite '/usr/.crates2.json'
|
||||
|
||||
See https://github.com/sharkdp/bat/issues/938
|
||||
|
||||
-->
|
||||
|
||||
**What steps will reproduce the bug?**
|
||||
|
||||
1. step 1
|
||||
2. step 2
|
||||
3. ...
|
||||
|
||||
**What happens?**
|
||||
|
||||
...
|
||||
|
||||
**What did you expect to happen instead?**
|
||||
|
||||
...
|
||||
|
||||
|
||||
**How did you install `bat`?**
|
||||
|
||||
<!-- apt-get, homebrew, GitHub release, etc. -->
|
||||
|
||||
---
|
||||
|
||||
**bat version and environment**
|
||||
|
||||
<!--
|
||||
In order to reproduce your issue, please add some information about the environment
|
||||
in which you're running bat. To do this, run the full `bat` command that demonstrates
|
||||
the bug, and attach the `--diagnostic` option:
|
||||
|
||||
bat [other options and arguments…] --diagnostic
|
||||
|
||||
Finally, paste the Markdown output here. Please make sure that it does not reveal any
|
||||
personal information.
|
||||
|
||||
|
||||
If you are running bat 0.17.1 or older (where --diagnostic is not available), please
|
||||
run the script at
|
||||
|
||||
https://github.com/sharkdp/bat/blob/master/diagnostics/info.sh
|
||||
|
||||
(click "Raw" to get the actual source code) and paste the Markdown output here. If you
|
||||
are on Windows, please let us know your bat version and your Windows version.
|
||||
-->
|
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: true
|
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this project.
|
||||
title: ''
|
||||
labels: feature-request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
11
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
11
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask a question about 'bat'.
|
||||
title: ''
|
||||
labels: question
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Using a normal ticket is still fine, but feel free to ask your
|
||||
questions about bat on https://github.com/sharkdp/bat/discussions instead. -->
|
29
.github/ISSUE_TEMPLATE/syntax_request.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE/syntax_request.md
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
name: Syntax Request
|
||||
about: Request adding a new syntax to bat.
|
||||
title: ""
|
||||
labels: syntax-request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
BEFORE YOU MAKE A REQUEST:
|
||||
|
||||
Are you looking to add a new syntax to use on one of your devices?
|
||||
Bat supports locally-installed language definitions. See the link below:
|
||||
|
||||
https://github.com/sharkdp/bat#adding-new-syntaxes--language-definitions
|
||||
|
||||
If you think adding this syntax would help others as well, please make sure that it meets our
|
||||
guidelines for adding new syntaxes:
|
||||
|
||||
- 10,000 downloads on packagecontrol.io
|
||||
-->
|
||||
|
||||
|
||||
**Syntax:**
|
||||
[Name or description of the syntax/language here]
|
||||
|
||||
**Guideline Criteria:**
|
||||
[packagecontro.io link here]
|
18
.github/dependabot.yml
vendored
Normal file
18
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: cargo
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: monthly
|
||||
time: "04:00"
|
||||
timezone: Europe/Berlin
|
||||
ignore:
|
||||
- dependency-name: git2
|
||||
versions:
|
||||
- 0.13.17
|
||||
- package-ecosystem: gitsubmodule
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: monthly
|
||||
time: "04:00"
|
||||
timezone: Europe/Berlin
|
482
.github/workflows/CICD.yml
vendored
Normal file
482
.github/workflows/CICD.yml
vendored
Normal file
@@ -0,0 +1,482 @@
|
||||
name: CICD
|
||||
|
||||
env:
|
||||
MIN_SUPPORTED_RUST_VERSION: "1.51.0"
|
||||
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
ensure_cargo_fmt:
|
||||
name: Ensure 'cargo fmt' has been run
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
default: true
|
||||
profile: minimal
|
||||
components: rustfmt
|
||||
- uses: actions/checkout@v2
|
||||
- run: cargo fmt -- --check
|
||||
|
||||
license_checks:
|
||||
name: License checks
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true # we especially want to perform license checks on submodules
|
||||
- run: tests/scripts/license-checks.sh
|
||||
|
||||
min_version:
|
||||
name: Minimum supported rust version
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }})
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: ${{ env.MIN_SUPPORTED_RUST_VERSION }}
|
||||
default: true
|
||||
profile: minimal # minimal component installation (ie, no documentation)
|
||||
components: clippy
|
||||
- name: Run clippy (on minimum supported rust version to prevent warnings we can't fix)
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: clippy
|
||||
args: --locked --all-targets --all-features
|
||||
- name: Run tests
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: test
|
||||
args: --locked
|
||||
|
||||
test_with_new_syntaxes_and_themes:
|
||||
name: Run tests with updated syntaxes and themes
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true # we need all syntax and theme submodules
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
default: true
|
||||
profile: minimal
|
||||
- name: Build and install bat
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: --locked --path .
|
||||
- name: Rebuild binary assets (syntaxes and themes)
|
||||
run: bash assets/create.sh
|
||||
- name: Build and install bat with updated assets
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: --locked --path .
|
||||
- name: Run unit tests with new syntaxes and themes
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: test
|
||||
args: --locked --release
|
||||
- name: Run ignored-by-default unit tests with new syntaxes and themes
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: test
|
||||
args: --locked --release -- --ignored
|
||||
- name: Syntax highlighting regression test
|
||||
run: tests/syntax-tests/regression_test.sh
|
||||
- name: List of languages
|
||||
run: bat --list-languages
|
||||
- name: List of themes
|
||||
run: bat --list-themes
|
||||
- name: Test custom assets
|
||||
run: tests/syntax-tests/test_custom_assets.sh
|
||||
|
||||
documentation:
|
||||
name: Documentation
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
default: true
|
||||
profile: minimal
|
||||
- name: Print -h
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: run
|
||||
args: --locked -- -h
|
||||
- name: Print --help
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: run
|
||||
args: --locked -- --help
|
||||
- name: Show man page
|
||||
run: man $(find . -name bat.1)
|
||||
- name: Check documentation
|
||||
env:
|
||||
RUSTDOCFLAGS: -D warnings
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: doc
|
||||
args: --locked --no-deps --document-private-items --all-features
|
||||
|
||||
build:
|
||||
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
|
||||
runs-on: ${{ matrix.job.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job:
|
||||
- { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
|
||||
- { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04, use-cross: true }
|
||||
- { target: arm-unknown-linux-musleabihf, os: ubuntu-20.04, use-cross: true }
|
||||
- { target: i686-pc-windows-msvc , os: windows-2019 }
|
||||
- { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
|
||||
- { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
|
||||
- { target: x86_64-apple-darwin , os: macos-10.15 }
|
||||
- { target: x86_64-pc-windows-gnu , os: windows-2019 }
|
||||
- { target: x86_64-pc-windows-msvc , os: windows-2019 }
|
||||
- { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
|
||||
- { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install prerequisites
|
||||
shell: bash
|
||||
run: |
|
||||
case ${{ matrix.job.target }} in
|
||||
arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
|
||||
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
|
||||
esac
|
||||
|
||||
- name: Extract crate information
|
||||
shell: bash
|
||||
run: |
|
||||
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
|
||||
echo "PROJECT_VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
|
||||
echo "PROJECT_MAINTAINER=$(sed -n 's/^authors = \["\(.*\)"\]/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
||||
echo "PROJECT_HOMEPAGE=$(sed -n 's/^homepage = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: ${{ matrix.job.target }}
|
||||
override: true
|
||||
profile: minimal # minimal component installation (ie, no documentation)
|
||||
|
||||
- name: Show version information (Rust, cargo, GCC)
|
||||
shell: bash
|
||||
run: |
|
||||
gcc --version || true
|
||||
rustup -V
|
||||
rustup toolchain list
|
||||
rustup default
|
||||
cargo -V
|
||||
rustc -V
|
||||
|
||||
- name: Build
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: build
|
||||
args: --locked --release --target=${{ matrix.job.target }}
|
||||
|
||||
- name: Strip debug information from executable
|
||||
id: strip
|
||||
shell: bash
|
||||
run: |
|
||||
# Figure out suffix of binary
|
||||
EXE_suffix=""
|
||||
case ${{ matrix.job.target }} in
|
||||
*-pc-windows-*) EXE_suffix=".exe" ;;
|
||||
esac;
|
||||
|
||||
# Figure out what strip tool to use if any
|
||||
STRIP="strip"
|
||||
case ${{ matrix.job.target }} in
|
||||
arm-unknown-linux-*) STRIP="arm-linux-gnueabihf-strip" ;;
|
||||
aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;;
|
||||
*-pc-windows-msvc) STRIP="" ;;
|
||||
esac;
|
||||
|
||||
# Setup paths
|
||||
BIN_DIR="${{ env.CICD_INTERMEDIATES_DIR }}/stripped-release-bin/"
|
||||
mkdir -p "${BIN_DIR}"
|
||||
BIN_NAME="${{ env.PROJECT_NAME }}${EXE_suffix}"
|
||||
BIN_PATH="${BIN_DIR}/${BIN_NAME}"
|
||||
|
||||
# Copy the release build binary to the result location
|
||||
cp "target/${{ matrix.job.target }}/release/${BIN_NAME}" "${BIN_DIR}"
|
||||
|
||||
# Also strip if possible
|
||||
if [ -n "${STRIP}" ]; then
|
||||
"${STRIP}" "${BIN_PATH}"
|
||||
fi
|
||||
|
||||
# Let subsequent steps know where to find the (stripped) bin
|
||||
echo ::set-output name=BIN_PATH::${BIN_PATH}
|
||||
echo ::set-output name=BIN_NAME::${BIN_NAME}
|
||||
|
||||
- name: Set testing options
|
||||
id: test-options
|
||||
shell: bash
|
||||
run: |
|
||||
# test only library unit tests and binary for arm-type targets
|
||||
unset CARGO_TEST_OPTIONS
|
||||
unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${PROJECT_NAME}" ;; esac;
|
||||
echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
|
||||
|
||||
- name: Run tests
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: test
|
||||
args: --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}}
|
||||
|
||||
- name: Run bat
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: run
|
||||
args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
|
||||
|
||||
- name: Show diagnostics (bat --diagnostic)
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: run
|
||||
args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
|
||||
|
||||
- name: "Feature check: regex-onig"
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: check
|
||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
|
||||
|
||||
- name: "Feature check: regex-onig,git"
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: check
|
||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
|
||||
|
||||
- name: "Feature check: regex-onig,paging"
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: check
|
||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
|
||||
|
||||
- name: "Feature check: regex-onig,git,paging"
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: check
|
||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
|
||||
|
||||
- name: "Feature check: minimal-application"
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
use-cross: ${{ matrix.job.use-cross }}
|
||||
command: check
|
||||
args: --locked --target=${{ matrix.job.target }} --verbose --no-default-features --features minimal-application
|
||||
|
||||
- name: Create tarball
|
||||
id: package
|
||||
shell: bash
|
||||
run: |
|
||||
PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
|
||||
PKG_BASENAME=${PROJECT_NAME}-v${PROJECT_VERSION}-${{ matrix.job.target }}
|
||||
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
|
||||
echo ::set-output name=PKG_NAME::${PKG_NAME}
|
||||
|
||||
PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
|
||||
ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
|
||||
mkdir -p "${ARCHIVE_DIR}"
|
||||
mkdir -p "${ARCHIVE_DIR}/autocomplete"
|
||||
|
||||
# Binary
|
||||
cp "${{ steps.strip.outputs.BIN_PATH }}" "$ARCHIVE_DIR"
|
||||
|
||||
# Man page
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
|
||||
|
||||
# README, LICENSE and CHANGELOG files
|
||||
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
|
||||
|
||||
# Autocompletion files
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.bash "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.bash"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/_bat.ps1 "$ARCHIVE_DIR/autocomplete/_${{ env.PROJECT_NAME }}.ps1"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
|
||||
|
||||
# base compressed package
|
||||
pushd "${PKG_STAGING}/" >/dev/null
|
||||
case ${{ matrix.job.target }} in
|
||||
*-pc-windows-*) 7z -y a "${PKG_NAME}" "${PKG_BASENAME}"/* | tail -2 ;;
|
||||
*) tar czf "${PKG_NAME}" "${PKG_BASENAME}"/* ;;
|
||||
esac;
|
||||
popd >/dev/null
|
||||
|
||||
# Let subsequent steps know where to find the compressed package
|
||||
echo ::set-output name=PKG_PATH::"${PKG_STAGING}/${PKG_NAME}"
|
||||
|
||||
- name: Create Debian package
|
||||
id: debian-package
|
||||
shell: bash
|
||||
if: startsWith(matrix.job.os, 'ubuntu')
|
||||
run: |
|
||||
COPYRIGHT_YEARS="2018 - "$(date "+%Y")
|
||||
DPKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/debian-package"
|
||||
DPKG_DIR="${DPKG_STAGING}/dpkg"
|
||||
mkdir -p "${DPKG_DIR}"
|
||||
|
||||
DPKG_BASENAME=${PROJECT_NAME}
|
||||
DPKG_CONFLICTS=${PROJECT_NAME}-musl
|
||||
case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${PROJECT_NAME}-musl ; DPKG_CONFLICTS=${PROJECT_NAME} ;; esac;
|
||||
DPKG_VERSION=${PROJECT_VERSION}
|
||||
|
||||
unset DPKG_ARCH
|
||||
case ${{ matrix.job.target }} in
|
||||
aarch64-*-linux-*) DPKG_ARCH=arm64 ;;
|
||||
arm-*-linux-*hf) DPKG_ARCH=armhf ;;
|
||||
i686-*-linux-*) DPKG_ARCH=i686 ;;
|
||||
x86_64-*-linux-*) DPKG_ARCH=amd64 ;;
|
||||
*) DPKG_ARCH=notset ;;
|
||||
esac;
|
||||
|
||||
DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb"
|
||||
echo ::set-output name=DPKG_NAME::${DPKG_NAME}
|
||||
|
||||
# Binary
|
||||
install -Dm755 "${{ steps.strip.outputs.BIN_PATH }}" "${DPKG_DIR}/usr/bin/${{ steps.strip.outputs.BIN_NAME }}"
|
||||
|
||||
# Man page
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
|
||||
gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
|
||||
|
||||
# Autocompletion files
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.bash "${DPKG_DIR}/usr/share/bash-completion/completions/${{ env.PROJECT_NAME }}"
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/vendor-completions/_${{ env.PROJECT_NAME }}"
|
||||
|
||||
# README and LICENSE
|
||||
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/README.md"
|
||||
install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/LICENSE-MIT"
|
||||
install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/LICENSE-APACHE"
|
||||
install -Dm644 "CHANGELOG.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/changelog"
|
||||
gzip -n --best "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/changelog"
|
||||
|
||||
cat > "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright" <<EOF
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: ${{ env.PROJECT_NAME }}
|
||||
Source: ${{ env.PROJECT_HOMEPAGE }}
|
||||
|
||||
Files: *
|
||||
Copyright: ${{ env.PROJECT_MAINTAINER }}
|
||||
Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
|
||||
License: Apache-2.0 or MIT
|
||||
|
||||
License: Apache-2.0
|
||||
On Debian systems, the complete text of the Apache-2.0 can be found in the
|
||||
file /usr/share/common-licenses/Apache-2.0.
|
||||
|
||||
License: MIT
|
||||
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.
|
||||
EOF
|
||||
chmod 644 "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright"
|
||||
|
||||
# control file
|
||||
mkdir -p "${DPKG_DIR}/DEBIAN"
|
||||
cat > "${DPKG_DIR}/DEBIAN/control" <<EOF
|
||||
Package: ${DPKG_BASENAME}
|
||||
Version: ${DPKG_VERSION}
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: ${{ env.PROJECT_MAINTAINER }}
|
||||
Homepage: ${{ env.PROJECT_HOMEPAGE }}
|
||||
Architecture: ${DPKG_ARCH}
|
||||
Provides: ${{ env.PROJECT_NAME }}
|
||||
Conflicts: ${DPKG_CONFLICTS}
|
||||
Description: cat(1) clone with wings.
|
||||
A cat(1) clone with syntax highlighting and Git integration.
|
||||
EOF
|
||||
|
||||
DPKG_PATH="${DPKG_STAGING}/${DPKG_NAME}"
|
||||
echo ::set-output name=DPKG_PATH::${DPKG_PATH}
|
||||
|
||||
# build dpkg
|
||||
fakeroot dpkg-deb --build "${DPKG_DIR}" "${DPKG_PATH}"
|
||||
|
||||
- name: "Artifact upload: tarball"
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: ${{ steps.package.outputs.PKG_NAME }}
|
||||
path: ${{ steps.package.outputs.PKG_PATH }}
|
||||
|
||||
- name: "Artifact upload: Debian package"
|
||||
uses: actions/upload-artifact@master
|
||||
if: steps.debian-package.outputs.DPKG_NAME
|
||||
with:
|
||||
name: ${{ steps.debian-package.outputs.DPKG_NAME }}
|
||||
path: ${{ steps.debian-package.outputs.DPKG_PATH }}
|
||||
|
||||
- name: Check for release
|
||||
id: is-release
|
||||
shell: bash
|
||||
run: |
|
||||
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
|
||||
echo ::set-output name=IS_RELEASE::${IS_RELEASE}
|
||||
|
||||
- name: Publish archives and packages
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: steps.is-release.outputs.IS_RELEASE
|
||||
with:
|
||||
files: |
|
||||
${{ steps.package.outputs.PKG_PATH }}
|
||||
${{ steps.debian-package.outputs.DPKG_PATH }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
8
.gitignore
vendored
8
.gitignore
vendored
@@ -1,3 +1,9 @@
|
||||
|
||||
/target/
|
||||
**/*.rs.bk
|
||||
|
||||
# Generated files
|
||||
/assets/completions/bat.bash
|
||||
/assets/completions/bat.fish
|
||||
/assets/completions/bat.zsh
|
||||
/assets/manual/bat.1
|
||||
/assets/metadata.yaml
|
||||
|
215
.gitmodules
vendored
215
.gitmodules
vendored
@@ -1,32 +1,32 @@
|
||||
[submodule "assets/syntaxes/Elixir"]
|
||||
path = assets/syntaxes/Elixir
|
||||
path = assets/syntaxes/02_Extra/Elixir
|
||||
url = https://github.com/princemaple/elixir-sublime-syntax/
|
||||
[submodule "assets/syntaxes/Packages"]
|
||||
path = assets/syntaxes/Packages
|
||||
path = assets/syntaxes/01_Packages
|
||||
url = https://github.com/sublimehq/Packages/
|
||||
[submodule "assets/syntaxes/TOML"]
|
||||
path = assets/syntaxes/TOML
|
||||
url = https://github.com/sharkdp/sublime_toml_highlighting
|
||||
path = assets/syntaxes/02_Extra/TOML
|
||||
url = https://github.com/jasonwilliams/sublime_toml_highlighting
|
||||
[submodule "assets/syntaxes/Julia"]
|
||||
path = assets/syntaxes/Julia
|
||||
path = assets/syntaxes/02_Extra/Julia
|
||||
url = https://github.com/JuliaEditorSupport/Julia-sublime
|
||||
[submodule "assets/themes/sublime-monokai-extended"]
|
||||
path = assets/themes/sublime-monokai-extended
|
||||
url = https://github.com/jonschlinkert/sublime-monokai-extended
|
||||
[submodule "assets/syntaxes/Docker"]
|
||||
path = assets/syntaxes/Docker
|
||||
path = assets/syntaxes/02_Extra/Docker
|
||||
url = https://github.com/asbjornenge/Docker.tmbundle
|
||||
[submodule "assets/syntaxes/VimL"]
|
||||
path = assets/syntaxes/VimL
|
||||
path = assets/syntaxes/02_Extra/VimL
|
||||
url = https://github.com/SalGnt/Sublime-VimL
|
||||
[submodule "assets/syntaxes/INI"]
|
||||
path = assets/syntaxes/INI
|
||||
path = assets/syntaxes/02_Extra/INI
|
||||
url = https://github.com/clintberry/sublime-text-2-ini
|
||||
[submodule "assets/syntaxes/CMake"]
|
||||
path = assets/syntaxes/CMake
|
||||
path = assets/syntaxes/02_Extra/CMake
|
||||
url = https://github.com/zyxar/Sublime-CMakeLists
|
||||
[submodule "assets/syntaxes/LESS"]
|
||||
path = assets/syntaxes/LESS
|
||||
path = assets/syntaxes/02_Extra/LESS
|
||||
url = https://github.com/danro/LESS-sublime
|
||||
[submodule "assets/themes/DarkNeon"]
|
||||
path = assets/themes/DarkNeon
|
||||
@@ -41,23 +41,206 @@
|
||||
path = assets/themes/TwoDark
|
||||
url = https://github.com/erremauro/TwoDark
|
||||
[submodule "assets/syntaxes/AWK"]
|
||||
path = assets/syntaxes/AWK
|
||||
path = assets/syntaxes/02_Extra/AWK
|
||||
url = https://github.com/JohnNilsson/awk-sublime
|
||||
[submodule "assets/syntaxes/Nix"]
|
||||
path = assets/syntaxes/Nix
|
||||
path = assets/syntaxes/02_Extra/Nix
|
||||
url = https://github.com/wmertens/sublime-nix
|
||||
[submodule "assets/themes/zenburn"]
|
||||
path = assets/themes/zenburn
|
||||
url = https://github.com/colinta/zenburn.git
|
||||
[submodule "assets/syntaxes/Kotlin"]
|
||||
path = assets/syntaxes/Kotlin
|
||||
path = assets/syntaxes/02_Extra/Kotlin
|
||||
url = https://github.com/vkostyukov/kotlin-sublime-package
|
||||
[submodule "assets/syntaxes/Elm"]
|
||||
path = assets/syntaxes/Elm
|
||||
path = assets/syntaxes/02_Extra/Elm
|
||||
url = https://github.com/elm-community/SublimeElmLanguageSupport
|
||||
[submodule "assets/syntaxes/TypeScript"]
|
||||
path = assets/syntaxes/TypeScript
|
||||
path = assets/syntaxes/02_Extra/TypeScript
|
||||
url = https://github.com/Microsoft/TypeScript-Sublime-Plugin
|
||||
[submodule "assets/syntaxes/Puppet"]
|
||||
path = assets/syntaxes/Puppet
|
||||
path = assets/syntaxes/02_Extra/Puppet
|
||||
url = https://github.com/russCloak/SublimePuppet
|
||||
[submodule "assets/themes/onehalf"]
|
||||
path = assets/themes/onehalf
|
||||
url = https://github.com/sonph/onehalf
|
||||
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
||||
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
||||
url = https://github.com/babel/babel-sublime
|
||||
[submodule "assets/syntaxes/FSharp"]
|
||||
path = assets/syntaxes/02_Extra/FSharp
|
||||
url = https://github.com/hoest/sublimetext-fsharp
|
||||
[submodule "assets/syntaxes/PureScript"]
|
||||
path = assets/syntaxes/02_Extra/PureScript
|
||||
url = https://github.com/tellnobody1/sublime-purescript-syntax
|
||||
[submodule "assets/syntaxes/Swift"]
|
||||
path = assets/syntaxes/02_Extra/Swift
|
||||
url = https://github.com/quiqueg/Swift-Sublime-Package
|
||||
[submodule "assets/syntaxes/Crystal"]
|
||||
path = assets/syntaxes/02_Extra/Crystal
|
||||
url = https://github.com/crystal-lang-tools/sublime-crystal.git
|
||||
[submodule "assets/syntaxes/PowerShell"]
|
||||
path = assets/syntaxes/02_Extra/PowerShell
|
||||
url = https://github.com/PowerShell/EditorSyntax
|
||||
[submodule "assets/syntaxes/Robot"]
|
||||
path = assets/syntaxes/02_Extra/Robot
|
||||
url = https://github.com/andriyko/sublime-robot-framework-assistant.git
|
||||
[submodule "assets/themes/sublime-snazzy"]
|
||||
path = assets/themes/sublime-snazzy
|
||||
url = https://github.com/greggb/sublime-snazzy
|
||||
[submodule "assets/syntaxes/Assembly (ARM)"]
|
||||
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
||||
url = https://github.com/tvi/Sublime-ARM-Assembly
|
||||
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
||||
path = assets/syntaxes/02_Extra/Protobuf
|
||||
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
||||
branch = master
|
||||
[submodule "assets/syntaxes/Terraform"]
|
||||
path = assets/syntaxes/02_Extra/Terraform
|
||||
url = https://github.com/alexlouden/Terraform.tmLanguage.git
|
||||
[submodule "assets/syntaxes/Jsonnet"]
|
||||
path = assets/syntaxes/02_Extra/Jsonnet
|
||||
url = https://github.com/gburiola/sublime-jsonnet-syntax.git
|
||||
[submodule "assets/syntaxes/varlink"]
|
||||
path = assets/syntaxes/02_Extra/varlink
|
||||
url = https://github.com/varlink/syntax-highlight-varlink.git
|
||||
[submodule "assets/syntaxes/sublime-fish"]
|
||||
path = assets/syntaxes/02_Extra/Fish
|
||||
url = https://github.com/Phidica/sublime-fish.git
|
||||
[submodule "assets/syntaxes/Org mode"]
|
||||
path = assets/syntaxes/02_Extra/Org mode
|
||||
url = https://github.com/jezcope/Org.tmbundle.git
|
||||
[submodule "assets/syntaxes/DotENV"]
|
||||
path = assets/syntaxes/02_Extra/DotENV
|
||||
url = https://github.com/zaynali53/DotENV
|
||||
[submodule "assets/syntaxes/hosts"]
|
||||
path = assets/syntaxes/02_Extra/hosts
|
||||
url = https://github.com/brandonwamboldt/sublime-hosts
|
||||
[submodule "assets/syntaxes/ssh-config"]
|
||||
path = assets/syntaxes/02_Extra/ssh-config
|
||||
url = https://github.com/robballou/sublimetext-sshconfig.git
|
||||
[submodule "assets/syntaxes/GraphQL"]
|
||||
path = assets/syntaxes/02_Extra/GraphQL
|
||||
url = https://github.com/dncrews/GraphQL-SublimeText3.git
|
||||
[submodule "assets/syntaxes/Verilog"]
|
||||
path = assets/syntaxes/02_Extra/Verilog
|
||||
url = https://github.com/pro711/sublime-verilog
|
||||
[submodule "assets/syntaxes/SCSS_Sass"]
|
||||
path = assets/syntaxes/02_Extra/SCSS_Sass
|
||||
url = https://github.com/braver/SublimeSass
|
||||
[submodule "assets/syntaxes/Strace"]
|
||||
path = assets/syntaxes/02_Extra/Strace
|
||||
url = https://github.com/djuretic/SublimeStrace
|
||||
[submodule "assets/syntaxes/Jinja2"]
|
||||
path = assets/syntaxes/02_Extra/Jinja2
|
||||
url = https://github.com/Martin819/sublime-jinja2
|
||||
[submodule "assets/syntaxes/SLS"]
|
||||
path = assets/syntaxes/02_Extra/SLS
|
||||
url = https://github.com/saltstack/sublime-text
|
||||
branch = master
|
||||
[submodule "assets/themes/dracula-sublime"]
|
||||
path = assets/themes/dracula-sublime
|
||||
url = https://github.com/dracula/sublime.git
|
||||
[submodule "assets/syntaxes/HTML (Twig)"]
|
||||
path = assets/syntaxes/02_Extra/HTML (Twig)
|
||||
url = https://github.com/Anomareh/PHP-Twig.tmbundle.git
|
||||
[submodule "assets/themes/Nord-sublime"]
|
||||
path = assets/themes/Nord-sublime
|
||||
url = https://github.com/crabique/Nord-plist.git
|
||||
[submodule "assets/syntaxes/Vue"]
|
||||
path = assets/syntaxes/02_Extra/Vue
|
||||
url = https://github.com/vuejs/vue-syntax-highlight.git
|
||||
branch = new
|
||||
[submodule "assets/syntaxes/CoffeeScript"]
|
||||
path = assets/syntaxes/02_Extra/CoffeeScript
|
||||
url = https://github.com/sustained/CoffeeScript-Sublime-Plugin
|
||||
[submodule "assets/syntaxes/02_Extra/Stylus"]
|
||||
path = assets/syntaxes/02_Extra/Stylus
|
||||
url = https://github.com/billymoon/Stylus
|
||||
[submodule "assets/themes/Solarized"]
|
||||
path = assets/themes/Solarized
|
||||
url = https://github.com/braver/Solarized
|
||||
[submodule "assets/syntaxes/02_Extra/Fortran"]
|
||||
path = assets/syntaxes/02_Extra/Fortran
|
||||
url = https://github.com/315234/SublimeFortran
|
||||
[submodule "assets/syntaxes/02_Extra/Email"]
|
||||
path = assets/syntaxes/02_Extra/Email
|
||||
url = https://github.com/mariozaizar/email.sublime-syntax.git
|
||||
[submodule "assets/syntaxes/02_Extra/QML"]
|
||||
path = assets/syntaxes/02_Extra/QML
|
||||
url = https://github.com/skozlovf/Sublime-QML
|
||||
[submodule "assets/syntaxes/02_Extra/AsciiDoc"]
|
||||
path = assets/syntaxes/02_Extra/AsciiDoc
|
||||
url = https://github.com/asciidoctor/sublimetext-asciidoc.git
|
||||
[submodule "assets/syntaxes/02_Extra/GLSL"]
|
||||
path = assets/syntaxes/02_Extra/GLSL
|
||||
url = https://github.com/euler0/sublime-glsl
|
||||
[submodule "assets/syntaxes/02_Extra/Nginx"]
|
||||
path = assets/syntaxes/02_Extra/Nginx
|
||||
url = https://github.com/brandonwamboldt/sublime-nginx
|
||||
[submodule "assets/syntaxes/02_Extra/Apache"]
|
||||
path = assets/syntaxes/02_Extra/Apache
|
||||
url = https://github.com/colinta/ApacheConf.tmLanguage
|
||||
[submodule "assets/syntaxes/02_Extra/Ninja"]
|
||||
path = assets/syntaxes/02_Extra/Ninja
|
||||
url = https://github.com/pope/SublimeNinja.git
|
||||
[submodule "assets/syntaxes/02_Extra/Svelte"]
|
||||
path = assets/syntaxes/02_Extra/Svelte
|
||||
url = https://github.com/corneliusio/svelte-sublime
|
||||
[submodule "assets/themes/Coldark"]
|
||||
path = assets/themes/Coldark
|
||||
url = https://github.com/ArmandPhilippot/coldark-bat.git
|
||||
[submodule "assets/themes/gruvbox"]
|
||||
path = assets/themes/gruvbox
|
||||
url = https://github.com/subnut/gruvbox-tmTheme.git
|
||||
branch = bat-source
|
||||
[submodule "assets/syntaxes/02_Extra/Lean"]
|
||||
path = assets/syntaxes/02_Extra/Lean
|
||||
url = https://github.com/leanprover/vscode-lean.git
|
||||
[submodule "assets/syntaxes/02_Extra/LiveScript"]
|
||||
path = assets/syntaxes/02_Extra/LiveScript
|
||||
url = https://github.com/paulmillr/LiveScript.tmbundle
|
||||
[submodule "assets/syntaxes/02_Extra/Zig"]
|
||||
path = assets/syntaxes/02_Extra/Zig
|
||||
url = https://github.com/ziglang/sublime-zig-language.git
|
||||
[submodule "assets/syntaxes/02_Extra/gnuplot"]
|
||||
path = assets/syntaxes/02_Extra/gnuplot
|
||||
url = https://github.com/hesstobi/sublime_gnuplot
|
||||
[submodule "assets/syntaxes/02_Extra/SystemVerilog"]
|
||||
path = assets/syntaxes/02_Extra/SystemVerilog
|
||||
url = https://github.com/TheClams/SystemVerilog.git
|
||||
[submodule "assets/themes/visual-studio-dark-plus"]
|
||||
path = assets/themes/visual-studio-dark-plus
|
||||
url = https://github.com/vidann1/visual-studio-dark-plus.git
|
||||
[submodule "assets/syntaxes/02_Extra/SublimeEthereum"]
|
||||
path = assets/syntaxes/02_Extra/SublimeEthereum
|
||||
url = https://github.com/davidhq/SublimeEthereum.git
|
||||
[submodule "assets/syntaxes/02_Extra/Groff"]
|
||||
path = assets/syntaxes/02_Extra/Groff
|
||||
url = https://github.com/carsonoid/sublime_man_page_support
|
||||
[submodule "assets/syntaxes/02_Extra/http-request-response"]
|
||||
path = assets/syntaxes/02_Extra/http-request-response
|
||||
url = https://github.com/keith-hall/http-request-response-syntax.git
|
||||
[submodule "assets/syntaxes/02_Extra/LLVM"]
|
||||
path = assets/syntaxes/02_Extra/LLVM
|
||||
url = https://github.com/ioncodes/LLVM.tmBundle
|
||||
[submodule "assets/syntaxes/02_Extra/Slim"]
|
||||
path = assets/syntaxes/02_Extra/Slim
|
||||
url = https://github.com/slim-template/ruby-slim.tmbundle.git
|
||||
[submodule "assets/syntaxes/02_Extra/Racket"]
|
||||
path = assets/syntaxes/02_Extra/Racket
|
||||
url = https://github.com/follesoe/sublime-racket.git
|
||||
[submodule "assets/syntaxes/02_Extra/MediaWiki"]
|
||||
path = assets/syntaxes/02_Extra/MediaWiki
|
||||
url = https://github.com/tosher/Mediawiker.git
|
||||
[submodule "assets/syntaxes/02_Extra/Dart"]
|
||||
path = assets/syntaxes/02_Extra/Dart
|
||||
url = https://github.com/elMuso/Dartlight.git
|
||||
[submodule "assets/syntaxes/02_Extra/SublimeJQ"]
|
||||
path = assets/syntaxes/02_Extra/SublimeJQ
|
||||
url = https://github.com/zogwarg/SublimeJQ.git
|
||||
[submodule "assets/syntaxes/02_Extra/cmd-help"]
|
||||
path = assets/syntaxes/02_Extra/cmd-help
|
||||
url = https://github.com/victor-gp/cmd-help-sublime-syntax.git
|
||||
branch = main
|
||||
shallow = true
|
||||
|
99
.travis.yml
99
.travis.yml
@@ -1,99 +0,0 @@
|
||||
language: rust
|
||||
cache: cargo
|
||||
matrix:
|
||||
include:
|
||||
# Stable channel.
|
||||
- os: linux
|
||||
rust: stable
|
||||
env: TARGET=x86_64-unknown-linux-gnu
|
||||
- os: linux
|
||||
rust: stable
|
||||
env:
|
||||
- TARGET=x86_64-unknown-linux-musl
|
||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
||||
- os: linux
|
||||
rust: stable
|
||||
env: TARGET=i686-unknown-linux-gnu
|
||||
- os: osx
|
||||
rust: stable
|
||||
env: TARGET=x86_64-apple-darwin
|
||||
- os: linux
|
||||
rust: stable
|
||||
env:
|
||||
- TARGET=arm-unknown-linux-gnueabihf
|
||||
- CC_arm_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-gcc-4.8
|
||||
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc-4.8
|
||||
|
||||
# Minimum Rust supported channel.
|
||||
- os: linux
|
||||
rust: 1.26.0
|
||||
env: TARGET=x86_64-unknown-linux-gnu
|
||||
- os: linux
|
||||
rust: 1.26.0
|
||||
env:
|
||||
- TARGET=x86_64-unknown-linux-musl
|
||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
||||
- os: osx
|
||||
rust: 1.26.0
|
||||
env: TARGET=x86_64-apple-darwin
|
||||
|
||||
# Code formatting check
|
||||
- os: linux
|
||||
rust: nightly
|
||||
# skip the global install step
|
||||
install:
|
||||
- cargo install --debug --force rustfmt-nightly
|
||||
script: cargo fmt -- --check
|
||||
|
||||
sudo: required
|
||||
|
||||
before_install:
|
||||
- ci/before_install.bash
|
||||
|
||||
env:
|
||||
global:
|
||||
# Default target on travis-ci.
|
||||
# Used as conditional check in the install stage
|
||||
- HOST=x86_64-unknown-linux-gnu
|
||||
# Used on the deployment script
|
||||
- PROJECT_NAME=bat
|
||||
|
||||
install:
|
||||
# prevent target re-add error from rustup
|
||||
- if [[ $TRAVIS_OS_NAME = linux && $HOST != $TARGET ]]; then rustup target add $TARGET; fi
|
||||
|
||||
script:
|
||||
- ci/script.bash
|
||||
|
||||
before_deploy:
|
||||
- bash ci/before_deploy.bash
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
# NOTE updating the `api_key.secure`
|
||||
# - go to: https://github.com/settings/tokens/new
|
||||
# - generate new token using `public_repo` scope
|
||||
# - encrypt it using: `travis encrypt API_KEY_HERE`
|
||||
# - paste the output below
|
||||
api_key:
|
||||
secure: "GZL8nYk+/MZGEqejpP0UMMGVmwUEdxiF9CflFIGccu+/tznDyHnHOpyJmbH3M5IKWIxa7xFgqOE8pHuD4oQXt4mzyJGB0KMKKEFLW7ckbTYKya5bw0heKznaqGnS0Yz+vpfqYR25eiPFYCz7mDsGsCzH5QZqt3cdn9MDQGu1D0IaxPjuBNH3T9kBblR0ifBd3Diy0JYhiVcMSI3V1rkel18F1yBHO2GQ95hkWxVgjANQnefq5+zdzbx4ki539ewYENShA8N0w6ULJVY9LmWRWJIp90ggOD3JCH6Nz/fBpYBqwfABO6Dr7Csw7IRm7pM4IVkFZS1taiDYFX9thxZh3UTmI4YYtSTPxH9NGV47kxPipbf4vAXFwW+1VcHKMpBzz+5IVsHnk1Pfx9/GZsXbqXM3PUWCStec36Xtqh5vQapDKEg9khkEs4b1X7/E73gvpRuQl9gbnyufSVWgDsXIWqM+0aDbqQz1FpLmVxz6eij0cB9vR+8kbNoe/CEPHPO9ZllvAHseukOeHPzSBd8rILORXaaGmQausXz2wWgSsffUSYz4705P8joI0zFCfmkHjL+kA1ZUx5SxLCc1ID7CFFZChhAxHoPL7xc21snswwr8QeheERdwvuzKNaerBGZEw8dmMMx98YkjftIj65DDySr2mRZuufBQeQpmMhFyIT4="
|
||||
# for uploading multiple files
|
||||
file_glob: true
|
||||
# NOTE explanation on each env variable
|
||||
# - PROJECT_NAME: name of the project, set on the `env.global` above
|
||||
# - TRAVIS_TAG: tag name that the build is being deployed for, usually the version number
|
||||
# - TARGET: target triple of the build
|
||||
file:
|
||||
- $PROJECT_NAME-$TRAVIS_TAG-$TARGET.*
|
||||
- $PROJECT_NAME*.deb
|
||||
# don't delete artifacts from previous stage
|
||||
skip_cleanup: true
|
||||
on:
|
||||
# deploy only if we push a tag
|
||||
tags: true
|
||||
# deploy only on stable channel that has TARGET env variable sets
|
||||
condition: $TRAVIS_RUST_VERSION = stable && $TARGET != ""
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: never
|
1020
CHANGELOG.md
Normal file
1020
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
70
CONTRIBUTING.md
Normal file
70
CONTRIBUTING.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Contributing
|
||||
|
||||
Thank you for considering to contribute to `bat`!
|
||||
|
||||
|
||||
|
||||
## Add an entry to the changelog
|
||||
|
||||
If your contribution changes the behavior of `bat` (as opposed to a typo-fix
|
||||
in the documentation), please update the [`CHANGELOG.md`](CHANGELOG.md) file
|
||||
and describe your changes. This makes the release process much easier and
|
||||
therefore helps to get your changes into a new `bat` release faster.
|
||||
|
||||
The top of the `CHANGELOG` contains a *"unreleased"* section with a few
|
||||
subsections (Features, Bugfixes, …). Please add your entry to the subsection
|
||||
that best describes your change.
|
||||
|
||||
Entries follow this format:
|
||||
```
|
||||
- Short description of what has been changed, see #123 (@user)
|
||||
```
|
||||
Here, `#123` is the number of the original issue and/or your pull request.
|
||||
Please replace `@user` by your GitHub username.
|
||||
|
||||
|
||||
## Development
|
||||
|
||||
Please check out the [Development](https://github.com/sharkdp/bat#development)
|
||||
section in the README.
|
||||
|
||||
|
||||
## Adding a new feature
|
||||
|
||||
Please consider opening a
|
||||
[feature request ticket](https://github.com/sharkdp/bat/issues/new?assignees=&labels=feature-request&template=feature_request.md)
|
||||
first in order to give us a chance to discuss the feature first.
|
||||
|
||||
|
||||
## Adding new syntaxes/languages or themes
|
||||
|
||||
Before you make a pull request that adds a new syntax or theme, please read
|
||||
the [Customization](https://github.com/sharkdp/bat#customization) section
|
||||
in the README first.
|
||||
|
||||
If you really think that a particular syntax or theme should be added for all
|
||||
users, please read the corresponding
|
||||
[documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md)
|
||||
first.
|
||||
|
||||
|
||||
## Regression tests
|
||||
|
||||
You are strongly encouraged to add regression tests. Regression tests are great,
|
||||
not least because they:
|
||||
|
||||
* ensure that your contribution will never completely stop working,
|
||||
|
||||
* makes code review easier, because it becomes very clear what the code is
|
||||
supposed to do.
|
||||
|
||||
For functional changes, you most likely want to add a test to
|
||||
[`tests/integration_tests.rs`](https://github.com/sharkdp/bat/blob/master/tests/integration_tests.rs).
|
||||
Look at existing tests to know how to write a new test. In short, you will
|
||||
invoke the `bat` binary with a certain set of arguments, and then assert on
|
||||
stdout/stderr.
|
||||
|
||||
To learn how to write regression tests for theme and syntax changes, read the
|
||||
[Syntax
|
||||
tests](https://github.com/sharkdp/bat/blob/master/doc/assets.md#syntax-tests)
|
||||
section in `assets.md`.
|
1377
Cargo.lock
generated
1377
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
102
Cargo.toml
102
Cargo.toml
@@ -1,44 +1,102 @@
|
||||
[package]
|
||||
authors = ["David Peter <mail@david-peter.de>"]
|
||||
categories = ["command-line-utilities"]
|
||||
description="A cat(1) clone with wings."
|
||||
description = "A cat(1) clone with wings."
|
||||
homepage = "https://github.com/sharkdp/bat"
|
||||
license = "MIT/Apache-2.0"
|
||||
name = "bat"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/sharkdp/bat"
|
||||
version = "0.6.0"
|
||||
exclude = [
|
||||
"assets/syntaxes/*",
|
||||
"assets/themes/*",
|
||||
version = "0.21.0"
|
||||
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
||||
build = "build.rs"
|
||||
edition = '2018'
|
||||
|
||||
[features]
|
||||
default = ["application"]
|
||||
# Feature required for bat the application. Should be disabled when depending on
|
||||
# bat as a library.
|
||||
application = [
|
||||
"bugreport",
|
||||
"build-assets",
|
||||
"git",
|
||||
"minimal-application",
|
||||
]
|
||||
# Mainly for developers that want to iterate quickly
|
||||
# Be aware that the included features might change in the future
|
||||
minimal-application = [
|
||||
"atty",
|
||||
"clap",
|
||||
"dirs-next",
|
||||
"paging",
|
||||
"regex-onig",
|
||||
"wild",
|
||||
"rlua"
|
||||
]
|
||||
git = ["git2"] # Support indicating git modifications
|
||||
paging = ["shell-words", "grep-cli"] # Support applying a pager on the output
|
||||
build-assets = ["syntect/yaml-load", "syntect/plist-load", "regex", "walkdir"]
|
||||
|
||||
# You need to use one of these if you depend on bat as a library:
|
||||
regex-onig = ["syntect/regex-onig"] # Use the "oniguruma" regex engine
|
||||
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
||||
|
||||
[dependencies]
|
||||
atty = "0.2.2"
|
||||
ansi_term = "0.11"
|
||||
console = "0.6"
|
||||
directories = "1.0"
|
||||
lazy_static = "1.0"
|
||||
atty = { version = "0.2.14", optional = true }
|
||||
ansi_term = "^0.12.1"
|
||||
ansi_colours = "^1.1"
|
||||
bincode = "1.0"
|
||||
console = "0.15.0"
|
||||
flate2 = "1.0"
|
||||
once_cell = "1.10"
|
||||
thiserror = "1.0"
|
||||
wild = { version = "2.0", optional = true }
|
||||
content_inspector = "0.2.4"
|
||||
encoding = "0.2"
|
||||
shell-words = { version = "1.1.0", optional = true }
|
||||
unicode-width = "0.1.9"
|
||||
globset = "0.4"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_yaml = "0.8"
|
||||
semver = "1.0"
|
||||
path_abs = { version = "0.5", default-features = false }
|
||||
clircle = "0.3"
|
||||
bugreport = { version = "0.5.0", optional = true }
|
||||
dirs-next = { version = "2.0.0", optional = true }
|
||||
grep-cli = { version = "0.1.6", optional = true }
|
||||
regex = { version = "1.5.5", optional = true }
|
||||
walkdir = { version = "2.0", optional = true }
|
||||
bytesize = { version = "1.1.0" }
|
||||
rlua = { version = "0.19", optional = true }
|
||||
|
||||
[dependencies.git2]
|
||||
version = "0.7"
|
||||
version = "0.14"
|
||||
optional = true
|
||||
default-features = false
|
||||
features = []
|
||||
|
||||
[dependencies.syntect]
|
||||
version = "2.1"
|
||||
version = "5.0.0"
|
||||
default-features = false
|
||||
features = ["parsing", "yaml-load", "dump-load", "dump-create"]
|
||||
features = ["parsing"]
|
||||
|
||||
[dependencies.clap]
|
||||
version = "2.32"
|
||||
version = "2.34"
|
||||
optional = true
|
||||
default-features = false
|
||||
features = ["suggestions", "color", "wrap_help"]
|
||||
|
||||
[dependencies.error-chain]
|
||||
version = "0.12"
|
||||
default-features = false
|
||||
features = []
|
||||
|
||||
[dev-dependencies]
|
||||
tempdir = "0.3"
|
||||
assert_cmd = "2.0.4"
|
||||
serial_test = "0.6.0"
|
||||
predicates = "2.1.1"
|
||||
wait-timeout = "0.2.0"
|
||||
tempfile = "3.3.0"
|
||||
|
||||
[target.'cfg(unix)'.dev-dependencies]
|
||||
nix = { version = "0.24.1", default-features = false, features = ["term"] }
|
||||
|
||||
[build-dependencies]
|
||||
clap = { version = "2.34", optional = true }
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
|
@@ -1,3 +1,5 @@
|
||||
Copyright (c) 2018-2021 bat-developers (https://github.com/sharkdp/bat).
|
||||
|
||||
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
|
||||
|
6
NOTICE
Normal file
6
NOTICE
Normal file
@@ -0,0 +1,6 @@
|
||||
Copyright (c) 2018-2021 bat-developers (https://github.com/sharkdp/bat).
|
||||
|
||||
bat is made available under the terms of either the MIT License or the Apache
|
||||
License 2.0, at your option.
|
||||
|
||||
See the LICENSE-APACHE and LICENSE-MIT files for license details.
|
649
README.md
649
README.md
@@ -1,6 +1,6 @@
|
||||
<p align="center">
|
||||
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
||||
<a href="https://travis-ci.org/sharkdp/bat"><img src="https://travis-ci.org/sharkdp/bat.svg?branch=master" alt="Build Status"></a>
|
||||
<a href="https://github.com/sharkdp/bat/actions?query=workflow%3ACICD"><img src="https://github.com/sharkdp/bat/workflows/CICD/badge.svg" alt="Build Status"></a>
|
||||
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
||||
<a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
|
||||
A <i>cat(1)</i> clone with syntax highlighting and Git integration.
|
||||
@@ -11,9 +11,27 @@
|
||||
<a href="#how-to-use">How To Use</a> •
|
||||
<a href="#installation">Installation</a> •
|
||||
<a href="#customization">Customization</a> •
|
||||
<a href="#project-goals-and-alternatives">Project goals, alternatives</a>
|
||||
<a href="#project-goals-and-alternatives">Project goals, alternatives</a><br>
|
||||
[English]
|
||||
[<a href="doc/README-zh.md">中文</a>]
|
||||
[<a href="doc/README-ja.md">日本語</a>]
|
||||
[<a href="doc/README-ko.md">한국어</a>]
|
||||
[<a href="doc/README-ru.md">Русский</a>]
|
||||
</p>
|
||||
|
||||
### Sponsors
|
||||
|
||||
A special *thank you* goes to our biggest <a href="doc/sponsors.md">sponsors</a>:<br>
|
||||
<a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=bat&utm_source=github">
|
||||
<img src="doc/sponsors/workos-logo-white-bg.svg" width="200" alt="WorkOS">
|
||||
<br>
|
||||
<strong>Your app, enterprise-ready.</strong>
|
||||
<br>
|
||||
<sub>Start selling to enterprise customers with just a few lines of code.</sub>
|
||||
<br>
|
||||
<sup>Add Single Sign-On (and more) in minutes instead of months.</sup>
|
||||
</a>
|
||||
|
||||
### Syntax highlighting
|
||||
|
||||
`bat` supports syntax highlighting for a large number of programming and markup
|
||||
@@ -28,15 +46,23 @@ languages:
|
||||
|
||||

|
||||
|
||||
### Show non-printable characters
|
||||
|
||||
You can use the `-A`/`--show-all` option to show and highlight non-printable
|
||||
characters:
|
||||
|
||||

|
||||
|
||||
### Automatic paging
|
||||
|
||||
`bat` can pipe its own output to `less` if the output is too large for one screen.
|
||||
By default, `bat` pipes its own output to a pager (e.g. `less`) if the output is too large for one screen.
|
||||
If you would rather `bat` work like `cat` all the time (never page output), you can set `--paging=never` as an option, either on the command line or in your configuration file.
|
||||
If you intend to alias `cat` to `bat` in your shell configuration, you can use `alias cat='bat --paging=never'` to preserve the default behavior.
|
||||
|
||||
### File concatenation
|
||||
#### File concatenation
|
||||
|
||||
Oh.. you can also use it to concatenate files :wink:. Whenever
|
||||
`bat` detects a non-interactive terminal, it will fall back to printing
|
||||
the plain file contents.
|
||||
Even with a pager set, you can still use `bat` to concatenate files :wink:.
|
||||
Whenever `bat` detects a non-interactive terminal (i.e. when you pipe into another process or into a file), `bat` will act as a drop-in replacement for `cat` and fall back to printing the plain file contents, regardless of the `--pager` option's value.
|
||||
|
||||
## How to use
|
||||
|
||||
@@ -52,17 +78,26 @@ Display multiple files at once
|
||||
> bat src/*.rs
|
||||
```
|
||||
|
||||
Read from stdin, explicitly specify the language
|
||||
Read from stdin, determine the syntax automatically (note, highlighting will
|
||||
only work if the syntax can be determined from the first line of the file,
|
||||
usually through a shebang such as `#!/bin/sh`)
|
||||
|
||||
```bash
|
||||
> curl -s https://sh.rustup.rs | bat
|
||||
```
|
||||
|
||||
Read from stdin, specify the language explicitly
|
||||
|
||||
```bash
|
||||
> yaml2json .travis.yml | json_pp | bat -l json
|
||||
```
|
||||
|
||||
Show and highlight non-printable characters:
|
||||
```bash
|
||||
> curl -s https://raw.githubusercontent.com/sharkdp/bat/master/src/main.rs | bat -l rs
|
||||
> bat -A /etc/hosts
|
||||
```
|
||||
|
||||
As a replacement for `cat`:
|
||||
Use it as a `cat` replacement:
|
||||
|
||||
```bash
|
||||
bat > note.md # quickly create a new file
|
||||
@@ -74,15 +109,168 @@ bat -n main.rs # show line numbers (only)
|
||||
bat f - g # output 'f', then stdin, then 'g'.
|
||||
```
|
||||
|
||||
### Integration with other tools
|
||||
|
||||
#### `fzf`
|
||||
|
||||
You can use `bat` as a previewer for [`fzf`](https://github.com/junegunn/fzf). To do this,
|
||||
use `bat`s `--color=always` option to force colorized output. You can also use `--line-range`
|
||||
option to restrict the load times for long files:
|
||||
|
||||
```bash
|
||||
fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
|
||||
```
|
||||
|
||||
For more information, see [`fzf`'s `README`](https://github.com/junegunn/fzf#preview-window).
|
||||
|
||||
#### `find` or `fd`
|
||||
|
||||
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
||||
|
||||
```bash
|
||||
find … -exec bat {} +
|
||||
```
|
||||
|
||||
If you happen to use [`fd`](https://github.com/sharkdp/fd), you can use the `-X`/`--exec-batch` option to do the same:
|
||||
|
||||
```bash
|
||||
fd … -X bat
|
||||
```
|
||||
|
||||
#### `ripgrep`
|
||||
|
||||
With [`batgrep`](https://github.com/eth-p/bat-extras/blob/master/doc/batgrep.md), `bat` can be used as the printer for [`ripgrep`](https://github.com/BurntSushi/ripgrep) search results.
|
||||
|
||||
```bash
|
||||
batgrep needle src/
|
||||
```
|
||||
|
||||
#### `tail -f`
|
||||
|
||||
`bat` can be combined with `tail -f` to continuously monitor a given file with syntax highlighting.
|
||||
|
||||
```bash
|
||||
tail -f /var/log/pacman.log | bat --paging=never -l log
|
||||
```
|
||||
|
||||
Note that we have to switch off paging in order for this to work. We have also specified the syntax
|
||||
explicitly (`-l log`), as it can not be auto-detected in this case.
|
||||
|
||||
#### `git`
|
||||
|
||||
You can combine `bat` with `git show` to view an older version of a given file with proper syntax
|
||||
highlighting:
|
||||
|
||||
```bash
|
||||
git show v0.6.0:src/main.rs | bat -l rs
|
||||
```
|
||||
|
||||
#### `git diff`
|
||||
|
||||
You can combine `bat` with `git diff` to view lines around code changes with proper syntax
|
||||
highlighting:
|
||||
```bash
|
||||
batdiff() {
|
||||
git diff --name-only --relative --diff-filter=d | xargs bat --diff
|
||||
}
|
||||
```
|
||||
If you prefer to use this as a separate tool, check out `batdiff` in [`bat-extras`](https://github.com/eth-p/bat-extras).
|
||||
|
||||
If you are looking for more support for git and diff operations, check out [`delta`](https://github.com/dandavison/delta).
|
||||
|
||||
#### `xclip`
|
||||
|
||||
The line numbers and Git modification markers in the output of `bat` can make it hard to copy
|
||||
the contents of a file. To prevent this, you can call `bat` with the `-p`/`--plain` option or
|
||||
simply pipe the output into `xclip`:
|
||||
```bash
|
||||
bat main.cpp | xclip
|
||||
```
|
||||
`bat` will detect that the output is being redirected and print the plain file contents.
|
||||
|
||||
#### `man`
|
||||
|
||||
`bat` can be used as a colorizing pager for `man`, by setting the
|
||||
`MANPAGER` environment variable:
|
||||
|
||||
```bash
|
||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||
man 2 select
|
||||
```
|
||||
(replace `bat` with `batcat` if you are on Debian or Ubuntu)
|
||||
|
||||
It might also be necessary to set `MANROFFOPT="-c"` if you experience
|
||||
formatting problems.
|
||||
|
||||
If you prefer to have this bundled in a new command, you can also use [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md).
|
||||
|
||||
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
||||
|
||||
Also, note that this will [not work](https://github.com/sharkdp/bat/issues/1145) with Mandocs `man` implementation.
|
||||
|
||||
#### `prettier` / `shfmt` / `rustfmt`
|
||||
|
||||
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
|
||||
|
||||
#### Highlighting `--help` messages
|
||||
|
||||
You can use `bat` to colorize help text: `$ cp --help | bat -plhelp`
|
||||
|
||||
You can also use a wrapper around this:
|
||||
|
||||
```bash
|
||||
# in your .bashrc/.zshrc/*rc
|
||||
alias bathelp='bat --plain --language=help'
|
||||
help() {
|
||||
"$@" --help 2>&1 | bathelp
|
||||
}
|
||||
```
|
||||
|
||||
Then you can do `$ help cp` or `$ help git commit`.
|
||||
|
||||
Please report any issues with the help syntax in [this repository](https://github.com/victor-gp/cmd-help-sublime-syntax).
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### On Ubuntu
|
||||
[](https://repology.org/project/bat-cat/versions)
|
||||
|
||||
### On Ubuntu (using `apt`)
|
||||
*... and other Debian-based Linux distributions.*
|
||||
|
||||
Download the latest `.deb` package from the [release page](https://github.com/sharkdp/bat/releases)
|
||||
and install it via:
|
||||
`bat` is available on [Ubuntu since 20.04 ("Focal")](https://packages.ubuntu.com/search?keywords=bat&exact=1) and [Debian since August 2021 (Debian 11 - "Bullseye")](https://packages.debian.org/bullseye/bat).
|
||||
|
||||
If your Ubuntu/Debian installation is new enough you can simply run:
|
||||
|
||||
```bash
|
||||
sudo apt install bat
|
||||
```
|
||||
|
||||
**Important**: If you install `bat` this way, please note that the executable may be installed as `batcat` instead of `bat` (due to [a name
|
||||
clash with another package](https://github.com/sharkdp/bat/issues/982)). You can set up a `bat -> batcat` symlink or alias to prevent any issues that may come up because of this and to be consistent with other distributions:
|
||||
``` bash
|
||||
sudo dpkg -i bat_0.6.0_amd64.deb # adapt version number and architecture
|
||||
mkdir -p ~/.local/bin
|
||||
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||
```
|
||||
|
||||
### On Ubuntu (using most recent `.deb` packages)
|
||||
*... and other Debian-based Linux distributions.*
|
||||
|
||||
If the package has not yet been promoted to your Ubuntu/Debian installation, or you want
|
||||
the most recent release of `bat`, download the latest `.deb` package from the
|
||||
[release page](https://github.com/sharkdp/bat/releases) and install it via:
|
||||
|
||||
```bash
|
||||
sudo dpkg -i bat_0.18.3_amd64.deb # adapt version number and architecture
|
||||
```
|
||||
|
||||
### On Alpine Linux
|
||||
|
||||
You can install [the `bat` package](https://pkgs.alpinelinux.org/packages?name=bat)
|
||||
from the official sources, provided you have the appropriate repository enabled:
|
||||
|
||||
```bash
|
||||
apk add bat
|
||||
```
|
||||
|
||||
### On Arch Linux
|
||||
@@ -94,13 +282,45 @@ from the official sources:
|
||||
pacman -S bat
|
||||
```
|
||||
|
||||
### On Fedora
|
||||
|
||||
You can install [the `bat` package](https://koji.fedoraproject.org/koji/packageinfo?packageID=27506) from the official [Fedora Modular](https://docs.fedoraproject.org/en-US/modularity/using-modules/) repository.
|
||||
|
||||
```bash
|
||||
dnf install bat
|
||||
```
|
||||
|
||||
### On Funtoo Linux
|
||||
|
||||
You can install [the `bat` package](https://github.com/funtoo/dev-kit/tree/1.4-release/sys-apps/bat) from dev-kit.
|
||||
|
||||
```bash
|
||||
emerge sys-apps/bat
|
||||
```
|
||||
|
||||
### On Gentoo Linux
|
||||
|
||||
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
||||
from the official sources:
|
||||
|
||||
```bash
|
||||
emerge sys-apps/bat
|
||||
```
|
||||
|
||||
### On Void Linux
|
||||
|
||||
You can install `bat` via xbps-install:
|
||||
```
|
||||
```bash
|
||||
xbps-install -S bat
|
||||
```
|
||||
|
||||
### On Termux
|
||||
|
||||
You can install `bat` via pkg:
|
||||
```bash
|
||||
pkg install bat
|
||||
```
|
||||
|
||||
### On FreeBSD
|
||||
|
||||
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
||||
@@ -116,30 +336,97 @@ cd /usr/ports/textproc/bat
|
||||
make install
|
||||
```
|
||||
|
||||
### On macOS
|
||||
### On OpenBSD
|
||||
|
||||
You can install `bat` with [Homebrew](http://braumeister.org/formula/bat):
|
||||
You can install `bat` package using [`pkg_add(1)`](https://man.openbsd.org/pkg_add.1):
|
||||
|
||||
```bash
|
||||
pkg_add bat
|
||||
```
|
||||
|
||||
### Via nix
|
||||
|
||||
You can install `bat` using the [nix package manager](https://nixos.org/nix):
|
||||
|
||||
```bash
|
||||
nix-env -i bat
|
||||
```
|
||||
|
||||
### On openSUSE
|
||||
|
||||
You can install `bat` with zypper:
|
||||
|
||||
```bash
|
||||
zypper install bat
|
||||
```
|
||||
|
||||
### Via snap package
|
||||
|
||||
There is currently no recommended snap package available.
|
||||
Existing packages may be available, but are not officially supported and may contain [issues](https://github.com/sharkdp/bat/issues/1519).
|
||||
|
||||
### On macOS (or Linux) via Homebrew
|
||||
|
||||
You can install `bat` with [Homebrew on MacOS](https://formulae.brew.sh/formula/bat) or [Homebrew on Linux](https://formulae.brew.sh/formula-linux/bat):
|
||||
|
||||
```bash
|
||||
brew install bat
|
||||
```
|
||||
|
||||
### On macOS via MacPorts
|
||||
|
||||
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
||||
|
||||
```bash
|
||||
port install bat
|
||||
```
|
||||
|
||||
### On Windows
|
||||
|
||||
There are a few options to install `bat` on Windows. Once you have installed `bat`,
|
||||
take a look at the ["Using `bat` on Windows"](#using-bat-on-windows) section.
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
#### With Chocolatey
|
||||
|
||||
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
||||
```bash
|
||||
choco install bat
|
||||
```
|
||||
|
||||
#### With Scoop
|
||||
|
||||
You can install `bat` via [scoop](https://scoop.sh/):
|
||||
```bash
|
||||
scoop install bat
|
||||
```
|
||||
|
||||
#### From prebuilt binaries:
|
||||
|
||||
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
||||
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
### From binaries
|
||||
|
||||
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
||||
prebuilt versions of `bat` for many different architectures.
|
||||
prebuilt versions of `bat` for many different architectures. Statically-linked
|
||||
binaries are also available: look for archives with `musl` in the file name.
|
||||
|
||||
### From source
|
||||
|
||||
If you want to build `bat` from source, you need Rust 1.26 or
|
||||
If you want to build `bat` from source, you need Rust 1.51 or
|
||||
higher. You can then use `cargo` to build everything:
|
||||
|
||||
```bash
|
||||
cargo install bat
|
||||
cargo install --locked bat
|
||||
```
|
||||
|
||||
On macOS, you might have to install `cmake` (`brew install cmake`) in order for
|
||||
some dependencies to be built.
|
||||
Note that additional files like the man page or shell completion
|
||||
files can not be installed in this way. They will be generated by `cargo` and should be available in the cargo target folder (under `build`).
|
||||
|
||||
## Customization
|
||||
|
||||
@@ -148,48 +435,90 @@ some dependencies to be built.
|
||||
Use `bat --list-themes` to get a list of all available themes for syntax
|
||||
highlighting. To select the `TwoDark` theme, call `bat` with the
|
||||
`--theme=TwoDark` option or set the `BAT_THEME` environment variable to
|
||||
`TwoDark`. Use `export BAT_THEME="TwoDark"` in your shells startup file to
|
||||
make the change permanent.
|
||||
`TwoDark`. Use `export BAT_THEME="TwoDark"` in your shell's startup file to
|
||||
make the change permanent. Alternatively, use `bat`s
|
||||
[configuration file](https://github.com/sharkdp/bat#configuration-file).
|
||||
|
||||
If you want to preview the different themes on a custom file, you can use
|
||||
the following command (you need [`fzf`](https://github.com/junegunn/fzf) for this):
|
||||
```bash
|
||||
bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"
|
||||
```
|
||||
|
||||
`bat` looks good on a dark background by default. However, if your terminal uses a
|
||||
light background, some themes like `GitHub` or `OneHalfLight` will work better for you.
|
||||
You can also use a custom theme by following the
|
||||
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
||||
|
||||
### 8-bit themes
|
||||
|
||||
`bat` has three themes that always use [8-bit colors](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors),
|
||||
even when truecolor support is available:
|
||||
|
||||
- `ansi` looks decent on any terminal. It uses 3-bit colors: black, red, green,
|
||||
yellow, blue, magenta, cyan, and white.
|
||||
- `base16` is designed for [base16](https://github.com/chriskempson/base16) terminal themes. It uses
|
||||
4-bit colors (3-bit colors plus bright variants) in accordance with the
|
||||
[base16 styling guidelines](https://github.com/chriskempson/base16/blob/master/styling.md).
|
||||
- `base16-256` is designed for [base16-shell](https://github.com/chriskempson/base16-shell).
|
||||
It replaces certain bright colors with 8-bit colors from 16 to 21. **Do not** use this simply
|
||||
because you have a 256-color terminal but are not using base16-shell.
|
||||
|
||||
Although these themes are more restricted, they have three advantages over truecolor themes. They:
|
||||
|
||||
- Enjoy maximum compatibility. Some terminal utilities do not support more than 3-bit colors.
|
||||
- Adapt to terminal theme changes. Even for already printed output.
|
||||
- Visually harmonize better with other terminal software.
|
||||
|
||||
### Output style
|
||||
|
||||
You can use the `--style` option to control the appearance of `bat`s output.
|
||||
You can use `--style=numbers,changes`, for example, to show only Git changes
|
||||
and line numbers but no grid and no file header.
|
||||
and line numbers but no grid and no file header. Set the `BAT_STYLE` environment
|
||||
variable to make these changes permanent or use `bat`s
|
||||
[configuration file](https://github.com/sharkdp/bat#configuration-file).
|
||||
|
||||
### Adding new syntaxes / language definitions
|
||||
|
||||
Should you find that a particular syntax is not available within `bat`, you can follow these
|
||||
instructions to easily add new syntaxes to your current `bat` installation.
|
||||
|
||||
`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/)
|
||||
library for syntax highlighting. `syntect` can read any
|
||||
[Sublime Text `.sublime-syntax` file](https://www.sublimetext.com/docs/3/syntax.html)
|
||||
and theme. To add new syntax definitions, do the following.
|
||||
and theme.
|
||||
|
||||
Create a folder with syntax definition files:
|
||||
A good resource for finding Sublime Syntax packages is [Package Control](https://packagecontrol.io/). Once you found a
|
||||
syntax:
|
||||
|
||||
```bash
|
||||
BAT_CONFIG_DIR="$(bat cache --config-dir)"
|
||||
1. Create a folder with syntax definition files:
|
||||
|
||||
mkdir -p "$BAT_CONFIG_DIR/syntaxes"
|
||||
cd "$BAT_CONFIG_DIR/syntaxes"
|
||||
```bash
|
||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||
cd "$(bat --config-dir)/syntaxes"
|
||||
|
||||
# Put new '.sublime-syntax' language definition files
|
||||
# in this folder (or its subdirectories), for example:
|
||||
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||
```
|
||||
# Put new '.sublime-syntax' language definition files
|
||||
# in this folder (or its subdirectories), for example:
|
||||
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||
```
|
||||
|
||||
Now use the following command to parse these files into a binary cache:
|
||||
2. Now use the following command to parse these files into a binary cache:
|
||||
|
||||
```bash
|
||||
bat cache --init
|
||||
```
|
||||
```bash
|
||||
bat cache --build
|
||||
```
|
||||
|
||||
Finally, use `bat --list-languages` to check if the new languages are available.
|
||||
3. Finally, use `bat --list-languages` to check if the new languages are available.
|
||||
|
||||
If you ever want to go back to the default settings, call:
|
||||
If you ever want to go back to the default settings, call:
|
||||
|
||||
```bash
|
||||
bat cache --clear
|
||||
```
|
||||
```bash
|
||||
bat cache --clear
|
||||
```
|
||||
|
||||
4. If you think that a specific syntax should be included in `bat` by default, please
|
||||
consider opening a "syntax request" ticket after reading the policies and
|
||||
instructions [here](doc/assets.md): [Open Syntax Request](https://github.com/sharkdp/bat/issues/new?labels=syntax-request&template=syntax_request.md).
|
||||
|
||||
### Adding new themes
|
||||
|
||||
@@ -197,41 +526,199 @@ This works very similar to how we add new syntax definitions.
|
||||
|
||||
First, create a folder with the new syntax highlighting themes:
|
||||
```bash
|
||||
BAT_CONFIG_DIR="$(bat cache --config-dir)"
|
||||
|
||||
mkdir -p "$BAT_CONFIG_DIR/themes"
|
||||
cd "$BAT_CONFIG_DIR/themes"
|
||||
mkdir -p "$(bat --config-dir)/themes"
|
||||
cd "$(bat --config-dir)/themes"
|
||||
|
||||
# Download a theme in '.tmTheme' format, for example:
|
||||
git clone https://github.com/greggb/sublime-snazzy
|
||||
|
||||
# Update the binary cache
|
||||
bat cache --init
|
||||
bat cache --build
|
||||
```
|
||||
|
||||
Finally, use `bat --list-themes` to check if the new themes are available.
|
||||
|
||||
### Adding or changing file type associations
|
||||
|
||||
You can add new (or change existing) file name patterns using the `--map-syntax`
|
||||
command line option. The option takes an argument of the form `pattern:syntax` where
|
||||
`pattern` is a glob pattern that is matched against the file name and
|
||||
the absolute file path. The `syntax` part is the full name of a supported language
|
||||
(use `bat --list-languages` for an overview).
|
||||
|
||||
**Note:** You probably want to use this option as [an entry in `bat`'s configuration file](#configuration-file)
|
||||
for persistence instead of passing it on the command line as a one-off. Generally
|
||||
you'd just use `-l` if you want to manually specify a language for a file.
|
||||
|
||||
Example: To use "INI" syntax highlighting for all files with a `.conf` file extension, use
|
||||
```bash
|
||||
--map-syntax='*.conf:INI'
|
||||
```
|
||||
|
||||
Example: To open all files called `.ignore` (exact match) with the "Git Ignore" syntax, use:
|
||||
```bash
|
||||
--map-syntax='.ignore:Git Ignore'
|
||||
```
|
||||
|
||||
Example: To open all `.conf` files in subfolders of `/etc/apache2` with the "Apache Conf"
|
||||
syntax, use (this mapping is already built in):
|
||||
```bash
|
||||
--map-syntax='/etc/apache2/**/*.conf:Apache Conf'
|
||||
```
|
||||
|
||||
### Using a different pager
|
||||
|
||||
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
||||
set, `less` is used by default. If you want to use a different pager, you can either modify the
|
||||
`PAGER` variable or set the `BAT_PAGER` environment variable to override what is specified in
|
||||
`PAGER`. If you want to pass command-line arguments to the pager, you need to create a small shell
|
||||
script as a wrapper, for example:
|
||||
`PAGER`.
|
||||
|
||||
**Note**: If `PAGER` is `more` or `most`, `bat` will silently use `less` instead to ensure support for colors.
|
||||
|
||||
If you want to pass command-line arguments to the pager, you can also set them via the
|
||||
`PAGER`/`BAT_PAGER` variables:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
export BAT_PAGER="less -RF"
|
||||
```
|
||||
|
||||
less --tabs 4 -RF "$@"
|
||||
Instead of using environment variables, you can also use `bat`s [configuration file](https://github.com/sharkdp/bat#configuration-file) to configure the pager (`--pager` option).
|
||||
|
||||
**Note**: By default, if the pager is set to `less` (and no command-line options are specified),
|
||||
`bat` will pass the following command line options to the pager: `-R`/`--RAW-CONTROL-CHARS`,
|
||||
`-F`/`--quit-if-one-screen` and `-X`/`--no-init`. The last option (`-X`) is only used for `less`
|
||||
versions older than 530.
|
||||
|
||||
The `-R` option is needed to interpret ANSI colors correctly. The second option (`-F`) instructs
|
||||
less to exit immediately if the output size is smaller than the vertical size of the terminal.
|
||||
This is convenient for small files because you do not have to press `q` to quit the pager. The
|
||||
third option (`-X`) is needed to fix a bug with the `--quit-if-one-screen` feature in old versions
|
||||
of `less`. Unfortunately, it also breaks mouse-wheel support in `less`.
|
||||
|
||||
If you want to enable mouse-wheel scrolling on older versions of `less`, you can pass just `-R` (as
|
||||
in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer,
|
||||
it should work out of the box.
|
||||
|
||||
### Indentation
|
||||
|
||||
`bat` expands tabs to 4 spaces by itself, not relying on the pager. To change this, simply add the
|
||||
`--tabs` argument with the number of spaces you want to be displayed.
|
||||
|
||||
**Note**: Defining tab stops for the pager (via the `--pager` argument by `bat`, or via the `LESS`
|
||||
environment variable for `less`) won't be taken into account because the pager will already get
|
||||
expanded spaces instead of tabs. This behaviour is added to avoid indentation issues caused by the
|
||||
sidebar. Calling `bat` with `--tabs=0` will override it and let tabs be consumed by the pager.
|
||||
|
||||
### Dark mode
|
||||
|
||||
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
||||
theme based on the OS theme. The following snippet uses the `default` theme when in the _dark mode_
|
||||
and the `GitHub` theme when in the _light mode_.
|
||||
|
||||
```bash
|
||||
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
||||
```
|
||||
|
||||
|
||||
## Configuration file
|
||||
|
||||
`bat` can also be customized with a configuration file. The location of the file is dependent
|
||||
on your operating system. To get the default path for your system, call
|
||||
```bash
|
||||
bat --config-file
|
||||
```
|
||||
|
||||
Alternatively, you can use the `BAT_CONFIG_PATH` environment variable to point `bat` to a
|
||||
non-default location of the configuration file:
|
||||
```bash
|
||||
export BAT_CONFIG_PATH="/path/to/bat.conf"
|
||||
```
|
||||
|
||||
A default configuration file can be created with the `--generate-config-file` option.
|
||||
```bash
|
||||
bat --generate-config-file
|
||||
```
|
||||
|
||||
### Format
|
||||
|
||||
The configuration file is a simple list of command line arguments. Use `bat --help` to see a full list of possible options and values. In addition, you can add comments by prepending a line with the `#` character.
|
||||
|
||||
Example configuration file:
|
||||
```bash
|
||||
# Set the theme to "TwoDark"
|
||||
--theme="TwoDark"
|
||||
|
||||
# Show line numbers, Git modifications and file header (but no grid)
|
||||
--style="numbers,changes,header"
|
||||
|
||||
# Use italic text on the terminal (not supported on all terminals)
|
||||
--italic-text=always
|
||||
|
||||
# Use C++ syntax for Arduino .ino files
|
||||
--map-syntax "*.ino:C++"
|
||||
```
|
||||
|
||||
## Using `bat` on Windows
|
||||
|
||||
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
### Paging
|
||||
|
||||
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
||||
for `less` [from its homepage](http://www.greenwoodsoftware.com/less/download.html) or [through
|
||||
Chocolatey](https://chocolatey.org/packages/Less). To use it, place the binary in a directory in
|
||||
your `PATH` or [define an environment variable](#using-a-different-pager). The [Chocolatey package](#on-windows) installs `less` automatically.
|
||||
|
||||
### Colors
|
||||
|
||||
Windows 10 natively supports colors in both `conhost.exe` (Command Prompt) and PowerShell since
|
||||
[v1511](https://en.wikipedia.org/wiki/Windows_10_version_history#Version_1511_(November_Update)), as
|
||||
well as in newer versions of bash. On earlier versions of Windows, you can use
|
||||
[Cmder](http://cmder.net/), which includes [ConEmu](https://conemu.github.io/).
|
||||
|
||||
**Note:** The Git and MSYS versions of `less` do not correctly interpret colors on Windows. If you
|
||||
don’t have any other pagers installed, you can disable paging entirely by passing `--paging=never`
|
||||
or by setting `BAT_PAGER` to an empty string.
|
||||
|
||||
### Cygwin
|
||||
|
||||
`bat` on Windows does not natively support Cygwin's unix-style paths (`/cygdrive/*`). When passed an absolute cygwin path as an argument, `bat` will encounter the following error: `The system cannot find the path specified. (os error 3)`
|
||||
|
||||
This can be solved by creating a wrapper or adding the following function to your `.bash_profile` file:
|
||||
|
||||
```bash
|
||||
bat() {
|
||||
local index
|
||||
local args=("$@")
|
||||
for index in $(seq 0 ${#args[@]}) ; do
|
||||
case "${args[index]}" in
|
||||
-*) continue;;
|
||||
*) [ -e "${args[index]}" ] && args[index]="$(cygpath --windows "${args[index]}")";;
|
||||
esac
|
||||
done
|
||||
command bat "${args[@]}"
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Garbled output
|
||||
|
||||
If an input file contains color codes or other ANSI escape sequences or control characters, `bat` will have problems
|
||||
performing syntax highlighting and text wrapping, and thus the output can become garbled.
|
||||
When displaying such files it is recommended to disable both syntax highlighting and wrapping by
|
||||
passing the `--color=never --wrap=never` options to `bat`.
|
||||
|
||||
### Terminals & colors
|
||||
|
||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in the syntax
|
||||
highlighting themes are not optimized for 8-bit colors and it is therefore strongly recommended
|
||||
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...).
|
||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
||||
highlighting themes are not optimized for 8-bit colors. It is therefore strongly recommended
|
||||
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...),
|
||||
or use one of the basic [8-bit themes](#8-bit-themes) designed for a restricted set of colors.
|
||||
See [this article](https://gist.github.com/XVilka/8346728) for more details and a full list of
|
||||
terminals with truecolor support.
|
||||
|
||||
@@ -239,6 +726,23 @@ Make sure that your truecolor terminal sets the `COLORTERM` variable to either `
|
||||
`24bit`. Otherwise, `bat` will not be able to determine whether or not 24-bit escape sequences
|
||||
are supported (and fall back to 8-bit colors).
|
||||
|
||||
### Line numbers and grid are hardly visible
|
||||
|
||||
Please try a different theme (see `bat --list-themes` for a list). The `OneHalfDark` and
|
||||
`OneHalfLight` themes provide grid and line colors that are brighter.
|
||||
|
||||
### File encodings
|
||||
|
||||
`bat` natively supports UTF-8 as well as UTF-16. For every other file encoding, you may need to
|
||||
convert to UTF-8 first because the encodings can typically not be auto-detected. You can `iconv`
|
||||
to do so.
|
||||
Example: if you have a PHP file in Latin-1 (ISO-8859-1) encoding, you can call:
|
||||
``` bash
|
||||
iconv -f ISO-8859-1 -t UTF-8 my-file.php | bat
|
||||
```
|
||||
Note: you might have to use the `-l`/`--language` option if the syntax can not be auto-detected
|
||||
by `bat`.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
@@ -247,19 +751,39 @@ git clone --recursive https://github.com/sharkdp/bat
|
||||
|
||||
# Build (debug version)
|
||||
cd bat
|
||||
cargo build
|
||||
cargo build --bins
|
||||
|
||||
# Run unit tests and integration tests
|
||||
cargo test
|
||||
|
||||
# Install (release version)
|
||||
cargo install
|
||||
cargo install --path . --locked
|
||||
|
||||
# Build a bat binary with modified syntaxes and themes
|
||||
bash assets/create.sh
|
||||
cargo install -f
|
||||
cargo install --path . --locked --force
|
||||
```
|
||||
|
||||
If you want to build an application that uses `bat`s pretty-printing
|
||||
features as a library, check out the [the API documentation](https://docs.rs/bat/).
|
||||
Note that you have to use either `regex-onig` or `regex-fancy` as a feature
|
||||
when you depend on `bat` as a library.
|
||||
|
||||
## Contributing
|
||||
|
||||
Take a look at the [`CONTRIBUTING.md`](CONTRIBUTING.md) guide.
|
||||
|
||||
## Maintainers
|
||||
|
||||
- [sharkdp](https://github.com/sharkdp)
|
||||
- [eth-p](https://github.com/eth-p)
|
||||
- [keith-hall](https://github.com/keith-hall)
|
||||
- [Enselic](https://github.com/Enselic)
|
||||
|
||||
## Security vulnerabilities
|
||||
|
||||
Please contact [David Peter](https://david-peter.de/) via email if you want to report a vulnerability in `bat`.
|
||||
|
||||
## Project goals and alternatives
|
||||
|
||||
`bat` tries to achieve the following goals:
|
||||
@@ -271,3 +795,10 @@ cargo install -f
|
||||
|
||||
There are a lot of alternatives, if you are looking for similar programs. See
|
||||
[this document](doc/alternatives.md) for a comparison.
|
||||
|
||||
## License
|
||||
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
||||
|
||||
`bat` is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
|
||||
|
||||
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.
|
||||
|
1
assets/.gitattributes
vendored
Normal file
1
assets/.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* linguist-vendored
|
31
assets/README.md
vendored
31
assets/README.md
vendored
@@ -1,31 +0,0 @@
|
||||
## Syntax Highlighting in bat
|
||||
|
||||
`bat` uses the [syntect](https://github.com/trishume/syntect) library to highlight source
|
||||
code. As a basis, syntect uses [Sublime Text](https://www.sublimetext.com/) syntax definitions
|
||||
in the `.sublime-syntax` format.
|
||||
|
||||
In order to add new syntaxes to `bat`, follow these steps:
|
||||
|
||||
1. Find a Sublime Text syntax for the given language, preferably in a separate Git repository
|
||||
which can be included as a submodule (under `assets/syntaxes`).
|
||||
|
||||
2. If the Sublime Text syntax is only available as a `.tmLanguage` file, open the file in
|
||||
Sublime Text and convert it to a `.sublime-syntax` file via *Tools* -> *Developer* ->
|
||||
*New Syntax from XXX.tmLanguage...*. Save the new file in the `assets/syntaxes` folder.
|
||||
|
||||
3. Run the `create.sh` script. It calls `bat cache --init` to parse all available
|
||||
`.sublime-syntax` files and serialize them to a `syntaxes.bin` file (in this folder).
|
||||
|
||||
4. Re-compile `bat`. At compilation time, the `syntaxes.bin` file will be stored inside the
|
||||
`bat` binary.
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
Make sure that the local cache does not interfere with the internally stored syntaxes and
|
||||
themes (`bat cache --clear`).
|
||||
|
||||
### Manual modifications
|
||||
|
||||
The following files have been manually modified after converting from a `.tmLanguage` file:
|
||||
|
||||
* `VimL.sublime-syntax` => added `.vimrc` file type.
|
BIN
assets/acknowledgements.bin
vendored
Normal file
BIN
assets/acknowledgements.bin
vendored
Normal file
Binary file not shown.
92
assets/completions/_bat.ps1.in
vendored
Normal file
92
assets/completions/_bat.ps1.in
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
|
||||
using namespace System.Management.Automation
|
||||
using namespace System.Management.Automation.Language
|
||||
|
||||
Register-ArgumentCompleter -Native -CommandName '{{PROJECT_EXECUTABLE}}' -ScriptBlock {
|
||||
param($wordToComplete, $commandAst, $cursorPosition)
|
||||
|
||||
$commandElements = $commandAst.CommandElements
|
||||
$command = @(
|
||||
'{{PROJECT_EXECUTABLE}}'
|
||||
for ($i = 1; $i -lt $commandElements.Count; $i++) {
|
||||
$element = $commandElements[$i]
|
||||
if ($element -isnot [StringConstantExpressionAst] -or
|
||||
$element.StringConstantType -ne [StringConstantType]::BareWord -or
|
||||
$element.Value.StartsWith('-')) {
|
||||
break
|
||||
}
|
||||
$element.Value
|
||||
}) -join ';'
|
||||
|
||||
$completions = @(switch ($command) {
|
||||
'{{PROJECT_EXECUTABLE}}' {
|
||||
[CompletionResult]::new('-l', 'l', [CompletionResultType]::ParameterName, 'Set the language for syntax highlighting.')
|
||||
[CompletionResult]::new('--language', 'language', [CompletionResultType]::ParameterName, 'Set the language for syntax highlighting.')
|
||||
[CompletionResult]::new('-H', 'H', [CompletionResultType]::ParameterName, 'Highlight lines N through M.')
|
||||
[CompletionResult]::new('--highlight-line', 'highlight-line', [CompletionResultType]::ParameterName, 'Highlight lines N through M.')
|
||||
[CompletionResult]::new('--file-name', 'file-name', [CompletionResultType]::ParameterName, 'Specify the name to display for a file.')
|
||||
[CompletionResult]::new('--diff-context', 'diff-context', [CompletionResultType]::ParameterName, 'diff-context')
|
||||
[CompletionResult]::new('--tabs', 'tabs', [CompletionResultType]::ParameterName, 'Set the tab width to T spaces.')
|
||||
[CompletionResult]::new('--wrap', 'wrap', [CompletionResultType]::ParameterName, 'Specify the text-wrapping mode (*auto*, never, character).')
|
||||
[CompletionResult]::new('--terminal-width', 'terminal-width', [CompletionResultType]::ParameterName, 'Explicitly set the width of the terminal instead of determining it automatically. If prefixed with ''+'' or ''-'', the value will be treated as an offset to the actual terminal width. See also: ''--wrap''.')
|
||||
[CompletionResult]::new('--color', 'color', [CompletionResultType]::ParameterName, 'When to use colors (*auto*, never, always).')
|
||||
[CompletionResult]::new('--italic-text', 'italic-text', [CompletionResultType]::ParameterName, 'Use italics in output (always, *never*)')
|
||||
[CompletionResult]::new('--decorations', 'decorations', [CompletionResultType]::ParameterName, 'When to show the decorations (*auto*, never, always).')
|
||||
[CompletionResult]::new('--paging', 'paging', [CompletionResultType]::ParameterName, 'Specify when to use the pager, or use `-P` to disable (*auto*, never, always).')
|
||||
[CompletionResult]::new('--pager', 'pager', [CompletionResultType]::ParameterName, 'Determine which pager to use.')
|
||||
[CompletionResult]::new('-m', 'm', [CompletionResultType]::ParameterName, 'Use the specified syntax for files matching the glob pattern (''*.cpp:C++'').')
|
||||
[CompletionResult]::new('--map-syntax', 'map-syntax', [CompletionResultType]::ParameterName, 'Use the specified syntax for files matching the glob pattern (''*.cpp:C++'').')
|
||||
[CompletionResult]::new('--theme', 'theme', [CompletionResultType]::ParameterName, 'Set the color theme for syntax highlighting.')
|
||||
[CompletionResult]::new('--style', 'style', [CompletionResultType]::ParameterName, 'Comma-separated list of style elements to display (*default*, auto, full, plain, changes, header, header-filename, header-filesize, grid, rule, numbers, snip).')
|
||||
[CompletionResult]::new('-r', 'r', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
||||
[CompletionResult]::new('--line-range', 'line-range', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
||||
[CompletionResult]::new('-A', 'A', [CompletionResultType]::ParameterName, 'Show non-printable characters (space, tab, newline, ..).')
|
||||
[CompletionResult]::new('--show-all', 'show-all', [CompletionResultType]::ParameterName, 'Show non-printable characters (space, tab, newline, ..).')
|
||||
[CompletionResult]::new('-p', 'p', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
||||
[CompletionResult]::new('--plain', 'plain', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
||||
[CompletionResult]::new('-d', 'd', [CompletionResultType]::ParameterName, 'Only show lines that have been added/removed/modified.')
|
||||
[CompletionResult]::new('--diff', 'diff', [CompletionResultType]::ParameterName, 'Only show lines that have been added/removed/modified.')
|
||||
[CompletionResult]::new('-n', 'n', [CompletionResultType]::ParameterName, 'Show line numbers (alias for ''--style=numbers'').')
|
||||
[CompletionResult]::new('--number', 'number', [CompletionResultType]::ParameterName, 'Show line numbers (alias for ''--style=numbers'').')
|
||||
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'f')
|
||||
[CompletionResult]::new('--force-colorization', 'force-colorization', [CompletionResultType]::ParameterName, 'force-colorization')
|
||||
[CompletionResult]::new('-P', 'P', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
||||
[CompletionResult]::new('--no-paging', 'no-paging', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
||||
[CompletionResult]::new('--list-themes', 'list-themes', [CompletionResultType]::ParameterName, 'Display all supported highlighting themes.')
|
||||
[CompletionResult]::new('-L', 'L', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
||||
[CompletionResult]::new('--list-languages', 'list-languages', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
||||
[CompletionResult]::new('-u', 'u', [CompletionResultType]::ParameterName, 'u')
|
||||
[CompletionResult]::new('--unbuffered', 'unbuffered', [CompletionResultType]::ParameterName, 'unbuffered')
|
||||
[CompletionResult]::new('--no-config', 'no-config', [CompletionResultType]::ParameterName, 'Do not use the configuration file')
|
||||
[CompletionResult]::new('--no-custom-assets', 'no-custom-assets', [CompletionResultType]::ParameterName, 'Do not load custom assets')
|
||||
[CompletionResult]::new('--config-file', 'config-file', [CompletionResultType]::ParameterName, 'Show path to the configuration file.')
|
||||
[CompletionResult]::new('--generate-config-file', 'generate-config-file', [CompletionResultType]::ParameterName, 'Generates a default configuration file.')
|
||||
[CompletionResult]::new('--config-dir', 'config-dir', [CompletionResultType]::ParameterName, 'Show bat''s configuration directory.')
|
||||
[CompletionResult]::new('--cache-dir', 'cache-dir', [CompletionResultType]::ParameterName, 'Show bat''s cache directory.')
|
||||
[CompletionResult]::new('--diagnostic', 'diagnostic', [CompletionResultType]::ParameterName, 'Show diagnostic information for bug reports.')
|
||||
[CompletionResult]::new('-h', 'h', [CompletionResultType]::ParameterName, 'Print this help message.')
|
||||
[CompletionResult]::new('--help', 'help', [CompletionResultType]::ParameterName, 'Print this help message.')
|
||||
[CompletionResult]::new('-V', 'V', [CompletionResultType]::ParameterName, 'Show version information.')
|
||||
[CompletionResult]::new('--version', 'version', [CompletionResultType]::ParameterName, 'Show version information.')
|
||||
[CompletionResult]::new('cache', 'cache', [CompletionResultType]::ParameterValue, 'Modify the syntax-definition and theme cache')
|
||||
break
|
||||
}
|
||||
'{{PROJECT_EXECUTABLE}};cache' {
|
||||
[CompletionResult]::new('--source', 'source', [CompletionResultType]::ParameterName, 'Use a different directory to load syntaxes and themes from.')
|
||||
[CompletionResult]::new('--target', 'target', [CompletionResultType]::ParameterName, 'Use a different directory to store the cached syntax and theme set.')
|
||||
[CompletionResult]::new('-b', 'b', [CompletionResultType]::ParameterName, 'Initialize (or update) the syntax/theme cache.')
|
||||
[CompletionResult]::new('--build', 'build', [CompletionResultType]::ParameterName, 'Initialize (or update) the syntax/theme cache.')
|
||||
[CompletionResult]::new('-c', 'c', [CompletionResultType]::ParameterName, 'Remove the cached syntax definitions and themes.')
|
||||
[CompletionResult]::new('--clear', 'clear', [CompletionResultType]::ParameterName, 'Remove the cached syntax definitions and themes.')
|
||||
[CompletionResult]::new('--blank', 'blank', [CompletionResultType]::ParameterName, 'Create completely new syntax and theme sets (instead of appending to the default sets).')
|
||||
[CompletionResult]::new('-h', 'h', [CompletionResultType]::ParameterName, 'Prints help information')
|
||||
[CompletionResult]::new('--help', 'help', [CompletionResultType]::ParameterName, 'Prints help information')
|
||||
[CompletionResult]::new('-V', 'V', [CompletionResultType]::ParameterName, 'Prints version information')
|
||||
[CompletionResult]::new('--version', 'version', [CompletionResultType]::ParameterName, 'Prints version information')
|
||||
break
|
||||
}
|
||||
})
|
||||
|
||||
$completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
|
||||
Sort-Object -Property ListItemText
|
||||
}
|
101
assets/completions/bat.bash.in
vendored
Normal file
101
assets/completions/bat.bash.in
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
# shellcheck disable=SC2207
|
||||
|
||||
# Requires https://github.com/scop/bash-completion
|
||||
|
||||
# Macs have bash3 for which the bash-completion package doesn't include
|
||||
# _init_completion. This is a minimal version of that function.
|
||||
__bat_init_completion()
|
||||
{
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref "$@" cur prev words cword
|
||||
}
|
||||
|
||||
_bat() {
|
||||
local cur prev words cword split=false
|
||||
if declare -F _init_completion >/dev/null 2>&1; then
|
||||
_init_completion -s || return 0
|
||||
else
|
||||
__bat_init_completion -n "=" || return 0
|
||||
_split_longopt && split=true
|
||||
fi
|
||||
|
||||
if [[ ${words[1]-} == cache ]]; then
|
||||
case $prev in
|
||||
--source | --target)
|
||||
_filedir -d
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
COMPREPLY=($(compgen -W "
|
||||
--build --clear --source --target --blank --help
|
||||
" -- "$cur"))
|
||||
return 0
|
||||
fi
|
||||
|
||||
case $prev in
|
||||
-l | --language)
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=($(compgen -W "$(
|
||||
"$1" --list-languages | while IFS=: read -r lang _; do
|
||||
printf "%s\n" "$lang"
|
||||
done
|
||||
)" -- "$cur"))
|
||||
compopt -o filenames # for escaping
|
||||
return 0
|
||||
;;
|
||||
-H | --highlight-line | --diff-context | --tabs | --terminal-width | \
|
||||
-m | --map-syntax | --style | --line-range | -h | --help | -V | \
|
||||
--version | --diagnostic | --config-file | --config-dir | \
|
||||
--cache-dir | --generate-config-file)
|
||||
# argument required but no completion available, or option
|
||||
# causes an exit
|
||||
return 0
|
||||
;;
|
||||
--file-name)
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
--wrap)
|
||||
COMPREPLY=($(compgen -W "auto never character" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--color | --decorations | --paging)
|
||||
COMPREPLY=($(compgen -W "auto never always" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--italic-text)
|
||||
COMPREPLY=($(compgen -W "always never" -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--pager)
|
||||
COMPREPLY=($(compgen -c -- "$cur"))
|
||||
return 0
|
||||
;;
|
||||
--theme)
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=($(compgen -W "$("$1" --list-themes)" -- "$cur"))
|
||||
compopt -o filenames # for escaping
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
$split && return 0
|
||||
|
||||
if [[ $cur == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "
|
||||
--show-all --plain --language --highlight-line
|
||||
--file-name --diff --diff-context --tabs --wrap
|
||||
--terminal-width --number --color --italic-text
|
||||
--decorations --paging --pager --map-syntax --theme
|
||||
--list-themes --style --line-range --list-languages
|
||||
--help --version --force-colorization --unbuffered
|
||||
--diagnostic --config-file --config-dir --cache-dir
|
||||
--generate-config-file
|
||||
" -- "$cur"))
|
||||
return 0
|
||||
fi
|
||||
|
||||
_filedir
|
||||
((cword == 1)) && COMPREPLY+=($(compgen -W cache -- "$cur"))
|
||||
|
||||
} && complete -F _bat {{PROJECT_EXECUTABLE}}
|
78
assets/completions/bat.fish.in
vendored
Normal file
78
assets/completions/bat.fish.in
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
# Fish Shell Completions
|
||||
# Place or symlink to $XDG_CONFIG_HOME/fish/completions/{{PROJECT_EXECUTABLE}}.fish ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||
|
||||
# Helper function:
|
||||
function __{{PROJECT_EXECUTABLE}}_autocomplete_languages --description "A helper function used by "(status filename)
|
||||
{{PROJECT_EXECUTABLE}} --list-languages | awk -F':' '
|
||||
{
|
||||
lang=$1
|
||||
split($2, exts, ",")
|
||||
|
||||
for (i in exts) {
|
||||
ext=exts[i]
|
||||
if (ext !~ /[A-Z].*/ && ext !~ /^\..*rc$/) {
|
||||
print ext"\t"lang
|
||||
}
|
||||
}
|
||||
}
|
||||
' | sort
|
||||
end
|
||||
|
||||
# Completions:
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l color -xka "auto never always" -d "Specify when to use colored output (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l config-dir -d "Display location of '{{PROJECT_EXECUTABLE}}' configuration directory" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l config-file -d "Display location of '{{PROJECT_EXECUTABLE}}' configuration file" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l decorations -xka "auto never always" -d "Specify when to use the decorations specified with '--style' (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s h -l help -d "Print help message" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s H -l highlight-line -x -d "<N> Highlight the N-th line with a different background color" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l italic-text -xka "always never" -d "Specify when to use ANSI sequences for italic text (default: never)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s l -l language -d "Set the language for syntax highlighting" -n "not __fish_seen_subcommand_from cache" -xa "(__{{PROJECT_EXECUTABLE}}_autocomplete_languages)"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s r -l line-range -x -d "<N:M> Only print the specified range of lines for each file" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l list-languages -d "Display list of supported languages for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l list-themes -d "Display a list of supported themes for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s m -l map-syntax -x -d "<from:to> Map a file extension or file name to an existing syntax" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s n -l number -d "Only show line numbers, no other decorations. Alias for '--style=numbers'" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l pager -x -d "<command> Specify which pager program to use (default: less)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l paging -xka "auto never always" -d "Specify when to use the pager (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s p -l plain -d "Only show plain style, no decorations. Alias for '--style=plain'" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s P -d "Disable paging. Alias for '--paging=never'" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l style -xka "default auto full plain changes header header-filename header-filesize grid rule numbers snip" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l tabs -x -d "<T> Set the tab width to T spaces (width of 0 passes tabs through directly)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l terminal-width -x -d "<width> Explicitly set terminal width; Prefix with '+' or '-' to offset (default width is auto determined)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l theme -xka "({{PROJECT_EXECUTABLE}} --list-themes | cat)" -d "Set the theme for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s u -l unbuffered -d "POSIX-compliant unbuffered output. Option is ignored" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -s V -l version -d "Show version information" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l wrap -xka "auto never character" -d "<mode> Specify the text-wrapping mode (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
# Sub-command 'cache' completions
|
||||
complete -c {{PROJECT_EXECUTABLE}} -a "cache" -d "Modify the syntax/language definition cache" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l build -f -d "Parse syntaxes/language definitions into cache" -n "__fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c {{PROJECT_EXECUTABLE}} -l clear -f -d "Reset syntaxes/language definitions to default settings" -n "__fish_seen_subcommand_from cache"
|
99
assets/completions/bat.zsh.in
vendored
Normal file
99
assets/completions/bat.zsh.in
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
#compdef {{PROJECT_EXECUTABLE}}
|
||||
|
||||
local context state state_descr line
|
||||
typeset -A opt_args
|
||||
|
||||
(( $+functions[_{{PROJECT_EXECUTABLE}}_cache_subcommand] )) ||
|
||||
_{{PROJECT_EXECUTABLE}}_cache_subcommand() {
|
||||
local -a args
|
||||
args=(
|
||||
'(-b --build -c --clear)'{-b,--build}'[Initialize or update the syntax/theme cache]'
|
||||
'(-b --build -c --clear)'{-c,--clear}'[Remove the cached syntax definitions and themes]'
|
||||
'(--source)'--source='[Use a different directory to load syntaxes and themes from]:directory:_files -/'
|
||||
'(--target)'--target='[Use a different directory to store the cached syntax and theme set]:directory:_files -/'
|
||||
'(--blank)'--blank'[Create completely new syntax and theme sets]'
|
||||
'(: -)'{-h,--help}'[Prints help information]'
|
||||
'*: :'
|
||||
)
|
||||
|
||||
_arguments -S -s $args
|
||||
}
|
||||
|
||||
(( $+functions[_{{PROJECT_EXECUTABLE}}_main] )) ||
|
||||
_{{PROJECT_EXECUTABLE}}_main() {
|
||||
local -a args
|
||||
args=(
|
||||
'(-A --show-all)'{-A,--show-all}'[Show non-printable characters (space, tab, newline, ..)]'
|
||||
'*'{-p,--plain}'[Show plain style (alias for `--style=plain`), repeat twice to disable disable automatic paging (alias for `--paging=never`)]'
|
||||
'(-l --language)'{-l+,--language=}'[Set the language for syntax highlighting]:<language>:->language'
|
||||
'(-H --highlight-line)'{-H,--highlight-line}'[Highlight lines N through M]:<N\:M>...'
|
||||
'(--file-name)'--file-name'[Specify the name to display for a file]:<name>...:_files'
|
||||
'(-d --diff)'--diff'[Only show lines that have been added/removed/modified]'
|
||||
'(--diff-context)'--diff-context'[Include N lines of context around added/removed/modified lines when using `--diff`]:<N> (lines):()'
|
||||
'(--tabs)'--tabs'[Set the tab width to T spaces]:<T> (tab width):()'
|
||||
'(--wrap)'--wrap='[Specify the text-wrapping mode]:<when>:(auto never character)'
|
||||
'(--terminal-width)'--terminal-width'[Explicitly set the width of the terminal instead of determining it automatically]:<width>'
|
||||
'(-n --number)'{-n,--number}'[Show line numbers]'
|
||||
'(--color)'--color='[When to use colors]:<when>:(auto never always)'
|
||||
'(--italic-text)'--italic-text='[Use italics in output]:<when>:(always never)'
|
||||
'(--decorations)'--decorations='[When to show the decorations]:<when>:(auto never always)'
|
||||
'(--paging)'--paging='[Specify when to use the pager]:<when>:(auto never always)'
|
||||
'(-m --map-syntax)'{-m+,--map-syntax=}'[Use the specified syntax for files matching the glob pattern]:<glob\:syntax>...'
|
||||
'(--theme)'--theme='[Set the color theme for syntax highlighting]:<theme>:->theme'
|
||||
'(: --list-themes --list-languages -L)'--list-themes'[Display all supported highlighting themes]'
|
||||
'(--style)'--style='[Comma-separated list of style elements to display]:<components>:->style'
|
||||
'(-r --line-range)'{-r+,--line-range=}'[Only print the lines from N to M]:<N\:M>...'
|
||||
'(: --list-themes --list-languages -L)'{-L,--list-languages}'[Display all supported languages]'
|
||||
'(: --no-config)'--no-config'[Do not use the configuration file]'
|
||||
'(: --no-custom-assets)'--no-custom-assets'[Do not load custom assets]'
|
||||
'(: --config-dir)'--config-dir'[Show bat'"'"'s configuration directory]'
|
||||
'(: --config-file)'--config-file'[Show path to the configuration file]'
|
||||
'(: --generate-config-file)'--generate-config-file'[Generates a default configuration file]'
|
||||
'(: --cache-dir)'--cache-dir'[Show bat'"'"'s cache directory]'
|
||||
'(: -)'{-h,--help}'[Print this help message]'
|
||||
'(: -)'{-V,--version}'[Show version information]'
|
||||
'*: :_files'
|
||||
)
|
||||
|
||||
_arguments -S -s $args
|
||||
|
||||
case "$state" in
|
||||
language)
|
||||
local IFS=$'\n'
|
||||
local -a languages
|
||||
languages=( $({{PROJECT_EXECUTABLE}} --list-languages | awk -F':|,' '{ for (i = 1; i <= NF; ++i) printf("%s:%s\n", $i, $1) }') )
|
||||
|
||||
_describe 'language' languages
|
||||
;;
|
||||
|
||||
theme)
|
||||
local IFS=$'\n'
|
||||
local -a themes
|
||||
themes=( $({{PROJECT_EXECUTABLE}} --list-themes | sort) )
|
||||
|
||||
_values 'theme' $themes
|
||||
;;
|
||||
|
||||
style)
|
||||
_values -s , 'style' default auto full plain changes header header-filename header-filesize grid rule numbers snip
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# first positional argument
|
||||
if (( ${#words} == 2 )); then
|
||||
local -a subcommands
|
||||
subcommands=('cache:Modify the syntax-definition and theme cache')
|
||||
_describe subcommand subcommands
|
||||
_{{PROJECT_EXECUTABLE}}_main
|
||||
else
|
||||
case $words[2] in
|
||||
cache)
|
||||
_{{PROJECT_EXECUTABLE}}_cache_subcommand
|
||||
;;
|
||||
|
||||
*)
|
||||
_{{PROJECT_EXECUTABLE}}_main
|
||||
;;
|
||||
esac
|
||||
fi
|
68
assets/create.sh
vendored
Normal file → Executable file
68
assets/create.sh
vendored
Normal file → Executable file
@@ -1,5 +1,69 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
REPO_DIR="$ASSET_DIR/.."
|
||||
|
||||
bat cache --init --blank --source="$ASSET_DIR" --target="$ASSET_DIR"
|
||||
# Ensure submodules are initialized.
|
||||
update_submodules() {
|
||||
local submodule
|
||||
local submodule_prompt=unspecified
|
||||
local submodule_path
|
||||
|
||||
{
|
||||
while { read -r submodule && read -r submodule_path; } <&3; do
|
||||
if ! [[ -d "${REPO_DIR}/.git/modules/${submodule}" ]] && [[ -d "${REPO_DIR}/${submodule_path}" ]]; then
|
||||
if [[ "$submodule_prompt" = "unspecified" ]]; then
|
||||
echo "One or more submodules were found to be uninitialized."
|
||||
printf "Initialize and update them? [Y/n] "
|
||||
read -r submodule_prompt
|
||||
fi
|
||||
|
||||
case "$submodule_prompt" in
|
||||
y|yes|'') {
|
||||
git -C "$REPO_DIR" submodule update --init "$submodule_path"
|
||||
};;
|
||||
n|no) {
|
||||
return
|
||||
};;
|
||||
*) {
|
||||
echo "Unknown answer. Not updating submodules."
|
||||
};;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
} 3< <(git config --file "${REPO_DIR}/.gitmodules" --null --get-regexp path | xargs -0 printf "%s\n" | sed 's/^submodule.//;s/.path$//')
|
||||
}
|
||||
|
||||
if [ -t 0 ]; then
|
||||
update_submodules
|
||||
fi
|
||||
|
||||
# Always remove the local cache to avoid any confusion
|
||||
bat cache --clear
|
||||
|
||||
# TODO:
|
||||
# - Remove the JavaDoc patch once https://github.com/trishume/syntect/issues/222 has been fixed
|
||||
# - Remove the C# patch once https://github.com/sublimehq/Packages/pull/2331 has been merged
|
||||
|
||||
# Apply patches
|
||||
(
|
||||
cd "$ASSET_DIR"
|
||||
for patch in patches/*.patch; do
|
||||
patch --strip=0 < "$patch"
|
||||
done
|
||||
)
|
||||
|
||||
reverse_patches() {
|
||||
(
|
||||
cd "$ASSET_DIR"
|
||||
for patch in patches/*.patch; do
|
||||
patch --strip=0 --reverse <"$patch"
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
# Make sure to always reverse patches, even if the `bat cache` command fails or aborts
|
||||
trap reverse_patches EXIT
|
||||
|
||||
bat cache --build --blank --acknowledgements --source="$ASSET_DIR" --target="$ASSET_DIR"
|
||||
|
238
assets/manual/bat.1.in
vendored
Normal file
238
assets/manual/bat.1.in
vendored
Normal file
@@ -0,0 +1,238 @@
|
||||
.TH {{PROJECT_EXECUTABLE_UPPERCASE}} "1"
|
||||
.SH NAME
|
||||
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
||||
.SH "USAGE"
|
||||
.IP "{{PROJECT_EXECUTABLE}} [OPTIONS] [FILE]..."
|
||||
.IP "{{PROJECT_EXECUTABLE}} cache [CACHE-OPTIONS] [--build|--clear]
|
||||
.SH DESCRIPTION
|
||||
{{PROJECT_EXECUTABLE}} prints the syntax-highlighted content of a collection of FILEs to the
|
||||
terminal. If no FILE is specified, or when FILE is '-', it reads from standard input.
|
||||
|
||||
{{PROJECT_EXECUTABLE}} supports a large number of programming and markup languages.
|
||||
It also communicates with git(1) to show modifications with respect to the git index.
|
||||
{{PROJECT_EXECUTABLE}} automatically pipes its output through a pager (by default: less).
|
||||
|
||||
Whenever the output of {{PROJECT_EXECUTABLE}} goes to a non-interactive terminal, i.e. when the
|
||||
output is piped into another process or into a file, {{PROJECT_EXECUTABLE}} will act as a drop-in
|
||||
replacement for cat(1) and fall back to printing the plain file contents.
|
||||
|
||||
.SH "OPTIONS"
|
||||
General remarks: Command-line options like '-l'/'--language' that take values can be specified as
|
||||
either '--language value', '--language=value', '-l value' or '-lvalue'.
|
||||
.HP
|
||||
\fB\-A\fR, \fB\-\-show\-all\fR
|
||||
.IP
|
||||
Show non\-printable characters like space, tab or newline. Use '\-\-tabs' to
|
||||
control the width of the tab\-placeholders.
|
||||
.HP
|
||||
\fB\-p\fR, \fB\-\-plain\fR
|
||||
.IP
|
||||
Only show plain style, no decorations. This is an alias for
|
||||
\&'\-\-style=plain'. When '\-p' is used twice ('\-pp'), it also disables
|
||||
automatic paging (alias for '\-\-style=plain \fB\-\-pager\fR=\fI\,never\/\fR').
|
||||
.HP
|
||||
\fB\-l\fR, \fB\-\-language\fR <language>
|
||||
.IP
|
||||
Explicitly set the language for syntax highlighting. The language can be
|
||||
specified as a name (like 'C++' or 'LaTeX') or possible file extension
|
||||
(like 'cpp', 'hpp' or 'md'). Use '\-\-list\-languages' to show all supported
|
||||
language names and file extensions.
|
||||
.HP
|
||||
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
||||
.IP
|
||||
Highlight the specified line ranges with a different background color. For example:
|
||||
.RS
|
||||
.IP "\-\-highlight\-line 40"
|
||||
highlights line 40
|
||||
.IP "\-\-highlight\-line 30:40"
|
||||
highlights lines 30 to 40
|
||||
.IP "\-\-highlight\-line :40"
|
||||
highlights lines 1 to 40
|
||||
.IP "\-\-highlight\-line 40:"
|
||||
highlights lines 40 to the end of the file
|
||||
.IP "\-\-highlight\-line 30:+10"
|
||||
highlights lines 30 to 40
|
||||
.RE
|
||||
.HP
|
||||
\fB\-\-file\-name\fR <name>...
|
||||
.IP
|
||||
Specify the name to display for a file. Useful when piping data to {{PROJECT_EXECUTABLE}} from STDIN when {{PROJECT_EXECUTABLE}} does not otherwise know the filename. Note that the provided file name is also used for syntax detection.
|
||||
.HP
|
||||
\fB\-d\fR, \fB\-\-diff\fR
|
||||
.IP
|
||||
Only show lines that have been added/removed/modified with respect to the Git index. Use '\-\-diff\-context=N' to control how much context you want to see.
|
||||
.HP
|
||||
\fB\-\-diff\-context\fR <N>...
|
||||
.IP
|
||||
Include N lines of context around added/removed/modified lines when using '\-\-diff'.
|
||||
.HP
|
||||
\fB\-\-tabs\fR <T>
|
||||
.IP
|
||||
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
||||
.HP
|
||||
\fB\-\-wrap\fR <mode>
|
||||
.IP
|
||||
Specify the text\-wrapping mode (*auto*, never, character). The '\-\-terminal\-width' option
|
||||
can be used in addition to control the output width.
|
||||
.HP
|
||||
\fB\-\-terminal\-width\fR <width>
|
||||
.IP
|
||||
Explicitly set the width of the terminal instead of determining it automatically. If
|
||||
prefixed with '+' or '\-', the value will be treated as an offset to the actual terminal
|
||||
width. See also: '\-\-wrap'.
|
||||
.HP
|
||||
\fB\-n\fR, \fB\-\-number\fR
|
||||
.IP
|
||||
Only show line numbers, no other decorations. This is an alias for '\-\-style=numbers'
|
||||
.HP
|
||||
\fB\-\-color\fR <when>
|
||||
.IP
|
||||
Specify when to use colored output. The automatic mode only enables colors if an
|
||||
interactive terminal is detected. Possible values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-\-italic\-text\fR <when>
|
||||
.IP
|
||||
Specify when to use ANSI sequences for italic text in the output. Possible values:
|
||||
always, *never*.
|
||||
.HP
|
||||
\fB\-\-decorations\fR <when>
|
||||
.IP
|
||||
Specify when to use the decorations that have been specified via '\-\-style'. The
|
||||
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
||||
values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-f\fR, \fB\-\-force\-colorization\fR
|
||||
.IP
|
||||
Alias for '--decorations=always --color=always'. This is useful \
|
||||
if the output of {{PROJECT_EXECUTABLE}} is piped to another program, but you want \
|
||||
to keep the colorization/decorations.
|
||||
.HP
|
||||
\fB\-\-paging\fR <when>
|
||||
.IP
|
||||
Specify when to use the pager. To disable the pager, use \&'\-\-paging=never' or its alias,
|
||||
\fB-P\fR. To disable the pager permanently, set BAT_PAGER to an empty string. To control
|
||||
which pager is used, see the '\-\-pager' option. Possible values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-\-pager\fR <command>
|
||||
.IP
|
||||
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
||||
environment variables. The default pager is 'less'. To control when the pager is used, see
|
||||
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
||||
|
||||
Note: By default, if the pager is set to 'less' (and no command-line options are specified), 'bat' will pass the following command line options to the pager: '-R'/'--RAW-CONTROL-CHARS', '-F'/'--quit-if-one-screen' and '-X'/'--no-init'. The last option ('-X') is only used for 'less' versions older than 530. The '-R' option is needed to interpret ANSI colors correctly. The second option ('-F') instructs less to exit immediately if the output size is smaller than the vertical size of the terminal. This is convenient for small files because you do not have to press 'q' to quit the pager. The third option ('-X') is needed to fix a bug with the '--quit-if-one-screen' feature in old versions of 'less'. Unfortunately, it also breaks mouse-wheel support in 'less'. If you want to enable mouse-wheel scrolling on older versions of 'less', you can pass just '-R' (as in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer, it should work out of the box.
|
||||
.HP
|
||||
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
||||
.IP
|
||||
Map a glob pattern to an existing syntax name. The glob pattern is matched on the full
|
||||
path and the filename. For example, to highlight *.build files with the Python syntax,
|
||||
use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore
|
||||
syntax, use -m '.myignore:Git Ignore'.
|
||||
Note that the right-hand side is the *name* of the syntax, not a file extension.
|
||||
.HP
|
||||
\fB\-\-theme\fR <theme>
|
||||
.IP
|
||||
Set the theme for syntax highlighting. Use '\-\-list\-themes' to see all available themes.
|
||||
To set a default theme, add the '\-\-theme="..."' option to the configuration file or
|
||||
export the BAT_THEME environment variable (e.g.: export BAT_THEME="...").
|
||||
.HP
|
||||
\fB\-\-list\-themes\fR
|
||||
.IP
|
||||
Display a list of supported themes for syntax highlighting.
|
||||
.HP
|
||||
\fB\-\-style\fR <style\-components>
|
||||
.IP
|
||||
Configure which elements (line numbers, file headers, grid borders, Git modifications,
|
||||
\&..) to display in addition to the file contents. The argument is a comma\-separated list
|
||||
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
||||
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
||||
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
||||
values: *default*, full, auto, plain, changes, header, header-filename, header-filesize, grid,
|
||||
rule, numbers, snip.
|
||||
.HP
|
||||
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
||||
.IP
|
||||
Only print the specified range of lines for each file. For example:
|
||||
.RS
|
||||
.IP "\-\-line\-range 30:40"
|
||||
prints lines 30 to 40
|
||||
.IP "\-\-line\-range :40"
|
||||
prints lines 1 to 40
|
||||
.IP "\-\-line\-range 40:"
|
||||
prints lines 40 to the end of the file
|
||||
.IP "\-\-line\-range 30:+10"
|
||||
prints lines 30 to 40
|
||||
.RE
|
||||
.HP
|
||||
\fB\-L\fR, \fB\-\-list\-languages\fR
|
||||
.IP
|
||||
Display a list of supported languages for syntax highlighting.
|
||||
.HP
|
||||
\fB\-u\fR, \fB\-\-unbuffered\fR
|
||||
.IP
|
||||
This option exists for POSIX\-compliance reasons ('u' is for 'unbuffered'). The output is
|
||||
always unbuffered \- this option is simply ignored.
|
||||
.HP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
.IP
|
||||
Print this help message.
|
||||
.HP
|
||||
\fB\-V\fR, \fB\-\-version\fR
|
||||
.IP
|
||||
Show version information.
|
||||
.SH "POSITIONAL ARGUMENTS"
|
||||
.HP
|
||||
\fB<FILE>...\fR
|
||||
.IP
|
||||
Files to print and concatenate. Use a dash ('\-') or no argument at all to read from
|
||||
standard input.
|
||||
.SH "SUBCOMMANDS"
|
||||
.HP
|
||||
\fBcache\fR - Modify the syntax\-definition and theme cache.
|
||||
.SH "FILES"
|
||||
{{PROJECT_EXECUTABLE}} can also be customized with a configuration file. The location of the file
|
||||
is dependent on your operating system. To get the default path for your system, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
||||
|
||||
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point {{PROJECT_EXECUTABLE}} to a non-default
|
||||
location of the configuration file.
|
||||
|
||||
To generate a default configuration file, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --generate-config-file\fR
|
||||
.SH "ADDING CUSTOM LANGUAGES"
|
||||
{{PROJECT_EXECUTABLE}} supports Sublime Text \fB.sublime-syntax\fR language files, and can be
|
||||
customized to add additional languages to your local installation. To do this, add the \fB.sublime-syntax\fR language
|
||||
files to `\fB$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes\fR` and run `\fB{{PROJECT_EXECUTABLE}} cache --build\fR`.
|
||||
|
||||
\fBExample:\fR
|
||||
|
||||
.RS 0.5i
|
||||
mkdir -p "$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes"
|
||||
.br
|
||||
cd "$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes"
|
||||
|
||||
# Put new '.sublime-syntax' language definition files
|
||||
.br
|
||||
# in this folder (or its subdirectories), for example:
|
||||
.br
|
||||
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||
|
||||
# And then build the cache.
|
||||
.br
|
||||
{{PROJECT_EXECUTABLE}} cache --build
|
||||
.RE
|
||||
|
||||
Once the cache is built, the new language will be visible in `\fB{{PROJECT_EXECUTABLE}} --list-languages\fR`.
|
||||
.br
|
||||
If you ever want to remove the custom languages, you can clear the cache with `\fB{{PROJECT_EXECUTABLE}} cache --clear\fR`.
|
||||
|
||||
.SH "ADDING CUSTOM THEMES"
|
||||
Similarly to custom languages, {{PROJECT_EXECUTABLE}} supports Sublime Text \fB.tmTheme\fR themes.
|
||||
These can be installed to `\fB$({{PROJECT_EXECUTABLE}} --config-dir)/themes\fR`, and are added to the cache with
|
||||
`\fB{{PROJECT_EXECUTABLE}} cache --build`.
|
||||
.SH "MORE INFORMATION"
|
||||
|
||||
For more information and up-to-date documentation, visit the {{PROJECT_EXECUTABLE}} repo:
|
||||
.br
|
||||
\fBhttps://github.com/sharkdp/bat\fR
|
13
assets/patches/C#.sublime-syntax.patch
vendored
Normal file
13
assets/patches/C#.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/01_Packages/C#/C#.sublime-syntax syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
index ed494f8b..01b710e8 100644
|
||||
--- syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
+++ syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
@@ -1312,7 +1312,7 @@ contexts:
|
||||
2: punctuation.separator.cs
|
||||
3: punctuation.section.brackets.end.cs
|
||||
4: keyword.operator.pointer.cs
|
||||
- - match: \((?=(?:[^,)(]*|\([^\)]*\))*,)
|
||||
+ - match: \((?=(?:[^,)(]|\([^\)]*\))*,)
|
||||
scope: punctuation.section.group.begin.cs
|
||||
push:
|
||||
- meta_scope: meta.group.tuple.cs
|
16
assets/patches/Groff.sublime-syntax.patch
vendored
Normal file
16
assets/patches/Groff.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
diff --git syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
index 57834af..6648664 100644
|
||||
--- syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
+++ syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
@@ -4,9 +4,9 @@
|
||||
# - man-pages(7)
|
||||
# - groff(7)
|
||||
---
|
||||
-name: Man Page (groff/troff)
|
||||
+name: Groff/troff
|
||||
scope: text.groff
|
||||
-file_extensions: [man, groff, troff, '1', '2', '3', '4', '5', '6', '7']
|
||||
+file_extensions: [groff, troff, '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||
|
||||
contexts:
|
||||
main:
|
13
assets/patches/JavaDoc.sublime-syntax.patch
vendored
Normal file
13
assets/patches/JavaDoc.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/01_Packages/Java/JavaDoc.sublime-syntax syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
index 422a6a9..40a741e 100644
|
||||
--- syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
@@ -13,7 +13,7 @@ variables:
|
||||
contexts:
|
||||
prototype:
|
||||
# https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html#leadingasterisks
|
||||
- - match: ^\s*(\*)\s*(?!\s*@)
|
||||
+ - match: ^\s*(\*)(?!/)\s*(?!\s*@)
|
||||
captures:
|
||||
1: punctuation.definition.comment.javadoc
|
||||
|
81
assets/patches/Makefile.sublime-syntax.patch
vendored
Normal file
81
assets/patches/Makefile.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
diff --git syntaxes/01_Packages/Makefile/Makefile.sublime-syntax syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
index 3cc3a97e..0c7a3f24 100644
|
||||
--- syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
@@ -44,64 +44,50 @@ variables:
|
||||
# variable substitutions anywhere. We try to remedy this by hacking in a
|
||||
# regex that matches up to four levels of nested parentheses, and ignores
|
||||
# whatever's inside the parentheses.
|
||||
- nps: '[^()]*'
|
||||
- open: '(?:\('
|
||||
- close: '\))?' # ignore this invalid.illegal
|
||||
+ nps_unnested: '[^()]*'
|
||||
+ nps: '[^()]*(?=[()])'
|
||||
+ open: '(?:{{nps}}\('
|
||||
+ close: '\){{nps_unnested}})?' # ignore this invalid.illegal
|
||||
just_eat: | # WARNING: INSANITY FOLLOWS!
|
||||
- (?x) # ignore whitespace in this regex
|
||||
- {{nps}} # level 0
|
||||
+ (?x)(?: # ignore whitespace in this regex
|
||||
{{open}} # start level 1 __
|
||||
- {{nps}} # level 1 _______ /*_>-<
|
||||
{{open}} # start level 2 ___/ _____ \__/ /
|
||||
- {{nps}} # level 2 <____/ \____/
|
||||
{{open}} # start level 3 is like snek... (by Valerie Haecky)
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
+ {{nps}}
|
||||
{{close}} # end level 2
|
||||
- {{nps}} # level 1
|
||||
{{open}} # start level 2
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
+ {{nps}}
|
||||
{{close}} # end level 2
|
||||
- {{nps}} # level 1
|
||||
+ {{nps}}
|
||||
{{close}} # end level 1
|
||||
- {{nps}} # level 0
|
||||
+ |{{nps_unnested}})
|
||||
rule_lookahead: '{{just_eat}}{{ruleassign}}{{just_eat}}'
|
||||
|
||||
var_lookahead_base: '{{just_eat}}({{varassign}}|{{shellassign}}){{just_eat}}'
|
177
assets/patches/Markdown.sublime-syntax.patch
vendored
Normal file
177
assets/patches/Markdown.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,177 @@
|
||||
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
index 19dc685d..44440c7f 100644
|
||||
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
@@ -24,7 +24,6 @@ variables:
|
||||
)
|
||||
[ \t]*$ # followed by any number of tabs or spaces, followed by the end of the line
|
||||
)
|
||||
- setext_escape: ^(?=\s{0,3}(?:---+|===+)\s*$)
|
||||
block_quote: (?:[ ]{,3}>(?:.|$)) # between 0 and 3 spaces, followed by a greater than sign, followed by any character or the end of the line
|
||||
atx_heading: (?:[#]{1,6}\s*) # between 1 and 6 hashes, followed by any amount of whitespace
|
||||
indented_code_block: (?:[ ]{4}|\t) # 4 spaces or a tab
|
||||
@@ -277,69 +276,40 @@ contexts:
|
||||
8: markup.underline.link.markdown
|
||||
push: [link-ref-def, after-link-title, link-title]
|
||||
- match: '^(?=\S)(?![=-]{3,}\s*$)'
|
||||
- branch_point: heading2-branch
|
||||
- branch:
|
||||
- - not-heading2
|
||||
- - heading2
|
||||
-
|
||||
- not-paragraph:
|
||||
- - match: |-
|
||||
- (?x) # pop out of this context when one of the following conditions are met:
|
||||
- ^(?:
|
||||
- \s*$ # the line is blank (or only contains whitespace)
|
||||
- | (?=
|
||||
- {{block_quote}} # a block quote begins the line
|
||||
- | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||
- | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||
- | \# # an ATX heading begins the line
|
||||
- | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||
- {{html_tag_block_end_at_close_tag}} # 1
|
||||
- | !-- # 2
|
||||
- | \? # 3
|
||||
- | ![A-Z] # 4
|
||||
- | !\[CDATA\[ # 5
|
||||
- | {{html_tag_block_end_at_blank_line}} # 6
|
||||
+ push:
|
||||
+ - meta_scope: meta.paragraph.markdown
|
||||
+ - match: |-
|
||||
+ (?x) # pop out of this context when one of the following conditions are met:
|
||||
+ ^(?:
|
||||
+ \s*$ # the line is blank (or only contains whitespace)
|
||||
+ | (?=
|
||||
+ {{block_quote}} # a block quote begins the line
|
||||
+ | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||
+ | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||
+ | \# # an ATX heading begins the line
|
||||
+ | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||
+ {{html_tag_block_end_at_close_tag}} # 1
|
||||
+ | !-- # 2
|
||||
+ | \? # 3
|
||||
+ | ![A-Z] # 4
|
||||
+ | !\[CDATA\[ # 5
|
||||
+ | {{html_tag_block_end_at_blank_line}} # 6
|
||||
+ )
|
||||
)
|
||||
)
|
||||
- )
|
||||
- pop: true
|
||||
-
|
||||
- not-heading2:
|
||||
- - include: not-paragraph
|
||||
- - match: (?=\S)
|
||||
- branch_point: heading1-branch
|
||||
- branch:
|
||||
- - paragraph
|
||||
- - heading1
|
||||
- - match: ''
|
||||
- pop: true
|
||||
-
|
||||
- paragraph:
|
||||
- - meta_scope: meta.paragraph.markdown
|
||||
- - match: ^\s{0,3}===+\s*$
|
||||
- fail: heading1-branch
|
||||
- - match: ^\s{0,3}---+\s*$
|
||||
- fail: heading2-branch
|
||||
- - include: not-paragraph
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - include: scope:text.html.basic
|
||||
-
|
||||
- heading1:
|
||||
- - meta_scope: markup.heading.1.markdown
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - match: '^[ \t]{0,3}(={3,})(?=[ \t]*$)'
|
||||
- captures:
|
||||
- 1: markup.heading.1.setext.markdown punctuation.definition.heading.setext.markdown
|
||||
- pop: true
|
||||
-
|
||||
- heading2:
|
||||
- - meta_scope: markup.heading.2.markdown
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - match: '^[ \t]{0,3}(-{3,})(?=[ \t]*$)'
|
||||
- captures:
|
||||
- 1: markup.heading.2.setext.markdown punctuation.definition.heading.setext.markdown
|
||||
- pop: true
|
||||
-
|
||||
+ pop: true
|
||||
+ - include: inline-bold-italic-linebreak
|
||||
+ - include: scope:text.html.basic
|
||||
+ - match: '^(={3,})(?=[ \t]*$)'
|
||||
+ scope: markup.heading.1.setext.markdown
|
||||
+ captures:
|
||||
+ 1: punctuation.definition.heading.setext.markdown
|
||||
+ pop: true
|
||||
+ - match: '^(-{3,})(?=[ \t]*$)'
|
||||
+ scope: markup.heading.2.setext.markdown
|
||||
+ captures:
|
||||
+ 1: punctuation.definition.heading.setext.markdown
|
||||
+ pop: true
|
||||
link-ref-def:
|
||||
- meta_scope: meta.link.reference.def.markdown
|
||||
- match: ''
|
||||
@@ -430,8 +400,6 @@ contexts:
|
||||
push:
|
||||
- meta_scope: markup.bold.markdown
|
||||
- meta_content_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -446,8 +414,6 @@ contexts:
|
||||
scope: punctuation.definition.bold.end.markdown
|
||||
set:
|
||||
- meta_content_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -463,8 +429,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.end.markdown
|
||||
set:
|
||||
- meta_content_scope: markup.bold.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -727,8 +691,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.begin.markdown
|
||||
push:
|
||||
- meta_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -745,8 +707,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.begin.markdown
|
||||
push:
|
||||
- meta_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*_{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -773,8 +733,6 @@ contexts:
|
||||
- include: bold-italic-trailing
|
||||
bold-italic-trailing:
|
||||
- include: scope:text.html.basic
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: ^\s*$\n?
|
||||
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
||||
pop: true
|
||||
@@ -1152,7 +1110,7 @@ contexts:
|
||||
- match: |-
|
||||
(?x)
|
||||
{{fenced_code_block_start}}
|
||||
- ((?i:rust))
|
||||
+ ((?i:rust|rs))
|
||||
{{fenced_code_block_trailing_infostring_characters}}
|
||||
captures:
|
||||
0: meta.code-fence.definition.begin.rust.markdown-gfm
|
13
assets/patches/MediaWiki.sublime-syntax.patch
vendored
Normal file
13
assets/patches/MediaWiki.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/02_Extra/MediaWiki/MediawikiNG.sublime-syntax syntaxes/02_Extra/MediaWiki/MediawikiNG.sublime-syntax
|
||||
index f542c9e..8eaf020 100644
|
||||
--- syntaxes/02_Extra/MediaWiki/MediawikiNG.sublime-syntax
|
||||
+++ syntaxes/02_Extra/MediaWiki/MediawikiNG.sublime-syntax
|
||||
@@ -1,7 +1,7 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
-name: Mediawiki NG
|
||||
+name: MediaWiki
|
||||
file_extensions: [mediawiki, wikipedia, wiki]
|
||||
scope: text.html.mediawiki
|
||||
|
36
assets/patches/Monokai-Extended.tmTheme.patch
vendored
Normal file
36
assets/patches/Monokai-Extended.tmTheme.patch
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
diff --git themes/sublime-monokai-extended/Monokai\ Extended.tmTheme themes/sublime-monokai-extended/Monokai\ Extended.tmTheme
|
||||
index 9c2aa3e..180cbbf 100644
|
||||
--- themes/sublime-monokai-extended/Monokai Extended.tmTheme
|
||||
+++ themes/sublime-monokai-extended/Monokai Extended.tmTheme
|
||||
@@ -810,11 +810,11 @@
|
||||
<key>name</key>
|
||||
<string>JSON String</string>
|
||||
<key>scope</key>
|
||||
- <string>meta.structure.dictionary.json string.quoted.double.json</string>
|
||||
+ <string>meta.mapping.key.json string.quoted.double.json, punctuation.separator.sequence.csv</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
- <string>#cfcfc2</string>
|
||||
+ <string>#fd971f</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -1027,7 +1027,7 @@
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
- <string>invalid</string>
|
||||
+ <string>invalid, markup.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
@@ -1042,7 +1042,7 @@
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
- <string>invalid.deprecated</string>
|
||||
+ <string>invalid.deprecated, markup.warning</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
15
assets/patches/Python.sublime-syntax.patch
vendored
Normal file
15
assets/patches/Python.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
diff --git syntaxes/01_Packages/Python/Python.sublime-syntax syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
index 2acd86d8..86257f7b 100644
|
||||
--- syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
@@ -988,10 +988,6 @@ contexts:
|
||||
- match: \}
|
||||
scope: punctuation.section.mapping-or-set.end.python
|
||||
set: after-expression
|
||||
- - match: (?={{simple_expression}}:|\s*\*\*)
|
||||
- set: inside-dictionary
|
||||
- - match: (?={{simple_expression}}[,}]|\s*\*)
|
||||
- set: inside-set
|
||||
- match: ','
|
||||
scope: punctuation.separator.set.python
|
||||
set: inside-set
|
13
assets/patches/Rust.sublime-syntax.patch
vendored
Normal file
13
assets/patches/Rust.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/01_Packages/Rust/Rust.sublime-syntax syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
index 3c354486..24727a4e 100644
|
||||
--- syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
@@ -907,6 +907,8 @@ contexts:
|
||||
- include: type-any-identifier
|
||||
- match: ':'
|
||||
scope: punctuation.separator.rust
|
||||
+ - match: (?=;)
|
||||
+ pop: true
|
||||
|
||||
fn-body:
|
||||
- meta_scope: meta.function.rust
|
20
assets/patches/ShellScript.sublime-syntax.patch
vendored
Normal file
20
assets/patches/ShellScript.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
diff --git syntaxes/01_Packages/ShellScript/Bash.sublime-syntax syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
index e973e319..07c170a7 100644
|
||||
--- syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
+++ syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
@@ -30,12 +30,12 @@ file_extensions:
|
||||
- .zshenv
|
||||
- .zshrc
|
||||
- PKGBUILD # https://jlk.fjfi.cvut.cz/arch/manpages/man/PKGBUILD.5
|
||||
- - .ebuild
|
||||
- - .eclass
|
||||
+ - ebuild
|
||||
+ - eclass
|
||||
|
||||
first_line_match: |
|
||||
(?x)
|
||||
- ^\#! .* \b(bash|zsh|sh|tcsh|ash)\b
|
||||
+ ^\#! .* \b(bash|zsh|sh|tcsh|ash|dash)\b
|
||||
| ^\# \s* -\*- [^*]* mode: \s* shell-script [^*]* -\*-
|
||||
|
||||
#-------------------------------------------------------------------------------
|
12
assets/patches/XML.sublime-syntax.patch
vendored
Normal file
12
assets/patches/XML.sublime-syntax.patch
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git syntaxes/01_Packages/XML/XML.sublime-syntax syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
index ad7d9c87..af4a00f0 100644
|
||||
--- syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
+++ syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
@@ -12,6 +12,7 @@ file_extensions:
|
||||
- rss
|
||||
- opml
|
||||
- svg
|
||||
+ - xaml
|
||||
first_line_match: |-
|
||||
(?x:
|
||||
^(?:
|
BIN
assets/syntaxes.bin
vendored
BIN
assets/syntaxes.bin
vendored
Binary file not shown.
1
assets/syntaxes/01_Packages
vendored
Submodule
1
assets/syntaxes/01_Packages
vendored
Submodule
Submodule assets/syntaxes/01_Packages added at 759d6eed9b
1
assets/syntaxes/02_Extra/AWK
vendored
Submodule
1
assets/syntaxes/02_Extra/AWK
vendored
Submodule
Submodule assets/syntaxes/02_Extra/AWK added at e23926eca1
1
assets/syntaxes/02_Extra/Apache
vendored
Submodule
1
assets/syntaxes/02_Extra/Apache
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Apache added at 163bc03ae8
221
assets/syntaxes/02_Extra/Apache.sublime-syntax
vendored
Normal file
221
assets/syntaxes/02_Extra/Apache.sublime-syntax
vendored
Normal file
@@ -0,0 +1,221 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Apache Conf
|
||||
file_extensions:
|
||||
- envvars
|
||||
- htaccess
|
||||
- HTACCESS
|
||||
- htgroups
|
||||
- HTGROUPS
|
||||
- htpasswd
|
||||
- HTPASSWD
|
||||
- .htaccess
|
||||
- .HTACCESS
|
||||
- .htgroups
|
||||
- .HTGROUPS
|
||||
- .htpasswd
|
||||
- .HTPASSWD
|
||||
scope: source.apacheconf
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(\s)*(#).*$\n?
|
||||
scope: comment.line.hash.ini
|
||||
captures:
|
||||
1: punctuation.definition.comment.apacheconf
|
||||
- match: (<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\s(.+?))?(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.apacheconf
|
||||
2: entity.tag.apacheconf
|
||||
4: string.value.apacheconf
|
||||
5: punctuation.definition.tag.apacheconf
|
||||
- match: (</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.apacheconf
|
||||
2: entity.tag.apacheconf
|
||||
3: punctuation.definition.tag.apacheconf
|
||||
- match: (?<=(Rewrite(Rule|Cond)))\s+(.+?)\s+(.+?)($|\s)
|
||||
captures:
|
||||
3: string.regexp.apacheconf
|
||||
4: string.replacement.apacheconf
|
||||
- match: (?<=RedirectMatch)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
2: entity.status.apacheconf
|
||||
3: string.regexp.apacheconf
|
||||
5: string.path.apacheconf
|
||||
- match: (?<=Redirect)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
2: entity.status.apacheconf
|
||||
3: string.path.apacheconf
|
||||
5: string.path.apacheconf
|
||||
- match: (?<=ScriptAliasMatch|AliasMatch)\s+(.+?)\s+((.+?)\s)?
|
||||
captures:
|
||||
1: string.regexp.apacheconf
|
||||
3: string.path.apacheconf
|
||||
- match: (?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
1: string.path.apacheconf
|
||||
3: string.path.apacheconf
|
||||
- match: \b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\w+|MaxRanges)\b
|
||||
captures:
|
||||
1: keyword.core.apacheconf
|
||||
- match: \b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\b
|
||||
captures:
|
||||
1: keyword.mpm.apacheconf
|
||||
- match: \b(Allow|Deny|Order)\b
|
||||
captures:
|
||||
1: keyword.access.apacheconf
|
||||
- match: \b(Action|Script)\b
|
||||
captures:
|
||||
1: keyword.actions.apacheconf
|
||||
- match: \b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\b
|
||||
captures:
|
||||
1: keyword.alias.apacheconf
|
||||
- match: \b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\b
|
||||
captures:
|
||||
1: keyword.auth.apacheconf
|
||||
- match: \b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\b
|
||||
captures:
|
||||
1: keyword.auth_anon.apacheconf
|
||||
- match: \b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\b
|
||||
captures:
|
||||
1: keyword.auth_dbm.apacheconf
|
||||
- match: \b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\b
|
||||
captures:
|
||||
1: keyword.auth_digest.apacheconf
|
||||
- match: \b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\b
|
||||
captures:
|
||||
1: keyword.auth_ldap.apacheconf
|
||||
- match: \b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\b
|
||||
captures:
|
||||
1: keyword.autoindex.apacheconf
|
||||
- match: \b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\b
|
||||
captures:
|
||||
1: keyword.filter.apacheconf
|
||||
- match: \b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\b
|
||||
captures:
|
||||
1: keyword.cache.apacheconf
|
||||
- match: \b(MetaDir|MetaFiles|MetaSuffix)\b
|
||||
captures:
|
||||
1: keyword.cern_meta.apacheconf
|
||||
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\b
|
||||
captures:
|
||||
1: keyword.cgi.apacheconf
|
||||
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\b
|
||||
captures:
|
||||
1: keyword.cgid.apacheconf
|
||||
- match: \b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\b
|
||||
captures:
|
||||
1: keyword.charset_lite.apacheconf
|
||||
- match: \b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\b
|
||||
captures:
|
||||
1: keyword.dav.apacheconf
|
||||
- match: \b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\b
|
||||
captures:
|
||||
1: keyword.deflate.apacheconf
|
||||
- match: \b(DirectoryIndex|DirectorySlash|FallbackResource)\b
|
||||
captures:
|
||||
1: keyword.dir.apacheconf
|
||||
- match: \b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\b
|
||||
captures:
|
||||
1: keyword.disk_cache.apacheconf
|
||||
- match: \b(DumpIOInput|DumpIOOutput)\b
|
||||
captures:
|
||||
1: keyword.dumpio.apacheconf
|
||||
- match: \b(PassEnv|SetEnv|UnsetEnv)\b
|
||||
captures:
|
||||
1: keyword.env.apacheconf
|
||||
- match: \b(ExpiresActive|ExpiresByType|ExpiresDefault)\b
|
||||
captures:
|
||||
1: keyword.expires.apacheconf
|
||||
- match: \b(ExtFilterDefine|ExtFilterOptions)\b
|
||||
captures:
|
||||
1: keyword.ext_filter.apacheconf
|
||||
- match: \b(CacheFile|MMapFile)\b
|
||||
captures:
|
||||
1: keyword.file_cache.apacheconf
|
||||
- match: \b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\b
|
||||
captures:
|
||||
1: keyword.filter.apacheconf
|
||||
- match: \b(Header|RequestHeader)\b
|
||||
captures:
|
||||
1: keyword.headers.apacheconf
|
||||
- match: \b(ImapBase|ImapDefault|ImapMenu)\b
|
||||
captures:
|
||||
1: keyword.imap.apacheconf
|
||||
- match: \b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\b
|
||||
captures:
|
||||
1: keyword.include.apacheconf
|
||||
- match: \b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\b
|
||||
captures:
|
||||
1: keyword.isapi.apacheconf
|
||||
- match: \b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\b
|
||||
captures:
|
||||
1: keyword.ldap.apacheconf
|
||||
- match: \b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\b
|
||||
captures:
|
||||
1: keyword.log.apacheconf
|
||||
- match: \b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\b
|
||||
captures:
|
||||
1: keyword.mem_cache.apacheconf
|
||||
- match: \b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\b
|
||||
captures:
|
||||
1: keyword.mime.apacheconf
|
||||
- match: \b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\b
|
||||
captures:
|
||||
1: keyword.misc.apacheconf
|
||||
- match: \b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\b
|
||||
captures:
|
||||
1: keyword.negotiation.apacheconf
|
||||
- match: \b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\b
|
||||
captures:
|
||||
1: keyword.nw_ssl.apacheconf
|
||||
- match: \b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\b
|
||||
captures:
|
||||
1: keyword.proxy.apacheconf
|
||||
- match: \b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\b
|
||||
captures:
|
||||
1: keyword.rewrite.apacheconf
|
||||
- match: \b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\b
|
||||
captures:
|
||||
1: keyword.setenvif.apacheconf
|
||||
- match: \b(LoadFile|LoadModule)\b
|
||||
captures:
|
||||
1: keyword.so.apacheconf
|
||||
- match: \b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\b
|
||||
captures:
|
||||
1: keyword.ssl.apacheconf
|
||||
- match: \b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\b
|
||||
captures:
|
||||
1: keyword.substitute.apacheconf
|
||||
- match: \b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\b
|
||||
captures:
|
||||
1: keyword.usertrack.apacheconf
|
||||
- match: \b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\b
|
||||
captures:
|
||||
1: keyword.vhost_alias.apacheconf
|
||||
- match: \b(php_value|php_flag|php_admin_value|php_admin_flag)\b(\s+(.+?)(\s+(".+?"|.+?))?)?\s
|
||||
captures:
|
||||
1: keyword.php.apacheconf
|
||||
3: entity.property.apacheconf
|
||||
5: string.value.apacheconf
|
||||
- match: '(%\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\})'
|
||||
captures:
|
||||
1: punctuation.variable.apacheconf
|
||||
3: variable.env.apacheconf
|
||||
4: variable.misc.apacheconf
|
||||
5: punctuation.variable.apacheconf
|
||||
- match: \b((text|image|application|video|audio)/.+?)\s
|
||||
captures:
|
||||
1: entity.mime-type.apacheconf
|
||||
- match: \b(?i)(export|from|unset|set|on|off)\b
|
||||
captures:
|
||||
1: entity.helper.apacheconf
|
||||
- match: \b(\d+)\b
|
||||
captures:
|
||||
1: constant.numeric.integer.decimal.apacheconf
|
||||
- match: '\s(\[)(.*?)(\])\s'
|
||||
captures:
|
||||
1: punctuation.definition.flag.apacheconf
|
||||
2: string.flag.apacheconf
|
||||
3: punctuation.definition.flag.apacheconf
|
1
assets/syntaxes/02_Extra/AsciiDoc
vendored
Submodule
1
assets/syntaxes/02_Extra/AsciiDoc
vendored
Submodule
Submodule assets/syntaxes/02_Extra/AsciiDoc added at e316a0a85c
997
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
Normal file
997
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
Normal file
@@ -0,0 +1,997 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: AsciiDoc (Asciidoctor)
|
||||
file_extensions:
|
||||
- adoc
|
||||
- ad
|
||||
- asciidoc
|
||||
scope: text.asciidoc
|
||||
contexts:
|
||||
main:
|
||||
- include: lists
|
||||
- include: blocks
|
||||
- include: section_titles
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
attribute_entry:
|
||||
- match: |-
|
||||
(?x)
|
||||
^(:) # opening delimiter
|
||||
(!)? # bang symbol (unset attribute)
|
||||
([A-Za-z0-9_][A-Za-z0-9_-]*) # attribute name
|
||||
(!)? # bang symbol (unset attribute)
|
||||
(:) # closing delimiter
|
||||
(?:\s+|(?=$))
|
||||
comment: |
|
||||
An attribute entry.
|
||||
|
||||
Examples:
|
||||
:my-attribute: value
|
||||
:sectnums!:
|
||||
:!sectnums:
|
||||
captures:
|
||||
1: punctuation.definition.attributeentry.attrname.begin.asciidoc
|
||||
2: punctuation.definition.attributeentry.unset.asciidoc
|
||||
3: support.variable.attribute.asciidoc
|
||||
4: punctuation.definition.attributeentry.unset.asciidoc
|
||||
5: punctuation.definition.attributeentry.attrname.end.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.attributeentry.asciidoc
|
||||
- meta_content_scope: meta.attributeentry.value.asciidoc
|
||||
- match: $\n?
|
||||
pop: true
|
||||
- include: characters
|
||||
attribute_list_line:
|
||||
- match: '^(\[)[^\[\]]*(\])\s*$\n?'
|
||||
comment: "Attribute list as paragraph: single brackets. No need for special treatment of escape; follows literal block, section template as being a more general regex."
|
||||
scope: support.variable.attributelist.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.attributelistline.begin.asciidoc
|
||||
2: punctuation.definition.attributelistline.end.asciidoc
|
||||
attribute_reference:
|
||||
- match: "({)([A-Za-z0-9_][A-Za-z0-9_-]*)(})"
|
||||
comment: |
|
||||
Examples:
|
||||
{my-attribute}
|
||||
scope: variable.other
|
||||
captures:
|
||||
1: constant.character.attributes.reference.begin.asciidoc
|
||||
2: support.variable.attribute.asciidoc
|
||||
3: constant.character.attributes.reference.end.asciidoc
|
||||
biblio_anchor:
|
||||
- match: '(?<!\[)(\[\[\[).*?(\]\]\])(?!\])'
|
||||
comment: |
|
||||
Bibliography anchor
|
||||
|
||||
Examples:
|
||||
[[[Lorem ipsum]]]
|
||||
scope: storage.type.reference.biblioanchor.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.biblioanchor.begin.asciidoc
|
||||
2: punctuation.definition.biblioanchor.end.asciidoc
|
||||
block_admonition_label:
|
||||
- match: ^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):(?=\s+)
|
||||
comment: |
|
||||
Label of an admonition block.
|
||||
|
||||
Examples:
|
||||
NOTE: This is a admonition block.
|
||||
WARNING: Be aware of them!
|
||||
scope: support.constant.admonitionword.asciidoc
|
||||
block_comment:
|
||||
- match: '^(/{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
////
|
||||
A multi-line comment.
|
||||
Notice it's a delimited block.
|
||||
////
|
||||
captures:
|
||||
0: punctuation.definition.comment.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: comment.block.asciidoc
|
||||
- meta_content_scope: meta.block.comment.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: punctuation.definition.comment.end.asciidoc
|
||||
pop: true
|
||||
- include: macro
|
||||
block_example:
|
||||
- match: '^(={4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
====
|
||||
Lorem ipsum.
|
||||
====
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise in
|
||||
practice for me.
|
||||
captures:
|
||||
0: constant.delimiter.example.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.unquoted.block.example.asciidoc
|
||||
- meta_content_scope: meta.block.example.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.example.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_listing
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_id:
|
||||
- match: '^(\[\[)([^\[].*)(\]\])\s*$\n?'
|
||||
comment: |
|
||||
A block id (i.e. anchor).
|
||||
|
||||
Examples:
|
||||
[[myid]]
|
||||
Lorem ipsum dolor.
|
||||
scope: meta.tag.blockid.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.blockid.begin.asciidoc
|
||||
2: markup.underline.blockid.id.asciidoc
|
||||
3: punctuation.definition.blockid.end.asciidoc
|
||||
block_listing:
|
||||
- match: '^(\-{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
----
|
||||
Lorem ipsum.
|
||||
----
|
||||
captures:
|
||||
0: constant.delimiter.listing.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.listing.asciidoc
|
||||
- meta_content_scope: source.block.listing.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.listing.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_literal:
|
||||
- match: '^(\.{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
....
|
||||
Lorem ipsum.
|
||||
....
|
||||
captures:
|
||||
0: constant.delimiter.block.literal.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.literal.block.delimited.asciidoc
|
||||
- meta_content_scope: meta.block.literal.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.literal.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_open:
|
||||
- match: ^\-\-\s*$\n?
|
||||
comment: |
|
||||
Examples:
|
||||
--
|
||||
Lorem ipsum
|
||||
--
|
||||
Note: Might need to check on these includes.
|
||||
captures:
|
||||
0: constant.delimiter.block.open.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.block.open.asciidoc
|
||||
- meta_content_scope: meta.block.open.content.asciidoc
|
||||
- match: ^\-\-\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.open.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: block_pass
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_page_break:
|
||||
- match: '^<{3,}$\n?'
|
||||
comment: |
|
||||
A page break.
|
||||
|
||||
Examples:
|
||||
<<<
|
||||
<<<<<
|
||||
scope: meta.separator.pagebreak.asciidoc
|
||||
block_pass:
|
||||
- match: '^(\+{4,})\s*$\n?'
|
||||
captures:
|
||||
0: constant.delimiter.block.passthrough.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.passthrough.asciidoc
|
||||
- meta_content_scope: text.xml.block.passthrough.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.passthrough.end.asciidoc
|
||||
pop: true
|
||||
- include: scope:text.xml
|
||||
block_quote:
|
||||
- match: '^(_{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
____
|
||||
Lorem ipsum
|
||||
____
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise for me in practice.
|
||||
captures:
|
||||
0: constant.delimiter.block.quote.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.quote.block.asciidoc
|
||||
- meta_content_scope: meta.block.quote.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.quote.end.asciidoc
|
||||
pop: true
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_sidebar:
|
||||
- match: '^(\*{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
****
|
||||
Lorem ipsum
|
||||
****
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise
|
||||
for me in practice.
|
||||
captures:
|
||||
0: constant.delimiter.block.sidebar.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.quoted.block.sidebar.asciidoc
|
||||
- meta_content_scope: meta.block.sidebar.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.sidebar.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_source_fenced:
|
||||
- match: ^(```)(\w+)?\s*$\n?
|
||||
comment: |
|
||||
Fenced code block (ala Markdown)
|
||||
|
||||
Examples:
|
||||
```rb
|
||||
puts 'Hello world!'
|
||||
```
|
||||
captures:
|
||||
0: constant.delimiter.listing.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.listing.asciidoc
|
||||
- meta_content_scope: source.block.listing.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.listing.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_thematic_break:
|
||||
- match: '^''{3,}$\n?'
|
||||
comment: |
|
||||
A thematic break (aka horizontal rule).
|
||||
|
||||
Examples:
|
||||
'''
|
||||
''''''
|
||||
scope: meta.separator.ruler.asciidoc
|
||||
block_title:
|
||||
- match: ^(\.)\w.*$\n?
|
||||
comment: |
|
||||
Title of a block.
|
||||
|
||||
Examples:
|
||||
.My title
|
||||
Lorem ipsum dolor.
|
||||
scope: markup.heading.block.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.blockheading.asciidoc
|
||||
blocks:
|
||||
- include: block_literal
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: block_source_fenced
|
||||
- include: block_sidebar
|
||||
- include: block_pass
|
||||
- include: block_quote
|
||||
- include: block_example
|
||||
- include: block_open
|
||||
characters:
|
||||
- include: attribute_reference
|
||||
- include: entity_number
|
||||
- include: entity_name
|
||||
- include: escape
|
||||
- include: replacement
|
||||
- include: macro_pass
|
||||
- include: macro
|
||||
- include: xref
|
||||
- include: biblio_anchor
|
||||
- include: indexterm_triple
|
||||
- include: indexterm_double
|
||||
colist_item_marker:
|
||||
- match: ^(\s*((<)\d+?(>)))\s+(?=\S)
|
||||
comment: |
|
||||
Marker of a callout list item.
|
||||
|
||||
Examples:
|
||||
<1> a callout
|
||||
<42> another callout
|
||||
scope: markup.list.numbered.callout.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.callout.asciidoc
|
||||
2: constant.numeric.callout.asciidoc
|
||||
3: punctuation.definition.calloutlistnumber.begin.asciidoc
|
||||
4: punctuation.definition.calloutlistnumber.end.asciidoc
|
||||
dlist_item_label:
|
||||
- match: '^\s*(?=.*:{2,4}(?:\s|$))'
|
||||
comment: |
|
||||
Label of a definition (labeled) list item.
|
||||
|
||||
Examples:
|
||||
Label level 1:: lorem ipsum
|
||||
Label level 2::: dolor sit amet
|
||||
Label level 3:::: consectetur
|
||||
Label level 1::
|
||||
lorem ipsum
|
||||
Another label :: lorem ipsum
|
||||
Last::label:: dolor sit amet
|
||||
|
||||
Note: This rule is not strictly correct, because Asciidoctor allows
|
||||
double colon followed by a space inside a label, i.e. it matches the
|
||||
*last* double colon, not the first. I don't know how to do that
|
||||
*effectively.
|
||||
push:
|
||||
- meta_scope: markup.list.labeled.asciidoc
|
||||
- meta_content_scope: meta.list.label.asciidoc
|
||||
- match: '(:{2,4})(?:\s|$\n?)'
|
||||
captures:
|
||||
1: constant.labeledlist.separator.asciidoc
|
||||
pop: true
|
||||
- include: inline
|
||||
- include: characters
|
||||
emphasis:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might be preceded by an attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(_)(?=\S) # delimiter underscore that must be followed by a nonspace character
|
||||
comment: |
|
||||
Emphasized (italic) text (constrained variant).
|
||||
|
||||
Examples:
|
||||
_Lorem ipsum_ dolor
|
||||
[red]_Lorem ipsum_ dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.italic.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.single.asciidoc
|
||||
- meta_content_scope: meta.italicinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(_) # delimiter underscore that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.italic.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
emphasis_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(__)
|
||||
comment: |
|
||||
Emphasized (italic) text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo__re__m __ipsum dolor__.
|
||||
Lo[red]__re__m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.italic.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.double.asciidoc
|
||||
- meta_content_scope: meta.italicinner.double.asciidoc
|
||||
- match: __
|
||||
captures:
|
||||
0: punctuation.definition.italic.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
entity_name:
|
||||
- match: '(?<!\\)&([a-zA-Z][a-zA-Z0-9]*);'
|
||||
comment: |
|
||||
Character entity reference
|
||||
|
||||
Examples:
|
||||
|
||||
²
|
||||
scope: constant.character.entity.xml.asciidoc
|
||||
entity_number:
|
||||
- match: '(?<!\\)&#(x?[0-9a-fA-f]{2,4});'
|
||||
comment: |
|
||||
Numeric character reference
|
||||
|
||||
Examples:
|
||||
➊
|
||||
¶
|
||||
scope: constant.character.entity.asciidoc
|
||||
escape:
|
||||
- match: '\\(?=[-`*_#+.!(){}\[\]\\>:])'
|
||||
comment: |
|
||||
List of special characters that may be escaped.
|
||||
|
||||
Note: I do not really know if this is a good list, adopted wholesale from
|
||||
original bundle.
|
||||
scope: constant.character.escape.asciidoc
|
||||
indexterm_double:
|
||||
- match: '(?<!\()(\({2})([^\(\s].*?)(\){2})(?!\))'
|
||||
comment: |
|
||||
Double parenthesis indexterm.
|
||||
|
||||
Examples:
|
||||
((Arthur))
|
||||
scope: variable.other.indexterm.double.asciidoc
|
||||
captures:
|
||||
1: constant.character.indexterm.double.begin.asciidoc
|
||||
3: constant.character.indexterm.double.end.asciidoc
|
||||
indexterm_triple:
|
||||
- match: '(?<!\()(\({3})([^\(].*?)(\){3})(?!\))'
|
||||
comment: |
|
||||
Triple parenthesis indexterm.
|
||||
|
||||
Examples:
|
||||
(((Sword, Broadsword, Excalibur)))
|
||||
scope: variable.other.indexterm.triple.asciidoc
|
||||
captures:
|
||||
1: constant.character.indexterm.triple.begin.asciidoc
|
||||
3: constant.character.indexterm.triple.end.asciidoc
|
||||
inline:
|
||||
- include: passthrough
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
inline_break:
|
||||
- match: (?<=\s)\+$\n?
|
||||
comment: |
|
||||
Line hard break with a plus sign (+).
|
||||
|
||||
Examples:
|
||||
Rubies are red, +
|
||||
Topazes are blue.
|
||||
scope: constant.linebreak.asciidoc
|
||||
inline_callout:
|
||||
- match: (?<!\\)(<)\d+(>)
|
||||
comment: |
|
||||
Callout label
|
||||
|
||||
Examples:
|
||||
<1>
|
||||
<42>
|
||||
scope: constant.other.callout.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.callout.begin.asciidoc
|
||||
2: punctuation.definition.callout.end.asciidoc
|
||||
inline_comment:
|
||||
- match: '^(//)([^/\n].*|)$\n?'
|
||||
comment: |
|
||||
Inline comment.
|
||||
|
||||
Examples:
|
||||
// This is just a comment!
|
||||
scope: comment.line.double-slash.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.comment.line.asciidoc
|
||||
2: meta.line.comment.content.asciidoc
|
||||
lines:
|
||||
- include: inline_comment
|
||||
- include: list_continuation
|
||||
- include: inline_break
|
||||
- include: block_page_break
|
||||
- include: block_thematic_break
|
||||
- include: block_title
|
||||
- include: block_id
|
||||
- include: section_template
|
||||
- include: attribute_list_line
|
||||
- include: attribute_entry
|
||||
list_continuation:
|
||||
- match: ^\+\s*$\n?
|
||||
scope: constant.listcontinuation.asciidoc
|
||||
lists:
|
||||
- include: block_admonition_label
|
||||
- include: ulist_item_marker
|
||||
- include: olist_item_marker
|
||||
- include: dlist_item_label
|
||||
- include: colist_item_marker
|
||||
macro:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?:
|
||||
((?:https?|mailto|ftp|file) # specify separately so we can mark them as links that TextMate opens
|
||||
?:{1} # inline only
|
||||
\S*) # (others such as image are partial URLs and/or TextMate cannot handle them)
|
||||
|
|
||||
(([a-zA-Z0-9][a-zA-Z0-9_]*)
|
||||
(:{1,2})
|
||||
(\S*))
|
||||
)
|
||||
(?:(\[)([^\]]*)(\]))
|
||||
comment: |
|
||||
Note: There are other macro notations, but I match only those that end in
|
||||
square brackets.
|
||||
scope: meta.macro.asciidoc
|
||||
captures:
|
||||
1: markup.underline.link.macro.asciidoc
|
||||
3: keyword.control.name.macro.asciidoc
|
||||
4: constant.character.separator.macro.asciidoc
|
||||
5: markup.underline.target.macro.asciidoc
|
||||
6: constant.character.attributes.macro.begin.asciidoc
|
||||
7: variable.parameter.attributes.macro.asciidoc
|
||||
8: constant.character.attributes.macro.end.asciidoc
|
||||
macro_pass:
|
||||
- match: |-
|
||||
(?x)
|
||||
(pass)
|
||||
(:{1,2})
|
||||
(\S*)
|
||||
(\[)(?=[^\]]*\])
|
||||
comment: |
|
||||
Passthrough macro
|
||||
|
||||
Examples:
|
||||
pass:[Lorem ipsum]
|
||||
pass::[Lorem ipsum]
|
||||
captures:
|
||||
1: keyword.control.name.macro.pass.asciidoc
|
||||
2: constant.character.separator.macro.asciidoc
|
||||
3: markup.underline.target.macro.asciidoc
|
||||
4: constant.character.attributes.macro.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.macro.pass.asciidoc
|
||||
- meta_content_scope: variable.parameter.attributes.macro.pass.asciidoc
|
||||
- match: '\]'
|
||||
captures:
|
||||
0: constant.character.attributes.macro.end.asciidoc
|
||||
pop: true
|
||||
- include: scope:text.xml
|
||||
mark:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list (darned well better or why are we here)
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(\#)(?=\S) # delimiter hash that must be followed by a nonspace character
|
||||
comment: |
|
||||
Marked text (constrained variant).
|
||||
|
||||
Examples:
|
||||
#Lorem ipsum# dolor
|
||||
[red]#Lorem ipsum# dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.unquoted.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.unquoted.single.asciidoc
|
||||
- meta_content_scope: string.unquoted.unquotedinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(\#) # delimiter hash that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.string.unquoted.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
mark_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attribute list (indeed, that is its purpose)
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(\#\#)
|
||||
comment: |
|
||||
Marked text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo##re##m ##ipsum dolor##.
|
||||
Lo[red]##re##m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.unquoted.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.unquoted.double.asciidoc
|
||||
- meta_content_scope: string.unquoted.unquotedinner.double.asciidoc
|
||||
- match: '\#\#'
|
||||
captures:
|
||||
0: punctuation.definition.string.unquoted.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
monospaced:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(`)(?=\S) # delimiter backtick that must be followed by a nonspace character
|
||||
comment: |
|
||||
Monospaced text (constrained variant).
|
||||
|
||||
Examples:
|
||||
`Lorem ipsum` dolor
|
||||
[red]`Lorem ipsum` dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.literal.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.literal.single.asciidoc
|
||||
- meta_content_scope: meta.literalinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(`) # delimiter backtick that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.literal.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
monospaced_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(``)
|
||||
comment: |
|
||||
Monospaced text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo``re``m ``ipsum dolor``.
|
||||
Lo[red]``re``m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.literal.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.literal.double.asciidoc
|
||||
- meta_content_scope: meta.literalinner.double.asciidoc
|
||||
- match: "``"
|
||||
captures:
|
||||
0: punctuation.definition.literal.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
olist_item_marker:
|
||||
- match: '^(\s*(\.{1,5}))\s+(?=\S)'
|
||||
comment: |
|
||||
Marker of an ordered (numbered) list item.
|
||||
|
||||
Examples:
|
||||
. level 1
|
||||
.. level 2
|
||||
... level 3
|
||||
.... level 4
|
||||
..... level 5
|
||||
|
||||
Note: The space distinguishes it from a block title.
|
||||
scope: markup.list.numbered.dotted.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.dotted.asciidoc
|
||||
2: constant.numeric.list.dot.asciidoc
|
||||
passthrough:
|
||||
- match: (\+\+\+|\$\$)
|
||||
comment: |
|
||||
Inline triple-plus and double dolar passthrough.
|
||||
|
||||
Examples:
|
||||
Lo+++re++++m +++ipsum dolor+++.
|
||||
Lo$$re$$m $$ipsum dolor$$.
|
||||
|
||||
Note: Must be dead first among the inlines, so as to take priority.
|
||||
captures:
|
||||
1: constant.character.passthru.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.passthru.inline.asciidoc
|
||||
- meta_content_scope: variable.parameter.passthruinner.asciidoc
|
||||
- match: \1
|
||||
captures:
|
||||
0: constant.character.passthru.end.asciidoc
|
||||
pop: true
|
||||
replacement:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<!\\) # must not be escaped
|
||||
(
|
||||
\(C\)
|
||||
| \(TM\)
|
||||
| \(R\)
|
||||
| ((?<!\-)\-\-(?!\-)) # exactly two, and even this may not rule out all that I want to
|
||||
| ((?<!\.)\.\.\.(?!\.)) # exactly three
|
||||
| \->
|
||||
| <\-
|
||||
| =>
|
||||
| <=
|
||||
)
|
||||
scope: constant.character.replacement.asciidoc
|
||||
section_template:
|
||||
- match: |-
|
||||
(?x)^
|
||||
(\[) # in square brackets
|
||||
(template\s*=\s*)?(")? # might start with template-equals and might have template name in quotes
|
||||
(
|
||||
sect\d|abstract|preface|colophon|dedication|glossary|bibliography|synopsis|appendix|index # fixed list of known templates
|
||||
)
|
||||
(".*(\])|(\])) # either close the quote (and perhaps go on) and close the bracket, or close the bracket immediately
|
||||
\s*$\n?
|
||||
comment: fixed list of known template names
|
||||
scope: variable.parameter.sectiontemplate.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.sectiontemplate.begin.asciidoc
|
||||
4: meta.tag.sectiontemplate.asciidoc
|
||||
6: punctuation.definition.sectiontemplate.end.asciidoc
|
||||
7: punctuation.definition.sectiontemplate.end.asciidoc
|
||||
section_titles:
|
||||
- include: title_level_5
|
||||
- include: title_level_4
|
||||
- include: title_level_3
|
||||
- include: title_level_2
|
||||
- include: title_level_1
|
||||
- include: title_level_0
|
||||
strong:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(\*)(?=\S) # delimiter star that must be followed by a nonspace character
|
||||
comment: |
|
||||
Strong (bold) text (constrained variant).
|
||||
|
||||
Examples:
|
||||
*Lorem ipsum* dolor
|
||||
[red]*Lorem ipsum* dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.bold.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.single.asciidoc
|
||||
- meta_content_scope: meta.boldinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(\*) # delimiter star that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.bold.single.end.asciidoc
|
||||
pop: true
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
strong_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(\*\*)
|
||||
comment: |
|
||||
Strong (bold) text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo**re**m **ipsum dolor**.
|
||||
Lo[red]**re**m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.bold.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.double.asciidoc
|
||||
- meta_content_scope: meta.boldinner.double.asciidoc
|
||||
- match: \*\*
|
||||
captures:
|
||||
0: punctuation.definition.bold.double.end.asciidoc
|
||||
pop: true
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
subscript:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(~)
|
||||
comment: |
|
||||
Subscript text.
|
||||
|
||||
Examples:
|
||||
E=mc^2^
|
||||
E=mc[red]^2^
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.subscript.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.subscript.asciidoc
|
||||
- meta_content_scope: meta.subscriptinner.asciidoc
|
||||
- match: '~' # this tilda a problem if unquoted
|
||||
captures:
|
||||
0: punctuation.definition.string.subscript.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: characters
|
||||
superscript:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # no preceding escape
|
||||
(\^)
|
||||
comment: |
|
||||
Superscript text.
|
||||
|
||||
Examples:
|
||||
H~2~O
|
||||
H[red]~2~O
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.superscript.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.superscript.asciidoc
|
||||
- meta_content_scope: meta.superscriptinner.asciidoc
|
||||
- match: ^
|
||||
captures:
|
||||
0: punctuation.definition.string.superscript.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: subscript
|
||||
- include: characters
|
||||
title_level_0:
|
||||
- match: ^(=) (\w.*)$\n?
|
||||
scope: markup.heading.level.0.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_1:
|
||||
- match: ^(==) (\w.*)$\n?
|
||||
scope: markup.heading.level.1.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_2:
|
||||
- match: ^(===) (\w.*)$\n?
|
||||
scope: markup.heading.level.2.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_3:
|
||||
- match: ^(====) (\w.*)$\n?
|
||||
scope: markup.heading.level.3.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_4:
|
||||
- match: ^(=====) (\w.*)$\n?
|
||||
scope: markup.heading.level.4.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_5:
|
||||
- match: ^(======) (\w.*)$\n?
|
||||
scope: markup.heading.level.5.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
ulist_item_marker:
|
||||
- match: '^(\s*(\-|\*{1,5}))\s+(?=\S)'
|
||||
comment: |
|
||||
Marker of an unordered (bullet) list item.
|
||||
|
||||
Examples:
|
||||
* level 1
|
||||
** level 2
|
||||
*** level 3
|
||||
**** level 4
|
||||
***** level 5
|
||||
- level 1
|
||||
-- level 2
|
||||
--- level 3
|
||||
---- level 4
|
||||
----- level 5
|
||||
scope: markup.list.bulleted.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.bullet.asciidoc
|
||||
2: constant.numeric.list.bullet.asciidoc
|
||||
xref:
|
||||
- match: '(?<!<)(<<)([^,]*?)((,\s*)(.*?))?(>>)(?!<)'
|
||||
comment: |
|
||||
Internal cross-reference
|
||||
|
||||
Examples:
|
||||
<<lorem>>
|
||||
<<lorem, see here>>
|
||||
scope: meta.xref.asciidoc
|
||||
captures:
|
||||
1: constant.character.xref.begin.asciidoc
|
||||
2: markup.underline.term.xref.asciidoc
|
||||
5: variable.parameter.xref.asciidoc
|
||||
6: constant.character.xref.end.asciidoc
|
1
assets/syntaxes/02_Extra/Assembly (ARM)
vendored
Submodule
1
assets/syntaxes/02_Extra/Assembly (ARM)
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Assembly (ARM) added at 08f33d80de
172
assets/syntaxes/02_Extra/Assembly (ARM).sublime-syntax
vendored
Normal file
172
assets/syntaxes/02_Extra/Assembly (ARM).sublime-syntax
vendored
Normal file
@@ -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
|
1367
assets/syntaxes/02_Extra/Assembly (x86_64).sublime-syntax
vendored
Normal file
1367
assets/syntaxes/02_Extra/Assembly (x86_64).sublime-syntax
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
assets/syntaxes/02_Extra/CMake
vendored
Submodule
1
assets/syntaxes/02_Extra/CMake
vendored
Submodule
Submodule assets/syntaxes/02_Extra/CMake added at ab6ef4ef9f
78
assets/syntaxes/02_Extra/CSV.sublime-syntax
vendored
Normal file
78
assets/syntaxes/02_Extra/CSV.sublime-syntax
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Comma Separated Values
|
||||
file_extensions:
|
||||
- csv
|
||||
- tsv
|
||||
scope: text.csv
|
||||
variables:
|
||||
field_separator: (?:[,;\t])
|
||||
record_separator: (?:$\n?)
|
||||
contexts:
|
||||
prototype:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
fields:
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
main:
|
||||
- meta_include_prototype: false
|
||||
- match: '^'
|
||||
set: fields
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
pop: true
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: double_quoted_string
|
||||
|
||||
- match: (?={{field_separator}}|{{record_separator}})
|
||||
pop: true
|
||||
|
||||
double_quoted_string:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.quoted.double.csv
|
||||
- match: '""'
|
||||
scope: constant.character.escape.csv
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.csv
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv support.type
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
|
47
assets/syntaxes/02_Extra/Cabal.sublime-syntax
vendored
Normal file
47
assets/syntaxes/02_Extra/Cabal.sublime-syntax
vendored
Normal file
@@ -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|custom-setup)\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
|
1
assets/syntaxes/02_Extra/CoffeeScript
vendored
Submodule
1
assets/syntaxes/02_Extra/CoffeeScript
vendored
Submodule
Submodule assets/syntaxes/02_Extra/CoffeeScript added at e08f9b8cdf
271
assets/syntaxes/02_Extra/CoffeeScript.sublime-syntax
vendored
Normal file
271
assets/syntaxes/02_Extra/CoffeeScript.sublime-syntax
vendored
Normal file
@@ -0,0 +1,271 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CoffeeScript
|
||||
comment: "CoffeeScript Syntax: version 1"
|
||||
file_extensions:
|
||||
- coffee
|
||||
- Cakefile
|
||||
- coffee.erb
|
||||
- cson
|
||||
first_line_match: ^#!.*\bcoffee
|
||||
scope: source.coffee
|
||||
contexts:
|
||||
main:
|
||||
- match: '(\([^()]*?\))\s*([=-]>)'
|
||||
comment: "match stuff like: a -> …"
|
||||
scope: meta.inline.function.coffee
|
||||
captures:
|
||||
1: variable.parameter.function.coffee
|
||||
2: storage.type.function.coffee
|
||||
- match: (new)\s+(\w+(?:\.\w*)*)
|
||||
scope: meta.class.instance.constructor
|
||||
captures:
|
||||
1: keyword.operator.new.coffee
|
||||
2: support.class.coffee
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.heredoc.coffee
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.double.heredoc.coffee
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: \\.
|
||||
scope: constant.character.escape.coffee
|
||||
- include: interpolated_coffee
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.script.coffee
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
- match: (?<!#)###(?!#)
|
||||
captures:
|
||||
0: punctuation.definition.comment.coffee
|
||||
push:
|
||||
- meta_scope: comment.block.coffee
|
||||
- match: '###(?:[ \t]*\n)'
|
||||
captures:
|
||||
0: punctuation.definition.comment.coffee
|
||||
pop: true
|
||||
- match: '@\w*'
|
||||
scope: storage.type.annotation.coffeescript
|
||||
- match: '(#)(?!\{).*$\n?'
|
||||
scope: comment.line.number-sign.coffee
|
||||
captures:
|
||||
1: punctuation.definition.comment.coffee
|
||||
- match: "/{3}"
|
||||
push:
|
||||
- meta_scope: string.regexp.coffee
|
||||
- match: "/{3}[imgy]{0,4}"
|
||||
pop: true
|
||||
- include: interpolated_coffee
|
||||
- include: embedded_comment
|
||||
- match: '/(?![\s=/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])'
|
||||
scope: string.regexp.coffee
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$])(
|
||||
break|by|catch|continue|else|finally|for|in|of|if|return|switch|
|
||||
then|throw|try|unless|when|while|until|loop|do|(?<=for)\s+own
|
||||
)(?!\s*:)\b
|
||||
scope: keyword.control.coffee
|
||||
- match: |-
|
||||
(?x)
|
||||
and=|or=|!|%|&|\^|\*|\/|(\-)?\-(?!>)|\+\+|\+|~|==|=(?!>)|!=|<=|>=|<<=|>>=|
|
||||
>>>=|<>|<|>|!|&&|\.\.(\.)?|\?|\||\|\||\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|
|
||||
\^=|\b(?<![\.\$])(instanceof|new|delete|typeof|and|or|is|isnt|not|super)\b
|
||||
scope: keyword.operator.coffee
|
||||
- match: '([a-zA-Z\$_](\w|\$|\.)*\s*(?!\::)((:)|(=[^=]))(?!(\s*\(.*\))?\s*((=|-)>)))'
|
||||
scope: variable.assignment.coffee
|
||||
captures:
|
||||
1: variable.assignment.coffee
|
||||
4: punctuation.separator.key-value
|
||||
5: keyword.operator.coffee
|
||||
- match: '(?<=\s|^)([\[\{])(?=.*?[\]\}]\s+[:=])'
|
||||
captures:
|
||||
0: keyword.operator.coffee
|
||||
push:
|
||||
- meta_scope: meta.variable.assignment.destructured.coffee
|
||||
- match: '([\]\}]\s*[:=])'
|
||||
captures:
|
||||
0: keyword.operator.coffee
|
||||
pop: true
|
||||
- include: variable_name
|
||||
- include: instance_variable
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
- match: |-
|
||||
(?x)
|
||||
(\s*)
|
||||
(?=[a-zA-Z\$_])
|
||||
(
|
||||
[a-zA-Z\$_](\w|\$|:|\.)*\s*
|
||||
(?=[:=](\s*\(.*\))?\s*([=-]>))
|
||||
)
|
||||
scope: meta.function.coffee
|
||||
captures:
|
||||
2: entity.name.function.coffee
|
||||
3: entity.name.function.coffee
|
||||
4: variable.parameter.function.coffee
|
||||
5: storage.type.function.coffee
|
||||
- match: ^\s*(describe|it|app\.(get|post|put|all|del|delete))
|
||||
comment: Show well-known functions from Express and Mocha in Go To Symbol view
|
||||
push:
|
||||
- meta_scope: meta.function.symbols.coffee
|
||||
- match: $
|
||||
pop: true
|
||||
- include: main
|
||||
- match: "[=-]>"
|
||||
scope: storage.type.function.coffee
|
||||
- match: '\b(?<!\.)(true|on|yes)(?!\s*[:=])\b'
|
||||
scope: constant.language.boolean.true.coffee
|
||||
- match: '\b(?<!\.)(false|off|no)(?!\s*[:=])\b'
|
||||
scope: constant.language.boolean.false.coffee
|
||||
- match: '\b(?<!\.)null(?!\s*[:=])\b'
|
||||
scope: constant.language.null.coffee
|
||||
- match: '\b(?<!\.)(this|extends)(?!\s*[:=])\b'
|
||||
scope: variable.language.coffee
|
||||
- match: '(class\b)\s+(@?[a-zA-Z\$_][\w\.]*)?(?:\s+(extends)\s+(@?[a-zA-Z\$\._][\w\.]*))?'
|
||||
scope: meta.class.coffee
|
||||
captures:
|
||||
1: storage.type.class.coffee
|
||||
2: entity.name.type.class.coffee
|
||||
3: keyword.control.inheritance.coffee
|
||||
4: entity.other.inherited-class.coffee
|
||||
- match: \b(debugger|\\)\b
|
||||
scope: keyword.other.coffee
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|
|
||||
Int(8|16|32|64)Array|Math|Map|Number|
|
||||
Object|Proxy|RegExp|Set|String|WeakMap|
|
||||
window|Uint(8|16|32|64)Array|XMLHttpRequest
|
||||
)\b
|
||||
scope: support.class.coffee
|
||||
- match: ((?<=console\.)(debug|warn|info|log|error|time|timeEnd|assert))\b
|
||||
scope: support.function.console.coffee
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
decodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require
|
||||
)\b
|
||||
scope: support.function.coffee
|
||||
- match: |-
|
||||
(?x)((?<=\.)(
|
||||
apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|
|
||||
isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|
|
||||
reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|
|
||||
unshift|valueOf
|
||||
))\b
|
||||
scope: support.function.method.array.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Array\.)(
|
||||
isArray
|
||||
))\b
|
||||
scope: support.function.static.array.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Object\.)(
|
||||
create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|
|
||||
getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|
|
||||
isnt|keys|preventExtensions|seal
|
||||
))\b
|
||||
scope: support.function.static.object.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Math\.)(
|
||||
abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|
|
||||
hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|
|
||||
tan|tanh|trunc
|
||||
))\b
|
||||
scope: support.function.static.math.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Number\.)(
|
||||
is(Finite|Integer|NaN)|toInteger
|
||||
))\b
|
||||
scope: support.function.static.number.coffee
|
||||
- match: \b(Infinity|NaN|undefined)\b
|
||||
scope: constant.language.coffee
|
||||
- match: \;
|
||||
scope: punctuation.terminator.statement.coffee
|
||||
- match: ',[ |\t]*'
|
||||
scope: meta.delimiter.object.comma.coffee
|
||||
- match: \.
|
||||
scope: meta.delimiter.method.period.coffee
|
||||
- match: '\{|\}'
|
||||
scope: meta.brace.curly.coffee
|
||||
- match: \(|\)
|
||||
scope: meta.brace.round.coffee
|
||||
- match: '\[|\]\s*'
|
||||
scope: meta.brace.square.coffee
|
||||
- include: instance_variable
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
double_quoted_string:
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.double.coffee
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
- include: interpolated_coffee
|
||||
embedded_comment:
|
||||
- match: (?<!\\)(#).*$\n?
|
||||
scope: comment.line.number-sign.coffee
|
||||
captures:
|
||||
1: punctuation.definition.comment.coffee
|
||||
instance_variable:
|
||||
- match: '(@)([a-zA-Z_\$]\w*)?'
|
||||
scope: variable.other.readwrite.instance.coffee
|
||||
interpolated_coffee:
|
||||
- match: '\#\{'
|
||||
captures:
|
||||
0: punctuation.section.embedded.coffee
|
||||
push:
|
||||
- meta_scope: source.coffee.embedded.source
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.section.embedded.coffee
|
||||
pop: true
|
||||
- include: main
|
||||
numeric:
|
||||
- match: '(?<!\$)\b((0([box])[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?(e[+\-]?[0-9]+)?))\b'
|
||||
scope: constant.numeric.coffee
|
||||
single_quoted_string:
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.single.coffee
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
variable_name:
|
||||
- match: '([a-zA-Z\$_]\w*(\.\w+)*)'
|
||||
scope: variable.assignment.coffee
|
||||
captures:
|
||||
1: variable.assignment.coffee
|
14
assets/syntaxes/02_Extra/CpuInfo.sublime-syntax
vendored
Normal file
14
assets/syntaxes/02_Extra/CpuInfo.sublime-syntax
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CpuInfo
|
||||
file_extensions:
|
||||
- cpuinfo
|
||||
scope: source.cpuinfo
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^([^:]+)\w*:\w*(.*)$'
|
||||
captures:
|
||||
1: keyword.other.cpuinfo-key
|
||||
2: string.other.cpuinfo-value
|
1
assets/syntaxes/02_Extra/Crystal
vendored
Submodule
1
assets/syntaxes/02_Extra/Crystal
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Crystal added at eb63666f35
1037
assets/syntaxes/02_Extra/Crystal.sublime-syntax
vendored
Normal file
1037
assets/syntaxes/02_Extra/Crystal.sublime-syntax
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
assets/syntaxes/02_Extra/Dart
vendored
Submodule
1
assets/syntaxes/02_Extra/Dart
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Dart added at 2734901b01
211
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
Normal file
211
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
Normal file
@@ -0,0 +1,211 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/syntax.html
|
||||
name: Dart
|
||||
file_extensions:
|
||||
- dart
|
||||
scope: source.dart
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(#!.*)$
|
||||
scope: meta.preprocessor.script.dart
|
||||
- match: ^\w*\b(library|import|part of|part|export)\b
|
||||
captures:
|
||||
0: keyword.other.import.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.dart
|
||||
- match: ;
|
||||
captures:
|
||||
0: punctuation.terminator.dart
|
||||
pop: true
|
||||
- include: strings
|
||||
- include: comments
|
||||
- match: \b(as|show|hide)\b
|
||||
scope: keyword.other.import.dart
|
||||
- include: comments
|
||||
- include: punctuation
|
||||
- include: annotations
|
||||
- include: keywords
|
||||
- include: constants-and-special-vars
|
||||
- include: strings
|
||||
annotations:
|
||||
- match: '@[a-zA-Z]+'
|
||||
scope: storage.type.annotation.dart
|
||||
comments:
|
||||
- match: /\*\*/
|
||||
scope: comment.block.empty.dart
|
||||
captures:
|
||||
0: punctuation.definition.comment.dart
|
||||
- include: comments-doc-oldschool
|
||||
- include: comments-doc
|
||||
- include: comments-inline
|
||||
comments-block:
|
||||
- match: /\*
|
||||
push:
|
||||
- meta_scope: comment.block.dart
|
||||
- match: \*/
|
||||
pop: true
|
||||
- include: comments-block
|
||||
comments-doc:
|
||||
- match: ///
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.dart
|
||||
- match: .*
|
||||
pop: true
|
||||
- include: dartdoc
|
||||
comments-doc-oldschool:
|
||||
- match: /\*\*
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.dart
|
||||
- match: \*/
|
||||
pop: true
|
||||
- include: comments-doc-oldschool
|
||||
- include: comments-block
|
||||
- include: dartdoc
|
||||
comments-inline:
|
||||
- include: comments-block
|
||||
- match: ((//).*)$
|
||||
captures:
|
||||
1: comment.line.double-slash.dart
|
||||
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
|
||||
- match: '(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\b|num\b|int\b|double\b|dynamic\b)'
|
||||
scope: support.class.dart
|
||||
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(<|\(|\s+=>)'
|
||||
captures:
|
||||
1: entity.name.function.dart
|
||||
dartdoc:
|
||||
- match: '(\[.*?\])'
|
||||
captures:
|
||||
0: variable.name.source.dart
|
||||
- match: '^ {4,}(?![ \*]).*'
|
||||
captures:
|
||||
0: variable.name.source.dart
|
||||
- match: '```.*?$'
|
||||
push:
|
||||
- meta_content_scope: variable.other.source.dart
|
||||
- match: '```'
|
||||
pop: true
|
||||
- match: (`.*?`)
|
||||
captures:
|
||||
0: variable.other.source.dart
|
||||
- match: (`.*?`)
|
||||
captures:
|
||||
0: variable.other.source.dart
|
||||
- match: (\* (( ).*))$
|
||||
captures:
|
||||
2: variable.other.source.dart
|
||||
- match: (\* .*)$
|
||||
keywords:
|
||||
- match: (?<!\$)\bas\b(?!\$)
|
||||
scope: keyword.cast.dart
|
||||
- match: (?<!\$)\b(try|on|catch|finally|throw|rethrow)\b(?!\$)
|
||||
scope: keyword.control.catch-exception.dart
|
||||
- match: (?<!\$)\b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\b(sync(\*)?|async(\*)?|await|yield(\*)?)\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\bassert\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\b(new)\b(?!\$)
|
||||
scope: keyword.control.new.dart
|
||||
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\b(?!\$)
|
||||
scope: keyword.declaration.dart
|
||||
- match: (?<!\$)\b(is\!?)\b(?!\$)
|
||||
scope: keyword.operator.dart
|
||||
- match: '\?|:'
|
||||
scope: keyword.operator.ternary.dart
|
||||
- match: (<<|>>>?|~|\^|\||&)
|
||||
scope: keyword.operator.bitwise.dart
|
||||
- match: ((&|\^|\||<<|>>>?)=)
|
||||
scope: keyword.operator.assignment.bitwise.dart
|
||||
- match: (=>)
|
||||
scope: keyword.operator.closure.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: (?<!\$)\b(static|final|const)\b(?!\$)
|
||||
scope: storage.modifier.dart
|
||||
- match: (?<!\$)\b(?:void|var)\b(?!\$)
|
||||
scope: storage.type.primitive.dart
|
||||
punctuation:
|
||||
- match: ','
|
||||
scope: punctuation.comma.dart
|
||||
- match: ;
|
||||
scope: punctuation.terminator.dart
|
||||
- match: \.
|
||||
scope: punctuation.dot.dart
|
||||
string-interp:
|
||||
- match: '\$((\w+)|\{([^{}]+)\})'
|
||||
captures:
|
||||
2: variable.parameter.dart
|
||||
3: 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
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- match: (?<!\|r)'
|
||||
push:
|
||||
- meta_scope: string.interpolated.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- include: string-interp
|
||||
- match: r'
|
||||
push:
|
||||
- meta_scope: string.quoted.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
1
assets/syntaxes/02_Extra/Docker
vendored
Submodule
1
assets/syntaxes/02_Extra/Docker
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Docker added at 9e9a518aed
1
assets/syntaxes/02_Extra/DotENV
vendored
Submodule
1
assets/syntaxes/02_Extra/DotENV
vendored
Submodule
Submodule assets/syntaxes/02_Extra/DotENV added at 58201ba2ab
93
assets/syntaxes/02_Extra/DotENV.sublime-syntax
vendored
Normal file
93
assets/syntaxes/02_Extra/DotENV.sublime-syntax
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: DotENV
|
||||
file_extensions:
|
||||
- .env
|
||||
- .env.dist
|
||||
- .env.local
|
||||
- .env.sample
|
||||
- .env.example
|
||||
- .env.test
|
||||
- .env.test.local
|
||||
- .env.testing
|
||||
- .env.dev
|
||||
- .env.development
|
||||
- .env.development.local
|
||||
- .env.prod
|
||||
- .env.production
|
||||
- .env.production.local
|
||||
- .env.dusk.local
|
||||
- .env.staging
|
||||
- .env.default
|
||||
- .env.defaults
|
||||
- .envrc
|
||||
- .flaskenv
|
||||
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
|
1
assets/syntaxes/02_Extra/Elixir
vendored
Submodule
1
assets/syntaxes/02_Extra/Elixir
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Elixir added at 4fb01891dd
1
assets/syntaxes/02_Extra/Elm
vendored
Submodule
1
assets/syntaxes/02_Extra/Elm
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Elm added at e266d279c8
1
assets/syntaxes/02_Extra/Email
vendored
Submodule
1
assets/syntaxes/02_Extra/Email
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Email added at e89d09d440
1
assets/syntaxes/02_Extra/FSharp
vendored
Submodule
1
assets/syntaxes/02_Extra/FSharp
vendored
Submodule
Submodule assets/syntaxes/02_Extra/FSharp added at 9e4645c608
1
assets/syntaxes/02_Extra/Fish
vendored
Submodule
1
assets/syntaxes/02_Extra/Fish
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Fish added at 98316d4332
1
assets/syntaxes/02_Extra/Fortran
vendored
Submodule
1
assets/syntaxes/02_Extra/Fortran
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Fortran added at dcf4f24f1c
135
assets/syntaxes/02_Extra/Fstab.sublime-syntax
vendored
Normal file
135
assets/syntaxes/02_Extra/Fstab.sublime-syntax
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: fstab
|
||||
file_extensions:
|
||||
- fstab
|
||||
- crypttab
|
||||
- mtab
|
||||
scope: source.fstab
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- include: comment
|
||||
- match: '^'
|
||||
push: fstab_device
|
||||
comment: leading spaces
|
||||
|
||||
fstab_device:
|
||||
- include: comment
|
||||
- match: '\s*([^=\s]+=)([^\s]+)\s*'
|
||||
comment: device by uuid or label
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*(//|\\\\)([^\s]+)\s*'
|
||||
comment: device by samba share
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*([^\s]+)(:)([^\s]+)\s*'
|
||||
comment: device by server
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: keyword.other.device
|
||||
2: punctuation.accessor
|
||||
3: keyword.other.device
|
||||
- match: '\s*[^\s/\\]+\s*'
|
||||
comment: device by dev name
|
||||
set: fstab_mountpoint
|
||||
scope: keyword.other.device
|
||||
- match: '\s*(/dev/)([^\s]+)\s*'
|
||||
comment: device by dev path
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*([^\s/]*/)*([^\s]+)\s*'
|
||||
comment: device by unknown path
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- include: clear
|
||||
|
||||
fstab_mountpoint:
|
||||
- include: comment
|
||||
- match: '\s*/[^\s]*\s*'
|
||||
comment: mount point
|
||||
set: fstab_filesystem
|
||||
scope: string.unquoted.mountpoint
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: mount point without leading slash (invalid)
|
||||
set: fstab_filesystem
|
||||
scope: invalid.illegal
|
||||
- include: clear
|
||||
|
||||
fstab_filesystem:
|
||||
- include: comment
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: filesystem type
|
||||
set: fstab_options
|
||||
scope: variable.parameter.filesystem
|
||||
- include: clear
|
||||
|
||||
fstab_options:
|
||||
- include: comment
|
||||
- match: '([^\s,=]+)(=)([^\s,]+)'
|
||||
comment: key-value option
|
||||
captures:
|
||||
1: entity.name.option
|
||||
2: entity.other.separator
|
||||
3: variable.parameter
|
||||
- match: '[^\s,]+'
|
||||
comment: flag option
|
||||
scope: entity.name.option
|
||||
- match: ','
|
||||
comment: option separator
|
||||
scope: punctuation.separator
|
||||
- match: '\s+'
|
||||
comment: next field
|
||||
set: fstab_dump
|
||||
- include: clear
|
||||
|
||||
fstab_dump:
|
||||
- include: comment
|
||||
- match: '\s*[01]\s*'
|
||||
comment: dump field
|
||||
scope: constant.numeric
|
||||
set: fstab_pass
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: invalid dump field
|
||||
scope: invalid.illegal
|
||||
set: fstab_pass
|
||||
- include: clear
|
||||
|
||||
fstab_pass:
|
||||
- include: comment
|
||||
- match: '\s*[01]\s*'
|
||||
comment: pass field
|
||||
scope: constant.numeric
|
||||
set: expected_eol
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: invalid pass field
|
||||
scope: invalid.illegal
|
||||
set: expected_eol
|
||||
- include: clear
|
||||
|
||||
expected_eol:
|
||||
- include: comment
|
||||
- include: clear
|
||||
- match: '.*'
|
||||
scope: invalid.illegal
|
||||
|
||||
comment:
|
||||
- match: '\s*#.*$'
|
||||
comment: comment using the number sign
|
||||
scope: comment.line
|
||||
|
||||
clear:
|
||||
- match: '.*$'
|
||||
comment: used for clearing the context
|
||||
pop: true
|
||||
|
1
assets/syntaxes/02_Extra/GLSL
vendored
Submodule
1
assets/syntaxes/02_Extra/GLSL
vendored
Submodule
Submodule assets/syntaxes/02_Extra/GLSL added at 59a5f8a312
1
assets/syntaxes/02_Extra/GraphQL
vendored
Submodule
1
assets/syntaxes/02_Extra/GraphQL
vendored
Submodule
Submodule assets/syntaxes/02_Extra/GraphQL added at 9b6f6d0a86
1
assets/syntaxes/02_Extra/Groff
vendored
Submodule
1
assets/syntaxes/02_Extra/Groff
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Groff added at 651091c7e2
48
assets/syntaxes/02_Extra/Group.sublime-syntax
vendored
Normal file
48
assets/syntaxes/02_Extra/Group.sublime-syntax
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: group
|
||||
file_extensions:
|
||||
- group
|
||||
scope: source.group
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- comment: name
|
||||
match: ^[^:]+
|
||||
scope: keyword
|
||||
|
||||
- comment: password
|
||||
match: ":"
|
||||
push: password
|
||||
|
||||
password:
|
||||
- comment: uid
|
||||
match: ":"
|
||||
set: gid
|
||||
|
||||
- comment: shadowpassword
|
||||
match: "[^:]+"
|
||||
scope: invalid
|
||||
|
||||
gid:
|
||||
- comment: gid
|
||||
match: ":"
|
||||
set: users
|
||||
|
||||
- comment: number
|
||||
match: "[0-9]+"
|
||||
scope: constant.numeric
|
||||
|
||||
users:
|
||||
- comment: newline
|
||||
match: "\n"
|
||||
pop: true
|
||||
|
||||
- comment: directory
|
||||
match: "[^:\n]+"
|
||||
scope: variable.parameter
|
||||
|
||||
- comment: separator
|
||||
match: ","
|
||||
scope: punctuation
|
1
assets/syntaxes/02_Extra/HTML (Twig)
vendored
Submodule
1
assets/syntaxes/02_Extra/HTML (Twig)
vendored
Submodule
Submodule assets/syntaxes/02_Extra/HTML (Twig) added at 77def406d7
662
assets/syntaxes/02_Extra/HTML (Twig).sublime-syntax
vendored
Normal file
662
assets/syntaxes/02_Extra/HTML (Twig).sublime-syntax
vendored
Normal file
@@ -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
|
23
assets/syntaxes/02_Extra/Hosts.sublime-syntax
vendored
Normal file
23
assets/syntaxes/02_Extra/Hosts.sublime-syntax
vendored
Normal file
@@ -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
|
||||
|
@@ -5,16 +5,19 @@ name: INI
|
||||
file_extensions:
|
||||
- ini
|
||||
- INI
|
||||
- inf
|
||||
- INF
|
||||
- "inf"
|
||||
- "INF"
|
||||
- reg
|
||||
- REG
|
||||
- lng
|
||||
- cfg
|
||||
- CFG
|
||||
- desktop
|
||||
- url
|
||||
- URL
|
||||
- .editorconfig
|
||||
- .hgrc
|
||||
- hgrc
|
||||
scope: source.ini
|
||||
contexts:
|
||||
main:
|
||||
@@ -22,12 +25,13 @@ contexts:
|
||||
scope: comment.line.semicolon.ini
|
||||
captures:
|
||||
1: punctuation.definition.comment.ini
|
||||
- match: '^\s*(\[)(.*?)(\])'
|
||||
- match: '^\s*(\[)(.*?)(\])\s*(;.*)?$\n?'
|
||||
scope: meta.tag.section.ini
|
||||
captures:
|
||||
1: punctuation.definition.section.ini
|
||||
2: entity.section.ini
|
||||
3: punctuation.definition.section.ini
|
||||
4: comment.definition.section.ini
|
||||
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
||||
scope: meta.declaration.ini
|
||||
captures:
|
1
assets/syntaxes/02_Extra/JavaScript (Babel)
vendored
Submodule
1
assets/syntaxes/02_Extra/JavaScript (Babel)
vendored
Submodule
Submodule assets/syntaxes/02_Extra/JavaScript (Babel) added at f4579f9107
1290
assets/syntaxes/02_Extra/JavaScript (Babel).sublime-syntax
vendored
Normal file
1290
assets/syntaxes/02_Extra/JavaScript (Babel).sublime-syntax
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
assets/syntaxes/02_Extra/Jinja2
vendored
Submodule
1
assets/syntaxes/02_Extra/Jinja2
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Jinja2 added at 45355633d1
1
assets/syntaxes/02_Extra/Jsonnet
vendored
Submodule
1
assets/syntaxes/02_Extra/Jsonnet
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Jsonnet added at e2c917ed7d
1
assets/syntaxes/02_Extra/Julia
vendored
Submodule
1
assets/syntaxes/02_Extra/Julia
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Julia added at 1e55f3211b
1
assets/syntaxes/02_Extra/LESS
vendored
Submodule
1
assets/syntaxes/02_Extra/LESS
vendored
Submodule
Submodule assets/syntaxes/02_Extra/LESS added at 836b47ec61
1
assets/syntaxes/02_Extra/LLVM
vendored
Submodule
1
assets/syntaxes/02_Extra/LLVM
vendored
Submodule
Submodule assets/syntaxes/02_Extra/LLVM added at 274126faa9
1
assets/syntaxes/02_Extra/Lean
vendored
Submodule
1
assets/syntaxes/02_Extra/Lean
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Lean added at 29a03a8aba
125
assets/syntaxes/02_Extra/Lean.sublime-syntax
vendored
Normal file
125
assets/syntaxes/02_Extra/Lean.sublime-syntax
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Lean
|
||||
file_extensions:
|
||||
- lean
|
||||
scope: source.lean
|
||||
contexts:
|
||||
main:
|
||||
- include: comments
|
||||
- match: '\b(?<!\.)(inductive|coinductive|structure|theorem|axiom|axioms|abbreviation|lemma|definition|def|instance|class|constant)\b\s+(\{[^}]*\})?'
|
||||
captures:
|
||||
1: keyword.other.definitioncommand.lean
|
||||
push:
|
||||
- meta_scope: meta.definitioncommand.lean
|
||||
- match: '(?=\bwith\b|\bextends\b|[:\|\(\[\{⦃<>])'
|
||||
pop: true
|
||||
- include: comments
|
||||
- include: definitionName
|
||||
- match: ","
|
||||
- match: \b(Prop|Type|Sort)\b
|
||||
scope: storage.type.lean
|
||||
- match: '\battribute\b\s*\[[^\]]*\]'
|
||||
scope: storage.modifier.lean
|
||||
- match: '@\[[^\]]*\]'
|
||||
scope: storage.modifier.lean
|
||||
- match: \b(?<!\.)(private|meta|mutual|protected|noncomputable)\b
|
||||
scope: keyword.control.definition.modifier.lean
|
||||
- match: \b(sorry)\b
|
||||
scope: invalid.illegal.lean
|
||||
- match: '#print\s+(def|definition|inductive|instance|structure|axiom|axioms|class)\b'
|
||||
scope: keyword.other.command.lean
|
||||
- match: '#(print|eval|reduce|check|help|exit|find|where)\b'
|
||||
scope: keyword.other.command.lean
|
||||
- match: \b(?<!\.)(import|export|prelude|theory|definition|def|abbreviation|instance|renaming|hiding|exposing|parameter|parameters|begin|constant|constants|lemma|variable|variables|theorem|example|open|axiom|inductive|coinductive|with|structure|universe|universes|alias|precedence|reserve|postfix|prefix|infix|infixl|infixr|notation|end|using|namespace|section|local|set_option|extends|include|omit|class|classes|instances|raw|run_cmd|restate_axiom)(?!\.)\b
|
||||
scope: keyword.other.lean
|
||||
- match: \b(?<!\.)(calc|have|this|match|do|suffices|show|by|in|at|let|forall|fun|exists|assume|from|obtain|haveI|λ)(?!\.)\b
|
||||
scope: keyword.other.lean
|
||||
- match: «
|
||||
push:
|
||||
- meta_content_scope: entity.name.lean
|
||||
- match: »
|
||||
pop: true
|
||||
- match: \b(?<!\.)(if|then|else)\b
|
||||
scope: keyword.control.lean
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.lean
|
||||
push:
|
||||
- meta_scope: string.quoted.double.lean
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.lean
|
||||
pop: true
|
||||
- match: '\\[\\"nt'']'
|
||||
scope: constant.character.escape.lean
|
||||
- match: '\\x[0-9A-Fa-f][0-9A-Fa-f]'
|
||||
scope: constant.character.escape.lean
|
||||
- match: '\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'
|
||||
scope: constant.character.escape.lean
|
||||
- match: '''[^\\'']'''
|
||||
scope: string.quoted.single.lean
|
||||
- match: '''(\\(x..|u....|.))'''
|
||||
scope: string.quoted.single.lean
|
||||
captures:
|
||||
1: constant.character.escape.lean
|
||||
- match: '`+[^\[(]\S+'
|
||||
scope: entity.name.lean
|
||||
- match: '\b([0-9]+|0([xX][0-9a-fA-F]+))\b'
|
||||
scope: constant.numeric.lean
|
||||
blockComment:
|
||||
- match: /-
|
||||
push:
|
||||
- meta_scope: comment.block.lean
|
||||
- match: "-/"
|
||||
pop: true
|
||||
- include: scope:source.lean.markdown
|
||||
- include: blockComment
|
||||
comments:
|
||||
- include: dashComment
|
||||
- include: docComment
|
||||
- include: stringBlock
|
||||
- include: modDocComment
|
||||
- include: blockComment
|
||||
dashComment:
|
||||
- match: (--)
|
||||
captures:
|
||||
0: punctuation.definition.comment.lean
|
||||
push:
|
||||
- meta_scope: comment.line.double-dash.lean
|
||||
- match: $
|
||||
pop: true
|
||||
- include: scope:source.lean.markdown
|
||||
definitionName:
|
||||
- match: '\b[^:«»\(\)\{\}[:space:]=→λ∀?][^:«»\(\)\{\}[:space:]]*'
|
||||
scope: entity.name.function.lean
|
||||
- match: «
|
||||
push:
|
||||
- meta_content_scope: entity.name.function.lean
|
||||
- match: »
|
||||
pop: true
|
||||
docComment:
|
||||
- match: /--
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.lean
|
||||
- match: "-/"
|
||||
pop: true
|
||||
- include: scope:source.lean.markdown
|
||||
- include: blockComment
|
||||
modDocComment:
|
||||
- match: /-!
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.lean
|
||||
- match: "-/"
|
||||
pop: true
|
||||
- include: scope:source.lean.markdown
|
||||
- include: blockComment
|
||||
stringBlock:
|
||||
- match: /-"
|
||||
push:
|
||||
- meta_scope: comment.block.string.lean
|
||||
- match: '"-/'
|
||||
pop: true
|
||||
- include: scope:source.lean.markdown
|
||||
- include: blockComment
|
1
assets/syntaxes/02_Extra/LiveScript
vendored
Submodule
1
assets/syntaxes/02_Extra/LiveScript
vendored
Submodule
Submodule assets/syntaxes/02_Extra/LiveScript added at 2575013851
400
assets/syntaxes/02_Extra/LiveScript.sublime-syntax
vendored
Normal file
400
assets/syntaxes/02_Extra/LiveScript.sublime-syntax
vendored
Normal file
@@ -0,0 +1,400 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: LiveScript
|
||||
comment: "LiveScript Syntax: version 1"
|
||||
file_extensions:
|
||||
- ls
|
||||
- Slakefile
|
||||
- ls.erb
|
||||
first_line_match: ^#!.*\bls
|
||||
scope: source.livescript
|
||||
contexts:
|
||||
main:
|
||||
- match: |-
|
||||
(?x)
|
||||
!?[~-]{1,2}>\*?
|
||||
|<[~-]{1,2}!?
|
||||
|\(\s* (?= instanceof[\s)]|and[\s)]|or[\s)]|is[\s)]|isnt[\s)]|in[\s)]|import[\s)]|import\ all[\s)] |\.|[-+/*%^&<>=|][\b\s)\w$]|\*\*|\%\%)
|
||||
| (?<=[\s(]instanceof|[\s(]and|[\s(]or|[\s(]is|[\s(]isnt|[\s(]in|[\s(]import|[\s(]import\ all|[\s(]do|\.|\*\*|\%\%|[\b\s(\w$][-+/*%^&<>=|]) \s*\)
|
||||
scope: storage.type.function.livescript
|
||||
- match: \/\*
|
||||
captures:
|
||||
0: punctuation.definition.comment.livescript
|
||||
push:
|
||||
- meta_scope: comment.block.livescript
|
||||
- match: \*\/
|
||||
captures:
|
||||
0: punctuation.definition.comment.livescript
|
||||
pop: true
|
||||
- match: '@\w*'
|
||||
scope: storage.type.annotation.livescriptscript
|
||||
- match: '(#)(?!\{).*$\n?'
|
||||
scope: comment.line.number-sign.livescript
|
||||
captures:
|
||||
1: punctuation.definition.comment.livescript
|
||||
- match: '((?:!|~|!~|~!)?function\*?)\s+([$\w\-]*[$\w]+)'
|
||||
captures:
|
||||
1: storage.type.function.livescript
|
||||
2: entity.name.function.livescript
|
||||
- match: (new)\s+(\w+(?:\.\w*)*)
|
||||
captures:
|
||||
1: keyword.operator.new.livescript
|
||||
2: entity.name.type.instance.livescript
|
||||
- match: \b(package|private|protected|public|interface|enum|static)(?!-)\b
|
||||
scope: keyword.illegal.livescript
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.livescript
|
||||
push:
|
||||
- meta_scope: string.quoted.heredoc.livescript
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.livescript
|
||||
push:
|
||||
- meta_scope: string.quoted.double.heredoc.livescript
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
- match: \\.
|
||||
scope: constant.character.escape.livescript
|
||||
- include: interpolated_livescript
|
||||
- match: "``"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.livescript
|
||||
push:
|
||||
- meta_scope: string.quoted.script.livescript
|
||||
- match: "``"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
- match: '\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.livescript
|
||||
- match: '<\['
|
||||
push:
|
||||
- meta_scope: string.array-literal.livescript
|
||||
- match: '\]>'
|
||||
pop: true
|
||||
- match: '/{2}(?![\s=/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}'
|
||||
scope: string.regexp.livescript
|
||||
- match: '/{2}\n'
|
||||
push:
|
||||
- meta_scope: string.regexp.livescript
|
||||
- match: "/{2}[imgy]{0,4}"
|
||||
pop: true
|
||||
- include: embedded_spaced_comment
|
||||
- include: interpolated_livescript
|
||||
- match: "/{2}"
|
||||
push:
|
||||
- meta_scope: string.regexp.livescript
|
||||
- match: "/{2}[imgy]{0,4}"
|
||||
pop: true
|
||||
- match: '\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.livescript
|
||||
- include: interpolated_livescript
|
||||
- match: '/(?![\s=/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])'
|
||||
scope: string.regexp.livescript
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$\-@])(
|
||||
instanceof|new|delete|typeof|and|or|is|isnt|not
|
||||
)(?!\-|\s*:)\b
|
||||
scope: keyword.operator.livescript
|
||||
- match: <\||\|>
|
||||
scope: keyword.operator.livescript
|
||||
- match: "=>"
|
||||
scope: keyword.control.livescript
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$\-@])(?:
|
||||
return|break|continue|throw
|
||||
|try|if|while|for|for\s+own|switch|unless|until
|
||||
|catch|finally|else|nobreak|case|default|fallthrough|when|otherwise|then
|
||||
|yield
|
||||
)(?!\-|\s*:)\b
|
||||
scope: keyword.control.livescript
|
||||
- match: |-
|
||||
(?x)
|
||||
and=|or=|%|&|\^|\*|\/|(?<![a-zA-Z$_])(\-)?\-(?!\-?>)|\+\+|\+|
|
||||
~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|
|
||||
>>>=|<>|<(?!\[)|(?<!\])>|(?<!\w)!(?!([~\-]+)?>)|&&|\.\.(\.)?|\s\.\s|\?|\|\||\:|\*=|(?<!\()/=|%=|\+=|\-=|\.=|&=
|
||||
|\^=
|
||||
scope: keyword.operator.livescript
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$\-@])(?:
|
||||
function
|
||||
)(?!\-|\s*:)\b
|
||||
scope: storage.type.function.livescript
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$\-@])(?:
|
||||
this|throw|then|try|typeof!?|til|to
|
||||
|continue|const|case|catch|class
|
||||
|in|instanceof|import|import\s+all|implements|if|is
|
||||
|default|delete|debugger|do
|
||||
|for|for\s+own|finally|function|from|fallthrough
|
||||
|super|switch
|
||||
|else|nobreak|extends|export|eval
|
||||
|and|arguments
|
||||
|new|not
|
||||
|unless|until
|
||||
|while|with|when
|
||||
|of|or|otherwise
|
||||
|let|var|loop
|
||||
|match
|
||||
|by|yield
|
||||
)(?!\-|\s*:)\b
|
||||
scope: keyword.other.livescript
|
||||
- match: '([a-zA-Z\$_](?:[\w$.-])*)\s*(?!\::)((:)|(=(?!>)))\s*(?!(\s*!?\s*\(.*\))?\s*(!?[~-]{1,2}>\*?))'
|
||||
captures:
|
||||
1: variable.assignment.livescript
|
||||
3: punctuation.separator.key-value, keyword.operator.livescript
|
||||
4: keyword.operator.livescript
|
||||
- match: '(?<=\s|^)([\[\{])(?=.*?[\]\}]\s+[:=])'
|
||||
captures:
|
||||
0: keyword.operator.livescript
|
||||
push:
|
||||
- meta_scope: meta.variable.assignment.destructured.livescript
|
||||
- match: '([\]\}]\s*[:=])'
|
||||
captures:
|
||||
0: keyword.operator.livescript
|
||||
pop: true
|
||||
- include: variable_name
|
||||
- include: instance_variable
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
- match: |-
|
||||
(?x)
|
||||
(\s*)
|
||||
(?=[a-zA-Z\$_])
|
||||
([a-zA-Z\$_]([\w$.:-])*)\s*
|
||||
(?=[:=](\s*!?\s*\(.*\))?\s*(!?[~-]{1,2}>\*?))
|
||||
scope: meta.function.livescript
|
||||
captures:
|
||||
2: entity.name.function.livescript
|
||||
3: entity.name.function.livescript
|
||||
4: variable.parameter.function.livescript
|
||||
5: storage.type.function.livescript
|
||||
- match: \b(?<!\.)(true|on|yes)(?!\s*:)\b
|
||||
scope: constant.language.boolean.true.livescript
|
||||
- match: \b(?<!\.)(false|off|no)(?!\s*:)\b
|
||||
scope: constant.language.boolean.false.livescript
|
||||
- match: \b(?<!\.)(null|void)(?!\s*:)\b
|
||||
scope: constant.language.null.livescript
|
||||
- match: \b(?<!\.)(super|this|extends)(?!\s*:)\b
|
||||
scope: variable.language.livescript
|
||||
- match: '(class\b)\s+(@?[a-zA-Z$_][\w$.-]*)?(?:\s+(extends)\s+(@?[a-zA-Z$_][\w$.-]*))?'
|
||||
scope: meta.class.livescript
|
||||
captures:
|
||||
1: storage.type.class.livescript
|
||||
2: entity.name.type.class.livescript
|
||||
3: keyword.control.inheritance.livescript
|
||||
4: entity.other.inherited-class.livescript
|
||||
- match: \b(debugger|\\)\b
|
||||
scope: keyword.other.livescript
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|
|
||||
Int(8|16|32|64)Array|Math|Map|Number|
|
||||
Object|Proxy|RegExp|Set|String|WeakMap|
|
||||
window|Uint(8|16|32|64)Array|XMLHttpRequest
|
||||
)\b
|
||||
scope: support.class.livescript
|
||||
- match: \b(console)\b
|
||||
scope: entity.name.type.object.livescript
|
||||
- match: \b(Infinity|NaN|undefined)\b
|
||||
scope: constant.language.livescript
|
||||
- match: \;
|
||||
scope: punctuation.terminator.statement.livescript
|
||||
- match: ',[ |\t]*'
|
||||
scope: meta.delimiter.object.comma.livescript
|
||||
- match: \.
|
||||
scope: meta.delimiter.method.period.livescript
|
||||
- match: '\{|\}'
|
||||
scope: meta.brace.curly.livescript
|
||||
- match: \(|\)
|
||||
scope: meta.brace.round.livescript
|
||||
- match: '\[|\]\s*'
|
||||
scope: meta.brace.square.livescript
|
||||
- include: instance_variable
|
||||
- include: backslash_string
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
- match: '()(@|@@|[$\w\-]*[$\w]+)\s*(`)'
|
||||
captures:
|
||||
1: keyword.operator.livescript
|
||||
2: meta.function-call.livescript
|
||||
3: keyword.operator.livescript
|
||||
- match: "`"
|
||||
scope: keyword.operator.livescript
|
||||
- match: '()(@|@@|[$\w\-]*[$\w]+)(?:(\??\!)|[(])'
|
||||
captures:
|
||||
1: keyword.operator.livescript
|
||||
2: meta.function-call.livescript
|
||||
3: keyword.operator.livescript
|
||||
- match: '(@|@@|[$\w\-]*[$\w]+)(\?)? (?!\s*(((by|of|and|or|with|when|unless|if|is|isnt|else|nobreak|for|from|not in|in|catch|til|to|then|import|extends|implements|instanceof)\b)|[=:.*\/+\-%\^<>][ =)]|[`}%*)]|/(?!.*?/)|&&|[.][^.]|=>|\/ +|\||\|\||\-\-|\+\+|\|>|<|\||$|\n|\#|/\*))'
|
||||
captures:
|
||||
1: meta.function-call.livescript
|
||||
2: keyword.operator.livescript
|
||||
- match: \| _
|
||||
scope: keyword.control.livescript
|
||||
- match: '\|(?![.])'
|
||||
scope: keyword.control.livescript
|
||||
- match: \|
|
||||
scope: keyword.operator.livescript
|
||||
- match: ((?<=console\.)(debug|warn|info|log|error|time(End|-end)|assert))\b
|
||||
scope: support.function.console.livescript
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
decodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require
|
||||
)\b
|
||||
scope: support.function.livescript
|
||||
- match: |-
|
||||
(?x)(?<![.-])\b(
|
||||
map|filter|reject|partition|find|each|head|tail|last|initial|empty|
|
||||
values|keys|length|cons|append|join|reverse|fold(l|r)?1?|unfoldr|
|
||||
and(List|-list)|or(List|-list)|any|all|unique|sum|product|mean|compact|
|
||||
concat(Map|-map)?|maximum|minimum|scan(l|r)?1?|replicate|slice|apply|
|
||||
split(At|-at)?|take(While|-while)?|drop(While|-while)?|span|first|
|
||||
break(It|-it)|list(ToObj|-to-obj)|obj(ToFunc|-to-func)|
|
||||
pairs(ToObj|-to-obj)|obj(ToPairs|-to-pairs|ToLists|-to-lists)|
|
||||
zip(All|-all)?(With|-with)?|compose|curry|partial|flip|fix|
|
||||
sort(With|-with|By|-by)?|group(By|-by)|break(List|-list|Str|-str)|
|
||||
difference|intersection|union|average|flatten|chars|unchars|repeat|
|
||||
lines|unlines|words|unwords|max|min|negate|abs|signum|quot|rem|div|mod|
|
||||
recip|pi|tau|exp|sqrt|ln|pow|sin|cos|tan|asin|acos|atan|atan2|truncate|
|
||||
round|ceiling|floor|is(It|-it)NaN|even|odd|gcd|lcm|disabled__id
|
||||
)\b(?![.-])
|
||||
comment: |
|
||||
Generated by DOM query from http://gkz.github.com/prelude-ls/:
|
||||
[].slice
|
||||
.call(document.querySelectorAll(".nav-pills li a"))
|
||||
.map(function(_) {return _.innerText})
|
||||
.filter(function(_) {return _.trim() !== '})
|
||||
.slice(2)
|
||||
.join("|")
|
||||
scope: support.function.prelude.livescript
|
||||
- match: '(?x)(?<![.-])\b(that|it|e|_)\b'
|
||||
scope: support.function.semireserved.livescript
|
||||
- match: |-
|
||||
(?x)((?<=(\.|\]|\)))(
|
||||
apply|call|concat|every|filter|for(Each|-each)|
|
||||
from|has(Own|-own)(Property|-property)|index(Of|-of)|
|
||||
is(Prototype|-prototype)(Of|-of)|join|last(Index|-index)(Of|-of)|
|
||||
map|of|pop|property(Is|-is)(Enumerable|-enumerable)|push|
|
||||
reduce(Right|-right)?|reverse|shift|slice|some|sort|
|
||||
splice|to(Locale|-locale)?(String|-string)|unshift|valueOf
|
||||
))\b(?!-)
|
||||
scope: support.function.method.array.livescript
|
||||
- match: |-
|
||||
(?x)((?<=Array\.)(
|
||||
isArray
|
||||
))\b
|
||||
scope: support.function.static.array.livescript
|
||||
- match: |-
|
||||
(?x)((?<=Object\.)(
|
||||
create|define(Propert|-propert)(ies|y)|freeze|
|
||||
get(Own|-own)(Property|-property)(Descriptors?|Names)|
|
||||
get(Property|-property)(Descriptor|Names)|getPrototypeOf|
|
||||
is((Extensible|-extensible)|(Frozen|-frozen)|(Sealed|-sealed))?|
|
||||
keys|prevent(Extensions|-extensions)|seal
|
||||
))\b
|
||||
scope: support.function.static.object.livescript
|
||||
- match: |-
|
||||
(?x)((?<=Math\.)(
|
||||
abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|
|
||||
hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|
|
||||
tan|tanh|trunc
|
||||
))\b
|
||||
scope: support.function.static.math.livescript
|
||||
- match: |-
|
||||
(?x)((?<=Number\.)(
|
||||
is(Finite|Integer|NaN)|to(Integer|-integer)
|
||||
))\b
|
||||
scope: support.function.static.number.livescript
|
||||
- match: '[\$\w][\w-]*'
|
||||
scope: variable.other.livescript
|
||||
backslash_string:
|
||||
- match: '\\([\\)\s,\};\]])?'
|
||||
captures:
|
||||
0: string.quoted.single.livescript
|
||||
push:
|
||||
- meta_content_scope: string.quoted.single.livescript
|
||||
- match: '([\\)\s,\};\]])'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
constructor_variable:
|
||||
- match: '([a-zA-Z$_][\w$-]*)(@{2})([a-zA-Z$_][\w$-]*)?'
|
||||
scope: variable.other.readwrite.constructor.livescript
|
||||
double_quoted_string:
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.livescript
|
||||
push:
|
||||
- meta_scope: string.quoted.double.livescript
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
- match: '\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.livescript
|
||||
- include: interpolated_livescript
|
||||
embedded_comment:
|
||||
- match: (?<!\\)(#).*$\n
|
||||
scope: comment.line.number-sign.livescript
|
||||
captures:
|
||||
1: punctuation.definition.comment.livescript
|
||||
embedded_spaced_comment:
|
||||
- match: (?<!\\)(#\s).*$\n
|
||||
scope: comment.line.number-sign.livescript
|
||||
captures:
|
||||
1: punctuation.definition.comment.livescript
|
||||
instance_variable:
|
||||
- match: '(?<![$\w\-])(@)'
|
||||
scope: variable.other.readwrite.instance.livescript
|
||||
interpolated_livescript:
|
||||
- match: '\#\{'
|
||||
captures:
|
||||
0: punctuation.section.embedded.livescript
|
||||
push:
|
||||
- meta_scope: source.livescript.embedded.source
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.section.embedded.livescript
|
||||
pop: true
|
||||
- include: main
|
||||
- match: '\#'
|
||||
push:
|
||||
- meta_scope: source.livescript.embedded.source.simple
|
||||
- match: ""
|
||||
pop: true
|
||||
- include: main
|
||||
numeric:
|
||||
- match: '(?<![\$@a-zA-Z_])(([0-9]+r[0-9_]+)|((16r|0[xX])[0-9a-fA-F_]+)|([0-9]+(\.[0-9]+[0-9_]*)?(e[+\-]?[0-9_]+)?)[_a-zA-Z0-9]*)'
|
||||
scope: constant.numeric.livescript
|
||||
single_quoted_string:
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.livescript
|
||||
push:
|
||||
- meta_scope: string.quoted.single.livescript
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.livescript
|
||||
pop: true
|
||||
- match: '\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.livescript
|
||||
variable_name:
|
||||
- match: '([a-zA-Z\$_][\w$-]*(\.\w+)*)(?!\-)'
|
||||
scope: variable.assignment.livescript
|
||||
captures:
|
||||
1: variable.assignment.livescript
|
171
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
Normal file
171
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Manpage
|
||||
file_extensions:
|
||||
- man
|
||||
scope: source.man
|
||||
|
||||
variables:
|
||||
section_heading: '^(?!#)\S.*$'
|
||||
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
|
||||
|
||||
contexts:
|
||||
prototype:
|
||||
# ignore syntax test lines
|
||||
- match: '^#'
|
||||
push:
|
||||
- meta_scope: comment.syntax-test.man
|
||||
- match: $\n?
|
||||
pop: true
|
||||
main:
|
||||
- match: ^
|
||||
push: first_line
|
||||
|
||||
first_line:
|
||||
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))\s*'
|
||||
captures:
|
||||
1: meta.preprocessor.man
|
||||
2: keyword.operator.man
|
||||
3: string.quoted.other.man
|
||||
4: keyword.operator.man
|
||||
push:
|
||||
- match: (?:[\w'-]+|\s(?!\s))
|
||||
scope: markup.heading.title.man
|
||||
- match: \s\s
|
||||
pop: true
|
||||
- match: '(?=\S|$)'
|
||||
pop: true
|
||||
|
||||
- match: '$'
|
||||
set: body
|
||||
|
||||
body:
|
||||
# English, ..., ..., ..., Russian, ...
|
||||
|
||||
- match: '^(?:SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
|
||||
scope: markup.heading.synopsis.man
|
||||
embed: synopsis
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
- match: '^(?:USAGE)'
|
||||
scope: markup.heading.synopsis.man
|
||||
embed: synopsis
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
- match: '{{section_heading}}'
|
||||
scope: markup.heading.other.man
|
||||
embed: options # some man pages put command line options under the description heading
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
function-call:
|
||||
- match: '\b([A-Za-z0-9_\-]+\.)?([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
||||
captures:
|
||||
1: entity.name.function.man
|
||||
2: entity.name.function.man
|
||||
3: keyword.operator.man
|
||||
4: constant.numeric.man
|
||||
5: keyword.operator.man
|
||||
|
||||
env-var:
|
||||
- match: '(\$)(?!\d)(\w+)\b'
|
||||
captures:
|
||||
1: punctuation.definition.variable.man
|
||||
2: constant.other.man
|
||||
|
||||
options:
|
||||
# command-line options like --option=value, --some-flag, or -x
|
||||
- match: '^[ ]{7}(?=-)'
|
||||
push: expect-command-line-option
|
||||
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
|
||||
captures:
|
||||
1: entity.name.command-line-option
|
||||
push:
|
||||
- match: '='
|
||||
scope: keyword.operator.man
|
||||
set:
|
||||
- match: '[^],.() ]+'
|
||||
scope: variable.parameter.man
|
||||
pop: true
|
||||
- match: $
|
||||
pop: true
|
||||
- match: ''
|
||||
pop: true
|
||||
- include: function-call
|
||||
- include: c-code
|
||||
- include: env-var
|
||||
|
||||
expect-command-line-option:
|
||||
- match: '[A-Za-z0-9-]+'
|
||||
scope: entity.name.command-line-option.man
|
||||
- match: '(\[)(=)'
|
||||
captures:
|
||||
1: punctuation.section.brackets.begin.man
|
||||
2: keyword.operator.man
|
||||
push: [command-line-option-or-pipe, expect-parameter]
|
||||
- match: '\['
|
||||
push:
|
||||
- meta_scope: entity.name.command-line-option.man
|
||||
- match: '\]'
|
||||
pop: true
|
||||
- match: '='
|
||||
scope: keyword.operator.man
|
||||
push: expect-parameter
|
||||
- match: (?=.*\.)
|
||||
pop: true
|
||||
- match: '\s'
|
||||
push: expect-parameter
|
||||
- match: '(,)\s*'
|
||||
captures:
|
||||
1: punctuation.separator.man
|
||||
- match: $|(?=\])
|
||||
pop: true
|
||||
|
||||
expect-parameter:
|
||||
- match: '[A-Za-z0-9-]+'
|
||||
scope: variable.parameter.man
|
||||
- match: (?=\s+\|)
|
||||
pop: true
|
||||
- match: \|
|
||||
scope: keyword.operator.logical.man
|
||||
- match: '\['
|
||||
scope: punctuation.section.brackets.begin.man
|
||||
push:
|
||||
- match: '\]'
|
||||
scope: punctuation.section.brackets.end.man
|
||||
pop: true
|
||||
- include: expect-parameter
|
||||
- match: '$|(?=[],]|{{command_line_option}})'
|
||||
pop: true
|
||||
|
||||
c-code:
|
||||
- match: '^(?=\s+(?:#include\b|#define\b|/\*|struct\s+(\w+\s*)?\{))'
|
||||
embed: scope:source.c
|
||||
#embed_scope: source.c.embedded.man
|
||||
#escape: ^(?!#|\1|\s*(?:$|/\*|#include\b|#define\b))
|
||||
escape: ^(?=\s*(?:\(.*\.\)\s*$|[A-Z](?![A-Z])))
|
||||
|
||||
synopsis:
|
||||
- include: c-code
|
||||
- match: \[
|
||||
scope: punctuation.section.brackets.begin.man
|
||||
push: command-line-option-or-pipe
|
||||
- include: options
|
||||
|
||||
command-line-option-or-pipe:
|
||||
- match: (\|)\s*
|
||||
captures:
|
||||
1: keyword.operator.logical.man
|
||||
#- match: (?={{command_line_option}})
|
||||
- match: \w+-\w+
|
||||
- match: (?=-)
|
||||
push:
|
||||
- match: (?=\s*\|)
|
||||
pop: true
|
||||
- include: expect-command-line-option
|
||||
- match: \]
|
||||
scope: punctuation.section.brackets.end.man
|
||||
pop: true
|
||||
- match: \[
|
||||
scope: punctuation.section.brackets.begin.man
|
||||
push: command-line-option-or-pipe
|
1
assets/syntaxes/02_Extra/MediaWiki
vendored
Submodule
1
assets/syntaxes/02_Extra/MediaWiki
vendored
Submodule
Submodule assets/syntaxes/02_Extra/MediaWiki added at 81bf97cace
14
assets/syntaxes/02_Extra/MemInfo.sublime-syntax
vendored
Normal file
14
assets/syntaxes/02_Extra/MemInfo.sublime-syntax
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: MemInfo
|
||||
file_extensions:
|
||||
- meminfo
|
||||
scope: source.meminfo
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^([^:]+)\w*:\w*(.*)$'
|
||||
captures:
|
||||
1: keyword.other.meminfo-key
|
||||
2: string.other.meminfo-value
|
1
assets/syntaxes/02_Extra/Nginx
vendored
Submodule
1
assets/syntaxes/02_Extra/Nginx
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Nginx added at 65f5a63c0d
258
assets/syntaxes/02_Extra/Nim.sublime-syntax
vendored
Normal file
258
assets/syntaxes/02_Extra/Nim.sublime-syntax
vendored
Normal file
@@ -0,0 +1,258 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Nim
|
||||
file_extensions:
|
||||
- nim
|
||||
- nims
|
||||
- nimble
|
||||
scope: source.nim
|
||||
contexts:
|
||||
main:
|
||||
- match: '(\#\[\s*(TODO|todo)?)'
|
||||
comment: A multiline comment.
|
||||
captures:
|
||||
1: punctuation.definition.multi-comment.nim
|
||||
2: invalid.illegal.TODO.nim
|
||||
push:
|
||||
- meta_scope: comment.line.number-sign.multi-comment.nim
|
||||
- match: '(.*]\#)'
|
||||
captures:
|
||||
1: punctuation.definition.multi-comment.nim
|
||||
2: invalid.illegal.TODO.nim
|
||||
pop: true
|
||||
- match: (##\s*(TODO|todo)?).+$\n?
|
||||
comment: A documentation comment.
|
||||
scope: comment.line.number-sign.doc-comment.nim
|
||||
captures:
|
||||
1: punctuation.definition.doc-comment.nim
|
||||
2: invalid.illegal.TODO.nim
|
||||
- match: (##\s*)$\n?
|
||||
comment: An empty documentation comment.
|
||||
scope: comment.line.number-sign.doc-comment.empty.nim
|
||||
captures:
|
||||
1: punctuation.definition.doc-comment.empty.nim
|
||||
- match: (#\s*(TODO|todo)?).*$\n?
|
||||
comment: A regular comment
|
||||
scope: comment.line.number-sign.comment.nim
|
||||
captures:
|
||||
1: punctuation.definition.comment.nim
|
||||
2: invalid.illegal.TODO.nim
|
||||
- match: '\{\.'
|
||||
comment: Pragmas
|
||||
push:
|
||||
- meta_scope: pragma
|
||||
- match: '\.?\}'
|
||||
pop: true
|
||||
- match: \"
|
||||
push:
|
||||
- meta_scope: string.something.nim
|
||||
- match: \"
|
||||
pop: true
|
||||
- match: '([\w\x{80}-\x{10FFFF}]+)'
|
||||
scope: entity.other.attribute-name.pragma.nim
|
||||
- match: discard \"\"\"
|
||||
comment: A discarded triple string literal comment
|
||||
push:
|
||||
- meta_scope: comment.line.discarded.nim
|
||||
- match: \"\"\"
|
||||
pop: true
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(\d[_\d]*((\.[_\d]+([eE][\+\-]?\d[_\d]*)?)|([eE][\+\-]?\d[_\d]*)))(''?([fF](32|64|128))|[fFdD])?'
|
||||
comment: A float literal
|
||||
scope: constant.numeric.float.decimal.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(0[xX][0-9A-Fa-f][_0-9A-Fa-f]*)(''?(([iIuUfF](8|16|32|64))|[uUfFdD]))?'
|
||||
comment: A hexadecimal literal
|
||||
scope: constant.numeric.integer.hexadecimal.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(0[ocC][0-7][_0-7]*)(''?(([iIuUfF](8|16|32|64))|[uUfFdD]))?'
|
||||
comment: A base-8 integer literal
|
||||
scope: constant.numeric.integer.octal.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(0(b|B)[01][_01]*)(''?(([iIuUfF](8|16|32|64))|[uUfFdD]))?'
|
||||
comment: A base-2 integer literal
|
||||
scope: constant.numeric.integer.binary.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(\d[_\d]*)(''?(([iIuUfF](8|16|32|64))|[uUfFdD]))?'
|
||||
comment: A base-10 integer literal
|
||||
scope: constant.numeric.integer.decimal.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(true|false|inf|nil)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Language Constants.
|
||||
scope: constant.language.nim
|
||||
- match: (?:^|\s+|=)(when|if)\b
|
||||
comment: Primary branching keywords
|
||||
captures:
|
||||
1: keyword.control.primary.nim
|
||||
push:
|
||||
- match: (?=:)
|
||||
captures:
|
||||
1: control.variable.parameter.nim
|
||||
pop: true
|
||||
- include: scope:source.nim
|
||||
- match: (?:^|\s+|=)(case)\b
|
||||
comment: Primary branching keyword 'case'
|
||||
captures:
|
||||
1: keyword.control.primary.nim
|
||||
push:
|
||||
- match: (?=\bof\b)
|
||||
captures:
|
||||
1: control.variable.parameter.nim
|
||||
pop: true
|
||||
- include: scope:source.nim
|
||||
- match: (?:^|\s+)(of|else|elif)\b
|
||||
comment: Secondary branching keywords and their conditions
|
||||
captures:
|
||||
1: keyword.control.secondary.nim
|
||||
push:
|
||||
- match: (?=:)
|
||||
captures:
|
||||
1: control.variable.parameter.nim
|
||||
pop: true
|
||||
- include: scope:source.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(await|block|break|continue|do|end|except|finally|raise|return|try|while|yield)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Keywords that affect program control flow or scope.
|
||||
scope: keyword.control.nim
|
||||
- match: '((?<![\w\x{80}-\x{10FFFF}])(and|in|is|isnot|not|notin|or|xor)(?![\w\x{80}-\x{10FFFF}]))'
|
||||
comment: Keyword boolean operators for expressions.
|
||||
scope: keyword.operator.boolean.nim
|
||||
- match: '((?<![\w\x{80}-\x{10FFFF}])(addr|as|atomic|bind|cast|const|converter|defer|discard|distinct|div|enum|export|include|let|mixin|object|of|ptr|ref|shl|shr|static|type|var)(?![\w\x{80}-\x{10FFFF}]))'
|
||||
comment: Other keywords.
|
||||
scope: keyword.other.nim
|
||||
- match: (\b()\b|(=|\+|-|\*|/|<|>|@|\$|~|&|%|!|\?|\^|\.|:|\\)+)
|
||||
comment: Generic operators for expressions.
|
||||
scope: keyword.operator.nim
|
||||
- match: (for)\s+
|
||||
comment: in keyword in a 'for' loop
|
||||
captures:
|
||||
1: keyword.control.nim
|
||||
push:
|
||||
- meta_scope: meta.forloop.nim
|
||||
- match: (?=:)
|
||||
captures:
|
||||
1: keyword.control.nim
|
||||
pop: true
|
||||
- match: '\ [\w\x{80}-\x{10FFFF},]+\s+(in)\s+'
|
||||
captures:
|
||||
1: keyword.control.nim
|
||||
- include: scope:source.nim
|
||||
- match: '((import)\s+[\.|\w|\/]+,?)'
|
||||
comment: Import syntax
|
||||
captures:
|
||||
2: keyword.control.nim
|
||||
- match: '(from)\s+[\/\w]+\s+(?=import)'
|
||||
captures:
|
||||
1: keyword.control.nim
|
||||
- match: (var|let)\s*\(
|
||||
comment: Destructure syntax
|
||||
captures:
|
||||
1: keyword.other.nim
|
||||
push:
|
||||
- match: \)
|
||||
captures:
|
||||
1: keyword.other.nim
|
||||
pop: true
|
||||
- match: '((?<![\w\x{80}-\x{10FFFF}])(generic|interface|lambda|out|shared|with|without)(?![\w\x{80}-\x{10FFFF}]))'
|
||||
comment: Invalid and unused keywords.
|
||||
scope: keyword.invalid.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(new|GC_ref|GC_unref|assert|echo|defined|declared|newException|countup|countdown|len|high|low)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Common functions
|
||||
scope: keyword.other.common.function.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(((uint|int|float)(8|16|32|64)?)|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringArray|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Built-in, concrete types.
|
||||
scope: storage.type.concrete.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(range|array|seq|tuple|natural|set|ref|ptr|pointer)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Built-in, generic types.
|
||||
scope: storage.type.generic.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(proc|iterator|method|template|macro)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Function types
|
||||
scope: storage.type.function.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(openarray|varargs|void)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Special types.
|
||||
scope: storage.type.generic.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])([A-Z][A-Z0-9_]+)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Other constants.
|
||||
scope: support.constant.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])([A-Z]\w+)(?![\w\x{80}-\x{10FFFF}])'
|
||||
comment: Other types.
|
||||
scope: support.type.nim
|
||||
- match: '(?<![\w\x{80}-\x{10FFFF}])(\w+)(?![\w\x{80}-\x{10FFFF}])(?=\()'
|
||||
comment: Function call.
|
||||
scope: support.function.any-method.nim
|
||||
- match: r?\"\"\"
|
||||
comment: (Raw) Triple Quoted String
|
||||
push:
|
||||
- meta_scope: string.quoted.triple.nim
|
||||
- match: '\"\"\"[^\"]'
|
||||
pop: true
|
||||
- match: r\"
|
||||
comment: Raw Double Quoted String
|
||||
push:
|
||||
- meta_scope: string.quoted.double.raw.nim
|
||||
- match: \"
|
||||
pop: true
|
||||
- match: \"\"
|
||||
- match: \"
|
||||
comment: Double Quoted String
|
||||
push:
|
||||
- meta_scope: string.quoted.double.nim
|
||||
- match: \"
|
||||
pop: true
|
||||
- include: escaped_char
|
||||
- match: \'
|
||||
comment: Single quoted character literal
|
||||
push:
|
||||
- meta_scope: string.quoted.single.nim
|
||||
- match: \'
|
||||
pop: true
|
||||
- match: \\n
|
||||
scope: invalid.illegal.character.nim
|
||||
- include: escaped_char
|
||||
- match: '([^\''][^\'']+?)'
|
||||
scope: invalid.illegal.character.nim
|
||||
- match: '([\w\x{80}-\x{10FFFF}\`]+)\s*(?=\(|\[.+?\]\s*\()'
|
||||
comment: Call syntax
|
||||
captures:
|
||||
1: support.function.any-method.nim
|
||||
push:
|
||||
- match: \)
|
||||
captures:
|
||||
1: support.function.any-method.nim
|
||||
pop: true
|
||||
- include: scope:source.nim
|
||||
- match: '([\w\x{80}-\x{10FFFF}]+)(?=\s+[\w](?![\w\x{80}-\x{10FFFF}]+((?!\n)\s)+))'
|
||||
comment: Command syntax
|
||||
captures:
|
||||
1: support.function.any-method.nim
|
||||
- match: '([\w\x{80}-\x{10FFFF}]+)(?=\s+[\"\''\`])'
|
||||
captures:
|
||||
1: support.function.any-method.nim
|
||||
- match: (tmpl(i)?)(?=( (nim|html|xml|js|css|glsl|md))?\"\"\")
|
||||
comment: tmpl specifier
|
||||
captures:
|
||||
1: storage.type.function.nim
|
||||
2: keyword.operator.nim
|
||||
escaped_char:
|
||||
- match: '\\[nN]'
|
||||
scope: constant.character.escape.newline.nim
|
||||
- match: '\\[cC]|\\[rR]'
|
||||
scope: constant.character.escape.carriagereturn.nim
|
||||
- match: '\\[lL]'
|
||||
scope: constant.character.escape.linefeed.nim
|
||||
- match: '\\[fF]'
|
||||
scope: constant.character.escape.formfeed.nim
|
||||
- match: '\\[tT]'
|
||||
scope: constant.character.escape.tabulator.nim
|
||||
- match: '\\[vV]'
|
||||
scope: constant.character.escape.verticaltabulator.nim
|
||||
- match: \\\"
|
||||
scope: constant.character.escape.double-quote.nim
|
||||
- match: \\'
|
||||
scope: constant.character.escape.single-quote.nim
|
||||
- match: '\\[0-9]+'
|
||||
scope: constant.character.escape.chardecimalvalue.nim
|
||||
- match: '\\[aA]'
|
||||
scope: constant.character.escape.alert.nim
|
||||
- match: '\\[bB]'
|
||||
scope: constant.character.escape.backspace.nim
|
||||
- match: '\\[eE]'
|
||||
scope: constant.character.escape.escape.nim
|
||||
- match: '\\[xX][0-9A-Fa-f]{2}'
|
||||
scope: constant.character.escape.hex.nim
|
||||
- match: \\\\
|
||||
scope: constant.character.escape.backslash.nim
|
1
assets/syntaxes/02_Extra/Ninja
vendored
Submodule
1
assets/syntaxes/02_Extra/Ninja
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Ninja added at 25830aaec9
52
assets/syntaxes/02_Extra/Ninja.sublime-syntax
vendored
Normal file
52
assets/syntaxes/02_Extra/Ninja.sublime-syntax
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Ninja
|
||||
file_extensions:
|
||||
- ninja
|
||||
scope: source.ninja
|
||||
contexts:
|
||||
main:
|
||||
- match: (#).*$\n?
|
||||
comment: Comment line.
|
||||
scope: comment.line.number-sign.ninja
|
||||
captures:
|
||||
1: punctuation.definition.comment.ninja
|
||||
- match: ^(rule)\b
|
||||
comment: Rule keyword and keywords for a rule.
|
||||
captures:
|
||||
1: keyword.other.ninja
|
||||
push:
|
||||
- match: ^(?=\S)
|
||||
pop: true
|
||||
- include: main
|
||||
- match: \b(?:command|deps|depfile|description|generator|pool|restat|rspfile|rspfile_content)\b
|
||||
scope: keyword.other.ninja
|
||||
- match: ^(pool)\b
|
||||
comment: Pool keyword and keywords for a pool.
|
||||
captures:
|
||||
1: keyword.other.ninja
|
||||
push:
|
||||
- match: ^(?=\S)
|
||||
pop: true
|
||||
- include: main
|
||||
- match: \b(?:depth)\b
|
||||
scope: keyword.other.ninja
|
||||
- match: ^(?:build|rule|default|include|subninja)\b
|
||||
comment: Other Keywords.
|
||||
scope: keyword.other.ninja
|
||||
- match: '(?:[=:]|\|{1,2})(?=\s)'
|
||||
comment: Operators for variable assignment (=), rule definition (:), implicit (|) and order only (||) dependencies.
|
||||
scope: keyword.operator.ninja
|
||||
- match: \$$
|
||||
comment: Line wrap.
|
||||
scope: keyword.operator.ninja
|
||||
- match: \$\$
|
||||
comment: Dollar literal.
|
||||
scope: keyword.operator.ninja
|
||||
- match: '\$[[:alnum:]_-]+'
|
||||
comment: Simple variables, e.g. $var.
|
||||
scope: variable.other.ninja
|
||||
- match: '\${[[:alnum:]_.-]+}'
|
||||
comment: "Variables, e.g. ${some.var.name}."
|
||||
scope: variable.other.ninja
|
1
assets/syntaxes/02_Extra/Nix
vendored
Submodule
1
assets/syntaxes/02_Extra/Nix
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Nix added at 9032bd6137
@@ -140,7 +140,7 @@ contexts:
|
||||
push:
|
||||
- match: '(?=([\])};]|\b(else|then)\b))'
|
||||
pop: true
|
||||
- match: '(?=(\s*\}|\"|\binherit\b|\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*(\s*\.|\s*=[^=])))'
|
||||
- match: '(?=(\s*\}|\"|\binherit\b|\b[a-zA-Z\_][a-zA-Z0-9\_\''\-]*(\s*\.|\s*=[^=])|\$\{[a-zA-z0-9\_\''\-]+\}(\s*\.|\s*=[^=])))'
|
||||
push:
|
||||
- match: '(?=([\])};,]|\b(else|then)\b))'
|
||||
pop: true
|
||||
@@ -563,7 +563,7 @@ contexts:
|
||||
pop: true
|
||||
- include: string-quoted
|
||||
- include: expression-cont
|
||||
- match: '([a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+)'
|
||||
- match: '(~?[a-zA-Z0-9\.\_\-\+]*(\/[a-zA-Z0-9\.\_\-\+]+)+)'
|
||||
captures:
|
||||
0: string.unquoted.path.nix
|
||||
push:
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user