mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-01 10:52:24 +01:00
Compare commits
1100 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6a6041c72c | ||
|
0d93abde67 | ||
|
1cc39a790f | ||
|
2d93da1869 | ||
|
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 |
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]
|
48
.github/ISSUE_TEMPLATE/bug_report.md
vendored
48
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,33 +7,41 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!--
|
<!-- Hey there, thank you for creating an issue! -->
|
||||||
Hey there, thanks for creating an issue!
|
|
||||||
|
|
||||||
In order to reproduce your issue, we might need to know a little bit more about the environment
|
|
||||||
which you're running `bat` on.
|
|
||||||
|
|
||||||
If you're on Linux or MacOS:
|
|
||||||
Please run the script at https://github.com/sharkdp/bat/blob/master/diagnostics/info.sh and
|
|
||||||
paste the output at the bottom of the bug report.
|
|
||||||
|
|
||||||
If you're on Windows:
|
|
||||||
Please tell us about your Windows Version (e.g. "Windows 10 1908") at the
|
|
||||||
bottom of the bug report.
|
|
||||||
-->
|
|
||||||
|
|
||||||
**What version of `bat` are you using?**
|
|
||||||
[paste the output of `bat --version` here]
|
|
||||||
|
|
||||||
**Describe the bug you encountered:**
|
**Describe the bug you encountered:**
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
**Describe what you expected to happen?**
|
**What did you expect to happen instead?**
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
**How did you install `bat`?**
|
**How did you install `bat`?**
|
||||||
apt-get, homebrew, GitHub release, etc.
|
|
||||||
|
<!-- apt-get, homebrew, GitHub release, etc. -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[paste the output of `info.sh` here]
|
**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
1
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,2 +1 @@
|
|||||||
blank_issues_enabled: true
|
blank_issues_enabled: true
|
||||||
|
|
||||||
|
1
.github/ISSUE_TEMPLATE/feature_request.md
vendored
1
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -7,4 +7,3 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
1
.github/ISSUE_TEMPLATE/question.md
vendored
1
.github/ISSUE_TEMPLATE/question.md
vendored
@@ -7,4 +7,3 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
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
|
470
.github/workflows/CICD.yml
vendored
Normal file
470
.github/workflows/CICD.yml
vendored
Normal file
@@ -0,0 +1,470 @@
|
|||||||
|
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: 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 }
|
||||||
|
- { 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 }}
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,6 +2,8 @@
|
|||||||
**/*.rs.bk
|
**/*.rs.bk
|
||||||
|
|
||||||
# Generated files
|
# Generated files
|
||||||
|
/assets/completions/bat.bash
|
||||||
/assets/completions/bat.fish
|
/assets/completions/bat.fish
|
||||||
|
/assets/completions/bat.zsh
|
||||||
/assets/manual/bat.1
|
/assets/manual/bat.1
|
||||||
/assets/metadata.yaml
|
/assets/metadata.yaml
|
||||||
|
83
.gitmodules
vendored
83
.gitmodules
vendored
@@ -61,18 +61,12 @@
|
|||||||
[submodule "assets/syntaxes/Puppet"]
|
[submodule "assets/syntaxes/Puppet"]
|
||||||
path = assets/syntaxes/02_Extra/Puppet
|
path = assets/syntaxes/02_Extra/Puppet
|
||||||
url = https://github.com/russCloak/SublimePuppet
|
url = https://github.com/russCloak/SublimePuppet
|
||||||
[submodule "assets/syntaxes/CSV"]
|
|
||||||
path = assets/syntaxes/02_Extra/CSV
|
|
||||||
url = https://github.com/wadetb/Sublime-Text-Advanced-CSV
|
|
||||||
[submodule "assets/themes/onehalf"]
|
[submodule "assets/themes/onehalf"]
|
||||||
path = assets/themes/onehalf
|
path = assets/themes/onehalf
|
||||||
url = https://github.com/sonph/onehalf
|
url = https://github.com/sonph/onehalf
|
||||||
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
||||||
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
||||||
url = https://github.com/babel/babel-sublime
|
url = https://github.com/babel/babel-sublime
|
||||||
[submodule "assets/syntaxes/Dart"]
|
|
||||||
path = assets/syntaxes/02_Extra/Dart
|
|
||||||
url = https://github.com/guillermooo/dart-sublime-bundle
|
|
||||||
[submodule "assets/syntaxes/FSharp"]
|
[submodule "assets/syntaxes/FSharp"]
|
||||||
path = assets/syntaxes/02_Extra/FSharp
|
path = assets/syntaxes/02_Extra/FSharp
|
||||||
url = https://github.com/hoest/sublimetext-fsharp
|
url = https://github.com/hoest/sublimetext-fsharp
|
||||||
@@ -94,16 +88,9 @@
|
|||||||
[submodule "assets/themes/sublime-snazzy"]
|
[submodule "assets/themes/sublime-snazzy"]
|
||||||
path = assets/themes/sublime-snazzy
|
path = assets/themes/sublime-snazzy
|
||||||
url = https://github.com/greggb/sublime-snazzy
|
url = https://github.com/greggb/sublime-snazzy
|
||||||
[submodule "assets/syntaxes/AsciiDoc"]
|
|
||||||
path = assets/syntaxes/02_Extra/AsciiDoc
|
|
||||||
url = https://github.com/SublimeText/AsciiDoc.git
|
|
||||||
[submodule "assets/syntaxes/Assembly (ARM)"]
|
[submodule "assets/syntaxes/Assembly (ARM)"]
|
||||||
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
||||||
url = https://github.com/tvi/Sublime-ARM-Assembly
|
url = https://github.com/tvi/Sublime-ARM-Assembly
|
||||||
[submodule "assets/syntaxes/syslog-syntax"]
|
|
||||||
path = assets/syntaxes/02_Extra/Syslog
|
|
||||||
url = https://github.com/caos21/syslog-syntax.git
|
|
||||||
branch = master
|
|
||||||
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
||||||
path = assets/syntaxes/02_Extra/Protobuf
|
path = assets/syntaxes/02_Extra/Protobuf
|
||||||
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
||||||
@@ -123,9 +110,6 @@
|
|||||||
[submodule "assets/syntaxes/Org mode"]
|
[submodule "assets/syntaxes/Org mode"]
|
||||||
path = assets/syntaxes/02_Extra/Org mode
|
path = assets/syntaxes/02_Extra/Org mode
|
||||||
url = https://github.com/jezcope/Org.tmbundle.git
|
url = https://github.com/jezcope/Org.tmbundle.git
|
||||||
[submodule "assets/syntaxes/requirementstxt"]
|
|
||||||
path = assets/syntaxes/02_Extra/requirementstxt
|
|
||||||
url = https://github.com/wuub/requirementstxt
|
|
||||||
[submodule "assets/syntaxes/DotENV"]
|
[submodule "assets/syntaxes/DotENV"]
|
||||||
path = assets/syntaxes/02_Extra/DotENV
|
path = assets/syntaxes/02_Extra/DotENV
|
||||||
url = https://github.com/zaynali53/DotENV
|
url = https://github.com/zaynali53/DotENV
|
||||||
@@ -185,3 +169,70 @@
|
|||||||
[submodule "assets/syntaxes/02_Extra/QML"]
|
[submodule "assets/syntaxes/02_Extra/QML"]
|
||||||
path = assets/syntaxes/02_Extra/QML
|
path = assets/syntaxes/02_Extra/QML
|
||||||
url = https://github.com/skozlovf/Sublime-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
|
||||||
|
106
.travis.yml
106
.travis.yml
@@ -1,106 +0,0 @@
|
|||||||
language: rust
|
|
||||||
|
|
||||||
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
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env:
|
|
||||||
- TARGET=aarch64-unknown-linux-gnu
|
|
||||||
- CC_aarch64-unknown-linux-gnu=/usr/bin/aarch64-linux-gnu-gcc-4.8
|
|
||||||
- CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc-4.8
|
|
||||||
|
|
||||||
# Minimum Rust supported channel.
|
|
||||||
- os: linux
|
|
||||||
rust: 1.40.0
|
|
||||||
env: TARGET=x86_64-unknown-linux-gnu
|
|
||||||
- os: linux
|
|
||||||
rust: 1.40.0
|
|
||||||
env:
|
|
||||||
- TARGET=x86_64-unknown-linux-musl
|
|
||||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
|
||||||
- os: osx
|
|
||||||
rust: 1.40.0
|
|
||||||
env: TARGET=x86_64-apple-darwin
|
|
||||||
|
|
||||||
# Disable nightly for now
|
|
||||||
# # 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
|
|
259
CHANGELOG.md
259
CHANGELOG.md
@@ -1,14 +1,265 @@
|
|||||||
# unreleased
|
# unreleased
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
- New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee)
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
## New syntaxes
|
|
||||||
## New themes
|
## Syntaxes
|
||||||
|
|
||||||
|
- `GraphQL`: Add support for interfaces implementing interfaces and consider ampersand an operator. See #2000
|
||||||
|
- Associate `_vimrc` and `_gvimrc` files with the `VimL` syntax. See #2002
|
||||||
|
- Associate `poetry.lock` files with the `TOML` syntax. See #2049
|
||||||
|
- Associate `.mesh`, `.task`, `.rgen`, `.rint`, `.rahit`, `.rchit`, `.rmiss`, and `.rcall` with the `GLSL` syntax. See #2050
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
## `bat` as a library
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Exposed `get_syntax_set` and `get_theme` methods on `HighlightingAssets`. See #2030 (@dandavison)
|
||||||
|
|
||||||
|
# v0.19.0
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
- Reduce startup time in loop-through mode (e.g. when redirecting output) by 90%. See #1747 (@Enselic)
|
||||||
|
- Load themes lazily to make bat start 25% faster when disregarding syntax load time. See #1969 (@Enselic)
|
||||||
|
- Python syntax highlighting no longer suffers from abysmal performance in specific scenarios. See #1688 (@keith-hall)
|
||||||
|
- Fix for poor performance when ANSI escape sequences are piped to `bat`, see #1596 (@eth-p)
|
||||||
|
- Fix for incorrect handling of ANSI escape sequences when using `--wrap=never`, see #1596 (@eth-p)
|
||||||
|
- Load custom assets as fast as integrated assets, see #1753 (@Enselic)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Support for `x:-delta` (minus) syntax in line ranges (e.g. `20:-10`). See #1901 (@bojan88)
|
||||||
|
- Support for `--ignored-suffix` argument. See #1892 (@bojan88)
|
||||||
|
- `$BAT_CONFIG_DIR` is now a recognized environment variable. It has precedence over `$XDG_CONFIG_HOME`, see #1727 (@billrisher)
|
||||||
|
- Support for `x:+delta` syntax in line ranges (e.g. `20:+10`). See #1810 (@bojan88)
|
||||||
|
- Add new `--acknowledgements` option that gives credit to theme and syntax definition authors. See #1971 (@Enselic)
|
||||||
|
- Include git hash in `bat -V` and `bat --version` output if present. See #1921 (@Enselic)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- First line not shown in diff context. See #1891 (@divagant-martian)
|
||||||
|
- Do not ignore syntaxes that handle file names with a `*.conf` extension. See #1703 (@cbolgiano)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add PowerShell completion, see #1826 (@rashil2000)
|
||||||
|
- Minimum supported Rust version (MSRV) bumped to 1.51, see #1994 (@mdibaiee)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Groff, see #1685 (@scop)
|
||||||
|
- HTTP Requests and Responses, see #1748 (@keith-hall)
|
||||||
|
- LLVM, see #1777 (@ioncodes)
|
||||||
|
- Highlight for `vimrc` and `gvimrc` files, see #1763 (@SuperSandro2000)
|
||||||
|
- Syslog highlighting improvements, see #1793 (@scop)
|
||||||
|
- Added support for `slim` syntax, see #1693 (@mfinelli)
|
||||||
|
- Racket, see #1884 (@jubnzv)
|
||||||
|
- LiveScript, see #1915 (@Enselic)
|
||||||
|
- MediaWiki, see #1925 (@sorairolake)
|
||||||
|
- The `requirements.txt` syntax has been removed due to incompatible license requirements.
|
||||||
|
- Dart, new highlighter, see #1959 (@Ersikan)
|
||||||
|
- SCSS and Sass syntaxes updated, see #1766 (@Enselic)
|
||||||
|
- PowerShell syntax updated, see #1935 (@Enselic)
|
||||||
|
- TypeScript syntax updated, see #1834 (@Enselic)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Deprecate `HighlightingAssets::syntaxes()` and `HighlightingAssets::syntax_for_file_name()`. Use `HighlightingAssets::get_syntaxes()` and `HighlightingAssets::get_syntax_for_path()` instead. They return a `Result` which is needed for upcoming lazy-loading work to improve startup performance. They also return which `SyntaxSet` the returned `SyntaxReference` belongs to. See #1747, #1755, #1776, #1862 (@Enselic)
|
||||||
|
- Remove `HighlightingAssets::from_files` and `HighlightingAssets::save_to_cache`. Instead of calling the former and then the latter you now make a single call to `bat::assets::build`. See #1802, #1971 (@Enselic)
|
||||||
|
- Replace the `error::Error(error::ErrorKind, _)` struct and enum with an `error::Error` enum. `Error(ErrorKind::UnknownSyntax, _)` becomes `Error::UnknownSyntax`, etc. Also remove the `error::ResultExt` trait. These changes stem from replacing `error-chain` with `thiserror`. See #1820 (@Enselic)
|
||||||
|
- Add new `MappingTarget` enum variant `MapExtensionToUnknown`. Refer to its documentation for more information. Also mark `MappingTarget` as `#[non_exhaustive]` since more enum variants might be added in the future. See #1703 (@cbolgiano), #2012 (@Enselic)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.3
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Bump `git2` dependency to fix build with Rust 1.54, see #1761
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.2
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Ignore known backup/template filename suffixes when selecting the syntax, see #1687 (@scop)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix for a security vulnerability on Windows. Prior to this release, `bat` would execute programs called `less`/`less.exe` from the current working directory (instead of the one from `PATH`) with priority. An attacker might be able to use this by placing a malicious program in a shared directory where the user would execute `bat`. `bat` users on Windows are advised to upgrade to this version. See #1724 and #1472 (@Ry0taK).
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add bash completion, see #1678 (@scop)
|
||||||
|
- Fix Clippy lints, see #1661 (@mohamed-abdelnour)
|
||||||
|
- Add syntax highlighting test files, see #1213 and #1668 (@mohamed-abdelnour)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Upgraded Julia syntax to fix a highlighting bug, see #1692
|
||||||
|
- Added support for `dash` syntax, see #1654 (@mohamed-abdelnour)
|
||||||
|
- Added support for `XAML` syntax, see #1590 and #1655 (@mohamed-abdelnour)
|
||||||
|
- Apply `DotENV` syntax also for `.env.default` and `.env.defaults` files, see #1669
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Mouse support and screen clearing broken for `less` versions with minor version number (581.2), see #1629 and #1639 (@aswild)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- `Input::ordinary_file` and `Input::with_name` now accept `Path` rather than `OsStr` see #1571 (@matklad)
|
||||||
|
- The `LESS` environment variable is now included in `bat --diagnostic`, see #1589 (@Enselic)
|
||||||
|
- Increased min. required Rust version to 1.45
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Improved the Syslog syntax highlighting, see #1606 (@keith-hall)
|
||||||
|
- Replaced "Advanced CSV" with a custom CSV syntax definition written especially for `bat`; see #1574 (@keith-hall)
|
||||||
|
- Added SystemVerilog file syntax, see #1580 (@SeanMcLoughlin)
|
||||||
|
- Added Solidity and Vyper syntax, see #1602 (@Ersikan)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Dark+ VS Code theme, see #1588 and #1598 (@PatriotRossii)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Use a pager when `bat --list-languages` is called, see #1394 (@stku1985)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- If the last line doesn't end with a newline character, don't add it if `--style=plain`, see #1438 (@Enselic)
|
||||||
|
- Only print themes hint in interactive mode (`bat --list-themes`), see #1439 (@rsteube)
|
||||||
|
- Make ./tests/syntax-tests/regression_test.sh work on recent versions of macOS, see #1443 (@Enselic)
|
||||||
|
- VimL syntax highlighting fix, see #1450 (@esensar)
|
||||||
|
- Print an 'Invalid syntax theme settings' error message if a custom theme is broken, see #614 (@Enselic)
|
||||||
|
- If plain mode is set and wrap is not explicitly opted in, long lines will no be truncated, see #1426
|
||||||
|
- If `PAGER` (but not `BAT_PAGER` or `--pager`) is `more` or `most`, silently use `less` instead to ensure support for colors, see #1063 (@Enselic)
|
||||||
|
- If `PAGER` is `bat`, silently use `less` to prevent recursion. For `BAT_PAGER` or `--pager`, exit with error, see #1413 (@Enselic)
|
||||||
|
- Manpage highlighting fix, see #1511 (@keith-hall)
|
||||||
|
- `BAT_CONFIG_PATH` ignored by `bat` if non-existent, see #1550 (@sharkdp)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Performance improvements, see #1421 (@LovecraftianHorror)
|
||||||
|
- Added a new `--diagnostic` option to collect information for bug reports, see #1459 (@sharkdp)
|
||||||
|
- Modified default theme colors to differentiate between a JSON key and a string value, see #1400 (@keith-hall)
|
||||||
|
- Upped min required Rust version to 1.42
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Added Zig syntax, see #1470 (@paulsmith)
|
||||||
|
- Added Lean syntax, see #1446 (@Julian)
|
||||||
|
- Added `.resource` extension for Robot Framework files, see #1386
|
||||||
|
- Added `gnuplot` syntax, see #1431 (@sharkdp)
|
||||||
|
- Highlight *.pac (Proxy auto-config) files as JavaScript, see #1515 (@sharkdp)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- `ansi` replaces `ansi-dark` and `ansi-light`, see #1104 and #1412 (@mk12). **Breaking change:** users that were previously using one of the `ansi-*` themes should switch to `ansi`.
|
||||||
|
- The Gruvbox theme has been updated, see #1291 (@j0hnmeow). **Breaking change:** users that were previously using `gruvbox` or `gruvbox-white` should update and use `gruvbox-dark`/`gruvbox-light` instead.
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- The following `PrettyPrinter` methods have been removed (they were previously deprecated):
|
||||||
|
- `input_stdin_with_name`
|
||||||
|
- `input_from_bytes_with_name`
|
||||||
|
- `input_from_reader_with_name`
|
||||||
|
- `vcs_modification_markers` (if the `git` feature is not enabled)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.17.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Running `bat` without arguments fails ("output file is also an input"), see #1396
|
||||||
|
|
||||||
|
|
||||||
|
# v0.17.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Added a new `--style` value, `rule`, which adds a simple horizontal ruled line between files, see #1276 (@tommilligan)
|
||||||
|
- Pass `-S` ("chop long lines") to `less` if `--wrap=never` is set in `bat`, see #1255 (@gahag)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Detect infinite loop when input and output are the same, see #1193 and #1197 (@niklasmohrin)
|
||||||
|
- Throw an error when `bat` is being used as `pager`, see #1343 (@adrian-rivera)
|
||||||
|
- Bash syntax highlighting not selected for `*.ebuild` and `*.eclass` files, see #1292 (@sharkdp)
|
||||||
|
- Fix `zsh` completion when using `-p`, see #1320 (@xzfc)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add note to refer to see detailed help with `--help` (and vice versa with `-h`), see #1215 (@henil)
|
||||||
|
- Add a `Contributors` section to `README`, see #1348 (@adrian-rivera)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Manpage syntax highlighting has been improved, see #1315 (@keith-hall)
|
||||||
|
- Add Svelte file syntax, see #1285 (@kjmph)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Coldark, see #1329 (@armandphilippot)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.16.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Added support for the `NO_COLOR` environment variable, see #1021 and #1031 (@eth-p)
|
||||||
|
- Added `-P` short flag to disable paging, see #1075 and #1082 (@LordFlashmeow)
|
||||||
|
- Added `--force-colorization`/`-f` flag to provide an alias for forced color and decoration output, see #1141 (@alexanderkarlis)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fixed non-printable characters display for redirected output, see #1061 (@gsomix)
|
||||||
|
- Handle file extension conflicts in `--list-languages`, see #1076 and #1135 (@Kienyew)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Switched to "·" (U+00B7) Middle Dot from "•" (U+2022) Bullet for non-printing spaces, see #1056 and #1100 (@LordFlashmeow)
|
||||||
|
- Added zsh shell completion script, see #1136 (@Kienyew)
|
||||||
|
- Improved `--help` text (@sharkdp)
|
||||||
|
- Added custom languages/themes sections to manpage (@eth-p)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Update AsciiDoc syntax, see #1034 (@rxt1077)
|
||||||
|
- GLSL (@caioalonso)
|
||||||
|
- Add Nginx and Apache config file syntax, see #1137 (@kjmph, @niklasmohrin)
|
||||||
|
- Use `fstab` syntax for `crypttab` files, see #1073 (@sharkdp)
|
||||||
|
- Support syntax highlighting for files in `$XDG_CONFIG_HOME/git/`, see #1191 (@ahmedelgabri)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Gruvbox, see #1069 (@kyleondy)
|
||||||
|
- base16-256 for [base16-shell](https://github.com/chriskempson/base16-shell) users, see #1111 (@mk12)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Add APIs to provide `Input` descriptions with `InputDescription` (@eth-p)
|
||||||
|
- Add function to directly provide `Input`s to `PrettyPrinter` (@eth-p)
|
||||||
|
- **Breaking:** `Input::theme_preview_file` is no longer available. (@eth-p)
|
||||||
|
|
||||||
## Packaging
|
## Packaging
|
||||||
|
|
||||||
# v0.15.3
|
- Removed build dependency on `liquid` (@sharkdp).
|
||||||
|
|
||||||
|
# v0.15.4
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
@@ -371,7 +622,7 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
|
|
||||||
- Added `BAT_CONFIG_PATH` environment variable to set a non-default path for `bat`s configuration file, see #375 (@deg4uss3r)
|
- Added `BAT_CONFIG_PATH` environment variable to set a non-default path for `bat`s configuration file, see #375 (@deg4uss3r)
|
||||||
|
|
||||||
- Allow for multiple occurences of `--style` to allow for the configuration
|
- Allow for multiple occurrences of `--style` to allow for the configuration
|
||||||
of styles from the config file, see #367 (@sindreij)
|
of styles from the config file, see #367 (@sindreij)
|
||||||
|
|
||||||
- Allow for multiple `--line-range` arguments, see #23
|
- Allow for multiple `--line-range` arguments, see #23
|
||||||
|
48
CONTRIBUTING.md
Normal file
48
CONTRIBUTING.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# 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.
|
1492
Cargo.lock
generated
1492
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
75
Cargo.toml
75
Cargo.toml
@@ -1,17 +1,13 @@
|
|||||||
[package]
|
[package]
|
||||||
authors = ["David Peter <mail@david-peter.de>"]
|
authors = ["David Peter <mail@david-peter.de>"]
|
||||||
categories = ["command-line-utilities"]
|
categories = ["command-line-utilities"]
|
||||||
description="A cat(1) clone with wings."
|
description = "A cat(1) clone with wings."
|
||||||
homepage = "https://github.com/sharkdp/bat"
|
homepage = "https://github.com/sharkdp/bat"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
name = "bat"
|
name = "bat"
|
||||||
readme = "README.md"
|
|
||||||
repository = "https://github.com/sharkdp/bat"
|
repository = "https://github.com/sharkdp/bat"
|
||||||
version = "0.15.4"
|
version = "0.19.0"
|
||||||
exclude = [
|
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
||||||
"assets/syntaxes/*",
|
|
||||||
"assets/themes/*",
|
|
||||||
]
|
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
edition = '2018'
|
edition = '2018'
|
||||||
|
|
||||||
@@ -20,38 +16,56 @@ default = ["application"]
|
|||||||
# Feature required for bat the application. Should be disabled when depending on
|
# Feature required for bat the application. Should be disabled when depending on
|
||||||
# bat as a library.
|
# bat as a library.
|
||||||
application = [
|
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",
|
"atty",
|
||||||
"clap",
|
"clap",
|
||||||
"dirs",
|
"dirs-next",
|
||||||
"git",
|
|
||||||
"lazy_static",
|
|
||||||
"liquid",
|
|
||||||
"paging",
|
"paging",
|
||||||
"wild",
|
|
||||||
"regex-onig",
|
"regex-onig",
|
||||||
|
"wild",
|
||||||
]
|
]
|
||||||
git = ["git2"] # Support indicating git modifications
|
git = ["git2"] # Support indicating git modifications
|
||||||
paging = ["shell-words"] # Support applying a pager on the output
|
paging = ["shell-words", "grep-cli"] # Support applying a pager on the output
|
||||||
|
# Add "syntect/plist-load" when https://github.com/trishume/syntect/pull/345 reaches us
|
||||||
|
build-assets = ["syntect/yaml-load", "syntect/dump-create", "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-onig = ["syntect/regex-onig"] # Use the "oniguruma" regex engine
|
||||||
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
atty = { version = "0.2.14", optional = true }
|
atty = { version = "0.2.14", optional = true }
|
||||||
ansi_term = "^0.12.1"
|
ansi_term = "^0.12.1"
|
||||||
ansi_colours = "^1.0"
|
ansi_colours = "^1.1"
|
||||||
console = "0.11.2"
|
bincode = "1.0"
|
||||||
dirs = { version = "2.0", optional = true }
|
console = "0.15.0"
|
||||||
lazy_static = { version = "1.4", optional = true }
|
flate2 = "1.0"
|
||||||
|
once_cell = "1.9"
|
||||||
|
thiserror = "1.0"
|
||||||
wild = { version = "2.0", optional = true }
|
wild = { version = "2.0", optional = true }
|
||||||
content_inspector = "0.2.4"
|
content_inspector = "0.2.4"
|
||||||
encoding = "0.2"
|
encoding = "0.2"
|
||||||
shell-words = { version = "1.0.0", optional = true }
|
shell-words = { version = "1.0.0", optional = true }
|
||||||
unicode-width = "0.1.7"
|
unicode-width = "0.1.9"
|
||||||
globset = "0.4"
|
globset = "0.4"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_yaml = "0.8"
|
serde_yaml = "0.8"
|
||||||
semver = "0.9"
|
semver = "1.0"
|
||||||
path_abs = { version = "0.5", default-features = false }
|
path_abs = { version = "0.5", default-features = false }
|
||||||
|
clircle = "0.3"
|
||||||
|
bugreport = { version = "0.4", optional = true }
|
||||||
|
dirs-next = { version = "2.0.0", optional = true }
|
||||||
|
grep-cli = { version = "0.1.6", optional = true }
|
||||||
|
regex = { version = "1.0", optional = true }
|
||||||
|
walkdir = { version = "2.0", optional = true }
|
||||||
|
bytesize = { version = "1.1.0" }
|
||||||
|
|
||||||
[dependencies.git2]
|
[dependencies.git2]
|
||||||
version = "0.13"
|
version = "0.13"
|
||||||
@@ -59,27 +73,28 @@ optional = true
|
|||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
[dependencies.syntect]
|
[dependencies.syntect]
|
||||||
version = "4.2.0"
|
version = "4.6.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["parsing", "yaml-load", "dump-load", "dump-create"]
|
features = ["parsing"]
|
||||||
|
|
||||||
[dependencies.clap]
|
[dependencies.clap]
|
||||||
version = "2.33"
|
version = "2.34"
|
||||||
optional = true
|
optional = true
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["suggestions", "color", "wrap_help"]
|
features = ["suggestions", "color", "wrap_help"]
|
||||||
|
|
||||||
[dependencies.error-chain]
|
|
||||||
version = "0.12"
|
|
||||||
default-features = false
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempdir = "0.3"
|
assert_cmd = "2.0.4"
|
||||||
assert_cmd = "1.0.1"
|
serial_test = "0.5.1"
|
||||||
|
predicates = "2.1.0"
|
||||||
|
wait-timeout = "0.2.0"
|
||||||
|
tempfile = "3.3.0"
|
||||||
|
|
||||||
|
[target.'cfg(unix)'.dev-dependencies]
|
||||||
|
nix = "0.23.1"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
clap = { version = "2.33", optional = true }
|
clap = { version = "2.34", optional = true }
|
||||||
liquid = { version = "0.20", optional = true }
|
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2018-2020 bat-developers (https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 bat-developers (https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
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.
|
324
README.md
324
README.md
@@ -1,7 +1,6 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
<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>
|
||||||
<a href="https://ci.appveyor.com/project/sharkdp/bat"><img src="https://ci.appveyor.com/api/projects/status/cptsmtbiwbnr2vhf/branch/master?svg=true"></a>
|
|
||||||
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
<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 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.
|
A <i>cat(1)</i> clone with syntax highlighting and Git integration.
|
||||||
@@ -12,10 +11,27 @@
|
|||||||
<a href="#how-to-use">How To Use</a> •
|
<a href="#how-to-use">How To Use</a> •
|
||||||
<a href="#installation">Installation</a> •
|
<a href="#installation">Installation</a> •
|
||||||
<a href="#customization">Customization</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>
|
||||||
Translation [<a href="https://github.com/chinanf-boy/bat-zh">中文</a>][<a href="doc/README-ja.md">日本語</a>][<a href="doc/README-ko.md">한국어</a>]
|
[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>
|
</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
|
### Syntax highlighting
|
||||||
|
|
||||||
`bat` supports syntax highlighting for a large number of programming and markup
|
`bat` supports syntax highlighting for a large number of programming and markup
|
||||||
@@ -39,14 +55,14 @@ characters:
|
|||||||
|
|
||||||
### Automatic paging
|
### 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
|
Even with a pager set, you can still use `bat` to concatenate files :wink:.
|
||||||
`bat` detects a non-interactive terminal (i.e. when you pipe into another process
|
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.
|
||||||
or into a file), `bat` will act as a drop-in replacement for `cat` and
|
|
||||||
fall back to printing the plain file contents.
|
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
@@ -62,7 +78,9 @@ Display multiple files at once
|
|||||||
> bat src/*.rs
|
> bat src/*.rs
|
||||||
```
|
```
|
||||||
|
|
||||||
Read from stdin, determine the syntax automatically
|
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
|
```bash
|
||||||
> curl -s https://sh.rustup.rs | bat
|
> curl -s https://sh.rustup.rs | bat
|
||||||
@@ -93,14 +111,28 @@ bat f - g # output 'f', then stdin, then 'g'.
|
|||||||
|
|
||||||
### Integration with other tools
|
### 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`
|
#### `find` or `fd`
|
||||||
|
|
||||||
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
find … -exec bat {} +
|
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:
|
If you happen to use [`fd`](https://github.com/sharkdp/fd), you can use the `-X`/`--exec-batch` option to do the same:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
fd … -X bat
|
fd … -X bat
|
||||||
```
|
```
|
||||||
@@ -116,9 +148,11 @@ batgrep needle src/
|
|||||||
#### `tail -f`
|
#### `tail -f`
|
||||||
|
|
||||||
`bat` can be combined with `tail -f` to continuously monitor a given file with syntax highlighting.
|
`bat` can be combined with `tail -f` to continuously monitor a given file with syntax highlighting.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tail -f /var/log/pacman.log | bat --paging=never -l log
|
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
|
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.
|
explicitly (`-l log`), as it can not be auto-detected in this case.
|
||||||
|
|
||||||
@@ -126,11 +160,23 @@ explicitly (`-l log`), as it can not be auto-detected in this case.
|
|||||||
|
|
||||||
You can combine `bat` with `git show` to view an older version of a given file with proper syntax
|
You can combine `bat` with `git show` to view an older version of a given file with proper syntax
|
||||||
highlighting:
|
highlighting:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git show v0.6.0:src/main.rs | bat -l rs
|
git show v0.6.0:src/main.rs | bat -l rs
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that syntax highlighting within diffs is currently not supported. If you are looking for this, check out [`delta`](https://github.com/dandavison/delta).
|
#### `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 --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`
|
#### `xclip`
|
||||||
|
|
||||||
@@ -151,6 +197,7 @@ bat main.cpp | xclip
|
|||||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||||
man 2 select
|
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
|
It might also be necessary to set `MANROFFOPT="-c"` if you experience
|
||||||
formatting problems.
|
formatting problems.
|
||||||
@@ -159,6 +206,8 @@ If you prefer to have this bundled in a new command, you can also use [`batman`]
|
|||||||
|
|
||||||
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
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`
|
#### `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`.
|
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`.
|
||||||
@@ -166,24 +215,21 @@ The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
[](https://repology.org/project/bat/versions)
|
[](https://repology.org/project/bat-cat/versions)
|
||||||
|
|
||||||
### On Ubuntu (using `apt`)
|
### On Ubuntu (using `apt`)
|
||||||
*... and other Debian-based Linux distributions.*
|
*... and other Debian-based Linux distributions.*
|
||||||
|
|
||||||
`bat` is making its way through the [Ubuntu](https://packages.ubuntu.com/eoan/bat) and
|
`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).
|
||||||
[Debian](https://packages.debian.org/sid/bat) package release process, and is available
|
|
||||||
for Ubuntu as of Eoan 19.10. On Debian `bat` is currently only available on the unstable
|
|
||||||
"Sid" branch.
|
|
||||||
|
|
||||||
If your Ubuntu/Debian installation is new enough you can simply run:
|
If your Ubuntu/Debian installation is new enough you can simply run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt install bat
|
sudo apt install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
If you install `bat` this way, please note that the executable may be installed as `batcat` instead of `bat` (due to [a name
|
**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 distrutions:
|
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
|
``` bash
|
||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
ln -s /usr/bin/batcat ~/.local/bin/bat
|
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||||
@@ -197,7 +243,7 @@ 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:
|
[release page](https://github.com/sharkdp/bat/releases) and install it via:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i bat_0.15.4_amd64.deb # adapt version number and architecture
|
sudo dpkg -i bat_0.18.3_amd64.deb # adapt version number and architecture
|
||||||
```
|
```
|
||||||
|
|
||||||
### On Alpine Linux
|
### On Alpine Linux
|
||||||
@@ -226,6 +272,14 @@ You can install [the `bat` package](https://koji.fedoraproject.org/koji/packagei
|
|||||||
dnf install bat
|
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
|
### On Gentoo Linux
|
||||||
|
|
||||||
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
||||||
@@ -242,6 +296,13 @@ You can install `bat` via xbps-install:
|
|||||||
xbps-install -S bat
|
xbps-install -S bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### On Termux
|
||||||
|
|
||||||
|
You can install `bat` via pkg:
|
||||||
|
```bash
|
||||||
|
pkg install bat
|
||||||
|
```
|
||||||
|
|
||||||
### On FreeBSD
|
### On FreeBSD
|
||||||
|
|
||||||
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
||||||
@@ -257,6 +318,14 @@ cd /usr/ports/textproc/bat
|
|||||||
make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### On OpenBSD
|
||||||
|
|
||||||
|
You can install `bat` package using [`pkg_add(1)`](https://man.openbsd.org/pkg_add.1):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pkg_add bat
|
||||||
|
```
|
||||||
|
|
||||||
### Via nix
|
### Via nix
|
||||||
|
|
||||||
You can install `bat` using the [nix package manager](https://nixos.org/nix):
|
You can install `bat` using the [nix package manager](https://nixos.org/nix):
|
||||||
@@ -273,14 +342,21 @@ You can install `bat` with zypper:
|
|||||||
zypper install bat
|
zypper install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
### On macOS
|
### Via snap package
|
||||||
|
|
||||||
You can install `bat` with [Homebrew](http://braumeister.org/formula/bat):
|
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
|
```bash
|
||||||
brew install bat
|
brew install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### On macOS via MacPorts
|
||||||
|
|
||||||
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -292,6 +368,10 @@ port install bat
|
|||||||
There are a few options to install `bat` on Windows. Once you have installed `bat`,
|
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.
|
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
|
#### With Chocolatey
|
||||||
|
|
||||||
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
||||||
@@ -306,50 +386,12 @@ You can install `bat` via [scoop](https://scoop.sh/):
|
|||||||
scoop install bat
|
scoop install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
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 prebuilt binaries:
|
#### From prebuilt binaries:
|
||||||
|
|
||||||
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
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.
|
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||||
|
|
||||||
### Via Docker
|
|
||||||
|
|
||||||
There is a [Docker image](https://hub.docker.com/r/danlynn/bat/) that you can use to run `bat` in a container:
|
|
||||||
```bash
|
|
||||||
docker pull danlynn/bat
|
|
||||||
alias bat='docker run -it --rm -e BAT_THEME -e BAT_STYLE -e BAT_TABS -v "$(pwd):/myapp" danlynn/bat'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Via Ansible
|
|
||||||
|
|
||||||
You can install `bat` with [Ansible](https://www.ansible.com/):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Install role on local machine
|
|
||||||
ansible-galaxy install aeimer.install_bat
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
# Playbook to install bat
|
|
||||||
- host: all
|
|
||||||
roles:
|
|
||||||
- aeimer.install_bat
|
|
||||||
```
|
|
||||||
|
|
||||||
- [Ansible Galaxy](https://galaxy.ansible.com/aeimer/install_bat)
|
|
||||||
- [GitHub](https://github.com/aeimer/ansible-install-bat)
|
|
||||||
|
|
||||||
This should work with the following distributions:
|
|
||||||
- Debian/Ubuntu
|
|
||||||
- ARM (eg. Raspberry PI)
|
|
||||||
- Arch Linux
|
|
||||||
- Void Linux
|
|
||||||
- FreeBSD
|
|
||||||
- MacOS
|
|
||||||
|
|
||||||
### From binaries
|
### From binaries
|
||||||
|
|
||||||
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
||||||
@@ -358,13 +400,16 @@ binaries are also available: look for archives with `musl` in the file name.
|
|||||||
|
|
||||||
### From source
|
### From source
|
||||||
|
|
||||||
If you want to build `bat` from source, you need Rust 1.40 or
|
If you want to build `bat` from source, you need Rust 1.51 or
|
||||||
higher. You can then use `cargo` to build everything:
|
higher. You can then use `cargo` to build everything:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo install --locked bat
|
cargo install --locked bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
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
|
## Customization
|
||||||
|
|
||||||
### Highlighting theme
|
### Highlighting theme
|
||||||
@@ -387,6 +432,26 @@ light background, some themes like `GitHub` or `OneHalfLight` will work better f
|
|||||||
You can also use a custom theme by following the
|
You can also use a custom theme by following the
|
||||||
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
['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
|
### Output style
|
||||||
|
|
||||||
You can use the `--style` option to control the appearance of `bat`s output.
|
You can use the `--style` option to control the appearance of `bat`s output.
|
||||||
@@ -397,35 +462,45 @@ variable to make these changes permanent or use `bat`s
|
|||||||
|
|
||||||
### Adding new syntaxes / language definitions
|
### 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/)
|
`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/)
|
||||||
library for syntax highlighting. `syntect` can read any
|
library for syntax highlighting. `syntect` can read any
|
||||||
[Sublime Text `.sublime-syntax` file](https://www.sublimetext.com/docs/3/syntax.html)
|
[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
|
1. Create a folder with syntax definition files:
|
||||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
|
||||||
cd "$(bat --config-dir)/syntaxes"
|
|
||||||
|
|
||||||
# Put new '.sublime-syntax' language definition files
|
```bash
|
||||||
# in this folder (or its subdirectories), for example:
|
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||||
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
cd "$(bat --config-dir)/syntaxes"
|
||||||
```
|
|
||||||
|
|
||||||
Now use the following command to parse these files into a binary cache:
|
# Put new '.sublime-syntax' language definition files
|
||||||
|
# in this folder (or its subdirectories), for example:
|
||||||
|
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
2. Now use the following command to parse these files into a binary cache:
|
||||||
bat cache --build
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, use `bat --list-languages` to check if the new languages are available.
|
```bash
|
||||||
|
bat cache --build
|
||||||
|
```
|
||||||
|
|
||||||
If you ever want to go back to the default settings, call:
|
3. Finally, use `bat --list-languages` to check if the new languages are available.
|
||||||
|
|
||||||
```bash
|
If you ever want to go back to the default settings, call:
|
||||||
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
|
### Adding new themes
|
||||||
|
|
||||||
@@ -445,6 +520,34 @@ bat cache --build
|
|||||||
|
|
||||||
Finally, use `bat --list-themes` to check if the new themes are available.
|
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
|
### Using a different pager
|
||||||
|
|
||||||
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
||||||
@@ -452,6 +555,8 @@ set, `less` is used by default. If you want to use a different pager, you can ei
|
|||||||
`PAGER` variable or set the `BAT_PAGER` environment variable to override what is specified in
|
`PAGER` variable or set the `BAT_PAGER` environment variable to override what is specified in
|
||||||
`PAGER`.
|
`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
|
If you want to pass command-line arguments to the pager, you can also set them via the
|
||||||
`PAGER`/`BAT_PAGER` variables:
|
`PAGER`/`BAT_PAGER` variables:
|
||||||
|
|
||||||
@@ -476,6 +581,16 @@ If you want to enable mouse-wheel scrolling on older versions of `less`, you can
|
|||||||
in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer,
|
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.
|
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
|
### Dark mode
|
||||||
|
|
||||||
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
||||||
@@ -486,11 +601,12 @@ and the `GitHub` theme when in the _light mode_.
|
|||||||
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Configuration file
|
## Configuration file
|
||||||
|
|
||||||
`bat` can also be customized with a configuration file. The location of the file is dependent
|
`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
|
on your operating system. To get the default path for your system, call
|
||||||
```
|
```bash
|
||||||
bat --config-file
|
bat --config-file
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -520,17 +636,18 @@ Example configuration file:
|
|||||||
# Use italic text on the terminal (not supported on all terminals)
|
# Use italic text on the terminal (not supported on all terminals)
|
||||||
--italic-text=always
|
--italic-text=always
|
||||||
|
|
||||||
# Use C++ syntax for .ino files
|
# Use C++ syntax for Arduino .ino files
|
||||||
--map-syntax "*.ino:C++"
|
--map-syntax "*.ino:C++"
|
||||||
|
|
||||||
# Use ".gitignore"-style highlighting for ".ignore" files
|
|
||||||
--map-syntax ".ignore:Git Ignore"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using `bat` on Windows
|
## Using `bat` on Windows
|
||||||
|
|
||||||
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
`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
|
### Paging
|
||||||
|
|
||||||
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
||||||
@@ -571,11 +688,19 @@ bat() {
|
|||||||
|
|
||||||
## Troubleshooting
|
## 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
|
### Terminals & colors
|
||||||
|
|
||||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in the syntax
|
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
||||||
highlighting themes are not optimized for 8-bit colors and it is therefore strongly recommended
|
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`, ...).
|
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
|
See [this article](https://gist.github.com/XVilka/8346728) for more details and a full list of
|
||||||
terminals with truecolor support.
|
terminals with truecolor support.
|
||||||
|
|
||||||
@@ -614,17 +739,32 @@ cargo build --bins
|
|||||||
cargo test
|
cargo test
|
||||||
|
|
||||||
# Install (release version)
|
# Install (release version)
|
||||||
cargo install --locked
|
cargo install --path . --locked
|
||||||
|
|
||||||
# Build a bat binary with modified syntaxes and themes
|
# Build a bat binary with modified syntaxes and themes
|
||||||
bash assets/create.sh
|
bash assets/create.sh
|
||||||
cargo install --locked --force
|
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
|
## Maintainers
|
||||||
|
|
||||||
- [sharkdp](https://github.com/sharkdp)
|
- [sharkdp](https://github.com/sharkdp)
|
||||||
- [eth-p](https://github.com/eth-p)
|
- [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
|
## Project goals and alternatives
|
||||||
|
|
||||||
@@ -639,8 +779,8 @@ There are a lot of alternatives, if you are looking for similar programs. See
|
|||||||
[this document](doc/alternatives.md) for a comparison.
|
[this document](doc/alternatives.md) for a comparison.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Copyright (c) 2018-2020 [bat-developers](https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
`bat` is distributed under the terms of both the MIT License and the Apache License 2.0.
|
`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.
|
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.
|
||||||
|
49
appveyor.yml
49
appveyor.yml
@@ -1,49 +0,0 @@
|
|||||||
environment:
|
|
||||||
global:
|
|
||||||
TARGET: x86_64-pc-windows-msvc
|
|
||||||
RUST_VERSION: stable
|
|
||||||
CRATE_NAME: bat
|
|
||||||
CARGO_HOME: "c:\\cargo"
|
|
||||||
RUSTUP_HOME: "c:\\rustup"
|
|
||||||
|
|
||||||
install:
|
|
||||||
- appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
|
|
||||||
- rustup-init.exe -y --default-host %TARGET% --profile minimal
|
|
||||||
- set PATH=%PATH%;C:\cargo\bin
|
|
||||||
- rustc -Vv
|
|
||||||
- cargo -V
|
|
||||||
|
|
||||||
build: false
|
|
||||||
test_script:
|
|
||||||
- cargo test --target %TARGET% --verbose
|
|
||||||
- cargo run --target %TARGET% -- src/bin/bat/main.rs README.md --paging=never
|
|
||||||
|
|
||||||
before_deploy:
|
|
||||||
# Generate artifacts for release
|
|
||||||
- cargo build --bins --release --verbose
|
|
||||||
- ps: ci\before_deploy.ps1
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
description: 'Automatically deployed release'
|
|
||||||
artifact: /.*\.zip/
|
|
||||||
# Here's how:
|
|
||||||
# - Go to 'https://github.com/settings/tokens/new' and generate a Token with only the
|
|
||||||
# `public_repo` scope enabled
|
|
||||||
# - Then go to 'https://ci.appveyor.com/tools/encrypt' and enter the newly generated token.
|
|
||||||
# - Enter the "encrypted value" below
|
|
||||||
auth_token:
|
|
||||||
secure: oO4/J+hcFXgXcEqEc8gzlQNqLG0IxU78s4EyH+uczGdsyWajb3yipxPR6nXUvmoj
|
|
||||||
provider: GitHub
|
|
||||||
on:
|
|
||||||
RUST_VERSION: stable
|
|
||||||
appveyor_repo_tag: true
|
|
||||||
|
|
||||||
cache:
|
|
||||||
- C:\Users\appveyor\.cargo\registry
|
|
||||||
- target
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
- provider: Email
|
|
||||||
on_build_success: false
|
|
||||||
on_build_failure: false
|
|
||||||
on_build_status_changed: false
|
|
51
assets/README.md
vendored
51
assets/README.md
vendored
@@ -1,51 +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 --build` 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.
|
|
||||||
|
|
||||||
5. If you send a pull request with your changes, please do *not* include the changed `syntaxes.bin`
|
|
||||||
file. A new binary cache file will be created once before every new release of `bat`.
|
|
||||||
|
|
||||||
### 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:
|
|
||||||
|
|
||||||
* `Dart.sublime-syntax` => removed `#regex.dart` include.
|
|
||||||
* `INI.sublime-syntax` => added `.hgrc`, `hgrc`, and `desktop` file types.
|
|
||||||
* `Org mode.sublime-syntax` => removed `task` file type.
|
|
||||||
* `SML.sublime_syntax` => removed `ml` file type.
|
|
||||||
|
|
||||||
### Non-submodule additions
|
|
||||||
|
|
||||||
* `Assembly (x86_64)` has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due to `git clone` recursion problems
|
|
||||||
* `Nim.sublime-syntax` has been added manually from https://github.com/getzola/zola/blob/master/sublime_syntaxes/Nim.sublime-syntax as there was no suitable Git repository for it. The original syntax seems to originate from https://github.com/Varriount/NimLime
|
|
||||||
* `Rego.sublime-syntax` has been added manually from https://github.com/open-policy-agent/opa/blob/master/misc/syntax/sublime/rego.sublime-syntax
|
|
||||||
as it is not kept in a standalone repository. The file is generated from
|
|
||||||
https://github.com/open-policy-agent/opa/blob/master/misc/syntax/textmate/Rego.tmLanguage
|
|
||||||
* `SML.sublime_syntax` has been added manually from
|
|
||||||
https://github.com/seanjames777/SML-Language-Definitiona as it is not
|
|
||||||
kept in a standalone repository. The file generated is from
|
|
||||||
https://github.com/seanjames777/SML-Language-Definition/blob/master/sml.tmLanguage
|
|
||||||
* `Cabal.sublime_syntax` has been added manually from
|
|
||||||
https://github.com/SublimeHaskell/SublimeHaskell/ - we don't want to include the whole submodule because it includes other syntaxes ("Haskell improved") as well.
|
|
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 (*auto*, full, plain, changes, header, 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
|
||||||
|
}
|
88
assets/completions/bat.bash.in
vendored
Normal file
88
assets/completions/bat.bash.in
vendored
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
# shellcheck disable=SC2207
|
||||||
|
|
||||||
|
# Requires https://github.com/scop/bash-completion
|
||||||
|
|
||||||
|
_bat() {
|
||||||
|
local cur prev words cword split
|
||||||
|
_init_completion -s || return 0
|
||||||
|
|
||||||
|
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}}
|
6
assets/completions/bat.fish.in
vendored
6
assets/completions/bat.fish.in
vendored
@@ -34,7 +34,7 @@ complete -c {{PROJECT_EXECUTABLE}} -s H -l highlight-line -x -d "<N> Highlight t
|
|||||||
|
|
||||||
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}} -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 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}} -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"
|
||||||
|
|
||||||
@@ -52,9 +52,11 @@ complete -c {{PROJECT_EXECUTABLE}} -l paging -xka "auto never always" -d "Specif
|
|||||||
|
|
||||||
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 -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}} -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 "auto full plain changes header grid numbers" -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 style -xka "auto full plain changes header 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 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"
|
||||||
|
|
||||||
|
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' auto full plain changes header 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
|
24
assets/create.sh
vendored
24
assets/create.sh
vendored
@@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
REPO_DIR="$ASSET_DIR/.."
|
REPO_DIR="$ASSET_DIR/.."
|
||||||
|
|
||||||
# Ensure submodules are initialized.
|
# Ensure submodules are initialized.
|
||||||
function update_submodules() {
|
update_submodules() {
|
||||||
local submodule
|
local submodule
|
||||||
local submodule_prompt=unspecified
|
local submodule_prompt=unspecified
|
||||||
local submodule_path
|
local submodule_path
|
||||||
@@ -46,6 +46,7 @@ bat cache --clear
|
|||||||
# - Remove the JavaDoc patch once https://github.com/trishume/syntect/issues/222 has been fixed
|
# - 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
|
# - Remove the C# patch once https://github.com/sublimehq/Packages/pull/2331 has been merged
|
||||||
|
|
||||||
|
# Apply patches
|
||||||
(
|
(
|
||||||
cd "$ASSET_DIR"
|
cd "$ASSET_DIR"
|
||||||
for patch in patches/*.patch; do
|
for patch in patches/*.patch; do
|
||||||
@@ -53,11 +54,16 @@ bat cache --clear
|
|||||||
done
|
done
|
||||||
)
|
)
|
||||||
|
|
||||||
bat cache --build --blank --source="$ASSET_DIR" --target="$ASSET_DIR"
|
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
|
||||||
cd "$ASSET_DIR"
|
trap reverse_patches EXIT
|
||||||
for patch in patches/*.patch; do
|
|
||||||
patch --strip=0 --reverse < "$patch"
|
bat cache --build --blank --acknowledgements --source="$ASSET_DIR" --target="$ASSET_DIR"
|
||||||
done
|
|
||||||
)
|
|
||||||
|
84
assets/manual/bat.1.in
vendored
84
assets/manual/bat.1.in
vendored
@@ -1,4 +1,4 @@
|
|||||||
.TH {{PROJECT_EXECUTABLE | upcase}} "1"
|
.TH {{PROJECT_EXECUTABLE_UPPERCASE}} "1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
||||||
.SH "USAGE"
|
.SH "USAGE"
|
||||||
@@ -40,7 +40,7 @@ language names and file extensions.
|
|||||||
.HP
|
.HP
|
||||||
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
||||||
.IP
|
.IP
|
||||||
Highlight the specified line ranges with a different background color For example:
|
Highlight the specified line ranges with a different background color. For example:
|
||||||
.RS
|
.RS
|
||||||
.IP "\-\-highlight\-line 40"
|
.IP "\-\-highlight\-line 40"
|
||||||
highlights line 40
|
highlights line 40
|
||||||
@@ -50,8 +50,22 @@ highlights lines 30 to 40
|
|||||||
highlights lines 1 to 40
|
highlights lines 1 to 40
|
||||||
.IP "\-\-highlight\-line 40:"
|
.IP "\-\-highlight\-line 40:"
|
||||||
highlights lines 40 to the end of the file
|
highlights lines 40 to the end of the file
|
||||||
|
.IP "\-\-highlight\-line 30:+10"
|
||||||
|
highlights lines 30 to 40
|
||||||
.RE
|
.RE
|
||||||
.HP
|
.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>
|
\fB\-\-tabs\fR <T>
|
||||||
.IP
|
.IP
|
||||||
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
||||||
@@ -87,18 +101,25 @@ Specify when to use the decorations that have been specified via '\-\-style'. Th
|
|||||||
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
||||||
values: *auto*, never, always.
|
values: *auto*, never, always.
|
||||||
.HP
|
.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>
|
\fB\-\-paging\fR <when>
|
||||||
.IP
|
.IP
|
||||||
Specify when to use the pager. To control which pager is used, set the PAGER or
|
Specify when to use the pager. To disable the pager, use \&'\-\-paging=never' or its alias,
|
||||||
BAT_PAGER environment variables (the latter takes precedence) or use the '\-\-pager'
|
\fB-P\fR. To disable the pager permanently, set BAT_PAGER to an empty string. To control
|
||||||
option. To disable the pager permanently, set BAT_PAGER to an empty string or set
|
which pager is used, see the '\-\-pager' option. Possible values: *auto*, never, always.
|
||||||
\&'\-\-paging=never' in the configuration file. Possible values: *auto*, never, always.
|
|
||||||
.HP
|
.HP
|
||||||
\fB\-\-pager\fR <command>
|
\fB\-\-pager\fR <command>
|
||||||
.IP
|
.IP
|
||||||
Determine which pager is used. This option will overwrite the PAGER and BAT_PAGER
|
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
||||||
environment variables. The default pager is 'less'. To disable the pager completely, use
|
environment variables. The default pager is 'less'. To control when the pager is used, see
|
||||||
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
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
|
.HP
|
||||||
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
||||||
.IP
|
.IP
|
||||||
@@ -106,6 +127,7 @@ Map a glob pattern to an existing syntax name. The glob pattern is matched on th
|
|||||||
path and the filename. For example, to highlight *.build files with the Python syntax,
|
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
|
use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore
|
||||||
syntax, use -m '.myignore: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
|
.HP
|
||||||
\fB\-\-theme\fR <theme>
|
\fB\-\-theme\fR <theme>
|
||||||
.IP
|
.IP
|
||||||
@@ -124,7 +146,7 @@ Configure which elements (line numbers, file headers, grid borders, Git modifica
|
|||||||
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
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
|
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
|
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
||||||
values: *auto*, full, plain, changes, header, grid, numbers, snip.
|
values: *full*, auto, plain, changes, header, grid, rule, numbers, snip.
|
||||||
.HP
|
.HP
|
||||||
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
||||||
.IP
|
.IP
|
||||||
@@ -136,6 +158,8 @@ prints lines 30 to 40
|
|||||||
prints lines 1 to 40
|
prints lines 1 to 40
|
||||||
.IP "\-\-line\-range 40:"
|
.IP "\-\-line\-range 40:"
|
||||||
prints lines 40 to the end of the file
|
prints lines 40 to the end of the file
|
||||||
|
.IP "\-\-line\-range 30:+10"
|
||||||
|
prints lines 30 to 40
|
||||||
.RE
|
.RE
|
||||||
.HP
|
.HP
|
||||||
\fB\-L\fR, \fB\-\-list\-languages\fR
|
\fB\-L\fR, \fB\-\-list\-languages\fR
|
||||||
@@ -169,5 +193,45 @@ is dependent on your operating system. To get the default path for your system,
|
|||||||
|
|
||||||
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
||||||
|
|
||||||
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point bat to a non-default
|
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point {{PROJECT_EXECUTABLE}} to a non-default
|
||||||
location of the configuration file.
|
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
|
||||||
|
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:
|
11
assets/patches/Markdown.sublime-syntax.patch
vendored
11
assets/patches/Markdown.sublime-syntax.patch
vendored
@@ -1,5 +1,5 @@
|
|||||||
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
index 19dc685d..6afd87ae 100644
|
index 19dc685d..44440c7f 100644
|
||||||
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
@@ -24,7 +24,6 @@ variables:
|
@@ -24,7 +24,6 @@ variables:
|
||||||
@@ -166,3 +166,12 @@ index 19dc685d..6afd87ae 100644
|
|||||||
- match: ^\s*$\n?
|
- match: ^\s*$\n?
|
||||||
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
||||||
pop: true
|
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
|
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.
2
assets/syntaxes/02_Extra/AWK
vendored
2
assets/syntaxes/02_Extra/AWK
vendored
Submodule assets/syntaxes/02_Extra/AWK updated: 1ce5f90d44...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
|
2
assets/syntaxes/02_Extra/AsciiDoc
vendored
2
assets/syntaxes/02_Extra/AsciiDoc
vendored
Submodule assets/syntaxes/02_Extra/AsciiDoc updated: d0089991e5...e316a0a85c
1220
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
1220
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
File diff suppressed because it is too large
Load Diff
2
assets/syntaxes/02_Extra/CMake
vendored
2
assets/syntaxes/02_Extra/CMake
vendored
Submodule assets/syntaxes/02_Extra/CMake updated: aba96a0862...ab6ef4ef9f
1
assets/syntaxes/02_Extra/CSV
vendored
1
assets/syntaxes/02_Extra/CSV
vendored
Submodule assets/syntaxes/02_Extra/CSV deleted from 4786d037a7
110
assets/syntaxes/02_Extra/CSV.sublime-syntax
vendored
110
assets/syntaxes/02_Extra/CSV.sublime-syntax
vendored
@@ -1,46 +1,78 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||||
name: Advanced CSV
|
name: Comma Separated Values
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- csv
|
- csv
|
||||||
- tsv
|
- tsv
|
||||||
scope: text.advanced_csv
|
scope: text.csv
|
||||||
|
variables:
|
||||||
|
field_separator: (?:[,;\t])
|
||||||
|
record_separator: (?:$\n?)
|
||||||
contexts:
|
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:
|
main:
|
||||||
- match: (\")
|
- meta_include_prototype: false
|
||||||
captures:
|
- match: '^'
|
||||||
1: string.quoted.double.advanced_csv
|
set: fields
|
||||||
push:
|
|
||||||
- meta_scope: meta.quoted.advanced_csv
|
field_or_record_separator:
|
||||||
- match: (\")
|
- meta_include_prototype: false
|
||||||
captures:
|
- match: '{{record_separator}}'
|
||||||
1: string.quoted.double.advanced_csv
|
scope: punctuation.terminator.record.csv
|
||||||
pop: true
|
pop: true
|
||||||
- include: main
|
- match: '{{field_separator}}'
|
||||||
- match: '(\[([+-]?\d*)(\:)?([+-]?\d*)(\,)?([+-]?\d*)(\:)?([+-]?\d*)\])?\s*([<>v^])?\s*(=)'
|
scope: punctuation.separator.sequence.csv
|
||||||
captures:
|
pop: true
|
||||||
1: keyword.operator.advanced_csv
|
|
||||||
2: constant.numeric.formula.advanced_csv
|
field_contents:
|
||||||
4: constant.numeric.formula.advanced_csv
|
- match: '"'
|
||||||
6: constant.numeric.formula.advanced_csv
|
scope: punctuation.definition.string.begin.csv
|
||||||
8: constant.numeric.formula.advanced_csv
|
push: double_quoted_string
|
||||||
9: keyword.operator.advanced_csv
|
|
||||||
10: keyword.operator.advanced_csv
|
- match: (?={{field_separator}}|{{record_separator}})
|
||||||
push:
|
pop: true
|
||||||
- meta_scope: meta.range.advanced_csv
|
|
||||||
- match: (?=(\")|$)
|
double_quoted_string:
|
||||||
pop: true
|
- meta_include_prototype: false
|
||||||
- include: scope:source.python
|
- meta_scope: string.quoted.double.csv
|
||||||
- match: '(?<=^|,|\s|\")([0-9.eE+-]+)(?=$|,|\s|\")'
|
- match: '""'
|
||||||
scope: meta.number.advanced_csv
|
scope: constant.character.escape.csv
|
||||||
captures:
|
- match: '"'
|
||||||
1: constant.numeric.advanced_csv
|
scope: punctuation.definition.string.end.csv
|
||||||
- match: '(?<=^|,|\s|\")([^, \t\"]+)(?=$|,|\s|\")'
|
pop: true
|
||||||
scope: meta.nonnumber.advanced_csv
|
|
||||||
captures:
|
field1:
|
||||||
1: storage.type.advanced_csv
|
- match: ''
|
||||||
- match: (\,)
|
set:
|
||||||
scope: meta.delimiter.advanced_csv
|
- meta_content_scope: meta.field-1.csv support.type
|
||||||
captures:
|
- include: field_contents
|
||||||
1: keyword.operator.advanced_csv
|
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
|
||||||
|
|
||||||
|
2
assets/syntaxes/02_Extra/Crystal
vendored
2
assets/syntaxes/02_Extra/Crystal
vendored
Submodule assets/syntaxes/02_Extra/Crystal updated: 2ee9d667ae...eb63666f35
@@ -108,7 +108,7 @@ contexts:
|
|||||||
- match: (?<!\.)\belse(\s)+if\b
|
- match: (?<!\.)\belse(\s)+if\b
|
||||||
comment: else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.
|
comment: else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.
|
||||||
scope: invalid.deprecated.crystal
|
scope: invalid.deprecated.crystal
|
||||||
- match: '(?<!\.)\b(BEGIN|alias|as|begin|case|select|abstract|class|END|ensure|for|fun|if|ifdef|in|lib|module|of|out|private|protected|rescue|struct|with|union|enum|macro|then|type|unless|until|while)\b(?![?!])'
|
- match: '(?<!\.)\b(BEGIN|alias|as|begin|case|select|abstract|class|END|ensure|for|fun|if|ifdef|in|lib|module|of|out|private|protected|rescue|struct|with|union|enum|macro|then|unless|until|while)\b(?![?!])|(?<!\.)\btype\b\s*(?=[A-Z])'
|
||||||
comment: everything being a reserved word, not a value and needing a 'end' is a..
|
comment: everything being a reserved word, not a value and needing a 'end' is a..
|
||||||
scope: keyword.control.primary.crystal
|
scope: keyword.control.primary.crystal
|
||||||
- match: '(?<!\.)\b(when|else|elsif)\b(?![?!])'
|
- match: '(?<!\.)\b(when|else|elsif)\b(?![?!])'
|
||||||
@@ -131,7 +131,7 @@ contexts:
|
|||||||
scope: keyword.control.pseudo-method.crystal
|
scope: keyword.control.pseudo-method.crystal
|
||||||
- match: '\b(nil|true|false)\b(?![?!])'
|
- match: '\b(nil|true|false)\b(?![?!])'
|
||||||
scope: constant.language.crystal
|
scope: constant.language.crystal
|
||||||
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])'
|
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])|self[?]'
|
||||||
scope: variable.language.crystal
|
scope: variable.language.crystal
|
||||||
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
|
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
|
||||||
comment: everything being a method but having a special function is a..
|
comment: everything being a method but having a special function is a..
|
||||||
@@ -190,7 +190,7 @@ contexts:
|
|||||||
push:
|
push:
|
||||||
- meta_scope: meta.function.method.with-arguments.crystal
|
- meta_scope: meta.function.method.with-arguments.crystal
|
||||||
- meta_content_scope: variable.parameter.function.crystal
|
- meta_content_scope: variable.parameter.function.crystal
|
||||||
- match: \)\s*$|\)\s*:|\)\s*;
|
- match: \)
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.parameters.crystal
|
0: punctuation.definition.parameters.crystal
|
||||||
pop: true
|
pop: true
|
||||||
@@ -705,6 +705,7 @@ contexts:
|
|||||||
0: punctuation.definition.string.end.crystal
|
0: punctuation.definition.string.end.crystal
|
||||||
pop: true
|
pop: true
|
||||||
- include: heredoc
|
- include: heredoc
|
||||||
|
- include: scope:text.html.basic
|
||||||
- include: scope:source.js
|
- include: scope:source.js
|
||||||
- include: interpolated_crystal
|
- include: interpolated_crystal
|
||||||
- include: escaped_char
|
- include: escaped_char
|
||||||
|
2
assets/syntaxes/02_Extra/Dart
vendored
2
assets/syntaxes/02_Extra/Dart
vendored
Submodule assets/syntaxes/02_Extra/Dart updated: d891fb36c9...2734901b01
332
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
332
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
@@ -1,6 +1,6 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# http://www.sublimetext.com/docs/syntax.html
|
||||||
name: Dart
|
name: Dart
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- dart
|
- dart
|
||||||
@@ -9,7 +9,7 @@ contexts:
|
|||||||
main:
|
main:
|
||||||
- match: ^(#!.*)$
|
- match: ^(#!.*)$
|
||||||
scope: meta.preprocessor.script.dart
|
scope: meta.preprocessor.script.dart
|
||||||
- match: ^\s*\b(library|import|export|part of|part)\b
|
- match: ^\w*\b(library|import|part of|part|export)\b
|
||||||
captures:
|
captures:
|
||||||
0: keyword.other.import.dart
|
0: keyword.other.import.dart
|
||||||
push:
|
push:
|
||||||
@@ -19,242 +19,114 @@ contexts:
|
|||||||
0: punctuation.terminator.dart
|
0: punctuation.terminator.dart
|
||||||
pop: true
|
pop: true
|
||||||
- include: strings
|
- include: strings
|
||||||
- match: \b(as|show|hide|deferred)\b
|
- include: comments
|
||||||
|
- match: \b(as|show|hide)\b
|
||||||
scope: keyword.other.import.dart
|
scope: keyword.other.import.dart
|
||||||
- include: comments
|
- include: comments
|
||||||
- include: constants-and-special-vars
|
- include: punctuation
|
||||||
- include: annotations
|
- include: annotations
|
||||||
- include: decl-typedef
|
|
||||||
- include: decl-class
|
|
||||||
- include: decl-enum
|
|
||||||
- include: decl-function
|
|
||||||
- include: keywords
|
- include: keywords
|
||||||
|
- include: constants-and-special-vars
|
||||||
- include: strings
|
- include: strings
|
||||||
annotations:
|
annotations:
|
||||||
- match: '^(?:\s*)((@)([a-zA-Z0-9_]+))'
|
- match: '@[a-zA-Z]+'
|
||||||
captures:
|
scope: storage.type.annotation.dart
|
||||||
1: annotation.dart
|
|
||||||
2: entity.name.function.annotation.dart
|
|
||||||
3: support.type.dart
|
|
||||||
comments:
|
comments:
|
||||||
- match: /\*\*/
|
- match: /\*\*/
|
||||||
scope: comment.block.empty.dart
|
scope: comment.block.empty.dart
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.comment.dart
|
0: punctuation.definition.comment.dart
|
||||||
|
- include: comments-doc-oldschool
|
||||||
|
- include: comments-doc
|
||||||
- include: comments-inline
|
- include: comments-inline
|
||||||
comments-inline:
|
comments-block:
|
||||||
- match: /\*
|
- match: /\*
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.block.dart
|
- meta_scope: comment.block.dart
|
||||||
- match: \*/
|
- match: \*/
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:text.dart-doccomments
|
- include: comments-block
|
||||||
- match: (///)
|
comments-doc:
|
||||||
captures:
|
- match: ///
|
||||||
1: marker.dart
|
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.line.triple-slash.dart
|
- meta_scope: comment.block.documentation.dart
|
||||||
- match: $
|
- match: .*
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:text.dart-doccomments
|
- include: dartdoc
|
||||||
- match: (//)
|
comments-doc-oldschool:
|
||||||
captures:
|
- match: /\*\*
|
||||||
1: marker.dart
|
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.line.double-slash.dart
|
- meta_scope: comment.block.documentation.dart
|
||||||
- match: $
|
- match: \*/
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:text.dart-doccomments
|
- 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:
|
constants-and-special-vars:
|
||||||
- match: \b(true|false|null)\b
|
- match: (?<!\$)\b(true|false|null)\b(?!\$)
|
||||||
scope: constant.language.dart
|
scope: constant.language.dart
|
||||||
- match: \b(this|super)\b
|
- match: (?<!\$)\b(this|super)\b(?!\$)
|
||||||
scope: variable.language.dart
|
scope: variable.language.dart
|
||||||
- match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b'
|
- match: '(?<!\$)\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b(?!\$)'
|
||||||
scope: constant.numeric.dart
|
scope: constant.numeric.dart
|
||||||
decl-class:
|
- match: '(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\b|num\b|int\b|double\b|dynamic\b)'
|
||||||
- match: \bclass\b
|
scope: support.class.dart
|
||||||
|
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(<|\(|\s+=>)'
|
||||||
captures:
|
captures:
|
||||||
0: keyword.control.new.dart
|
1: entity.name.function.dart
|
||||||
|
dartdoc:
|
||||||
|
- match: '(\[.*?\])'
|
||||||
|
captures:
|
||||||
|
0: variable.name.source.dart
|
||||||
|
- match: '^ {4,}(?![ \*]).*'
|
||||||
|
captures:
|
||||||
|
0: variable.name.source.dart
|
||||||
|
- match: '```.*?$'
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.declaration.class.dart
|
- meta_content_scope: variable.other.source.dart
|
||||||
- match: "(?={)"
|
- match: '```'
|
||||||
pop: true
|
pop: true
|
||||||
- include: keywords
|
- match: (`.*?`)
|
||||||
- match: "[A-Za-z_][A-Za-z0-9_]*"
|
|
||||||
scope: class.name.dart
|
|
||||||
decl-enum:
|
|
||||||
- match: \benum\b
|
|
||||||
captures:
|
captures:
|
||||||
0: keyword.declaration.dart
|
0: variable.other.source.dart
|
||||||
push:
|
- match: (`.*?`)
|
||||||
- meta_scope: meta.declaration.enum.dart
|
|
||||||
- match: "(?={)"
|
|
||||||
pop: true
|
|
||||||
- include: keywords
|
|
||||||
- match: "[A-Za-z_][A-Za-z0-9_]*"
|
|
||||||
scope: enum.name.dart
|
|
||||||
decl-function:
|
|
||||||
- match: ^\s*(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(get)\s+(\w+)\s+(?==>)
|
|
||||||
comment: A getter with a primitive return type.
|
|
||||||
scope: meta.declaration.function.dart
|
|
||||||
captures:
|
captures:
|
||||||
1: storage.type.primitive.dart
|
0: variable.other.source.dart
|
||||||
2: keyword.declaration.dart
|
- match: (\* (( ).*))$
|
||||||
3: function.name.dart
|
|
||||||
- match: ^\s*(?:\b(\w+)\b\s+)?(get)\s+(\w+)\s+(?==>)
|
|
||||||
comment: A getter with a user-defined return type or no return type.
|
|
||||||
scope: meta.declaration.function.dart
|
|
||||||
captures:
|
captures:
|
||||||
1: type.user-defined.dart
|
2: variable.other.source.dart
|
||||||
2: keyword.declaration.dart
|
- match: (\* .*)$
|
||||||
3: function.name.dart
|
|
||||||
- match: ^\s*(set)\s+(\w+)(?=\()
|
|
||||||
comment: A setter.
|
|
||||||
captures:
|
|
||||||
1: keyword.declaration.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.declaration.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: comments-inline
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: ^\s*(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(\w+)(?=\()
|
|
||||||
comment: A function with a primitive return type.
|
|
||||||
captures:
|
|
||||||
1: storage.type.primitive.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.declaration.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: comments-inline
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: ^\s*(?:\b(return)\b)\s+(\w+)(?=\()
|
|
||||||
comment: A function invocation after 'return'
|
|
||||||
captures:
|
|
||||||
1: keyword.control.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.invocation.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: comments-inline
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: ^\s*\b(new)\b\s+(\w+)(?=\()
|
|
||||||
comment: A class instantiation after 'new'
|
|
||||||
captures:
|
|
||||||
1: keyword.declaration.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.invocation.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: comments-inline
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
decl-function-parameter:
|
|
||||||
- include: constants-and-special-vars
|
|
||||||
- match: (?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b)\s+(\w+)(?=\()
|
|
||||||
comment: A function with a primitive return type.
|
|
||||||
captures:
|
|
||||||
1: storage.type.primitive.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.parameter.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: \b(new)\b\s+(\w+)(?=\()
|
|
||||||
comment: A class instantiation after 'new'
|
|
||||||
captures:
|
|
||||||
1: keyword.declaration.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.invocation.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: (?:\b(\w+)\b)\s+(\w+)(?=\()
|
|
||||||
comment: A function with a user-defined return type.
|
|
||||||
captures:
|
|
||||||
1: type.user-defined.dart
|
|
||||||
2: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.parameter.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
- match: (\w+)(?=\()
|
|
||||||
comment: A function with no return type.
|
|
||||||
captures:
|
|
||||||
1: function.name.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.parameter.function.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: decl-function-parameter
|
|
||||||
- include: strings
|
|
||||||
- include: keywords
|
|
||||||
decl-typedef:
|
|
||||||
- match: typedef
|
|
||||||
captures:
|
|
||||||
0: keyword.control.new.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.declaration.typedef.dart
|
|
||||||
- match: ;
|
|
||||||
captures:
|
|
||||||
0: punctuation.terminator.dart
|
|
||||||
pop: true
|
|
||||||
- match: '(?:\b(void|bool|num|int|double|dynamic|var|String|List|Map)\b|([a-zA-Z_][a-zA-Z0-9_]*))\s+([a-zA-Z_][a-zA-Z0-9_]+)'
|
|
||||||
captures:
|
|
||||||
1: storage.type.primitive.dart
|
|
||||||
2: typedef.return.dart
|
|
||||||
3: typedef.name.dart
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- meta_scope: typedef.params.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: keywords
|
|
||||||
keywords:
|
keywords:
|
||||||
- match: \bassert\b
|
- match: (?<!\$)\bas\b(?!\$)
|
||||||
scope: keyword.control.assert.dart
|
|
||||||
- match: \bas\b
|
|
||||||
scope: keyword.cast.dart
|
scope: keyword.cast.dart
|
||||||
- match: \b(try|catch|finally|throw|on|rethrow)\b
|
- match: (?<!\$)\b(try|on|catch|finally|throw|rethrow)\b(?!\$)
|
||||||
scope: keyword.control.catch-exception.dart
|
scope: keyword.control.catch-exception.dart
|
||||||
- match: \s+\?\s+|\s+:\s+
|
- match: (?<!\$)\b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b(?!\$)
|
||||||
scope: keyword.control.ternary.dart
|
|
||||||
- match: \b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b
|
|
||||||
scope: keyword.control.dart
|
scope: keyword.control.dart
|
||||||
- match: \b(async\*|async|await\*|await|yield)\b
|
- match: (?<!\$)\b(sync(\*)?|async(\*)?|await|yield(\*)?)\b(?!\$)
|
||||||
scope: keyword.control.async.dart
|
scope: keyword.control.dart
|
||||||
- match: \b(new)\b
|
- match: (?<!\$)\bassert\b(?!\$)
|
||||||
|
scope: keyword.control.dart
|
||||||
|
- match: (?<!\$)\b(new)\b(?!\$)
|
||||||
scope: keyword.control.new.dart
|
scope: keyword.control.new.dart
|
||||||
- match: \b(abstract|extends|external|factory|implements|with|interface|get|native|operator|set|typedef)\b
|
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\b(?!\$)
|
||||||
scope: keyword.declaration.dart
|
scope: keyword.declaration.dart
|
||||||
- match: \b(is\!?)\b
|
- match: (?<!\$)\b(is\!?)\b(?!\$)
|
||||||
scope: keyword.operator.dart
|
scope: keyword.operator.dart
|
||||||
|
- match: '\?|:'
|
||||||
|
scope: keyword.operator.ternary.dart
|
||||||
- match: (<<|>>>?|~|\^|\||&)
|
- match: (<<|>>>?|~|\^|\||&)
|
||||||
scope: keyword.operator.bitwise.dart
|
scope: keyword.operator.bitwise.dart
|
||||||
- match: ((&|\^|\||<<|>>>?)=)
|
- match: ((&|\^|\||<<|>>>?)=)
|
||||||
scope: keyword.operator.assignment.bitwise.dart
|
scope: keyword.operator.assignment.bitwise.dart
|
||||||
- match: (===?|!==?|<=?|>=?)
|
- match: (=>)
|
||||||
|
scope: keyword.operator.closure.dart
|
||||||
|
- match: (==|!=|<=?|>=?)
|
||||||
scope: keyword.operator.comparison.dart
|
scope: keyword.operator.comparison.dart
|
||||||
- match: '(([+*/%-]|\~)=)'
|
- match: '(([+*/%-]|\~)=)'
|
||||||
scope: keyword.operator.assignment.arithmetic.dart
|
scope: keyword.operator.assignment.arithmetic.dart
|
||||||
@@ -266,56 +138,22 @@ contexts:
|
|||||||
scope: keyword.operator.arithmetic.dart
|
scope: keyword.operator.arithmetic.dart
|
||||||
- match: (!|&&|\|\|)
|
- match: (!|&&|\|\|)
|
||||||
scope: keyword.operator.logical.dart
|
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: ;
|
- match: ;
|
||||||
scope: punctuation.terminator.dart
|
scope: punctuation.terminator.dart
|
||||||
- match: \b(static|final|const)\b
|
|
||||||
scope: storage.modifier.dart
|
|
||||||
- match: \b(?:void|bool|num|int|double|dynamic|var|String|List|Map)\b
|
|
||||||
scope: storage.type.primitive.dart
|
|
||||||
regexp:
|
|
||||||
- match: '\\[^''"]'
|
|
||||||
scope: constant.character.escaped.regex.dart
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- meta_content_scope: meta.capture.regex.dart
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- match: \?(:|=|!)
|
|
||||||
scope: ignore.capture.regex.dart
|
|
||||||
- match: \*|\+|\?|\.|\|
|
|
||||||
scope: keyword.other.regex.dart
|
|
||||||
- match: \^|\$
|
|
||||||
scope: keyword.other.regex.dart
|
|
||||||
- match: \.
|
- match: \.
|
||||||
scope: constant.other.regex.dart
|
scope: punctuation.dot.dart
|
||||||
- match: '\[(\^)?'
|
|
||||||
captures:
|
|
||||||
1: keyword.other.negation.regex.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: constant.character.range.regex.dart
|
|
||||||
- match: '\]'
|
|
||||||
pop: true
|
|
||||||
- match: '\\[^"'']'
|
|
||||||
scope: constant.character.escaped.regex.dart
|
|
||||||
- match: '\{(?:\d+)?,(?:\d+)?\}'
|
|
||||||
scope: keyword.other.regex.dart
|
|
||||||
string-interp:
|
string-interp:
|
||||||
- match: '(\$)(\{)'
|
- match: '\$((\w+)|\{([^{}]+)\})'
|
||||||
captures:
|
captures:
|
||||||
1: keyword.other.dart
|
|
||||||
2: keyword.other.dart
|
|
||||||
push:
|
|
||||||
- meta_scope: interpolation.dart
|
|
||||||
- meta_content_scope: source.dart
|
|
||||||
- match: '(\})'
|
|
||||||
captures:
|
|
||||||
1: keyword.other.dart
|
|
||||||
pop: true
|
|
||||||
- include: main
|
|
||||||
- match: (\$)(\w+)
|
|
||||||
captures:
|
|
||||||
1: keyword.other.dart
|
|
||||||
2: variable.parameter.dart
|
2: variable.parameter.dart
|
||||||
|
3: variable.parameter.dart
|
||||||
- match: \\.
|
- match: \\.
|
||||||
scope: constant.character.escape.dart
|
scope: constant.character.escape.dart
|
||||||
strings:
|
strings:
|
||||||
@@ -328,7 +166,7 @@ contexts:
|
|||||||
- match: (?<!r)'''
|
- match: (?<!r)'''
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.interpolated.triple.single.dart
|
- meta_scope: string.interpolated.triple.single.dart
|
||||||
- match: "'''(?!')"
|
- match: '''''''(?!'')'
|
||||||
pop: true
|
pop: true
|
||||||
- include: string-interp
|
- include: string-interp
|
||||||
- match: r"""
|
- match: r"""
|
||||||
@@ -339,9 +177,9 @@ contexts:
|
|||||||
- match: r'''
|
- match: r'''
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.triple.single.dart
|
- meta_scope: string.quoted.triple.single.dart
|
||||||
- match: "'''(?!')"
|
- match: '''''''(?!'')'
|
||||||
pop: true
|
pop: true
|
||||||
- match: (?<!\\|r)"
|
- match: (?<!\|r)"
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.interpolated.double.dart
|
- meta_scope: string.interpolated.double.dart
|
||||||
- match: '"'
|
- match: '"'
|
||||||
@@ -354,16 +192,20 @@ contexts:
|
|||||||
- meta_scope: string.quoted.double.dart
|
- meta_scope: string.quoted.double.dart
|
||||||
- match: '"'
|
- match: '"'
|
||||||
pop: true
|
pop: true
|
||||||
- include: regexp
|
- match: \n
|
||||||
|
scope: invalid.string.newline
|
||||||
- match: (?<!\|r)'
|
- match: (?<!\|r)'
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.interpolated.single.dart
|
- meta_scope: string.interpolated.single.dart
|
||||||
- match: "'"
|
- match: "'"
|
||||||
pop: true
|
pop: true
|
||||||
|
- match: \n
|
||||||
|
scope: invalid.string.newline
|
||||||
- include: string-interp
|
- include: string-interp
|
||||||
- match: r'
|
- match: r'
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.single.dart
|
- meta_scope: string.quoted.single.dart
|
||||||
- match: "'"
|
- match: "'"
|
||||||
pop: true
|
pop: true
|
||||||
- include: regexp
|
- match: \n
|
||||||
|
scope: invalid.string.newline
|
||||||
|
2
assets/syntaxes/02_Extra/DotENV
vendored
2
assets/syntaxes/02_Extra/DotENV
vendored
Submodule assets/syntaxes/02_Extra/DotENV updated: a1c917633d...58201ba2ab
@@ -4,7 +4,6 @@
|
|||||||
name: DotENV
|
name: DotENV
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- .env
|
- .env
|
||||||
- .envrc
|
|
||||||
- .env.dist
|
- .env.dist
|
||||||
- .env.local
|
- .env.local
|
||||||
- .env.sample
|
- .env.sample
|
||||||
@@ -19,8 +18,11 @@ file_extensions:
|
|||||||
- .env.production
|
- .env.production
|
||||||
- .env.production.local
|
- .env.production.local
|
||||||
- .env.dusk.local
|
- .env.dusk.local
|
||||||
- .flaskenv
|
|
||||||
- .env.staging
|
- .env.staging
|
||||||
|
- .env.default
|
||||||
|
- .env.defaults
|
||||||
|
- .envrc
|
||||||
|
- .flaskenv
|
||||||
scope: source.env
|
scope: source.env
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
2
assets/syntaxes/02_Extra/Elixir
vendored
2
assets/syntaxes/02_Extra/Elixir
vendored
Submodule assets/syntaxes/02_Extra/Elixir updated: 1f010d5f63...4fb01891dd
2
assets/syntaxes/02_Extra/Email
vendored
2
assets/syntaxes/02_Extra/Email
vendored
Submodule assets/syntaxes/02_Extra/Email updated: ee3e68fce2...e89d09d440
2
assets/syntaxes/02_Extra/FSharp
vendored
2
assets/syntaxes/02_Extra/FSharp
vendored
Submodule assets/syntaxes/02_Extra/FSharp updated: c18616d6bd...9e4645c608
@@ -4,6 +4,8 @@
|
|||||||
name: fstab
|
name: fstab
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- fstab
|
- fstab
|
||||||
|
- crypttab
|
||||||
|
- mtab
|
||||||
scope: source.fstab
|
scope: source.fstab
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
|
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
2
assets/syntaxes/02_Extra/GraphQL
vendored
2
assets/syntaxes/02_Extra/GraphQL
vendored
Submodule assets/syntaxes/02_Extra/GraphQL updated: c9d84587eb...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
3
assets/syntaxes/02_Extra/INI.sublime-syntax
vendored
3
assets/syntaxes/02_Extra/INI.sublime-syntax
vendored
@@ -25,12 +25,13 @@ contexts:
|
|||||||
scope: comment.line.semicolon.ini
|
scope: comment.line.semicolon.ini
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.comment.ini
|
1: punctuation.definition.comment.ini
|
||||||
- match: '^\s*(\[)(.*?)(\])'
|
- match: '^\s*(\[)(.*?)(\])\s*(;.*)?$\n?'
|
||||||
scope: meta.tag.section.ini
|
scope: meta.tag.section.ini
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.section.ini
|
1: punctuation.definition.section.ini
|
||||||
2: entity.section.ini
|
2: entity.section.ini
|
||||||
3: punctuation.definition.section.ini
|
3: punctuation.definition.section.ini
|
||||||
|
4: comment.definition.section.ini
|
||||||
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
||||||
scope: meta.declaration.ini
|
scope: meta.declaration.ini
|
||||||
captures:
|
captures:
|
||||||
|
2
assets/syntaxes/02_Extra/Julia
vendored
2
assets/syntaxes/02_Extra/Julia
vendored
Submodule assets/syntaxes/02_Extra/Julia updated: 6c0d770fc7...1e55f3211b
2
assets/syntaxes/02_Extra/LESS
vendored
2
assets/syntaxes/02_Extra/LESS
vendored
Submodule assets/syntaxes/02_Extra/LESS updated: 3020993658...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
|
176
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
176
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
@@ -7,47 +7,165 @@ file_extensions:
|
|||||||
scope: source.man
|
scope: source.man
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
section_heading: '^\S.*$'
|
section_heading: '^(?!#)\S.*$'
|
||||||
|
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
|
prototype:
|
||||||
|
# ignore syntax test lines
|
||||||
|
- match: '^#'
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.syntax-test.man
|
||||||
|
- match: $\n?
|
||||||
|
pop: true
|
||||||
main:
|
main:
|
||||||
- match: ^
|
- match: ^
|
||||||
push: first_line
|
push: first_line
|
||||||
|
|
||||||
first_line:
|
first_line:
|
||||||
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))'
|
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))\s*'
|
||||||
captures:
|
captures:
|
||||||
1: meta.preprocessor
|
1: meta.preprocessor.man
|
||||||
2: keyword.operator
|
2: keyword.operator.man
|
||||||
3: string.quoted.other
|
3: string.quoted.other.man
|
||||||
4: keyword.operator
|
4: keyword.operator.man
|
||||||
|
push:
|
||||||
- match: '$'
|
- match: (?:[\w'-]+|\s(?!\s))
|
||||||
push: body
|
scope: markup.heading.title.man
|
||||||
|
- match: \s\s
|
||||||
body:
|
pop: true
|
||||||
- match: '^(SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
|
- match: '(?=\S|$)'
|
||||||
push: Packages/C/C.sublime-syntax
|
|
||||||
scope: markup.heading
|
|
||||||
with_prototype:
|
|
||||||
- match: '(?={{section_heading}})'
|
|
||||||
pop: true
|
pop: true
|
||||||
|
|
||||||
- match: '^\S.*$'
|
- match: '$'
|
||||||
scope: markup.heading
|
set: body
|
||||||
|
|
||||||
- match: '\b([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
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:
|
captures:
|
||||||
1: entity.name.function
|
1: entity.name.function.man
|
||||||
2: keyword.operator
|
2: entity.name.function.man
|
||||||
3: constant.numeric
|
3: keyword.operator.man
|
||||||
4: keyword.operator
|
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
|
# command-line options like --option=value, --some-flag, or -x
|
||||||
- match: '(?:[^a-zA-Z0-9_-]|^|\s)(--?[A-Za-z0-9][A-Za-z0-9-]*)(?:(=)?("?)([A-Za-z0-9]+)("?))?'
|
- match: '^[ ]{7}(?=-)'
|
||||||
|
push: expect-command-line-option
|
||||||
|
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
|
||||||
captures:
|
captures:
|
||||||
1: entity.name
|
1: entity.name.command-line-option
|
||||||
2: keyword.operator
|
push:
|
||||||
3: punctuation.definition.string.begin
|
- match: '='
|
||||||
4: variable.parameter
|
scope: keyword.operator.man
|
||||||
3: punctuation.definition.string.end
|
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
1
assets/syntaxes/02_Extra/Nginx
vendored
Submodule
1
assets/syntaxes/02_Extra/Nginx
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Nginx added at 15a1db1510
1
assets/syntaxes/02_Extra/Nim.sublime-syntax
vendored
1
assets/syntaxes/02_Extra/Nim.sublime-syntax
vendored
@@ -5,6 +5,7 @@ name: Nim
|
|||||||
file_extensions:
|
file_extensions:
|
||||||
- nim
|
- nim
|
||||||
- nims
|
- nims
|
||||||
|
- nimble
|
||||||
scope: source.nim
|
scope: source.nim
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
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
|
2
assets/syntaxes/02_Extra/PowerShell
vendored
2
assets/syntaxes/02_Extra/PowerShell
vendored
Submodule assets/syntaxes/02_Extra/PowerShell updated: 4a0a076661...742f0b5d4b
106
assets/syntaxes/02_Extra/PowerShell.sublime-syntax
vendored
106
assets/syntaxes/02_Extra/PowerShell.sublime-syntax
vendored
@@ -24,7 +24,7 @@ contexts:
|
|||||||
- include: commands
|
- include: commands
|
||||||
- include: commentLine
|
- include: commentLine
|
||||||
- include: variable
|
- include: variable
|
||||||
- include: interpolatedStringContent
|
- include: subexpression
|
||||||
- include: function
|
- include: function
|
||||||
- include: attribute
|
- include: attribute
|
||||||
- include: UsingDirective
|
- include: UsingDirective
|
||||||
@@ -33,32 +33,38 @@ contexts:
|
|||||||
- include: doubleQuotedString
|
- include: doubleQuotedString
|
||||||
- include: scriptblock
|
- include: scriptblock
|
||||||
- include: doubleQuotedStringEscapes
|
- include: doubleQuotedStringEscapes
|
||||||
- match: (?<!')'
|
- match: '[''\x{2018}-\x{201B}]'
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.string.begin.powershell
|
0: punctuation.definition.string.begin.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.single.powershell
|
- meta_scope: string.quoted.single.powershell
|
||||||
- match: "'(?!')"
|
- match: '[''\x{2018}-\x{201B}]{2}'
|
||||||
|
scope: constant.character.escape.powershell
|
||||||
|
- match: '[''\x{2018}-\x{201B}]'
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.string.end.powershell
|
0: punctuation.definition.string.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- match: "''"
|
- match: '(@["\x{201C}-\x{201E}])\s*$'
|
||||||
scope: constant.character.escape.powershell
|
captures:
|
||||||
- match: \@"(?=$)
|
1: punctuation.definition.string.begin.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.double.heredoc.powershell
|
- meta_scope: string.quoted.double.heredoc.powershell
|
||||||
- match: ^"@
|
- match: '^["\x{201C}-\x{201E}]@'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- include: variableNoProperty
|
- include: variableNoProperty
|
||||||
- include: doubleQuotedStringEscapes
|
- include: doubleQuotedStringEscapes
|
||||||
- include: interpolation
|
- include: interpolation
|
||||||
- match: \@'(?=$)
|
- match: '(@[''\x{2018}-\x{201B}])\s*$'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.single.heredoc.powershell
|
- meta_scope: string.quoted.single.heredoc.powershell
|
||||||
- match: ^'@
|
- match: '^[''\x{2018}-\x{201B}]@'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- match: "''"
|
|
||||||
scope: constant.character.escape.powershell
|
|
||||||
- include: numericConstant
|
- include: numericConstant
|
||||||
- match: (@)(\()
|
- match: (@)(\()
|
||||||
captures:
|
captures:
|
||||||
@@ -71,11 +77,12 @@ contexts:
|
|||||||
0: punctuation.section.group.end.powershell
|
0: punctuation.section.group.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- include: main
|
- include: main
|
||||||
- match: (\$)(\()
|
- match: ((\$))(\()
|
||||||
comment: "TODO: move to repo; make recursive."
|
comment: "TODO: move to repo; make recursive."
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.variable.powershell
|
1: keyword.other.substatement.powershell
|
||||||
2: punctuation.section.group.begin.powershell
|
2: punctuation.definition.subexpression.powershell
|
||||||
|
3: punctuation.section.group.begin.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.group.complex.subexpression.powershell
|
- meta_scope: meta.group.complex.subexpression.powershell
|
||||||
- match: \)
|
- match: \)
|
||||||
@@ -85,7 +92,7 @@ contexts:
|
|||||||
- include: main
|
- include: main
|
||||||
- match: '(\b(([A-Za-z0-9\-_\.]+)\.(?i:exe|com|cmd|bat))\b)'
|
- match: '(\b(([A-Za-z0-9\-_\.]+)\.(?i:exe|com|cmd|bat))\b)'
|
||||||
scope: support.function.powershell
|
scope: support.function.powershell
|
||||||
- match: (?<!\w|-|\.)((?i:begin|break|catch|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\?)(?!\w)
|
- match: (?<!\w|-|\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\?)(?!\w)
|
||||||
scope: keyword.control.powershell
|
scope: keyword.control.powershell
|
||||||
- match: '(?<!\w|-|[^\)]\.)((?i:(foreach|where)(?!-object))|%|\?)(?!\w)'
|
- match: '(?<!\w|-|[^\)]\.)((?i:(foreach|where)(?!-object))|%|\?)(?!\w)'
|
||||||
scope: keyword.control.powershell
|
scope: keyword.control.powershell
|
||||||
@@ -135,7 +142,7 @@ contexts:
|
|||||||
- meta_scope: meta.requires.powershell
|
- meta_scope: meta.requires.powershell
|
||||||
- match: $
|
- match: $
|
||||||
pop: true
|
pop: true
|
||||||
- match: \-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version)
|
- match: \-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)
|
||||||
scope: keyword.other.powershell
|
scope: keyword.other.powershell
|
||||||
- match: '(?<!-)\b\p{L}+|\d+(?:\.\d+)*'
|
- match: '(?<!-)\b\p{L}+|\d+(?:\.\d+)*'
|
||||||
scope: variable.parameter.powershell
|
scope: variable.parameter.powershell
|
||||||
@@ -187,51 +194,53 @@ contexts:
|
|||||||
comment: Builtin cmdlets with reserved verbs
|
comment: Builtin cmdlets with reserved verbs
|
||||||
scope: support.function.powershell
|
scope: support.function.powershell
|
||||||
commentEmbeddedDocs:
|
commentEmbeddedDocs:
|
||||||
- match: ^(?i:(?:\s?|#)+(\.)(COMPONENT|DESCRIPTION|EXAMPLE|EXTERNALHELP|FORWARDHELPCATEGORY|FORWARDHELPTARGETNAME|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|REMOTEHELPRUNSPACE|ROLE|SYNOPSIS))
|
- match: (?:^|\G)(?i:\s*(\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\s*$
|
||||||
|
comment: these embedded doc keywords do not support arguments, must be the only thing on the line
|
||||||
scope: comment.documentation.embedded.powershell
|
scope: comment.documentation.embedded.powershell
|
||||||
captures:
|
captures:
|
||||||
1: constant.string.documentation.powershell
|
1: constant.string.documentation.powershell
|
||||||
2: keyword.operator.documentation.powershell
|
2: keyword.operator.documentation.powershell
|
||||||
- match: '(?i:\s?(\.)(PARAMETER|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP)\s+([a-z0-9-_]+))'
|
- match: (?:^|\G)(?i:\s*(\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\s+(.+?)\s*$
|
||||||
|
comment: these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match
|
||||||
scope: comment.documentation.embedded.powershell
|
scope: comment.documentation.embedded.powershell
|
||||||
captures:
|
captures:
|
||||||
1: constant.string.documentation.powershell
|
1: constant.string.documentation.powershell
|
||||||
2: keyword.operator.documentation.powershell
|
2: keyword.operator.documentation.powershell
|
||||||
3: keyword.operator.documentation.powershell
|
3: keyword.operator.documentation.powershell
|
||||||
commentLine:
|
commentLine:
|
||||||
- match: '(?<![`\\-])#'
|
- match: '(?<![`\\-])(#)#*'
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.comment.powershell
|
1: punctuation.definition.comment.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.line.powershell
|
- meta_scope: comment.line.powershell
|
||||||
- match: $\n?
|
- match: $\n?
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.comment.powershell
|
1: punctuation.definition.comment.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- include: commentEmbeddedDocs
|
- include: commentEmbeddedDocs
|
||||||
- include: RequiresDirective
|
- include: RequiresDirective
|
||||||
doubleQuotedString:
|
doubleQuotedString:
|
||||||
- match: (?<!(?<!`)")"
|
- match: '["\x{201C}-\x{201E}]'
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.string.begin.powershell
|
0: punctuation.definition.string.begin.powershell
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.double.powershell
|
- meta_scope: string.quoted.double.powershell
|
||||||
- match: '"(?!")'
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.powershell
|
|
||||||
pop: true
|
|
||||||
- match: '(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,64}\b'
|
- match: '(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,64}\b'
|
||||||
- include: variableNoProperty
|
- include: variableNoProperty
|
||||||
- include: doubleQuotedStringEscapes
|
- include: doubleQuotedStringEscapes
|
||||||
|
- match: '["\x{201C}-\x{201E}]{2}'
|
||||||
|
scope: constant.character.escape.powershell
|
||||||
- include: interpolation
|
- include: interpolation
|
||||||
- match: '`\s*$'
|
- match: '`\s*$'
|
||||||
scope: keyword.other.powershell
|
scope: keyword.other.powershell
|
||||||
|
- match: '["\x{201C}-\x{201E}]'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.powershell
|
||||||
|
pop: true
|
||||||
doubleQuotedStringEscapes:
|
doubleQuotedStringEscapes:
|
||||||
- match: '`[`0abefnrtv"''$]'
|
- match: '`[`0abefnrtv''"\x{2018}-\x{201E}$]'
|
||||||
scope: constant.character.escape.powershell
|
scope: constant.character.escape.powershell
|
||||||
- include: unicodeEscape
|
- include: unicodeEscape
|
||||||
- match: '""'
|
|
||||||
scope: constant.character.escape.powershell
|
|
||||||
function:
|
function:
|
||||||
- match: '^(?:\s*+)(?i)(function|filter|configuration|workflow)\s+(?:(global|local|script|private):)?((?:\p{L}|\d|_|-|\.)+)'
|
- match: '^(?:\s*+)(?i)(function|filter|configuration|workflow)\s+(?:(global|local|script|private):)?((?:\p{L}|\d|_|-|\.)+)'
|
||||||
captures:
|
captures:
|
||||||
@@ -263,33 +272,23 @@ contexts:
|
|||||||
4: keyword.operator.assignment.powershell
|
4: keyword.operator.assignment.powershell
|
||||||
- include: scriptblock
|
- include: scriptblock
|
||||||
- include: main
|
- include: main
|
||||||
interpolatedStringContent:
|
|
||||||
- match: \(
|
|
||||||
captures:
|
|
||||||
0: punctuation.section.group.begin.powershell
|
|
||||||
push:
|
|
||||||
- meta_content_scope: interpolated.simple.source.powershell
|
|
||||||
- match: \)
|
|
||||||
captures:
|
|
||||||
0: punctuation.section.group.end.powershell
|
|
||||||
pop: true
|
|
||||||
- include: main
|
|
||||||
- include: interpolation
|
|
||||||
- include: interpolatedStringContent
|
|
||||||
interpolation:
|
interpolation:
|
||||||
- match: (\$)(\()
|
- match: (((\$)))((\())
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.variable.powershell
|
1: keyword.other.substatement.powershell
|
||||||
2: punctuation.section.group.begin.powershell
|
2: punctuation.definition.substatement.powershell
|
||||||
|
3: punctuation.section.embedded.substatement.begin.powershell
|
||||||
|
4: punctuation.section.group.begin.powershell
|
||||||
|
5: punctuation.section.embedded.substatement.begin.powershell
|
||||||
push:
|
push:
|
||||||
|
- meta_scope: meta.embedded.substatement.powershell
|
||||||
- meta_content_scope: interpolated.complex.source.powershell
|
- meta_content_scope: interpolated.complex.source.powershell
|
||||||
- match: \)
|
- match: (\))
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.section.group.end.powershell
|
0: punctuation.section.group.end.powershell
|
||||||
|
1: punctuation.section.embedded.substatement.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- include: main
|
- include: main
|
||||||
- include: interpolation
|
|
||||||
- include: interpolatedStringContent
|
|
||||||
numericConstant:
|
numericConstant:
|
||||||
- match: '(?<!\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\b'
|
- match: '(?<!\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\b'
|
||||||
captures:
|
captures:
|
||||||
@@ -330,6 +329,17 @@ contexts:
|
|||||||
0: punctuation.section.braces.end.powershell
|
0: punctuation.section.braces.end.powershell
|
||||||
pop: true
|
pop: true
|
||||||
- include: main
|
- include: main
|
||||||
|
subexpression:
|
||||||
|
- match: \(
|
||||||
|
captures:
|
||||||
|
0: punctuation.section.group.begin.powershell
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.group.simple.subexpression.powershell
|
||||||
|
- match: \)
|
||||||
|
captures:
|
||||||
|
0: punctuation.section.group.end.powershell
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
type:
|
type:
|
||||||
- match: '\['
|
- match: '\['
|
||||||
captures:
|
captures:
|
||||||
|
1
assets/syntaxes/02_Extra/Racket
vendored
Submodule
1
assets/syntaxes/02_Extra/Racket
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Racket added at 7df4479c07
52
assets/syntaxes/02_Extra/Racket.sublime-syntax
vendored
Normal file
52
assets/syntaxes/02_Extra/Racket.sublime-syntax
vendored
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: Racket
|
||||||
|
file_extensions:
|
||||||
|
- rkt
|
||||||
|
scope: source.racket
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: '[^\\](\"[^\"]*\")'
|
||||||
|
captures:
|
||||||
|
1: string.quoted.double.source.racket
|
||||||
|
- match: '\((define)\s+([a-zA-Z0-9_\-?\+^]+)\s*'
|
||||||
|
scope: meta.variable.source.racket
|
||||||
|
captures:
|
||||||
|
1: keyword.source.racket
|
||||||
|
2: entity.name.variable.source.racket
|
||||||
|
- match: '\((define)\s+\(([a-zA-Z0-9_\-?\+^]+)\s*'
|
||||||
|
scope: meta.function.source.racket
|
||||||
|
captures:
|
||||||
|
1: keyword.source.racket
|
||||||
|
2: entity.name.function
|
||||||
|
- match: '\((struct)\s+([a-zA-Z0-9_\-?\+^]+)\s+'
|
||||||
|
scope: meta.struct.source.racket
|
||||||
|
captures:
|
||||||
|
1: keyword.source.racket
|
||||||
|
2: entity.name.type
|
||||||
|
- match: '[\s\(](if|lambda|cond|define|type-case|let|letrec|let!|\#lang|require|test|else|first|rest|define-type|define-type-alias|define-struct|not|local|error|lang)[\s\)]'
|
||||||
|
scope: meta.keywords.source.racket
|
||||||
|
captures:
|
||||||
|
1: keyword.source.racket
|
||||||
|
- match: '[\s\(](true|false|empty|null)[\s\)]'
|
||||||
|
captures:
|
||||||
|
1: constant.language.source.racket
|
||||||
|
- match: '[\s\(\[\{](#t|#true|#f|#false)[\s\)\]\}]'
|
||||||
|
captures:
|
||||||
|
1: constant.language.source.racket
|
||||||
|
- match: '(#\\[a-zA-Z0-9_\-?\+\.\!\"]+)'
|
||||||
|
captures:
|
||||||
|
1: constant.language.source.racket
|
||||||
|
- match: '\b(0|([1-9][0-9_]*))\b'
|
||||||
|
scope: constant.numeric.integer.source.racket
|
||||||
|
- match: ;
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.line.documentation.source.racket
|
||||||
|
- match: $\n
|
||||||
|
pop: true
|
||||||
|
- match: '#\|'
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.source.racket
|
||||||
|
- match: '\|#'
|
||||||
|
pop: true
|
@@ -1,9 +1,10 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
name: Robot Framework syntax highlighting.
|
name: Robot Framework
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- robot
|
- robot
|
||||||
|
- resource
|
||||||
scope: source.robot
|
scope: source.robot
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
2
assets/syntaxes/02_Extra/SCSS_Sass
vendored
2
assets/syntaxes/02_Extra/SCSS_Sass
vendored
Submodule assets/syntaxes/02_Extra/SCSS_Sass updated: b98a3f3ccf...d3d9404640
1
assets/syntaxes/02_Extra/Slim
vendored
Submodule
1
assets/syntaxes/02_Extra/Slim
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Slim added at 3b1441f89f
306
assets/syntaxes/02_Extra/Slim.sublime-syntax
vendored
Normal file
306
assets/syntaxes/02_Extra/Slim.sublime-syntax
vendored
Normal file
@@ -0,0 +1,306 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/syntax.html
|
||||||
|
name: Ruby Slim
|
||||||
|
file_extensions:
|
||||||
|
- slim
|
||||||
|
- skim
|
||||||
|
scope: text.slim
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: ^(\s*)(ruby):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.ruby.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.ruby.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.ruby
|
||||||
|
- match: ^(\s*)(javascript):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.javascript.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: source.js.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.js
|
||||||
|
- match: ^(---)\s*\n
|
||||||
|
captures:
|
||||||
|
1: storage.frontmatter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: source.yaml.meta.slim
|
||||||
|
- match: ^(---)\s*\n
|
||||||
|
captures:
|
||||||
|
1: storage.frontmatter.slim
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.yaml
|
||||||
|
- match: ^(\s*)(coffee):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.coffeescript.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.coffeescript.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.coffee
|
||||||
|
- match: ^(\s*)(markdown):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.markdown.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.markdown.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:text.html.markdown
|
||||||
|
- match: ^(\s*)(css):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.css.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.css.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.css
|
||||||
|
- match: ^(\s*)(sass):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.sass.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.sass.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.sass
|
||||||
|
- match: ^(\s*)(scss):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.scss.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.scss.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.scss
|
||||||
|
- match: ^(\s*)(less):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.less.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.less.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.less
|
||||||
|
- match: ^(\s*)(erb):$
|
||||||
|
captures:
|
||||||
|
2: constant.language.name.erb.filter.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: text.erb.filter.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.erb
|
||||||
|
- match: ^(! )($|\s.*)
|
||||||
|
scope: meta.prolog.slim
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.prolog.slim
|
||||||
|
- match: ^(\s*)(/)\s*.*$
|
||||||
|
captures:
|
||||||
|
2: comment.line.slash.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.slim
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- match: ^\s*(?=-)
|
||||||
|
push:
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- include: rubyline
|
||||||
|
- match: (?==+|~)
|
||||||
|
push:
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- include: rubyline
|
||||||
|
- include: tag-attribute
|
||||||
|
- include: embedded-ruby
|
||||||
|
- match: ^(\s*)(\||')\s*
|
||||||
|
comment: Verbatim text (can include HTML tags and copied lines)
|
||||||
|
push:
|
||||||
|
- match: ^(?!(\1\s)|\s*$)
|
||||||
|
pop: true
|
||||||
|
- include: scope:text.html.basic
|
||||||
|
- include: embedded-ruby
|
||||||
|
- match: '^\s*(\.|#|[-a-zA-Z0-9]+)([\w-]+)?'
|
||||||
|
comment: '1 - dot OR hash OR any combination of word, number; 2 - OPTIONAL any combination of word, number, dash or underscore (following a . or'
|
||||||
|
captures:
|
||||||
|
1: entity.name.tag.slim
|
||||||
|
2: entity.other.attribute-name.event.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.tag
|
||||||
|
- match: '$|(?!\.|#|:|-|~|/|\}|\]|\*|\s?[\*\{])'
|
||||||
|
captures:
|
||||||
|
1: entity.name.tag.slim
|
||||||
|
2: entity.other.attribute-name.event.slim
|
||||||
|
pop: true
|
||||||
|
- match: '(:[\w\d]+)+'
|
||||||
|
comment: XML
|
||||||
|
push:
|
||||||
|
- meta_scope: entity.name.tag.slim
|
||||||
|
- match: $|\s
|
||||||
|
pop: true
|
||||||
|
- match: '(:\s)(\.|#|[a-zA-Z0-9]+)([\w-]+)?'
|
||||||
|
comment: Inline HTML / 1 - colon; 2 - dot OR hash OR any combination of word, number; 3 - OPTIONAL any combination of word, number, dash or underscore (following a . or
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.tag.end.slim
|
||||||
|
2: entity.name.tag.slim
|
||||||
|
3: entity.other.attribute-name.event.slim
|
||||||
|
push:
|
||||||
|
- match: '$|(?!\.|#|=|-|~|/|\}|\]|\*|\s?[\*\{])'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.tag.end.slim
|
||||||
|
2: entity.name.tag.slim
|
||||||
|
3: entity.other.attribute-name.event.slim
|
||||||
|
pop: true
|
||||||
|
- include: root-class-id-tag
|
||||||
|
- include: tag-attribute
|
||||||
|
- match: '(\*\{)(?=.*\}|.*\|\s*$)'
|
||||||
|
comment: Splat attributes
|
||||||
|
captures:
|
||||||
|
1: punctuation.section.embedded.ruby
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.slim
|
||||||
|
- match: '(\})|$|^(?!.*\|\s*$)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.section.embedded.ruby
|
||||||
|
pop: true
|
||||||
|
- include: embedded-ruby
|
||||||
|
- include: root-class-id-tag
|
||||||
|
- include: rubyline
|
||||||
|
- match: /
|
||||||
|
scope: punctuation.terminator.tag.slim
|
||||||
|
- match: ^\s*(\\.)
|
||||||
|
captures:
|
||||||
|
1: meta.escape.slim
|
||||||
|
- match: ^\s*(?=\||')
|
||||||
|
push:
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- include: embedded-ruby
|
||||||
|
- include: scope:text.html.basic
|
||||||
|
- match: '(?=<[\w\d\:]+)'
|
||||||
|
comment: Inline and root-level HTML tags
|
||||||
|
push:
|
||||||
|
- match: $|\/\>
|
||||||
|
pop: true
|
||||||
|
- include: scope:text.html.basic
|
||||||
|
continuation:
|
||||||
|
- match: '([\\,])\s*\n'
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.continuation.slim
|
||||||
|
delimited-ruby-a:
|
||||||
|
- match: '=\('
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.slim
|
||||||
|
- match: \)(?=( \w|$))
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.ruby.rails
|
||||||
|
delimited-ruby-b:
|
||||||
|
- match: '=\['
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.slim
|
||||||
|
- match: '\](?=( \w|$))'
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.ruby.rails
|
||||||
|
delimited-ruby-c:
|
||||||
|
- match: '=\{'
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.slim
|
||||||
|
- match: '\}(?=( \w|$))'
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.ruby.rails
|
||||||
|
embedded-ruby:
|
||||||
|
- match: '(?<!\\)#\{{1,2}'
|
||||||
|
captures:
|
||||||
|
0: punctuation.section.embedded.ruby
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.html
|
||||||
|
- match: '\}{1,2}'
|
||||||
|
captures:
|
||||||
|
0: punctuation.section.embedded.ruby
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.ruby.rails
|
||||||
|
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
|
||||||
|
interpolated-ruby:
|
||||||
|
- match: '=(?=\b)'
|
||||||
|
push:
|
||||||
|
- meta_scope: source.ruby.embedded.html
|
||||||
|
- match: \s|\w$
|
||||||
|
pop: true
|
||||||
|
root-class-id-tag:
|
||||||
|
- match: '(\.|#)([\w\d\-]+)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.key-value.html
|
||||||
|
2: entity.other.attribute-name.html
|
||||||
|
rubyline:
|
||||||
|
- match: (==|=)(<>|><|<'|'<|<|>)?|-
|
||||||
|
comment: Hack to thwart Sublime's Ruby highlighter. It thinks do without a variable continues the next line (this can be muted with a / at the end of the line). For things like yields, do is unnecessary without an argument, so this hack will suffice
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.line.ruby.slim
|
||||||
|
- meta_content_scope: source.ruby.embedded.slim
|
||||||
|
- match: (do\s*\n$)|(?<!\\|,|,\n|\\\n)$
|
||||||
|
captures:
|
||||||
|
1: keyword.control.start-block.ruby
|
||||||
|
pop: true
|
||||||
|
- match: '#.*$'
|
||||||
|
comment: Hack to let ruby comments work in this context properly
|
||||||
|
scope: comment.line.number-sign.ruby
|
||||||
|
- include: continuation
|
||||||
|
- include: scope:source.ruby.rails
|
||||||
|
string-double-quoted:
|
||||||
|
- 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-ruby
|
||||||
|
- include: entities
|
||||||
|
string-single-quoted:
|
||||||
|
- 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-ruby
|
||||||
|
- include: entities
|
||||||
|
tag-attribute:
|
||||||
|
- match: '([\w.#_-]+)(=)(?!\s)(true|false|nil)?(\s*\(|\{)?'
|
||||||
|
captures:
|
||||||
|
1: entity.other.attribute-name.event.slim
|
||||||
|
2: punctuation.separator.key-value.html
|
||||||
|
3: constant.language.slim
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.attribute-with-value.slim
|
||||||
|
- match: '\}|\)|$'
|
||||||
|
captures:
|
||||||
|
1: entity.other.attribute-name.event.slim
|
||||||
|
2: punctuation.separator.key-value.html
|
||||||
|
3: constant.language.slim
|
||||||
|
pop: true
|
||||||
|
- include: tag-stuff
|
||||||
|
- include: string-double-quoted
|
||||||
|
- include: string-single-quoted
|
||||||
|
tag-stuff:
|
||||||
|
- include: tag-attribute
|
||||||
|
- include: interpolated-ruby
|
||||||
|
- include: delimited-ruby-a
|
||||||
|
- include: delimited-ruby-b
|
||||||
|
- include: delimited-ruby-c
|
||||||
|
- include: rubyline
|
||||||
|
- include: embedded-ruby
|
@@ -197,7 +197,7 @@ contexts:
|
|||||||
scope: entity.other.attribute-name.stylus
|
scope: entity.other.attribute-name.stylus
|
||||||
- match: |-
|
- match: |-
|
||||||
(?x) # multi-line regex definition mode
|
(?x) # multi-line regex definition mode
|
||||||
(?<=^|;|{)\s* # starts after begining of line, '{' or ';''
|
(?<=^|;|{)\s* # starts after beginning of line, '{' or ';''
|
||||||
(?= # lookahead for
|
(?= # lookahead for
|
||||||
(
|
(
|
||||||
[a-zA-Z0-9_-] # then a letter
|
[a-zA-Z0-9_-] # then a letter
|
||||||
@@ -207,7 +207,7 @@ contexts:
|
|||||||
(/\*.*?\*/) # comment
|
(/\*.*?\*/) # comment
|
||||||
)+
|
)+
|
||||||
|
|
||||||
\s*[:\s]\s* # value is separted by colon or space
|
\s*[:\s]\s* # value is separated by colon or space
|
||||||
|
|
||||||
(?!(\s*\{)) # if there are only spaces afterwards
|
(?!(\s*\{)) # if there are only spaces afterwards
|
||||||
|
|
||||||
|
1
assets/syntaxes/02_Extra/SublimeEthereum
vendored
Submodule
1
assets/syntaxes/02_Extra/SublimeEthereum
vendored
Submodule
Submodule assets/syntaxes/02_Extra/SublimeEthereum added at b60e0a3e00
1
assets/syntaxes/02_Extra/Svelte
vendored
Submodule
1
assets/syntaxes/02_Extra/Svelte
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Svelte added at c71f1290b0
1
assets/syntaxes/02_Extra/Syslog
vendored
1
assets/syntaxes/02_Extra/Syslog
vendored
Submodule assets/syntaxes/02_Extra/Syslog deleted from 7628d4e0b8
1
assets/syntaxes/02_Extra/SystemVerilog
vendored
Submodule
1
assets/syntaxes/02_Extra/SystemVerilog
vendored
Submodule
Submodule assets/syntaxes/02_Extra/SystemVerilog added at 7eca705e87
2
assets/syntaxes/02_Extra/TOML
vendored
2
assets/syntaxes/02_Extra/TOML
vendored
Submodule assets/syntaxes/02_Extra/TOML updated: 0f14b7caf3...ed38438900
2
assets/syntaxes/02_Extra/Terraform
vendored
2
assets/syntaxes/02_Extra/Terraform
vendored
Submodule assets/syntaxes/02_Extra/Terraform updated: 64208ea816...54d8350c3c
2
assets/syntaxes/02_Extra/TypeScript
vendored
2
assets/syntaxes/02_Extra/TypeScript
vendored
Submodule assets/syntaxes/02_Extra/TypeScript updated: 9cd994af73...ba45efd058
438
assets/syntaxes/02_Extra/TypeScript.sublime-syntax
vendored
438
assets/syntaxes/02_Extra/TypeScript.sublime-syntax
vendored
File diff suppressed because it is too large
Load Diff
1381
assets/syntaxes/02_Extra/TypsecriptReact.sublime-syntax
vendored
1381
assets/syntaxes/02_Extra/TypsecriptReact.sublime-syntax
vendored
File diff suppressed because it is too large
Load Diff
2
assets/syntaxes/02_Extra/VimL
vendored
2
assets/syntaxes/02_Extra/VimL
vendored
Submodule assets/syntaxes/02_Extra/VimL updated: ed40c3bc81...ee85822cbe
91
assets/syntaxes/02_Extra/VimL.sublime-syntax
vendored
91
assets/syntaxes/02_Extra/VimL.sublime-syntax
vendored
@@ -1,91 +0,0 @@
|
|||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
|
||||||
name: VimL
|
|
||||||
file_extensions:
|
|
||||||
- vim
|
|
||||||
- .vimrc
|
|
||||||
scope: source.viml
|
|
||||||
contexts:
|
|
||||||
main:
|
|
||||||
- include: comment
|
|
||||||
- include: string_quoted_double
|
|
||||||
- include: string_quoted_single
|
|
||||||
- include: string_regex
|
|
||||||
- include: inline_comment
|
|
||||||
- include: number_int
|
|
||||||
- include: number_hex
|
|
||||||
- include: keyword
|
|
||||||
- include: support_function
|
|
||||||
- include: support_variable
|
|
||||||
- include: support_type
|
|
||||||
- include: function_params
|
|
||||||
- include: function_definition
|
|
||||||
- include: function_call
|
|
||||||
- include: function
|
|
||||||
- include: variable
|
|
||||||
- include: expr
|
|
||||||
comment:
|
|
||||||
- match: ^\s*".*$
|
|
||||||
scope: comment.line.quotes.viml
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.vim
|
|
||||||
expr:
|
|
||||||
- match: (\|\||&&|==(\?|#)?|(!|>|<)=(#|\?)?|(=|!)~(#|\?)?|(>|<)(#|\?)is|isnot|\.|\*|\\|%)
|
|
||||||
scope: storage.function.viml
|
|
||||||
function:
|
|
||||||
- match: \b(fu(n|nction)?|end(f|fu|fun|function)?)\b
|
|
||||||
scope: storage.function.viml
|
|
||||||
function_call:
|
|
||||||
- match: '(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\()'
|
|
||||||
scope: support.function.any-method
|
|
||||||
function_definition:
|
|
||||||
- match: '^\s*(function)\s*!?\s+(?=(s:)?[0-9a-zA-Z_#]+\s*\()'
|
|
||||||
captures:
|
|
||||||
1: storage.function.viml
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.function.viml
|
|
||||||
- match: (\()
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.parameters.begin.viml
|
|
||||||
pop: true
|
|
||||||
- match: "(s:)?[0-9a-zA-Z_#]+"
|
|
||||||
scope: entity.name.function.viml
|
|
||||||
function_params:
|
|
||||||
- match: '-\w+='
|
|
||||||
scope: support.type.viml
|
|
||||||
inline_comment:
|
|
||||||
- match: '(?!\$)(")(?!\{).*$\n?'
|
|
||||||
scope: comment.line.quotes.viml
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.vim
|
|
||||||
keyword:
|
|
||||||
- match: \b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\b
|
|
||||||
scope: keyword.control.viml
|
|
||||||
number_hex:
|
|
||||||
- match: "0x[0-9a-f]+"
|
|
||||||
scope: constant.numeric.hex
|
|
||||||
number_int:
|
|
||||||
- match: '-?\d+'
|
|
||||||
scope: constant.numeric.integer
|
|
||||||
string_quoted_double:
|
|
||||||
- match: '"(\\\\|\\"|\n[^\S\n]*\\|[^\n"])*"'
|
|
||||||
scope: string.quoted.double.viml
|
|
||||||
string_quoted_single:
|
|
||||||
- match: '''(''''|\n[^\S\n]*\\|[^\n''])*'''
|
|
||||||
scope: string.quoted.single.viml
|
|
||||||
string_regex:
|
|
||||||
- match: '/(\\\\|\\/|\n[^\S\n]*\\|[^\n/])*/'
|
|
||||||
scope: string.regexp.viml
|
|
||||||
support_function:
|
|
||||||
- match: \b(set(local|global)?|let|command|filetype|colorscheme|\w*map|\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\b
|
|
||||||
scope: support.function.viml
|
|
||||||
support_type:
|
|
||||||
- match: <.*?>
|
|
||||||
scope: support.type.viml
|
|
||||||
support_variable:
|
|
||||||
- match: '\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\b'
|
|
||||||
scope: support.variable.viml
|
|
||||||
variable:
|
|
||||||
- match: '([sSgGbBwWlLaAvV]:|@|$|&(?!&))\w*'
|
|
||||||
scope: variable.other.viml
|
|
1
assets/syntaxes/02_Extra/Zig
vendored
Submodule
1
assets/syntaxes/02_Extra/Zig
vendored
Submodule
Submodule assets/syntaxes/02_Extra/Zig added at 87ecbcae6f
1
assets/syntaxes/02_Extra/gnuplot
vendored
Submodule
1
assets/syntaxes/02_Extra/gnuplot
vendored
Submodule
Submodule assets/syntaxes/02_Extra/gnuplot added at 04743470ff
182
assets/syntaxes/02_Extra/gnuplot.sublime-syntax
vendored
Normal file
182
assets/syntaxes/02_Extra/gnuplot.sublime-syntax
vendored
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: gnuplot
|
||||||
|
file_extensions:
|
||||||
|
- gp
|
||||||
|
- gpl
|
||||||
|
- gnuplot
|
||||||
|
- gnu
|
||||||
|
- plot
|
||||||
|
- plt
|
||||||
|
scope: source.gnuplot
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- include: number
|
||||||
|
- include: string_single
|
||||||
|
- include: string_double
|
||||||
|
- match: '\b(for)\b\s*(\[)'
|
||||||
|
comment: |
|
||||||
|
gnuplot iteration statement.
|
||||||
|
There are two forms:
|
||||||
|
numeric [n = 1:2{:inc}]
|
||||||
|
string based [str in "x y z"]
|
||||||
|
but both can also iterate over lists etc, so this is kept loose.
|
||||||
|
captures:
|
||||||
|
1: keyword.other.iteration.gnuplot
|
||||||
|
2: punctuation.definition.range.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.structure.iteration.gnuplot
|
||||||
|
- match: '\]'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- include: number
|
||||||
|
- include: operator
|
||||||
|
- include: string_double
|
||||||
|
- include: string_single
|
||||||
|
- match: ":"
|
||||||
|
scope: punctuation.separator.range.gnuplot
|
||||||
|
- match: '\b([a-zA-Z]\w*)\b\s*(=|in)'
|
||||||
|
scope: variable-assignment.range.gnuplot
|
||||||
|
- match: '(?i:[^\s(pi|e)\]])'
|
||||||
|
scope: invalid.illegal.expected-range-separator.gnuplot
|
||||||
|
- match: '\['
|
||||||
|
comment: "gnuplot range statement [a:b]. Lots of things are legal, still more make no sense!"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.structure.range.gnuplot
|
||||||
|
- match: '\]'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- include: number
|
||||||
|
- include: operator
|
||||||
|
- match: ":"
|
||||||
|
scope: punctuation.separator.range.gnuplot
|
||||||
|
- match: '(?i:[^\s(pi|e)\]])'
|
||||||
|
scope: invalid.illegal.expected-range-separator.gnuplot
|
||||||
|
- match: \\.
|
||||||
|
scope: constant.character.escape.gnuplot
|
||||||
|
- match: '(?<!\$)(#)(?!\{).*$\n?'
|
||||||
|
scope: comment.line.number-sign.gnuplot
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.gnuplot
|
||||||
|
- match: for
|
||||||
|
comment: introduce in gnuplot 4.3.
|
||||||
|
scope: keyword.other.iteration.gnuplot
|
||||||
|
- match: \b(angles|arrow|autoscale|bars|border|boxwidth|clabel|clip|cntrparam|colorbox|contour|decimalsign|dgrid3d|dummy|encoding|fit|format|grid|hidden3d|historysize|isosamples|key|label|locale|logscale|macros|bmargin|lmargin|rmargin|tmargin|mapping|mouse|multiplot|offsets|origin|output|palette|parametric|pm3d|pointsize|polar|print|rrange|trange|urange|vrange|samples|size|style|surface|tics|ticscale|ticslevel|timestamp|timefmt|title|view|xyplane|x2data|xdata|y2data|ydata|z2data|zdata|x2label|xlabel|y2label|ylabel|z2label|zlabel|x2range|xrange|y2range|yrange|z2range|zrange|mx2tics|mxtics|my2tics|mytics|mz2tics|mztics|nomx2tics|nomxtics|nomy2tics|nomytics|nomz2tics|nomztics|nox2tics|noxtics|noy2tics|noytics|noz2tics|noztics|x2tics|xtics|y2tics|ytics|z2tics|ztics|x2dtics|x2mtics|xdtics|xmtics|y2dtics|y2mtics|ydtics|ymtics|z2dtics|z2mtics|zdtics|zmtics|x2zeroaxis|xzeroaxis|y2zeroaxis|yzeroaxis|z2zeroaxis|zeroaxis|zzeroaxis|zero|)\b
|
||||||
|
scope: keyword.other.setting.gnuplot
|
||||||
|
- match: \b(cd|call|clear|exit|plot|splot|help|load|pause|quit|fit|replot|if|FIT_LIMIT|FIT_MAXITER|FIT_START_LAMBDA|FIT_LAMBDA_FACTOR|FIT_LOG|FIT_SCRIPT|print|pwd|reread|reset|save|show|test|!|functions|var)\b
|
||||||
|
comment: missuse of scopes alert! Just for pretty colours
|
||||||
|
scope: keyword.other.command.gnuplot
|
||||||
|
- match: \b(abs|acos|acosh|arg|asin|asinh|atan|atan2|atanh|besj0|besj1|besy0|besy1|ceil|cos|cosh|erf|erfc|exp|floor|gamma|ibeta|igamma|imag|int|inverf|invnorm|lambertw|lgamma|log|log10|norm|rand|real|sgn|sin|sinh|sqrt|tan|tanh)\b
|
||||||
|
scope: support.function.gnuplot
|
||||||
|
- match: \b(gprintf|sprintf|strlen|strstrt|substr|system|word|words)\b
|
||||||
|
scope: support.function.string.gnuplot
|
||||||
|
- match: \b(on|off|default|inside|outside|lmargin|rmargin|tmargin|bmargin|at|left|right|center|top|bottom|center|vertical|horizontal|Left|Right|noreverse|noinvert|samplen|spacing|width|height|noautotitle|columnheader|title|noenhanced|nobox|linestyle|ls|linetype|lt|linewidth|lw)\b
|
||||||
|
scope: constant.other.type.gnuplot
|
||||||
|
- match: \b(aed512|aed767|aifm|aqua|bitgraph|cgm|corel|dumb|dxf|eepic|emf|emtex|epslatex|epson_180dpi|epson_60dpi|epson_lx800|fig|gif|gpic|hp2623A|hp2648|hp500c|hpdj|hpgl|hpljii|hppj|imagen|jpeg|kc_tek40xx|km_tek40xx|latex|mf|mif|mp|nec_cp6|okidata|pbm|pcl5|pdf|png|postscript|pslatex|pstex|pstricks|qms|regis|selanar|starc|svg|tandy_60dpi|tek40xx|tek410x|texdraw|tgif|tkcanvas|tpic|unknown|vttek)\b
|
||||||
|
scope: constant.other.terminal.gnuplot
|
||||||
|
- match: \b(u(sing)?|t(it(le)?)?|notit(le)?|w(i(th)?)?|steps|fs(teps)?|notitle|l(i(nes)?)?|linespoints|via)\b
|
||||||
|
scope: keyword.modifier.gnuplot
|
||||||
|
- match: |-
|
||||||
|
(?x:
|
||||||
|
\b # Start with a word boundary
|
||||||
|
(?=\b[\w$]*(\(|.*=)) # Look-ahead for a bracket or equals
|
||||||
|
(?![^(]*\)) # negative look ahead for a closing bracket without an opening one. This stops a from matching in f(a)
|
||||||
|
( # Group variable name
|
||||||
|
[A-Za-z] # A letter
|
||||||
|
[\w$]* # Any word chars or $
|
||||||
|
) # That is it for the name.
|
||||||
|
)
|
||||||
|
comment: user defined function / variable
|
||||||
|
scope: variable.other.gnuplot
|
||||||
|
- match: \b(if)\b
|
||||||
|
scope: keyword.control.gnuplot
|
||||||
|
- match: \b(show)\b
|
||||||
|
captures:
|
||||||
|
0: keyword.other.command.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.show.gnuplot
|
||||||
|
- meta_content_scope: keyword.line.show.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set)\b\s*\b(terminal|term)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.terminal.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set)\b\s*\b(key)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.key.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set|unset)\b\s*(?!\b(terminal|key|for)\b)
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.gnuplot
|
||||||
|
- meta_content_scope: keyword.line.set.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
number:
|
||||||
|
- match: |-
|
||||||
|
(?x: # turn on extended mode
|
||||||
|
-? # an optional minus
|
||||||
|
(?:
|
||||||
|
0 # a zero
|
||||||
|
| # ...or...
|
||||||
|
[1-9] # a 1-9 character
|
||||||
|
\d* # followed by zero or more digits
|
||||||
|
)
|
||||||
|
(?:
|
||||||
|
\. # a period
|
||||||
|
\d+ # followed by one or more digits
|
||||||
|
(?:
|
||||||
|
[eE] # an e character
|
||||||
|
[+-]? # followed by an option +/-
|
||||||
|
\d+ # followed by one or more digits
|
||||||
|
)? # make exponent optional
|
||||||
|
)? # make decimal portion optional
|
||||||
|
)
|
||||||
|
comment: borrowed from textmate book
|
||||||
|
scope: constant.numeric.gnuplot
|
||||||
|
operator:
|
||||||
|
- match: \s*(==|~=|>|>=|<|<=|&|&&|:|\||\|\||\+|-|\*|\.\*|/|\./|\\|\.\\|\^|\.\^)\s*
|
||||||
|
comment: Operator symbols
|
||||||
|
scope: keyword.operator.symbols.matlab
|
||||||
|
string_double:
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.double.gnuplot
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- match: '\\[\$`"\\\n]'
|
||||||
|
scope: constant.character.escape.gnuplot
|
||||||
|
string_single:
|
||||||
|
- match: "'"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.single.gnuplot
|
||||||
|
- match: "'"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.gnuplot
|
||||||
|
pop: true
|
1
assets/syntaxes/02_Extra/http-request-response
vendored
Submodule
1
assets/syntaxes/02_Extra/http-request-response
vendored
Submodule
Submodule assets/syntaxes/02_Extra/http-request-response added at 93b93261bc
116
assets/syntaxes/02_Extra/log.sublime-syntax
vendored
Normal file
116
assets/syntaxes/02_Extra/log.sublime-syntax
vendored
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
file_extensions:
|
||||||
|
- log
|
||||||
|
scope: text.log
|
||||||
|
variables:
|
||||||
|
ipv4_part: (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: (\w+)(=)
|
||||||
|
captures:
|
||||||
|
1: variable.parameter.log
|
||||||
|
2: keyword.operator.assignment.log
|
||||||
|
- match: (')([^']*)(')
|
||||||
|
scope: string.quoted.single.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.log
|
||||||
|
3: punctuation.definition.string.end.log
|
||||||
|
- match: (")([^"]*)(")
|
||||||
|
scope: string.quoted.double.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.log
|
||||||
|
3: punctuation.definition.string.end.log
|
||||||
|
- include: dates
|
||||||
|
- include: ip_addresses
|
||||||
|
- include: numbers
|
||||||
|
- match: \b(?i:fail(?:ure|ed)?|error|exception)\b
|
||||||
|
scope: markup.error.log
|
||||||
|
- match: \b(?i:warn(?:ing)?)\b
|
||||||
|
scope: markup.warning.log
|
||||||
|
#- include: scope:text.html.markdown#autolink-inet
|
||||||
|
- match: \b\w+:/{2,3}
|
||||||
|
scope: markup.underline.link.scheme.log
|
||||||
|
push: url-host
|
||||||
|
dates:
|
||||||
|
- match: \b\d{4}-\d{2}-\d{2}\b
|
||||||
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
- match: \b\d{4}/\d{2}/\d{2}\b
|
||||||
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
- match: \b(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)(?:(\.)\d{3})?\b
|
||||||
|
scope: meta.time.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.decimal.log
|
||||||
|
ip_addresses:
|
||||||
|
- match: \b(?=(?:{{ipv4_part}}\.){3}{{ipv4_part}}\b)
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.ipaddress.v4.log meta.number.integer.decimal.log
|
||||||
|
- match: \d+
|
||||||
|
scope: constant.numeric.value.log
|
||||||
|
- match: \.
|
||||||
|
scope: punctuation.separator.sequence.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
- match: (?=(?:\h{0,4}:){2,6}\h{1,4}\b)
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.ipaddress.v6.log meta.number.integer.hexadecimal.log
|
||||||
|
- match: \h{1,4}
|
||||||
|
scope: constant.numeric.value.log
|
||||||
|
- match: ':'
|
||||||
|
scope: punctuation.separator.sequence.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
numbers:
|
||||||
|
- match: \b(0x)(\h+)(?:(\.)(\h+))?\b
|
||||||
|
scope: meta.number.float.hexadecimal.log
|
||||||
|
captures:
|
||||||
|
1: constant.numeric.base.log
|
||||||
|
2: constant.numeric.value.log
|
||||||
|
3: constant.numeric.value.log punctuation.separator.decimal.log
|
||||||
|
4: constant.numeric.value.log
|
||||||
|
- match: \b\d+(\.)\d+\b
|
||||||
|
scope: meta.number.float.log constant.numeric.value.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.decimal.log
|
||||||
|
- match: \b\d+\b
|
||||||
|
scope: meta.number.integer.log constant.numeric.value.log
|
||||||
|
url-host:
|
||||||
|
- meta_content_scope: markup.underline.link.host.log
|
||||||
|
- match: \[
|
||||||
|
scope: punctuation.section.brackets.begin.log
|
||||||
|
push:
|
||||||
|
- match: \]
|
||||||
|
scope: punctuation.section.brackets.end.log
|
||||||
|
pop: true
|
||||||
|
- include: ip_addresses
|
||||||
|
- match: '[^:/\s]+'
|
||||||
|
- match: ''
|
||||||
|
set: url-after-host
|
||||||
|
url-after-host:
|
||||||
|
- match: (:)(\d+)
|
||||||
|
scope: markup.underline.link.port.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.mapping.port.log
|
||||||
|
2: constant.numeric.value.log
|
||||||
|
#- include: scope:text.html.markdown#url-escaped-chars
|
||||||
|
- match: (%)\h{2}
|
||||||
|
scope: markup.underline.link.path.log constant.character.escape.url.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.escape.log
|
||||||
|
# After a valid domain, zero or more non-space non-< characters may follow
|
||||||
|
- match: (?=[?!.,:*_~]*[\s<]) # Trailing punctuation (specifically, ?, !, ., ,, :, *, _, and ~) will not be considered part of the autolink, though they may be included in the interior of the link
|
||||||
|
pop: true
|
||||||
|
- match: \( # When an autolink ends in ), we scan the entire autolink for the total number of parentheses. If there is a greater number of closing parentheses than opening ones, we don’t consider the last character part of the autolink, in order to facilitate including an autolink inside a parenthesis
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.underline.link.path.log
|
||||||
|
- match: (?=[?!.,:*_~]*[\s<])
|
||||||
|
pop: true
|
||||||
|
- match: \)
|
||||||
|
pop: true
|
||||||
|
- match: (?=\)[?!.,:*_~]*[\s<])
|
||||||
|
pop: true
|
||||||
|
- match: '[^?!.,:*_~\s<&()%]+|\S'
|
||||||
|
scope: markup.underline.link.path.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
1
assets/syntaxes/02_Extra/requirementstxt
vendored
1
assets/syntaxes/02_Extra/requirementstxt
vendored
Submodule assets/syntaxes/02_Extra/requirementstxt deleted from 775e6dd62a
@@ -1,19 +0,0 @@
|
|||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
|
||||||
name: requirements.txt
|
|
||||||
file_extensions:
|
|
||||||
- requirements.txt
|
|
||||||
scope: source.requirementstxt
|
|
||||||
contexts:
|
|
||||||
main:
|
|
||||||
- match: (#).*$\n?
|
|
||||||
scope: comment.line.requirementstxt
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.requirementstxt
|
|
||||||
- match: '(?i)^[a-z0-9_\-\.]+'
|
|
||||||
scope: string.package_name.requirementstxt
|
|
||||||
- match: (?i)==|<|<=|>=|>
|
|
||||||
scope: keyword.operator.logical.punctuation.requirementstxt
|
|
||||||
- match: '(?i)\d+\.[\da-z\-_\.]*'
|
|
||||||
scope: constant.numeric.verions.requirementstxt
|
|
@@ -7,7 +7,7 @@ file_extensions:
|
|||||||
scope: whitespace
|
scope: whitespace
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
- match: "•"
|
- match: "·"
|
||||||
scope: support.function.show-nonprintable.space
|
scope: support.function.show-nonprintable.space
|
||||||
- match: "├─*┤"
|
- match: "├─*┤"
|
||||||
scope: constant.character.escape.show-nonprintable.tab
|
scope: constant.character.escape.show-nonprintable.tab
|
||||||
|
2
assets/syntaxes/02_Extra/ssh-config
vendored
2
assets/syntaxes/02_Extra/ssh-config
vendored
Submodule assets/syntaxes/02_Extra/ssh-config updated: 3ec06d0e9c...e1012e9f13
60
assets/syntaxes/02_Extra/syntax_test_csv.csv
vendored
Normal file
60
assets/syntaxes/02_Extra/syntax_test_csv.csv
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# SYNTAX TEST "CSV.sublime-syntax"
|
||||||
|
Forename,Surname,House No.,Street,City,Postcode
|
||||||
|
#^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
John,Doe,87,Logon Road,Citiville,TU43 6GH
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Jane,Doe,22,"""Fun"" Street","The City, County",FA90 1XA
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^^^^^^^^^^ meta.field-1 string.quoted.double
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Fred,Bloggs,"19","Street
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-3 string.quoted.double
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
Spanning Multiple ""
|
||||||
|
#^^^^^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
Lines",Citee,P0stc0d3
|
||||||
|
#^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
Can't render this file because it contains an unexpected character in line 1 and column 15.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user