mirror of
https://github.com/sharkdp/bat.git
synced 2025-04-16 07:40:36 +01:00
Compare commits
2605 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
98c9a5d948 | ||
|
96ea42e5f4 | ||
|
2ff2a818ef | ||
|
dd694c266e | ||
|
c4461f7d78 | ||
|
77de5160ac | ||
|
b9fcc5ae2d | ||
|
e42883bf2c | ||
|
5c41a45931 | ||
|
ba49ba0acd | ||
|
5d75632c8e | ||
|
e202a33ea1 | ||
|
93be82ebc9 | ||
|
0bf4753ff1 | ||
|
fbb07a1494 | ||
|
debb66f8b0 | ||
|
45185b36fb | ||
|
e761d79512 | ||
|
14064dd987 | ||
|
3eef8590f4 | ||
|
3e7ad18fe3 | ||
|
80a38590b8 | ||
|
44a6e29da7 | ||
|
a6e847e267 | ||
|
2f70906665 | ||
|
c4c919aa31 | ||
|
51491c3c08 | ||
|
ea17f6ad28 | ||
|
3691c9945a | ||
|
57629bcaca | ||
|
b38ee77628 | ||
|
b5413cc015 | ||
|
5edaa96164 | ||
|
12a2a451b4 | ||
|
fc7dff50b0 | ||
|
9272e09058 | ||
|
b13c4d5f8d | ||
|
d7b10b4352 | ||
|
05cddff72d | ||
|
a55d23aaa4 | ||
|
18b71743c8 | ||
|
f761ff6824 | ||
|
8e2d233445 | ||
|
59b1f362f6 | ||
|
a73c641a0f | ||
|
3d4c72da0b | ||
|
71547b3fb3 | ||
|
ad8da94d2a | ||
|
5ea762a46c | ||
|
bbb5829ad9 | ||
|
c00b382f13 | ||
|
964e2bdac3 | ||
|
2e7ab99099 | ||
|
4175f28979 | ||
|
207f90f01b | ||
|
5c43ddb56c | ||
|
3838766dd4 | ||
|
a006457a72 | ||
|
0449107230 | ||
|
75313d886b | ||
|
4998f58847 | ||
|
ffc094bd91 | ||
|
343326eacf | ||
|
d31bc4347a | ||
|
adfb951e51 | ||
|
2843a2c0e8 | ||
|
94d3dc254e | ||
|
915eb55779 | ||
|
547bc38118 | ||
|
93fd013aa1 | ||
|
512bfde7ce | ||
|
27ba45ded7 | ||
|
c0898dedb1 | ||
|
b82b920420 | ||
|
ac40f7cfd8 | ||
|
330c51de9f | ||
|
0ed527f0d1 | ||
|
7df1dec65c | ||
|
61d42ee87b | ||
|
a95e65eea1 | ||
|
71dce0e7f3 | ||
|
53af1dc32d | ||
|
52252b15d6 | ||
|
bc24ce9ad4 | ||
|
625e986552 | ||
|
095442191c | ||
|
cc46282866 | ||
|
cbc9c3629d | ||
|
2c49d905e4 | ||
|
f0e2f642e0 | ||
|
3d0f0c0565 | ||
|
3d442cdf98 | ||
|
b009fee5ea | ||
|
6cf747678c | ||
|
db812e1179 | ||
|
995f23b58f | ||
|
ef3830234d | ||
|
4fc55cfcec | ||
|
487ac3bc48 | ||
|
d6cb3ba747 | ||
|
a9a2dceb72 | ||
|
bee08e48ae | ||
|
b14fb9db24 | ||
|
91acb0d16f | ||
|
4f161705a3 | ||
|
f8c6e90647 | ||
|
dd9dc4f76b | ||
|
94f49fd99b | ||
|
498df11a50 | ||
|
db7da314e7 | ||
|
33aabc696a | ||
|
648bedf290 | ||
|
dd3d1b8cdb | ||
|
b39a156d57 | ||
|
b6158c09b4 | ||
|
8a11a46f66 | ||
|
4d73c1e511 | ||
|
280f3eeb4e | ||
|
1321160203 | ||
|
01680e444b | ||
|
2435453c33 | ||
|
6e466e5ab4 | ||
|
25f4f96ea3 | ||
|
5cfd22ee8b | ||
|
ae07586fef | ||
|
96e4882b5c | ||
|
a0a090c307 | ||
|
bc61d84408 | ||
|
de8bb79a6f | ||
|
7bf459f0ff | ||
|
18ed69aff4 | ||
|
c9431933e5 | ||
|
2d3581e8c4 | ||
|
8453bc93cc | ||
|
d1418a9ab0 | ||
|
09bdcde6c5 | ||
|
0d2afe79af | ||
|
5a12f187fa | ||
|
753bfaff49 | ||
|
9744971b19 | ||
|
c8f7787281 | ||
|
26f19703d3 | ||
|
b7b05a3553 | ||
|
caba54efc9 | ||
|
e2528dff6d | ||
|
ad11fb815f | ||
|
305e8a4d84 | ||
|
7e804b27a0 | ||
|
18d963f423 | ||
|
9d91d22e29 | ||
|
3fa9044029 | ||
|
8a9821fa9a | ||
|
75fadb8d1c | ||
|
63560c4733 | ||
|
d660cca8a9 | ||
|
be62a4cea4 | ||
|
874448c112 | ||
|
004d2d5122 | ||
|
3e07483f7a | ||
|
9859077306 | ||
|
0cde7167d6 | ||
|
7eff8b687c | ||
|
04c7d15084 | ||
|
dbe25ba5e6 | ||
|
f81d4dc321 | ||
|
f1c5c02713 | ||
|
6c25c693a8 | ||
|
4be55ead4d | ||
|
8df326aeed | ||
|
f87157d009 | ||
|
0b4fe03ec3 | ||
|
1063264d88 | ||
|
4bee858c78 | ||
|
d832367d95 | ||
|
d89a20f8b4 | ||
|
41ef01f25d | ||
|
7b797fd830 | ||
|
d27064cea5 | ||
|
c9aa8d59ef | ||
|
57a8b10883 | ||
|
e608b33142 | ||
|
6598442d41 | ||
|
822eff6028 | ||
|
da4defad07 | ||
|
9bed8adb16 | ||
|
2e836e9822 | ||
|
07554b0c1d | ||
|
022574314f | ||
|
8a4701f93f | ||
|
08047a6a2e | ||
|
2caeaef14b | ||
|
d00e05643f | ||
|
60693db73f | ||
|
15f2553a3d | ||
|
dbe352d8b8 | ||
|
517ddd8e00 | ||
|
558b487c91 | ||
|
f8f12a7db5 | ||
|
d725443116 | ||
|
dbaa0a6d9e | ||
|
6b2c5645d2 | ||
|
e7bef716c9 | ||
|
c627526f8c | ||
|
95cb705ac0 | ||
|
ca43c7a8f8 | ||
|
0a8bfc52a6 | ||
|
d0ae2e6826 | ||
|
9090fb75e0 | ||
|
50fa25db60 | ||
|
bd3c49d234 | ||
|
ce7a3d9f7d | ||
|
3b71837174 | ||
|
2be3a14a7e | ||
|
8d82402d74 | ||
|
1942d40863 | ||
|
5042844342 | ||
|
649fb05c58 | ||
|
c533a4aa14 | ||
|
b93a41a9a3 | ||
|
937c59fca9 | ||
|
a80d5ea9f7 | ||
|
c11a7d9e41 | ||
|
ac082ab64b | ||
|
c9fd0f3cf0 | ||
|
e667415def | ||
|
fd6c7637e4 | ||
|
9a816c9c68 | ||
|
431344ba67 | ||
|
eca6b8a376 | ||
|
b01ed8d773 | ||
|
3e5f4266ce | ||
|
61c9f312c9 | ||
|
c59dad0cae | ||
|
16a79d38c2 | ||
|
9d635627dc | ||
|
bc69ffb0f0 | ||
|
a0226f5670 | ||
|
ed7789d9b7 | ||
|
b747184788 | ||
|
02ae6ef348 | ||
|
0ebb9cbfe2 | ||
|
f6cbee9e27 | ||
|
10e823c4b7 | ||
|
60e4027332 | ||
|
e075fee5bf | ||
|
16d9b99f6c | ||
|
ffa74a7f49 | ||
|
c1772b7793 | ||
|
5be9d19500 | ||
|
0603f0b844 | ||
|
50958472e5 | ||
|
89ce060183 | ||
|
bc42149a72 | ||
|
0c3b22e0f0 | ||
|
a769a3d813 | ||
|
7cc231b82b | ||
|
7f089ead62 | ||
|
b9b981f657 | ||
|
abf9dada04 | ||
|
5c6974703e | ||
|
1b0a6da4be | ||
|
06b645435a | ||
|
c3b190d45b | ||
|
594b1417f1 | ||
|
e8ca6ec7c3 | ||
|
6498615f5f | ||
|
30b0143ccf | ||
|
ff81cfd584 | ||
|
14ce668a1d | ||
|
9a1bfe946d | ||
|
cea45e05f3 | ||
|
cda363a3f7 | ||
|
de796392cf | ||
|
1423dd9440 | ||
|
60b3428ad7 | ||
|
571970f8ff | ||
|
18a0653ce8 | ||
|
569286055c | ||
|
b662fec214 | ||
|
d8d0b77568 | ||
|
13317b0a3b | ||
|
2616296183 | ||
|
39684b85ad | ||
|
aa3ec109b7 | ||
|
180a77ee99 | ||
|
93b25d75a0 | ||
|
6e91ba83b7 | ||
|
b74c125c43 | ||
|
fd1e0d5876 | ||
|
9a650e8279 | ||
|
d5aa9d8e05 | ||
|
b1cdc06430 | ||
|
83a15ac05f | ||
|
43a77a42f8 | ||
|
44ca1e7df1 | ||
|
23fd200482 | ||
|
9f1c62b013 | ||
|
319b8868fc | ||
|
7bd6cdbebc | ||
|
1488a4a006 | ||
|
56d2823b0e | ||
|
1a11ba11e3 | ||
|
c34bdb5e66 | ||
|
10456e1d51 | ||
|
bbdadc7e38 | ||
|
ff71e32c0f | ||
|
50b01ea8da | ||
|
de697f7717 | ||
|
575457c944 | ||
|
6fc58821a5 | ||
|
7873b473e8 | ||
|
609005a225 | ||
|
b9c74ab859 | ||
|
cee5584daf | ||
|
b265b20721 | ||
|
a7a9727c11 | ||
|
90dfa7f18d | ||
|
3f8d62e7d6 | ||
|
3f22311ec8 | ||
|
9e8176b1c6 | ||
|
70ff93d238 | ||
|
c264ecd26b | ||
|
10a1b24191 | ||
|
243819ecdc | ||
|
9c76b72825 | ||
|
b4fe182960 | ||
|
b7e44c76dc | ||
|
f3cc69733f | ||
|
3625f0ea1c | ||
|
e6e2d4c65d | ||
|
340e873eff | ||
|
3407bf4bf6 | ||
|
25cd4991d2 | ||
|
503b2c5126 | ||
|
026bc05d70 | ||
|
61005f19fa | ||
|
8f8c953ab6 | ||
|
f82487daf8 | ||
|
3a9d574770 | ||
|
b4e3a84e1a | ||
|
f7c39e8353 | ||
|
37d9f0533c | ||
|
d560f2a515 | ||
|
bb4d1cbd2e | ||
|
23ec433167 | ||
|
9eaed3e3f0 | ||
|
d5bd4aa93f | ||
|
66b70dd8ed | ||
|
01731478a6 | ||
|
f8c5429a6c | ||
|
f71226adbb | ||
|
e8d777b73a | ||
|
3cff44b652 | ||
|
26302a8b08 | ||
|
adc5bd0402 | ||
|
e3c3be950a | ||
|
8d92dc2083 | ||
|
a1f85b9e06 | ||
|
424c02dfa7 | ||
|
018a482621 | ||
|
4790def1ef | ||
|
07c26adc35 | ||
|
f29f9387b5 | ||
|
c290bfff1e | ||
|
42153f2b99 | ||
|
6d7537d3ec | ||
|
b30ec9f975 | ||
|
a7074f10d4 | ||
|
d185f0973b | ||
|
071874ea8f | ||
|
46a2c004a2 | ||
|
26ac179548 | ||
|
4c85483486 | ||
|
487bed2d95 | ||
|
6f69682552 | ||
|
bc5beaec5d | ||
|
83b00bc653 | ||
|
f041ff8c5f | ||
|
1fbdbfc4b2 | ||
|
2323aa0def | ||
|
6c2ce63101 | ||
|
13204c46e2 | ||
|
9bb0271e7d | ||
|
0e4e10edb6 | ||
|
0c7e5299bf | ||
|
c36ed32816 | ||
|
e1a3fc5529 | ||
|
1ae9e843ed | ||
|
dbe4cfb763 | ||
|
4549f83689 | ||
|
e6e8f847be | ||
|
b9e249f782 | ||
|
3ffa3648cf | ||
|
5c2cc53882 | ||
|
a6f01af8de | ||
|
85a549e293 | ||
|
b718889ba2 | ||
|
708c74f6af | ||
|
74d666f5c0 | ||
|
7604fe5567 | ||
|
0080b043c4 | ||
|
c7bce46622 | ||
|
2b4339663c | ||
|
6a6b02117b | ||
|
511cd30105 | ||
|
92915e22e7 | ||
|
d499191b0a | ||
|
152d69fe98 | ||
|
81aa24310c | ||
|
75cdabaf13 | ||
|
1f628203e5 | ||
|
1b9fc1d5af | ||
|
bc1ca1a346 | ||
|
f735120978 | ||
|
25b5a41189 | ||
|
c94cf4e14e | ||
|
84d80eebd0 | ||
|
915dd9fbf8 | ||
|
9d77c1373c | ||
|
c3f2ddf509 | ||
|
8a51172b11 | ||
|
875046e4cd | ||
|
a5bd9f51be | ||
|
5a2a20af42 | ||
|
61029c8bd2 | ||
|
1023399c5e | ||
|
6549e26f5d | ||
|
165c495e75 | ||
|
6b9b085be3 | ||
|
2d46d54ae3 | ||
|
3d04699710 | ||
|
054421268f | ||
|
414403b062 | ||
|
c29bf2ff28 | ||
|
ab4e5ed52e | ||
|
1a54c9bf6d | ||
|
02077db53e | ||
|
7ce010d9ed | ||
|
95993cf37e | ||
|
3761df9112 | ||
|
adfaef19da | ||
|
f7bea6de5b | ||
|
65aae5d0a1 | ||
|
e3866b1f7e | ||
|
23de8e093b | ||
|
196a4cb18f | ||
|
695cf1f387 | ||
|
0af1df5258 | ||
|
a8d07333e9 | ||
|
7f12989127 | ||
|
60e32cf823 | ||
|
e9a6aaa30f | ||
|
9be2a36a01 | ||
|
22254936a2 | ||
|
f6d76e0104 | ||
|
c911829771 | ||
|
b33e33fe26 | ||
|
9239b125b1 | ||
|
2086cd2668 | ||
|
1b88267320 | ||
|
e586751208 | ||
|
e7256a624b | ||
|
5c1f47359e | ||
|
45ee2dc4c7 | ||
|
db66e4459b | ||
|
55e02e101d | ||
|
230abfd2bc | ||
|
c0f2d6f934 | ||
|
9f36a7a284 | ||
|
e4d637a3d8 | ||
|
98a2b6bc17 | ||
|
8e66bc8722 | ||
|
cd81c7fa6b | ||
|
b4fdb5dc36 | ||
|
c76ed99db2 | ||
|
06aef22943 | ||
|
128b0d6dd3 | ||
|
15dc20109f | ||
|
5c4bcd6611 | ||
|
ecf4029dc7 | ||
|
c261b41578 | ||
|
6f1cc80d68 | ||
|
3b0ade9cb8 | ||
|
57016f4e04 | ||
|
497342fabb | ||
|
bf56cd90f0 | ||
|
0acb979e9e | ||
|
d7503bfc09 | ||
|
b89dc15be1 | ||
|
15ab4478c9 | ||
|
5b4ce684a1 | ||
|
0027055a83 | ||
|
321b3ec81b | ||
|
1679460f42 | ||
|
907af9e35f | ||
|
12b74dfb4e | ||
|
fd84e4f49f | ||
|
f0a6fe216d | ||
|
d792dc5804 | ||
|
8a08025091 | ||
|
586c804b1e | ||
|
e30161ac3c | ||
|
3865908439 | ||
|
9474b4cf8b | ||
|
b48bda21a3 | ||
|
daf33709a0 | ||
|
36073a3d95 | ||
|
12fa2cb1eb | ||
|
1f10d846a3 | ||
|
22531eab90 | ||
|
0c1b80faab | ||
|
2c9bf229e1 | ||
|
822e81bb24 | ||
|
ad628c0471 | ||
|
f483d2df42 | ||
|
4ad3002543 | ||
|
cfd622d6e1 | ||
|
1c7c9a6b6d | ||
|
0c93ca80f4 | ||
|
de6d418d42 | ||
|
c016b462c0 | ||
|
7e1fbcfe95 | ||
|
4815b6155e | ||
|
075b5b288a | ||
|
7cfd1e0d78 | ||
|
9f7d70f642 | ||
|
0fea82cff9 | ||
|
64840fbbae | ||
|
827b3eca2f | ||
|
9478d2dfe8 | ||
|
d24501ab5e | ||
|
9f4259721a | ||
|
77e491161c | ||
|
97780f987e | ||
|
d1bc0ef0d4 | ||
|
52f94b4623 | ||
|
37fd050100 | ||
|
83286975ff | ||
|
f705fcb984 | ||
|
9ca1f20f43 | ||
|
6ad800e43a | ||
|
069318b139 | ||
|
b9b554248d | ||
|
4863d428dd | ||
|
2e103ee6b3 | ||
|
28990bc451 | ||
|
748e2a681f | ||
|
bfa0b5241f | ||
|
4af4bfc0f1 | ||
|
51203ff750 | ||
|
96cef9a24e | ||
|
b43d31b75a | ||
|
ad3ff26960 | ||
|
86b40993c3 | ||
|
31bed250ba | ||
|
7658334645 | ||
|
491ae70aa9 | ||
|
d64c568196 | ||
|
b5982a6174 | ||
|
04e7d2a313 | ||
|
bcc2de86b4 | ||
|
1296aea836 | ||
|
5498c24c33 | ||
|
79a03b4299 | ||
|
f3a5e9a73c | ||
|
2710a19ecb | ||
|
6d0ef259f6 | ||
|
b1577cc083 | ||
|
28d947fd8b | ||
|
b000db8f32 | ||
|
116a6cc9a8 | ||
|
c8291a36b7 | ||
|
8180c76890 | ||
|
a0f33b1cdc | ||
|
8b60dae81c | ||
|
4b33093f9e | ||
|
3d87b25b19 | ||
|
f2f6902279 | ||
|
c0b17e73e1 | ||
|
94544d963b | ||
|
72abbd22de | ||
|
64e10ffb21 | ||
|
35d8146bba | ||
|
a5a7ede698 | ||
|
b551049706 | ||
|
99cfc13eab | ||
|
4b0b5afa13 | ||
|
d343428441 | ||
|
16e409ec87 | ||
|
94d059f258 | ||
|
c8b9de889d | ||
|
75340d54f9 | ||
|
b28383e0fa | ||
|
8e866db281 | ||
|
0eb157e090 | ||
|
85636c28bc | ||
|
a70e5c6c65 | ||
|
32e01f740b | ||
|
7b20f8fc7b | ||
|
86ac48d68e | ||
|
c42fc810ea | ||
|
6baebd79fa | ||
|
c6cae09f99 | ||
|
fc9546854f | ||
|
32da58e723 | ||
|
63aaa03013 | ||
|
fbe9b6f15f | ||
|
c946ddb012 | ||
|
e5c81ed41e | ||
|
0937d575fd | ||
|
4382be5e7c | ||
|
d89df18de2 | ||
|
9fcc57e496 | ||
|
8e35a56712 | ||
|
9f795dd947 | ||
|
721f956c1c | ||
|
db4cdc1cb8 | ||
|
e455f93a1e | ||
|
d756d6f1ed | ||
|
6568fb775d | ||
|
d376a4b631 | ||
|
6e5fd36882 | ||
|
c7cc4b5c59 | ||
|
db76091a53 | ||
|
506fe65474 | ||
|
69c326fd41 | ||
|
466b275e87 | ||
|
319c675f3e | ||
|
5a240f36b9 | ||
|
e2bf85e749 | ||
|
fe73010a5e | ||
|
150c04acb6 | ||
|
433176ab54 | ||
|
b56021ffa9 | ||
|
ac2953c070 | ||
|
d6e11b59e7 | ||
|
f49278cfaa | ||
|
9b73eda957 | ||
|
ed99a3a104 | ||
|
e32ad0b048 | ||
|
3abc0c0fc4 | ||
|
b06f13f0c5 | ||
|
a721cc31f3 | ||
|
1e52785d35 | ||
|
9ba3b6ed13 | ||
|
72e1a40bab | ||
|
33a89410d4 | ||
|
b2c28cdddb | ||
|
906e774372 | ||
|
d929becefc | ||
|
103a2f0d9b | ||
|
d33b2e158e | ||
|
d295b3a394 | ||
|
81a217b1f3 | ||
|
bb17f74757 | ||
|
75928d20f8 | ||
|
2cc45eea1a | ||
|
7dbc6e3da4 | ||
|
f34b852aa8 | ||
|
4b04f901fe | ||
|
26111950b3 | ||
|
f21d3502e1 | ||
|
5687af8bc7 | ||
|
0f5f51f9ba | ||
|
32c0e1fb45 | ||
|
34440f1b0c | ||
|
f1d6cc7a64 | ||
|
628ba5d31f | ||
|
e24150ca3f | ||
|
d580445aef | ||
|
48dc2b0d90 | ||
|
82664e3c82 | ||
|
1893405cbf | ||
|
00b7e3b864 | ||
|
7826e506f8 | ||
|
6dd8b28b0d | ||
|
b720af8a06 | ||
|
b1fbcc8a6e | ||
|
9bf74d687f | ||
|
783d4877e1 | ||
|
8b187e6997 | ||
|
c46c53320b | ||
|
7f884fa582 | ||
|
8676bbf97f | ||
|
77069b368c | ||
|
70e49bd32b | ||
|
5042f969e5 | ||
|
876f5d4113 | ||
|
39d9d64e1e | ||
|
8e866babfc | ||
|
f8c700027e | ||
|
7639e8b406 | ||
|
149dec6953 | ||
|
b420c42aff | ||
|
3da7adb763 | ||
|
165e5da6b9 | ||
|
c5a9fdff93 | ||
|
8aac5acc0a | ||
|
7162e38d50 | ||
|
63ac60a3a0 | ||
|
9683bfdb3f | ||
|
e155f56484 | ||
|
e828d7840a | ||
|
52f7a5a06f | ||
|
baa1476d8d | ||
|
6be56972b6 | ||
|
08445eba91 | ||
|
2298422e85 | ||
|
c5731b9079 | ||
|
458e818ab4 | ||
|
993b33b5b4 | ||
|
ba95955fe6 | ||
|
57cc0d8435 | ||
|
60a9ac041f | ||
|
33997106da | ||
|
1b2c69aee8 | ||
|
87e87a349a | ||
|
e49235e119 | ||
|
1712ec9e73 | ||
|
3ca8c43a67 | ||
|
01f1b1efe8 | ||
|
c7905a6029 | ||
|
d27aaffead | ||
|
871abd27aa | ||
|
3c2ee04b9c | ||
|
949f207275 | ||
|
58dbbd1cd4 | ||
|
2042eace2a | ||
|
a113b0df12 | ||
|
ad3586f58a | ||
|
7929179a74 | ||
|
a422fea06d | ||
|
4e491c4594 | ||
|
1a142a82b4 | ||
|
4d9aaece09 | ||
|
0e148e35dd | ||
|
da3aa4e2fd | ||
|
b65a02681a | ||
|
89c5683f8d | ||
|
d20405b975 | ||
|
52f6239d28 | ||
|
6428125827 | ||
|
c094cd3ee5 | ||
|
231ad86f04 | ||
|
12f2b7281b | ||
|
40abebff8e | ||
|
22cc6ffb5a | ||
|
8f99a78cf1 | ||
|
40a423905a | ||
|
c5602f9766 | ||
|
3c59a4203c | ||
|
f0fe88a732 | ||
|
5e77ca37e8 | ||
|
2ac584dd72 | ||
|
a967b88882 | ||
|
ec6e9c29ac | ||
|
e3d8b56c8f | ||
|
e142ea38e3 | ||
|
4ab2af3870 | ||
|
fed4dafb71 | ||
|
f177f7ce6f | ||
|
7049932542 | ||
|
47ab4fa988 | ||
|
d440cae3ec | ||
|
bc714dd7a2 | ||
|
c4ad9ad25e | ||
|
52ef1bc0d6 | ||
|
1004018941 | ||
|
6122d43e79 | ||
|
d43d241f5b | ||
|
269b6b7e28 | ||
|
9a9ba65d11 | ||
|
37ae4989a2 | ||
|
d83cc3a116 | ||
|
105e55456c | ||
|
c012def1e4 | ||
|
3687969aa9 | ||
|
70f24b85a7 | ||
|
ac734db421 | ||
|
39eebde3e5 | ||
|
5cd77662b5 | ||
|
09ab1905d0 | ||
|
4cc2a489d0 | ||
|
5e3abcad07 | ||
|
362af8a0a6 | ||
|
d5084cd391 | ||
|
6d40fd6482 | ||
|
79198e8048 | ||
|
c6a9b01c4f | ||
|
e79e1a23eb | ||
|
7fc6dae036 | ||
|
4e34b362f8 | ||
|
b6b9d3a629 | ||
|
e19bebc1f6 | ||
|
3ffa7edbd5 | ||
|
41ca247e32 | ||
|
906de11975 | ||
|
d5b397f66a | ||
|
52764624c9 | ||
|
5c510a20c1 | ||
|
c9ac95e341 | ||
|
8e960fc59c | ||
|
416845dcd0 | ||
|
e39178b101 | ||
|
7c847d84b0 | ||
|
accc1b6d10 | ||
|
78a67ac77e | ||
|
017e830bf2 | ||
|
1224403aa1 | ||
|
d084cdc72b | ||
|
1a07baf5f2 | ||
|
bad2292950 | ||
|
e773b48135 | ||
|
4bcea01e9d | ||
|
76aad7c74f | ||
|
36ccc6a31e | ||
|
5652038f01 | ||
|
4724d50e1d | ||
|
b6a5004a9c | ||
|
bb2e3b52b8 | ||
|
12affef049 | ||
|
e29db4d052 | ||
|
a934be8ac5 | ||
|
21791ffbfb | ||
|
600de05840 | ||
|
ea7cc9d82f | ||
|
e536aa933e | ||
|
eb841434cd | ||
|
043c04d3c4 | ||
|
b3f340e418 | ||
|
a7b0449967 | ||
|
41b40f924f | ||
|
14742a82bd | ||
|
b0359644dc | ||
|
0cf069ba1b | ||
|
85921864aa | ||
|
b29f66c40d | ||
|
c3347c6be5 | ||
|
a65b0828ee | ||
|
ccde13c9e8 | ||
|
985666a390 | ||
|
3668464f3d | ||
|
8e15c9c501 | ||
|
3c9c960612 | ||
|
6378a95308 | ||
|
37da5659c5 | ||
|
6010b334c6 | ||
|
46dc044c03 | ||
|
31f964f468 | ||
|
316f1b3601 | ||
|
1a85b4c3b5 | ||
|
346e53705e | ||
|
ff71303349 | ||
|
bf114f5844 | ||
|
f215d07366 | ||
|
9679ae3662 | ||
|
21bdcbb71f | ||
|
20f272168a | ||
|
236a2c5794 | ||
|
03216c9c18 | ||
|
8f31ffa9df | ||
|
375b392478 | ||
|
46f8e29de4 | ||
|
3e238b82f6 | ||
|
5fce1389e5 | ||
|
0cc4e98560 | ||
|
1e0b0f7c5c | ||
|
9051fc5465 | ||
|
16d181a755 | ||
|
42a3ef28e8 | ||
|
b9d5f3878d | ||
|
10ab72f8ae | ||
|
9d39054e18 | ||
|
c662801ad8 | ||
|
06b403aa92 | ||
|
2dbc88d3af | ||
|
66edfe5dff | ||
|
c816188f97 | ||
|
46bf3c1e9a | ||
|
066701d671 | ||
|
e96cdc3b95 | ||
|
8bd5a88f07 | ||
|
e5d9579614 | ||
|
352309b056 | ||
|
2af54dbacd | ||
|
a272d3df16 | ||
|
6680f65e4b | ||
|
1f9519d8b9 | ||
|
3c33b28507 | ||
|
08386daa3a | ||
|
0e03dce130 | ||
|
6a0ab0095a | ||
|
b213949aeb | ||
|
3d7817d662 | ||
|
abd69f2deb | ||
|
113276a62b | ||
|
1e1fa7cde5 | ||
|
d6d8b61131 | ||
|
839e62cff8 | ||
|
ca9843fa83 | ||
|
546dcf6a55 | ||
|
d7b6519422 | ||
|
799bb1639c | ||
|
bc2dc0796b | ||
|
2dd2994b2f | ||
|
48541b8507 | ||
|
eab1c9eb46 | ||
|
c6775cc41e | ||
|
45d6b1af3b | ||
|
b295850cb3 | ||
|
08c91a116c | ||
|
3d398b35c3 | ||
|
6099f2c146 | ||
|
50bb924ee3 | ||
|
e8e1c1d6c9 | ||
|
542b3d2317 | ||
|
2323804f7e | ||
|
49875d6ce7 | ||
|
8b8ff96c32 | ||
|
3d35469414 | ||
|
3480b61eae | ||
|
0167ba55dd | ||
|
06dcead2d5 | ||
|
cc7df1e92b | ||
|
899fdbb347 | ||
|
a6297b282c | ||
|
33ba136fa3 | ||
|
f36df73ac1 | ||
|
d14e0fe292 | ||
|
621ab6078f | ||
|
020492f7e6 | ||
|
9a924b445b | ||
|
c14ce4f7ca | ||
|
9c7ca33929 | ||
|
02a9d191ed | ||
|
71e71aa31e | ||
|
a091811be9 | ||
|
2dd8ee97a9 | ||
|
ab8f97b0bb | ||
|
4514a362fa | ||
|
3a93798e8b | ||
|
44fa7a9af3 | ||
|
00eb7480f7 | ||
|
44daae4a8f | ||
|
dd2c6e07b8 | ||
|
7b2e0ece55 | ||
|
c4d9d7561b | ||
|
4583826a5b | ||
|
c8b11873b1 | ||
|
b48cb99805 | ||
|
f93d650708 | ||
|
ed4997c77c | ||
|
16488f3d82 | ||
|
373b22824d | ||
|
17c099e589 | ||
|
7d6aa09a56 | ||
|
b99ada8918 | ||
|
3339eee2dc | ||
|
e9f8370b13 | ||
|
892b186ba5 | ||
|
6db64cf050 | ||
|
5f139e5ec2 | ||
|
8b50ef87fd | ||
|
405e5f7460 | ||
|
8d4f8ba1b2 | ||
|
d3f89bc4bc | ||
|
5fe9b3e1b3 | ||
|
dc7d5a862f | ||
|
4789c71a37 | ||
|
be99b759d3 | ||
|
5f7ae6b277 | ||
|
ea5aaa03a2 | ||
|
7334ab4542 | ||
|
719248f1c1 | ||
|
ef3e398b2b | ||
|
52bab63e18 | ||
|
0851bbbb28 | ||
|
05ebf5ed26 | ||
|
adea895026 | ||
|
a6bd28a78b | ||
|
b5294f1cb2 | ||
|
5114c0189d | ||
|
f2727d74d5 | ||
|
735bee47eb | ||
|
a05ac53040 | ||
|
acb1231e40 | ||
|
3ae05333b0 | ||
|
4291fd5c65 | ||
|
b0898900ce | ||
|
3239d3be2a | ||
|
19033d7315 | ||
|
520081a92c | ||
|
47e0dc22d2 | ||
|
33a984992b | ||
|
b1e67e215c | ||
|
49317adcd3 | ||
|
738304fe27 | ||
|
a191552031 | ||
|
cec7229b6a | ||
|
e735562098 | ||
|
1b030dc03b | ||
|
c0ec03e08a | ||
|
6b660ef63a | ||
|
5ed64444e3 | ||
|
9ab378b5dc | ||
|
a153a78d7a | ||
|
3ff738602e | ||
|
282b70291f | ||
|
6330f36495 | ||
|
e7df748b6d | ||
|
67124f8513 | ||
|
16f940c2d3 | ||
|
da5921b4a9 | ||
|
cde239e809 | ||
|
97a98e037d | ||
|
3ffff8d2d8 | ||
|
95796a9cc0 | ||
|
7be9485c36 | ||
|
448bfaf748 | ||
|
0655ecf23d | ||
|
671fc952bc | ||
|
3c057aa590 | ||
|
8e8c350391 | ||
|
1ee49b4d97 | ||
|
14ddda0a8b | ||
|
36093dd3bc | ||
|
ad6cae433a | ||
|
e4f6fb2afe | ||
|
d21f1e8f17 | ||
|
f6ce5d2054 | ||
|
b60225051d | ||
|
f2166ec6ec | ||
|
491d32cbf3 | ||
|
478712be38 | ||
|
d5d2fc4016 | ||
|
ed7cd1c45b | ||
|
f340893a21 | ||
|
9ad147278f | ||
|
4e36a56014 | ||
|
312c8ef01f | ||
|
f3f8194932 | ||
|
6ce26c43c9 | ||
|
486510395b | ||
|
2ae4ffcdfa | ||
|
f5a7f86a64 | ||
|
0fa99518ce | ||
|
a565662cf3 | ||
|
af44f0b3ff | ||
|
5ae1957c0e | ||
|
36be8d5929 | ||
|
a05c8ee1a8 | ||
|
eb4b1eb28f | ||
|
9287cf6b0b | ||
|
76aa138230 | ||
|
59a8f58be7 | ||
|
d3956be616 | ||
|
53fb0baa06 | ||
|
c2232d457f | ||
|
77f51f0ee3 | ||
|
743c4ccb17 | ||
|
5b37438f08 | ||
|
3f7bff90ba | ||
|
0c19d3e51a | ||
|
e73c3d2378 | ||
|
31ca212f86 | ||
|
68528983d7 | ||
|
f89869b5b2 | ||
|
d4744dbed5 | ||
|
abbccc91ed | ||
|
080c5f3de4 | ||
|
079f6be88c | ||
|
c522ba78ed | ||
|
392bff6666 | ||
|
6dc621ec18 | ||
|
3358b075fb | ||
|
a02713dc15 | ||
|
ee1f5a9e89 | ||
|
84a15f0b6e | ||
|
a3ea798246 | ||
|
63ad53817d | ||
|
6d0eb0749e | ||
|
36c1ea4599 | ||
|
e250da8aaa | ||
|
7fceb4878f | ||
|
29711c178a | ||
|
8072d5a3e3 | ||
|
a5234105e5 | ||
|
4236fa97cb | ||
|
f5e3d9f010 | ||
|
6313e9ef2a | ||
|
ce89fb2751 | ||
|
3338699257 | ||
|
747b15436a | ||
|
206bf5b8d6 | ||
|
9a2979df5f | ||
|
b8e79a2160 | ||
|
715b0d8bf5 | ||
|
0eb4aaac1e | ||
|
bc86c29185 | ||
|
d2175d6382 | ||
|
b3aefd2d41 | ||
|
f7eb55aa01 | ||
|
5e63d67960 | ||
|
6fd78ea3f6 | ||
|
b12503a46a | ||
|
ea2faf45e4 | ||
|
1822c981da | ||
|
5519f9c716 | ||
|
dd0925a946 | ||
|
d7671fa8e3 | ||
|
e79b07bf5e | ||
|
619cf6e6d6 | ||
|
d6ed5e6746 | ||
|
59d4cfb75c | ||
|
194e7bbcd1 | ||
|
5d92a7c591 | ||
|
7fbe090525 | ||
|
eaf64df4c6 | ||
|
a1558fb6bf | ||
|
18e999c92a | ||
|
d5f737f402 | ||
|
7fe4fdf33d | ||
|
0b63ad5e8b | ||
|
4081ace4b9 | ||
|
dde770aa21 | ||
|
6eb2cc9cac | ||
|
f28d9db3d0 | ||
|
deb80af449 | ||
|
dc0acbbb90 | ||
|
92ba42a602 | ||
|
d5e61d2316 | ||
|
ed3246c423 | ||
|
2339d78bf4 | ||
|
3a3cd0acba | ||
|
ce4ddc0911 | ||
|
aed4ea144f | ||
|
eea061c1d9 | ||
|
10288e309e | ||
|
ebdb00d4fc | ||
|
6fc7ebf37a | ||
|
8f6a0cd9e2 | ||
|
994c21a5e1 | ||
|
554374667e | ||
|
043f3381b0 | ||
|
d04a83de7b | ||
|
b622a4d890 | ||
|
b551d28a2f | ||
|
e6caa04209 | ||
|
adadedeab1 | ||
|
a6cf5235aa | ||
|
1477338106 | ||
|
418fce5683 | ||
|
7a15ba3796 | ||
|
0f002a5b06 | ||
|
5344a32d34 | ||
|
c9645693a4 | ||
|
f607263bdc | ||
|
f309d2fbd2 | ||
|
47283f226a | ||
|
aefc8fd824 | ||
|
405a80f3ee | ||
|
ad98d35a48 | ||
|
b69ab219d7 | ||
|
dc8225f682 | ||
|
9d9b266f54 | ||
|
b9d01c1a61 | ||
|
122cae7902 | ||
|
44a332c1c4 | ||
|
5143f3ad43 | ||
|
a6dc25a216 | ||
|
f04d2a9d6a | ||
|
eb3b3b9f8d | ||
|
0994f3783f | ||
|
974dec38e3 | ||
|
a0c363647f | ||
|
d989224a8a | ||
|
82f439e715 | ||
|
b034879eae | ||
|
9ed9a6fc3d | ||
|
e84b702309 | ||
|
6226eba52a | ||
|
9e0ea06435 | ||
|
863d9cacd0 | ||
|
4baa346aae | ||
|
7956485e37 | ||
|
372e42f350 | ||
|
9124271eaf | ||
|
156dec2737 | ||
|
27f046ec03 | ||
|
74ae3dee91 | ||
|
87978e7755 | ||
|
d935ea1cda | ||
|
9602195910 | ||
|
8ca852c728 | ||
|
df067f7d1f | ||
|
a8a81e99d2 | ||
|
65e7c531de | ||
|
7c41bd72da | ||
|
355a82db54 | ||
|
b3e17bde82 | ||
|
4b38e7b1d7 | ||
|
43afae34be | ||
|
27fa55d274 | ||
|
19c3e82abf | ||
|
f1c0fd7343 | ||
|
12dfbdc400 | ||
|
c86a179412 | ||
|
0748783404 | ||
|
b3247d9364 | ||
|
ba8a694314 | ||
|
b146958ecb | ||
|
ff70a80741 | ||
|
ecdb17148d | ||
|
11bd523f7e | ||
|
01fbedc246 | ||
|
05e4e1f2f2 | ||
|
20223ad77c | ||
|
51edacb5eb | ||
|
5197ef9048 | ||
|
19678527e5 | ||
|
5d319dee94 | ||
|
15c701b196 | ||
|
d8339808a1 | ||
|
3b263f0917 | ||
|
43e1a11ad8 | ||
|
ed09f90e5e | ||
|
cbd96237fd | ||
|
f5c1cb2dff | ||
|
5eb93a6eae | ||
|
25fa577cd0 | ||
|
deddc81426 | ||
|
133b06e945 | ||
|
699f1e65cc | ||
|
9ef87dab27 | ||
|
5125e9c941 | ||
|
6c62ed5608 | ||
|
bf78288e9e | ||
|
f8498b260b | ||
|
79f08588c6 | ||
|
2d92a4dbb3 | ||
|
f508ddf66d | ||
|
02218c916c | ||
|
89217e0d58 | ||
|
cb4973987b | ||
|
905902d811 | ||
|
c83e382eac | ||
|
f6975e2acd | ||
|
d8b813c0bf | ||
|
5236ed135e | ||
|
47d955a2ab | ||
|
bd797c75a4 | ||
|
05c11964fc | ||
|
8ecd23eab4 | ||
|
1ef0206f24 | ||
|
6694aa369e | ||
|
0331d28ee4 | ||
|
51c7eb7ac1 | ||
|
5516bcb839 | ||
|
056b966501 | ||
|
28eca6a2be | ||
|
b7fd55242e | ||
|
8161955cc7 | ||
|
3b020fd95a | ||
|
697d106bd4 | ||
|
50e1c6074f | ||
|
a610987ef7 | ||
|
a7fd9f4b1b | ||
|
5f5b77cdda | ||
|
83808a63be | ||
|
6d5ff671e7 | ||
|
ffdf349a96 | ||
|
f3d53b79a2 | ||
|
6acec2c074 | ||
|
1bac3750df | ||
|
b040efff79 | ||
|
a81009607a | ||
|
c0e09662b4 | ||
|
ccf4563573 | ||
|
fb1ab09e3e | ||
|
f464b1ba39 | ||
|
2ea6348b85 | ||
|
6e536ab06d | ||
|
7537e309d8 | ||
|
84e2a2e5d1 | ||
|
f6fc826dc6 | ||
|
375d55aa5d | ||
|
6ef2bb3283 | ||
|
fc0794a83d | ||
|
589df6792f | ||
|
945bba777b | ||
|
64763eafbe | ||
|
3da4651569 | ||
|
311ed2feca | ||
|
33c11d64f0 | ||
|
a4b674902f | ||
|
3fa09dbe2e | ||
|
bf2b2df9c9 | ||
|
3617c98cf5 | ||
|
774d36c989 | ||
|
6abd61865f | ||
|
3c59b98dc8 | ||
|
21338ed789 | ||
|
dc8ab0b5ce | ||
|
ddb39ef2f6 | ||
|
355e62efe9 | ||
|
fddd11a205 | ||
|
8b37e62cf3 | ||
|
4296d47dcb | ||
|
42f1ef019a | ||
|
fe8e526292 | ||
|
0e9d612173 | ||
|
06c601bc7c | ||
|
229fbc1a18 | ||
|
e05f5010da | ||
|
073b9968c0 | ||
|
d3aa17ae77 | ||
|
4187eed12b | ||
|
12ecb325c9 | ||
|
90e48e9b61 | ||
|
35f31270f3 | ||
|
2a71852070 | ||
|
c8dd32802d | ||
|
71f04dc0e8 | ||
|
49f8bbfee4 | ||
|
f4217eba73 | ||
|
14900f6ed8 | ||
|
c18afcb01a | ||
|
63043d4a60 | ||
|
76034880ae | ||
|
768189859a | ||
|
6e5a2a5c51 | ||
|
9935c4984c | ||
|
a0a5e30c39 | ||
|
4126bbeead | ||
|
a5b79295d7 | ||
|
e917784932 | ||
|
f46b90d28d | ||
|
64cbfbed47 | ||
|
1ced35ec76 | ||
|
16d346773b | ||
|
b02120cf66 | ||
|
702b5caf2d | ||
|
d395f64f58 | ||
|
c9627040cc | ||
|
b1f69434f9 | ||
|
bcca56e3b1 | ||
|
2f98610929 | ||
|
89539ff247 | ||
|
aa74d19940 | ||
|
cf7d9ef962 | ||
|
425a0f90e9 | ||
|
a27814db8e | ||
|
9702f5256c | ||
|
23fd11e806 | ||
|
304ee1489c | ||
|
07d4179274 | ||
|
1439dde265 | ||
|
bef0bf1654 | ||
|
8435cad602 | ||
|
52c11fe23d | ||
|
6fc9641f6a | ||
|
8b6341458b | ||
|
8b787b4f70 | ||
|
ef5154d5b3 | ||
|
7c49919297 | ||
|
395a169104 | ||
|
93f710bdff | ||
|
170badfdd1 | ||
|
978b9adc56 | ||
|
3aea51455b | ||
|
f827ed338b | ||
|
73dab51ad1 | ||
|
9328007d05 | ||
|
8d173cd960 | ||
|
fb0f12a221 | ||
|
9866408b72 | ||
|
aaac56d895 | ||
|
516da7719f | ||
|
d4df0b4405 | ||
|
bfa9c3bef6 | ||
|
2904f24ea8 | ||
|
91a347bf6d | ||
|
e219c8fc03 | ||
|
9eb26b702c | ||
|
c933be926d | ||
|
fc88040b31 | ||
|
5db3c93057 | ||
|
aa442b5795 | ||
|
09711cd6f9 | ||
|
b16cacc758 | ||
|
51451a9636 | ||
|
fbc03da997 | ||
|
1a610dbdd2 | ||
|
a30e3c9066 | ||
|
613b41e357 | ||
|
d405aa98d5 | ||
|
285b1556a9 | ||
|
8321cc661c | ||
|
848ceb6f10 | ||
|
3559079de0 | ||
|
b3ab843954 | ||
|
867cf63dd9 | ||
|
0b44aa6f68 | ||
|
aa09a9dc04 | ||
|
7c4edacb2b | ||
|
782ede5db5 | ||
|
1537733e6b | ||
|
ba0d43672b | ||
|
4384d25c79 | ||
|
b6e3786529 | ||
|
6fff01397d | ||
|
0cd52e5be1 | ||
|
c14dd34dca | ||
|
e04fbd1992 | ||
|
d89fa3ebc2 | ||
|
db57454f3f | ||
|
8f93844427 | ||
|
52f84b063c | ||
|
2e7f2b6c07 | ||
|
35347c2310 | ||
|
b489fc75c9 | ||
|
fc24cb2a77 | ||
|
2540311cdf | ||
|
3880888286 | ||
|
5a806c2149 | ||
|
8a926d511a | ||
|
8885285b10 | ||
|
d1f0181947 | ||
|
b147443c32 | ||
|
b8a18d3ebb | ||
|
694b31909a | ||
|
a98811b6d7 | ||
|
cfc505e1e5 | ||
|
3af3549232 | ||
|
643f0bcbe3 | ||
|
9db9a38565 | ||
|
ca60937c2e | ||
|
2aa3ed9da8 | ||
|
7768433d09 | ||
|
c569774e1a | ||
|
0371f55541 | ||
|
bc35592fd9 | ||
|
f5d834407e | ||
|
557a748ac7 | ||
|
3f10f71ad2 | ||
|
7b6388b19f | ||
|
b98ec4bbc5 | ||
|
94fd481f36 | ||
|
94496df3b0 | ||
|
0e5ea9c354 | ||
|
7eabb5e05a | ||
|
9ad401be87 | ||
|
f874c8e4db | ||
|
025c5c061b | ||
|
573f34d757 | ||
|
eac36dd3b5 | ||
|
70cf8a4ec5 | ||
|
37d0d8984c | ||
|
2e8c0a39db | ||
|
deec2902e4 | ||
|
e3343759b7 | ||
|
fa72f86e17 | ||
|
6527126e50 | ||
|
4aec022065 | ||
|
a26c5b8219 | ||
|
d36b091fd7 | ||
|
3dcf02549e | ||
|
e402011a73 | ||
|
dc1620d1f0 | ||
|
c48e779e8a | ||
|
dd0d44bbb3 | ||
|
060b9981b5 | ||
|
b25713938d | ||
|
5b09561114 | ||
|
fcde4824d5 | ||
|
b0e5828d3f | ||
|
b7d499d1be | ||
|
1ae16fca90 | ||
|
0e2bef3b79 | ||
|
221c9815a5 | ||
|
c5c683f67c | ||
|
149a0177cd | ||
|
252e5a6b13 | ||
|
faa27ed6e3 | ||
|
f3227c259e | ||
|
2cfeebab90 | ||
|
8dd67cca0c | ||
|
eda72c31b2 | ||
|
7809008016 | ||
|
c2c2b0211a | ||
|
dd6f57e107 | ||
|
dfe7a60140 | ||
|
fc30277cfa | ||
|
02e6ff4183 | ||
|
e3b1142364 | ||
|
8832ff3c6a | ||
|
505ff10dc6 | ||
|
9a3a5545e7 | ||
|
43919066ad | ||
|
7ada963ec2 | ||
|
4c523af1ab | ||
|
c5c28eb05b | ||
|
22924532d0 | ||
|
7c227169a4 | ||
|
8e4b0b4377 | ||
|
6d27df3b77 | ||
|
73d14f4655 | ||
|
19b8c53c46 | ||
|
cd7be018fe | ||
|
03a2710a08 | ||
|
09fbabb0b8 | ||
|
de6cb75f4b | ||
|
83c9cb7907 | ||
|
7ffb04a17a | ||
|
c38c186d26 | ||
|
e22a9a69b1 | ||
|
59f9adc706 | ||
|
fed30b1b36 | ||
|
411d68e839 | ||
|
77d42a17c6 | ||
|
e7c55bffe9 | ||
|
da10166625 | ||
|
b6b7262962 | ||
|
3ed83913b2 | ||
|
63460f4bf9 | ||
|
c67b439752 | ||
|
2b44940f81 | ||
|
26136be903 | ||
|
6a52f69b58 | ||
|
60406c7c2d | ||
|
2465438ec3 | ||
|
99a61580e1 | ||
|
dec94b4111 | ||
|
ebb97e94a9 | ||
|
5e1f9fadf4 | ||
|
fe08de846d | ||
|
35e3c51b75 | ||
|
59c9105c25 | ||
|
b458292a69 | ||
|
78aed2cb69 | ||
|
46487b201f | ||
|
939a6a5f4d | ||
|
caf0743811 | ||
|
9ccb667653 | ||
|
b600f62ab6 | ||
|
ace655e164 | ||
|
21ae26cb17 | ||
|
478233f795 | ||
|
e87c554ccd | ||
|
df33ed05dd | ||
|
c9efdd68ed | ||
|
8381945cb5 | ||
|
2046b47739 | ||
|
0c302f088a | ||
|
a41db63907 | ||
|
3573c48e98 | ||
|
e94980bfd0 | ||
|
5422982207 | ||
|
4fe5497d19 | ||
|
1b549ecc66 | ||
|
b5bdba8b16 | ||
|
522c97f5ad | ||
|
7fbb3a5352 | ||
|
b3f34529b5 | ||
|
d388d07e9f | ||
|
c76e27851c | ||
|
8c0dcf3b57 | ||
|
962b3a78c0 | ||
|
aa5b941ed5 | ||
|
af8a8035e8 | ||
|
037a66c57b | ||
|
1a04dcf10f | ||
|
2eae8b578e | ||
|
17189fce9b | ||
|
a0225018e6 | ||
|
361b7aa0da | ||
|
334590932a | ||
|
3f4638204f | ||
|
5e7061b9f6 | ||
|
7a1cd5226f | ||
|
285ac75738 | ||
|
00ff54be4e | ||
|
aab35e3faa | ||
|
bfa5342331 | ||
|
c0d945c0ac | ||
|
22bdc7c20f | ||
|
3ed0081f1f | ||
|
6d0e7650c3 | ||
|
552545fe5f | ||
|
dcfe883f4b | ||
|
f45fa5e187 | ||
|
05e9da390f | ||
|
cc0f8ca813 | ||
|
9c16571347 | ||
|
2765c6ba3b | ||
|
28f3f3c9c9 | ||
|
73d9a95862 | ||
|
9c9a9ac452 | ||
|
29ea396c31 | ||
|
171d215f91 | ||
|
cc6109a751 | ||
|
47bb4a9c0f | ||
|
b149ea91dd | ||
|
6d1c7d5f57 | ||
|
07bd7503c5 | ||
|
1b5af89ddd | ||
|
3d07dec8fd | ||
|
a63bb08eda | ||
|
e0207f8167 | ||
|
3099f51ba7 | ||
|
19e7763f35 | ||
|
73cff42ec9 | ||
|
b349155f2f | ||
|
ab4c120ea5 | ||
|
947133d295 | ||
|
bf96e6e642 | ||
|
cffacad306 | ||
|
cc7b89faf8 | ||
|
c1e4746d50 | ||
|
8331eec7fc | ||
|
0547068ed0 | ||
|
18d8389785 | ||
|
165d25d941 | ||
|
c4fb77b042 | ||
|
973ea984c8 | ||
|
3e9afe2974 | ||
|
73c16574e6 | ||
|
60e00d49a9 | ||
|
2d22c705ba | ||
|
68d525cd8b | ||
|
c3fc1b88fe | ||
|
84b0702399 | ||
|
f3489ffa29 | ||
|
8e6ba2a3e1 | ||
|
48e799e7a6 | ||
|
bc01999f0d | ||
|
b0fcb3065f | ||
|
94d8cd5100 | ||
|
5596c6133b | ||
|
304332e380 | ||
|
fb989d8c94 | ||
|
026220b960 | ||
|
543a253bc1 | ||
|
8f8e44e87a | ||
|
2da11097f9 | ||
|
d124ebeced | ||
|
986d0e9777 | ||
|
f4202361b4 | ||
|
6d981498d8 | ||
|
bd2e9917da | ||
|
a6810e3353 | ||
|
591eba66a3 | ||
|
a5a9ac83e5 | ||
|
15b122a448 | ||
|
44a905d135 | ||
|
8884104e82 | ||
|
277cc5fa21 | ||
|
0cbd7d583c | ||
|
3c3fc92863 | ||
|
e69d650598 | ||
|
9385c81882 | ||
|
1b84f9f1ae | ||
|
d879fbd8a1 | ||
|
1fbdef06aa | ||
|
f5531cc7fa | ||
|
2ccff145ed | ||
|
43b2ee5e71 | ||
|
51463a4b41 | ||
|
4f0116bee7 | ||
|
31793cfa62 | ||
|
6d75540d4e | ||
|
ba5cbe208f | ||
|
2b82203041 | ||
|
35da065445 | ||
|
12a1fe3ad4 | ||
|
91057f2a09 | ||
|
15060f00a5 | ||
|
1a82a03d5d | ||
|
4674105698 | ||
|
ca3e9a385f | ||
|
f05c222221 | ||
|
3dc5fc54df | ||
|
bac84b4c8b | ||
|
a5b9a80216 | ||
|
142d5e60ec | ||
|
61f947a580 | ||
|
c4bbf28862 | ||
|
9befa81e36 | ||
|
414c7ac83d | ||
|
3a612f063e | ||
|
9daea73bba | ||
|
8e8131590c | ||
|
3acfe790b9 | ||
|
877d9120c9 | ||
|
c15b88f250 | ||
|
2889e017cd | ||
|
47ea99090f | ||
|
1c1ba04c41 | ||
|
456216ab37 | ||
|
49d7bf8c39 | ||
|
dade4cc6f3 | ||
|
c747ac181d | ||
|
9837948c3a | ||
|
072fb380d8 | ||
|
85594956cf | ||
|
88eba56607 | ||
|
cc6cf48256 | ||
|
e571cb553b | ||
|
bf9f6e872d | ||
|
8348c1b746 | ||
|
0a9744ac95 | ||
|
95954b7c57 | ||
|
a707f81726 | ||
|
dae6664555 | ||
|
9dd807344c | ||
|
2ecebf8ff2 | ||
|
6d3cb5f99f | ||
|
ec8072d51f | ||
|
7a7bb80e23 | ||
|
99ac5c3045 | ||
|
efab00a9de | ||
|
9ab0801ee1 | ||
|
cfdb853ea6 | ||
|
41e857ea16 | ||
|
5b2da2b08d | ||
|
5e0a608ea6 | ||
|
3729aefb6f | ||
|
8a2122b4a4 | ||
|
cc6f6fdb1d | ||
|
5ec4936a4f | ||
|
be84682bcb | ||
|
b07f3b4e74 | ||
|
fc1f37d3df | ||
|
a3f037773a | ||
|
c71c8980cf | ||
|
6bf7b79f13 | ||
|
5d9adc14e7 | ||
|
575888d81b | ||
|
3539d3e72d | ||
|
bb25111ca9 | ||
|
3c756a65a6 | ||
|
8d574826c9 | ||
|
7c7eebbe83 | ||
|
57ad85814b | ||
|
4b2b419400 | ||
|
b83716f0eb | ||
|
6872a4dd7f | ||
|
4d6b2fec13 | ||
|
57c1a7fd69 | ||
|
bf78b74db4 | ||
|
f80fba4d24 | ||
|
d075d2b453 | ||
|
5650624822 | ||
|
bf07b0be58 | ||
|
eeea53759b | ||
|
a39f1e0f9b | ||
|
1614f80366 | ||
|
e293c58bb0 | ||
|
3015ebfba1 | ||
|
d7da4f5f2b | ||
|
c1af6ff2e6 | ||
|
aa4000cb0d | ||
|
33128d75f2 | ||
|
bf87f37039 | ||
|
62e715ff5b | ||
|
b3903175c8 | ||
|
de47bd2323 | ||
|
19b55706ee | ||
|
6c68198d19 | ||
|
f3c760c25f | ||
|
24fe946c06 | ||
|
de6680bdf2 | ||
|
0a28da0cd0 | ||
|
a838ff47b5 | ||
|
8bd078caeb | ||
|
bce304a800 | ||
|
206d3e7b91 | ||
|
4be32cf746 | ||
|
4ec6075f81 | ||
|
aa00e0a6b0 | ||
|
bb7fae72c9 | ||
|
7bd19640a2 | ||
|
b7271a2a6d | ||
|
ecde418abb | ||
|
51036ced9d | ||
|
b6c1ec3a24 | ||
|
46004001cb | ||
|
f10c8ce25e | ||
|
acc370d345 | ||
|
457ab84065 | ||
|
3bcb5452aa | ||
|
1f0e53a44d | ||
|
2d5cf1d3cf | ||
|
a81254ed2a | ||
|
fdef133d3d | ||
|
fd01f0a0ee | ||
|
5b095ed6f3 | ||
|
e7a3f34959 | ||
|
06d0c8f056 | ||
|
4064b8ff14 | ||
|
83ecc3d3ac | ||
|
6615eceb18 | ||
|
53f5a37f01 | ||
|
bbef2f41ec | ||
|
b6e729abeb | ||
|
5fe98689d4 | ||
|
8832a96e82 | ||
|
09631ed119 | ||
|
9257c7ce20 | ||
|
b30f9a1677 | ||
|
e6c3f96931 | ||
|
85ff81f238 | ||
|
5e0b7f013a | ||
|
aa205c6a9f | ||
|
44bfad24a1 | ||
|
13e01841ca | ||
|
a999975bc9 | ||
|
edf30e1fa1 | ||
|
f41bf2082a | ||
|
894d3f1722 | ||
|
83d96e2bbb | ||
|
e26ec31463 | ||
|
e3bc41dbe6 | ||
|
7a180e22ff | ||
|
3609700b5e | ||
|
389f64df57 | ||
|
e85064e4cf | ||
|
dd95f8b5cb | ||
|
975487f630 | ||
|
4ba7546c65 | ||
|
c97aa55163 | ||
|
2e1e30705a | ||
|
c92ac809a5 | ||
|
ec842e8d51 | ||
|
6d6e3900c3 | ||
|
0516a0d7a6 | ||
|
adbbe158db | ||
|
6d2be4a305 | ||
|
78c9a5d45b | ||
|
5fa1645165 | ||
|
bbf6ec0458 | ||
|
e58b20f68d | ||
|
0ce697daba | ||
|
a2dfadc6c8 | ||
|
6df8b3fe72 | ||
|
b623adc6df | ||
|
2f77da7813 | ||
|
9897c99190 | ||
|
aebc30447f | ||
|
d2bae54ed0 | ||
|
501c369f39 | ||
|
db3468a815 | ||
|
3aabed44ce | ||
|
3af7a6b082 | ||
|
2e985198c6 | ||
|
74a2ef8138 | ||
|
88ea21b276 | ||
|
62397dbd0b | ||
|
317b086f66 | ||
|
12340c1d10 | ||
|
e747199711 | ||
|
df7ce883c7 | ||
|
eb3e2dca24 | ||
|
2d9b936b0a | ||
|
66c7aca2f6 | ||
|
0c3344d0c4 | ||
|
0ac211140a | ||
|
5d490664ca | ||
|
d170dd305d | ||
|
b50bd58795 | ||
|
1da279a290 | ||
|
100b9a470b | ||
|
43c2b36eaa | ||
|
203d0bd8ae | ||
|
14092fbadb | ||
|
35ad76771d | ||
|
96151c44aa | ||
|
02dcb01120 | ||
|
51d25e5859 | ||
|
b8535689d3 | ||
|
8ff890635f | ||
|
29b6ba0758 | ||
|
ca5793dbea | ||
|
0fdaa8e745 | ||
|
5a71044d5a | ||
|
8d091051af | ||
|
34da1ef9d6 | ||
|
e31e35c46b | ||
|
6258dda0f8 | ||
|
e6565b2134 | ||
|
2f9ecf9044 | ||
|
a74d35582e | ||
|
8886faa019 | ||
|
4bd1b157ae | ||
|
1ecb70e082 | ||
|
9eed16beb4 | ||
|
c432a064a4 | ||
|
2d1a92b7cc | ||
|
cb31127b32 | ||
|
2beec1f3ea | ||
|
8d531b6436 | ||
|
30993a8bfc | ||
|
2258fb2713 | ||
|
a46191b8bf | ||
|
9c4c3e965b | ||
|
31acbe20d3 | ||
|
fd52c01e78 | ||
|
6ca5543648 | ||
|
83afcdcf49 | ||
|
59ca0069a6 | ||
|
6d6184500e | ||
|
1c24ec16e2 | ||
|
5efc0033a1 | ||
|
c9237cccab | ||
|
02cd68db37 | ||
|
e4df5643dc | ||
|
89b62d579f | ||
|
436a16aba6 | ||
|
32d22f464d | ||
|
71b2089384 | ||
|
57aa88a13a | ||
|
5ef35a10cf | ||
|
f84aceec3d | ||
|
f18009e5d5 | ||
|
83c7750656 | ||
|
c477e23fe9 | ||
|
31fb7087f1 | ||
|
6bc477e88f | ||
|
52d6701f8f | ||
|
f97634011e | ||
|
a4ffc9d5ed | ||
|
a86f3e5b81 | ||
|
d9e8bbcb10 | ||
|
8b0886ac32 | ||
|
aa182dad76 | ||
|
41a1952928 | ||
|
9885d4ebf0 | ||
|
222e080ce7 | ||
|
046409d7c9 | ||
|
5df449bcf3 | ||
|
6017989c4c | ||
|
d349974089 | ||
|
ccdea6a429 | ||
|
fdf11326ef | ||
|
565a80305c | ||
|
57a8122a6b | ||
|
bc5517da78 | ||
|
ad18f070ae | ||
|
e305402212 | ||
|
d62b99f543 | ||
|
4d8133eb34 | ||
|
5cba5b9989 | ||
|
31f23123ef | ||
|
b9dac6ca5d | ||
|
c3f85c8372 | ||
|
7f5d6d9791 | ||
|
96d4cdb7cb | ||
|
9f1f3ab5e3 | ||
|
6e90f17a15 | ||
|
5b654480f4 | ||
|
803447e2a1 | ||
|
99c04a8740 | ||
|
e4370d8d3f | ||
|
883cc964ae | ||
|
1d4cee11b7 | ||
|
9f91a7d797 | ||
|
4a6b4fb632 | ||
|
7c730d11c3 | ||
|
21de52ebea | ||
|
cab5ddf6ae | ||
|
b3657aef2b | ||
|
b0f8841217 | ||
|
febe335831 | ||
|
cbe68ba84c | ||
|
9110b00e2e | ||
|
4b012de7db | ||
|
49370e2175 | ||
|
02a89d8ee8 | ||
|
a70efae79b | ||
|
78a681f027 | ||
|
3a85fd767b | ||
|
2ffbe08eb1 | ||
|
f9d5e81f0e | ||
|
00d1267bdd | ||
|
001ee34d01 | ||
|
db157567fd | ||
|
9e0fab16ff | ||
|
a9af4f4ca1 | ||
|
96d682ca49 | ||
|
7056bea9e0 | ||
|
63e13d8e54 | ||
|
81587b3578 | ||
|
663c7cf1d7 | ||
|
8705d018fd | ||
|
8c33a32256 | ||
|
37a720be06 | ||
|
aacbdcfc44 | ||
|
794f3d08f4 | ||
|
3147f0536a | ||
|
42de486e94 | ||
|
54c9d7cdb2 | ||
|
c8e394f3f0 | ||
|
4b65e6e443 | ||
|
5a6c65c589 | ||
|
75246fb25b | ||
|
0cc1084819 | ||
|
21eedaf76e | ||
|
2656c503a4 | ||
|
2b3457e8d6 | ||
|
f5d606c4fc | ||
|
0e38c1728e | ||
|
6faf61552e | ||
|
fcf5ec2f77 | ||
|
99819087f1 | ||
|
3956e96e74 | ||
|
a0b89a68d9 | ||
|
62014c1094 | ||
|
58dcabffe6 | ||
|
c264f74771 | ||
|
f53ea60ed4 | ||
|
05027b7c74 | ||
|
3a62e3d188 | ||
|
963d9ee584 | ||
|
12e4fd138b | ||
|
3c5ce9f86c | ||
|
2461d22212 | ||
|
611c6e9c74 | ||
|
38efdb5148 | ||
|
5fdeeabb44 | ||
|
b0d19752c6 | ||
|
a95a577622 | ||
|
ca44a80a42 | ||
|
bf841e63bd | ||
|
d357227e57 | ||
|
993d703ba0 | ||
|
b449b82191 | ||
|
bfac6fd85c | ||
|
2575aae945 | ||
|
b0191cdf2c | ||
|
fc121f0c87 | ||
|
fa10b48c71 | ||
|
d4db1c6af3 | ||
|
f651e2cfca | ||
|
9d9f99c2d1 | ||
|
9c8dda1f9d | ||
|
89521a5134 | ||
|
d11355f985 | ||
|
7ccda6e6e9 | ||
|
1de423c78b | ||
|
3943857087 | ||
|
27bb5c5976 | ||
|
3f614cb274 | ||
|
1e407d972f | ||
|
52b3c5fce4 | ||
|
5d53273ef4 | ||
|
bf9faa9c28 | ||
|
0356b7f2c3 | ||
|
19c8558152 | ||
|
a137db86a4 | ||
|
2a28f04e09 | ||
|
8dfa69fde4 | ||
|
541f014d50 | ||
|
233d375983 | ||
|
b09d245dea | ||
|
44deddbbfe | ||
|
aa8a2b1769 | ||
|
4cdac180d8 | ||
|
d079bf86b1 | ||
|
62b4452057 | ||
|
c3ec92a13f | ||
|
c3230a68bb | ||
|
d9f163f466 | ||
|
d0da5af810 | ||
|
a2b2ec467a | ||
|
83b3009f0f | ||
|
4ea70f8409 | ||
|
0d2ef02c9e | ||
|
2d7796284b | ||
|
19aa878a08 | ||
|
9f52012443 | ||
|
e57e9b6dbb | ||
|
74e8373e34 | ||
|
ec2722d465 | ||
|
9e2ea5fdd4 | ||
|
48b4a6a906 | ||
|
92e93682c6 | ||
|
99226b745f | ||
|
4840c7cd78 | ||
|
71ab4a2058 | ||
|
a2c09b41bc | ||
|
0ef792ac1e | ||
|
01af28b781 | ||
|
3a7743ffc5 | ||
|
9cc8e52512 | ||
|
698a6b5acf | ||
|
7a51c7fd30 | ||
|
7c3e9f81cb | ||
|
6e3e7dafca | ||
|
fca83bf79a | ||
|
b8ffb8d463 | ||
|
1dae5bbc95 | ||
|
1a1932b67a | ||
|
8be375e75b | ||
|
e63e4232db | ||
|
cef04665eb | ||
|
76569b9527 | ||
|
1d46eb8ea3 | ||
|
6b79ac995e | ||
|
ee928b034e | ||
|
fc5790eb4a | ||
|
5213ffee0e | ||
|
5ebf0215c5 | ||
|
9957da6b93 | ||
|
342cae2dc6 | ||
|
d2b26a5f1f | ||
|
9d08c0102e | ||
|
a3357547ea | ||
|
7a9decad70 | ||
|
c4d0d068e4 | ||
|
c03a027240 | ||
|
a8d7141c4c | ||
|
3eb704e016 | ||
|
0f06d3b90d | ||
|
589c94aa93 | ||
|
798b742617 | ||
|
11a72ab765 | ||
|
0319149b4d | ||
|
2f823d59b0 | ||
|
981352992b | ||
|
384ea38bd9 | ||
|
268c0963b4 | ||
|
8b481dd41f | ||
|
6f88ba0e6f | ||
|
9e65ecd03e | ||
|
9cb43ef64d | ||
|
bb18ece8a4 | ||
|
2ab6474761 | ||
|
fe20328ab7 | ||
|
d84ac09abd | ||
|
69e6cae0a7 | ||
|
302707f3ce | ||
|
2e2043971b | ||
|
e54e218e3b | ||
|
bd17fd571f | ||
|
3f6e88b4be | ||
|
28af18ba27 | ||
|
8f1babf346 | ||
|
fa25695b74 | ||
|
943b1f82b6 | ||
|
b7a09516e7 | ||
|
c4031ad65c | ||
|
2eaced4d30 | ||
|
bdea2fe94c | ||
|
c96ff30876 | ||
|
4c100cffdb | ||
|
d6abad908a | ||
|
f1129189ea | ||
|
7e84477408 | ||
|
6b86ab5cd0 | ||
|
5074b96cd5 | ||
|
3094ac90b7 | ||
|
35b6067496 | ||
|
5aa20c090b | ||
|
9c371ed8a2 | ||
|
f03ab11623 | ||
|
887e61a99d | ||
|
0aca8cab0b | ||
|
d08d1f8c45 | ||
|
403ab6e443 | ||
|
b8687bc969 | ||
|
9166c9dd35 | ||
|
cc52f79e42 | ||
|
59140b458c | ||
|
82981c9663 | ||
|
157b8dd848 | ||
|
1fb669ae1a | ||
|
7d07aa395a | ||
|
c2c7070712 | ||
|
daf06bb026 | ||
|
5b11b1ba47 | ||
|
ee287447c5 | ||
|
257f978ceb | ||
|
8e803bdb02 | ||
|
a265242e6e | ||
|
3aa9b31bda | ||
|
c692c4770a | ||
|
6ceba56288 | ||
|
4be66f8b88 | ||
|
54a85d98f1 | ||
|
491a5a17f3 | ||
|
b3373398e8 | ||
|
0040fef215 | ||
|
1a6e8d297f | ||
|
f39487fca9 | ||
|
2596bfe7a7 | ||
|
406bffa8c8 | ||
|
48441b99ef | ||
|
ce4717144a | ||
|
f59d00d4c7 | ||
|
dcfdbf82dd | ||
|
0cb884d501 | ||
|
7bc4020a92 | ||
|
0792195156 | ||
|
83f24ffcfb | ||
|
74ec390770 | ||
|
9014ffcfd8 | ||
|
81af375289 | ||
|
d707eab95c | ||
|
d64c55ef11 | ||
|
2b1d53fb27 | ||
|
bf696f58c8 | ||
|
296bad8ffd | ||
|
94310af30c | ||
|
38c096bf79 | ||
|
696d1b3ed3 | ||
|
17d98724a5 | ||
|
7d7ee1b594 | ||
|
682b4209f2 | ||
|
41ddcbd240 | ||
|
48a7ce3bf2 | ||
|
3bcc4d0d55 | ||
|
8821bca656 | ||
|
56111aa20d | ||
|
5fe8a8342b | ||
|
989109145a | ||
|
23afc8e90c | ||
|
8e18786556 | ||
|
81488adf8b | ||
|
e37e9c1214 | ||
|
a4828387c1 | ||
|
abeac8b12e | ||
|
82e7786e74 | ||
|
0064321323 | ||
|
9e622a1a5f | ||
|
59ca933aee | ||
|
793af6b911 | ||
|
c8abe3f235 | ||
|
5d71056209 | ||
|
eb7d4d002a | ||
|
62b32bd848 | ||
|
8961f7aef8 | ||
|
17f3a3b95d | ||
|
261a7ea154 | ||
|
53a973e9dd | ||
|
cba9df746e | ||
|
12eee0c590 | ||
|
b76f5e72d4 | ||
|
702cb198da | ||
|
5f826419d1 | ||
|
13f671b499 | ||
|
49f4322054 | ||
|
0c9e044e41 | ||
|
74d4377ed2 | ||
|
6a124591df | ||
|
7a87315b94 | ||
|
0cde4e9121 | ||
|
36dde9275a | ||
|
a8f759c080 | ||
|
f034be71e7 | ||
|
eee35e54e9 | ||
|
ec0ce05455 | ||
|
13e6b3fac7 | ||
|
26c951fec4 | ||
|
590960f7f5 | ||
|
b4d54106fe | ||
|
f3b90ddb38 | ||
|
3bacfc5184 | ||
|
f8d0956893 | ||
|
1dc328ad49 | ||
|
5e5cb89da6 | ||
|
057e4eced1 | ||
|
27974616bf | ||
|
319ab779ee | ||
|
37831cdcb3 | ||
|
70480ee9d4 | ||
|
371c929ede | ||
|
864656bd11 | ||
|
2e9cf63a5f | ||
|
886b22e0ee | ||
|
72618db179 | ||
|
c8273369cc | ||
|
95a56a2795 | ||
|
859ff50766 | ||
|
ce583eb9bf | ||
|
3a195be14e | ||
|
5f6e310152 | ||
|
5449472f15 | ||
|
82e20bfe14 | ||
|
47abb192bc | ||
|
03a7d6be92 | ||
|
a927815292 | ||
|
3447a03433 | ||
|
03c2281828 | ||
|
c386cb35fb | ||
|
97ea3dd4dc | ||
|
a6d9d1551f | ||
|
34619a2e89 | ||
|
83d408bab3 | ||
|
8067fd9eda | ||
|
98ba9e0101 | ||
|
1b8ce60054 | ||
|
d5a31dc2ec | ||
|
051dd4ba87 | ||
|
2ad1848859 | ||
|
90e7d2fe33 | ||
|
04fa84aea7 | ||
|
a3f8140fbe | ||
|
96aedf6240 | ||
|
4cc2989fe9 | ||
|
0ecc94956b | ||
|
61e47e0c13 | ||
|
f5145ef130 | ||
|
edd27645d0 | ||
|
fc6f4f31dd | ||
|
f2cef702a0 | ||
|
8b3d54ce29 | ||
|
47a3721890 | ||
|
495fab24a5 | ||
|
fccbe4f4f2 | ||
|
9793bb3938 | ||
|
496dd29cb9 | ||
|
116d76a00f | ||
|
dd336e6fb2 | ||
|
c33af3581a | ||
|
2f4ecf8fc5 | ||
|
e037afeaca | ||
|
7b87af1748 | ||
|
0eee26fb09 | ||
|
3355aeba22 | ||
|
42e3825daf | ||
|
014d754588 | ||
|
4e11abdf9b | ||
|
570805bc98 | ||
|
e7e1967bb0 | ||
|
9a050cd87f | ||
|
d39507889a | ||
|
3e8d444c78 | ||
|
522ab7a83c | ||
|
0c5b4fcd4a | ||
|
37b3b8730d | ||
|
7c50fe5fec | ||
|
40a827ebcb | ||
|
376c556862 | ||
|
83772bd2cf | ||
|
4aef8c180a | ||
|
131d113ff5 | ||
|
38178fedf4 | ||
|
59f2e2d58d | ||
|
8d3136eb6f | ||
|
136a745c5d | ||
|
5edd8260e8 | ||
|
02f2b55d5f | ||
|
6386a4b812 | ||
|
c13935f3c0 | ||
|
fb3c775c8b | ||
|
8adce9fae8 | ||
|
eb2f3ddb7c | ||
|
dfd3ef022e | ||
|
978def2d40 | ||
|
57aed07814 | ||
|
bd8a13dbc9 | ||
|
ba29e07636 | ||
|
32346612b7 | ||
|
0550a286bd | ||
|
dfe5eb3e98 | ||
|
2c2861db6a | ||
|
bb0a3d586e | ||
|
90397a8aac | ||
|
84ba323b1c | ||
|
a8851e1307 | ||
|
d4a39f99d2 | ||
|
8c500a7e40 | ||
|
acf51bd7b3 | ||
|
83dc13a86d | ||
|
094c526a0e | ||
|
62f2d0c100 | ||
|
fc1ca0875a | ||
|
a7338e2ea2 | ||
|
9b8ddb24d1 | ||
|
7e0115641d | ||
|
fedd32173e | ||
|
4855a47105 | ||
|
06b7be7ee9 | ||
|
cfa2cb6ec7 | ||
|
b1b8addf7e | ||
|
4be5adc6f5 | ||
|
a9a31dca7f | ||
|
517be5c7bc | ||
|
9a9902bf9b | ||
|
4e40d4c720 | ||
|
916c1e4359 | ||
|
439be03634 | ||
|
b611d2aef4 | ||
|
a2075b0f24 | ||
|
3c1dd8558d | ||
|
17382d36b7 | ||
|
2e07aabb74 | ||
|
f525fb974e | ||
|
edf62953c4 | ||
|
260c5dcb75 | ||
|
1bc62cd7b5 | ||
|
b1183f72a5 | ||
|
a5e98146fb | ||
|
6d32d3dbec | ||
|
c6bbca62ef | ||
|
dd9755f223 | ||
|
61e39158de | ||
|
65023a987e | ||
|
91843f6f65 | ||
|
696547b646 | ||
|
4d2682325b | ||
|
65811d9034 | ||
|
f2b7c060a3 | ||
|
08dd251b9c | ||
|
d081473261 | ||
|
3901480c59 | ||
|
1cad3f56ec | ||
|
147503bd56 | ||
|
d1b0e955ea | ||
|
4021cf8128 | ||
|
7155f76963 | ||
|
b63f31e15d | ||
|
9c3d8c4028 | ||
|
d33b7071e3 | ||
|
ca066bf7cd | ||
|
4ac3161c19 | ||
|
d479e07bcb | ||
|
369ba7bb0a | ||
|
9df85edc4c | ||
|
d007caf39c | ||
|
7d453dfdc5 | ||
|
60f48a0c91 | ||
|
25640a8a81 | ||
|
944866affd | ||
|
22ded00824 | ||
|
85e84ab3eb | ||
|
993b76654d | ||
|
2b2743b120 | ||
|
f01263bcff | ||
|
8648b86a73 | ||
|
39d9343a7d | ||
|
5faf7ca158 | ||
|
ebe475247c | ||
|
63f6343cf1 | ||
|
ad42b275a9 | ||
|
2dac1c8785 | ||
|
1225e65299 | ||
|
d1bb47d741 | ||
|
f079c14068 | ||
|
388f4c71fd | ||
|
b675e1bb61 | ||
|
f96220f33d | ||
|
6739230039 | ||
|
710018b845 | ||
|
7779d9f622 | ||
|
e98f34b1e8 | ||
|
9ace915d71 | ||
|
e5c415555d | ||
|
5ef1c6cce2 | ||
|
93881d9a64 | ||
|
87776ae07e | ||
|
6c71a4324b | ||
|
90ee939671 | ||
|
cae06bf649 | ||
|
89220da47b | ||
|
903af3ee09 | ||
|
0418e6294b | ||
|
eabd100dad | ||
|
f66a5bfa42 | ||
|
8d0b8a227b | ||
|
e400ebd1bd | ||
|
6684c0b07a | ||
|
6568d03924 | ||
|
67fe804256 | ||
|
126729f87a | ||
|
0aca27511a | ||
|
77ff853739 | ||
|
20ba984c6d | ||
|
6311ca22f9 | ||
|
41d547532f | ||
|
e9156f8090 | ||
|
1eaa681c7e | ||
|
d96ae099ef | ||
|
40e5befdc7 | ||
|
f94ff93953 | ||
|
3523f60299 | ||
|
83dc8468b0 | ||
|
826624c9fa | ||
|
0fed098c53 | ||
|
cc7eafb7fb | ||
|
f35c41ba13 | ||
|
1f4246eb3c | ||
|
9300392c43 | ||
|
8d3ce5f88a | ||
|
a1d18d8c8c | ||
|
d43431d8f1 | ||
|
8baa76aa8f | ||
|
01846fad30 | ||
|
18255f9835 | ||
|
7b94f2c1d7 | ||
|
7ca73c2e79 | ||
|
75cb1ce196 | ||
|
35026a033a | ||
|
48031f282c | ||
|
7b2e98d5b7 | ||
|
fb71b67a8d | ||
|
d48f51e39d | ||
|
9b1930b2b3 | ||
|
96d8013581 | ||
|
46b345f2c2 | ||
|
4e5b40e274 | ||
|
d0e7ca159a | ||
|
e981e97407 | ||
|
a8ec3b826c | ||
|
f4a59d74f1 | ||
|
b9b6d9e31e | ||
|
d65ae517dd | ||
|
bb675e57c7 | ||
|
9fe38e200e | ||
|
a2fcb09d7a | ||
|
8c7916e128 | ||
|
3d23daa7b4 | ||
|
572cbb00e2 | ||
|
dedaebdf15 | ||
|
3d90c6adee | ||
|
06a521ec34 | ||
|
37f7c94ba4 | ||
|
396e1ac6b6 | ||
|
49e2073910 | ||
|
7d18649284 | ||
|
850677f121 | ||
|
c132e19e74 | ||
|
3334f74b72 | ||
|
b9ce3c248c | ||
|
310654d49f | ||
|
3f37d292ec | ||
|
0a42d2b897 | ||
|
3b5fcf4619 | ||
|
ab2a6ad1d5 | ||
|
7db30f9123 | ||
|
59f2b30768 | ||
|
9fb14d78e1 | ||
|
921a65f0a1 | ||
|
b9c07e52e8 | ||
|
edbb4b2fc9 | ||
|
15b1676b72 | ||
|
753a124ef2 | ||
|
58a4d009fa | ||
|
4664fb6f91 | ||
|
e287594654 | ||
|
1e19404736 | ||
|
2253d07341 | ||
|
7208a63a49 | ||
|
0273848f54 | ||
|
e542621125 | ||
|
26439b41d2 | ||
|
a2ee753b25 | ||
|
d3243903c0 | ||
|
cf68b13322 | ||
|
837d0998da | ||
|
23d80f9e84 | ||
|
e981bd88c1 | ||
|
710a1df4ff | ||
|
cfd33168af | ||
|
eefdb186b8 | ||
|
fc0ad4db2e | ||
|
f03b45f3e5 | ||
|
9a74bf1a88 | ||
|
ff0b331dd6 | ||
|
00bfbbf884 | ||
|
e44045a71a | ||
|
962abcef80 | ||
|
95f2e5bbb7 | ||
|
f46123e149 | ||
|
f0f77b1673 | ||
|
39112e80c3 | ||
|
a84c598e2c | ||
|
6b2f78ec51 | ||
|
938005864f | ||
|
3a5f8ece49 | ||
|
047a6f3b85 | ||
|
f09b75dafa | ||
|
54ec2e7bd0 | ||
|
e57b2e9528 | ||
|
ea2179b352 | ||
|
c8478cedc5 | ||
|
1692e5fef7 | ||
|
7ba5bc78b7 | ||
|
25c2e1725e | ||
|
853e48e3f3 | ||
|
f5d359927a | ||
|
4df5973fde | ||
|
45f3c73331 | ||
|
4102175d98 | ||
|
30ee2a464f | ||
|
7a5d1f27e7 | ||
|
ac5ff9d454 | ||
|
c9c3341a38 | ||
|
a736889ef1 | ||
|
ea5e096705 | ||
|
12330fd154 | ||
|
337ee568b1 | ||
|
608cefb05c | ||
|
8d0aa39181 | ||
|
5815364206 |
2
.cargo/audit.toml
Normal file
2
.cargo/audit.toml
Normal file
@ -0,0 +1,2 @@
|
||||
[advisories]
|
||||
ignore = ["RUSTSEC-2024-0320", "RUSTSEC-2024-0421"]
|
1
.github/.codecov.yml
vendored
Normal file
1
.github/.codecov.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
comment: false
|
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
github: [sharkdp, keith-hall, Enselic]
|
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Report a bug.
|
||||
title: ""
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
Hey there, thank you for reporting a bug!
|
||||
|
||||
Please note that the following bugs have already been reported:
|
||||
|
||||
* dpkg: error processing archive /some/path/some-program.deb (--unpack):
|
||||
trying to overwrite '/usr/.crates2.json'
|
||||
|
||||
See https://github.com/sharkdp/bat/issues/938
|
||||
|
||||
-->
|
||||
|
||||
**What steps will reproduce the bug?**
|
||||
|
||||
1. step 1
|
||||
2. step 2
|
||||
3. ...
|
||||
|
||||
**What happens?**
|
||||
|
||||
...
|
||||
|
||||
**What did you expect to happen instead?**
|
||||
|
||||
...
|
||||
|
||||
|
||||
**How did you install `bat`?**
|
||||
|
||||
<!-- apt-get, homebrew, GitHub release, etc. -->
|
||||
|
||||
---
|
||||
|
||||
**bat version and environment**
|
||||
|
||||
<!--
|
||||
In order to reproduce your issue, please add some information about the environment
|
||||
in which you're running bat. To do this, run the full `bat` command that demonstrates
|
||||
the bug, and attach the `--diagnostic` option:
|
||||
|
||||
bat [other options and arguments…] --diagnostic
|
||||
|
||||
Finally, paste the Markdown output here. Please make sure that it does not reveal any
|
||||
personal information.
|
||||
|
||||
|
||||
If you are running bat 0.17.1 or older (where --diagnostic is not available), please
|
||||
run the script at
|
||||
|
||||
https://github.com/sharkdp/bat/blob/master/diagnostics/info.sh
|
||||
|
||||
(click "Raw" to get the actual source code) and paste the Markdown output here. If you
|
||||
are on Windows, please let us know your bat version and your Windows version.
|
||||
-->
|
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1 @@
|
||||
blank_issues_enabled: true
|
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this project.
|
||||
title: ''
|
||||
labels: feature-request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
11
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
11
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask a question about 'bat'.
|
||||
title: ''
|
||||
labels: question
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Using a normal ticket is still fine, but feel free to ask your
|
||||
questions about bat on https://github.com/sharkdp/bat/discussions instead. -->
|
29
.github/ISSUE_TEMPLATE/syntax_request.md
vendored
Normal file
29
.github/ISSUE_TEMPLATE/syntax_request.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
name: Syntax Request
|
||||
about: Request adding a new syntax to bat.
|
||||
title: ""
|
||||
labels: syntax-request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
BEFORE YOU MAKE A REQUEST:
|
||||
|
||||
Are you looking to add a new syntax to use on one of your devices?
|
||||
Bat supports locally-installed language definitions. See the link below:
|
||||
|
||||
https://github.com/sharkdp/bat#adding-new-syntaxes--language-definitions
|
||||
|
||||
If you think adding this syntax would help others as well, please make sure that it meets our
|
||||
guidelines for adding new syntaxes:
|
||||
|
||||
- 10,000 downloads on packagecontrol.io
|
||||
-->
|
||||
|
||||
|
||||
**Syntax:**
|
||||
[Name or description of the syntax/language here]
|
||||
|
||||
**Guideline Criteria:**
|
||||
[packagecontrol.io link here]
|
24
.github/dependabot.yml
vendored
Normal file
24
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
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
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: monthly
|
||||
time: "04:00"
|
||||
timezone: Europe/Berlin
|
23
.github/workflows/Auto-merge-dependabot-PRs.yml
vendored
Normal file
23
.github/workflows/Auto-merge-dependabot-PRs.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
# This workflow triggers auto-merge of any PR that dependabot creates so that
|
||||
# PRs will be merged automatically without maintainer intervention if CI passes
|
||||
name: Auto-merge dependabot PRs
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
if: github.repository == 'sharkdp/bat' && startsWith(github.head_ref, 'dependabot/')
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: auto-merge
|
||||
url: https://github.com/sharkdp/bat/blob/main/.github/workflows/Auto-merge-dependabot-PRs.yml
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.AUTO_MERGE_GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: |
|
||||
gh pr review ${{ github.event.pull_request.number }} --comment --body "If CI passes, this dependabot PR will be [auto-merged](https://github.com/sharkdp/bat/blob/main/.github/workflows/Auto-merge-dependabot-PRs.yml) 🚀"
|
||||
- run: |
|
||||
gh pr merge --auto --squash ${{ github.event.pull_request.number }}
|
468
.github/workflows/CICD.yml
vendored
Normal file
468
.github/workflows/CICD.yml
vendored
Normal file
@ -0,0 +1,468 @@
|
||||
name: CICD
|
||||
|
||||
env:
|
||||
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
|
||||
MSRV_FEATURES: --no-default-features --features minimal-application,bugreport,build-assets
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
all-jobs:
|
||||
if: always() # Otherwise this job is skipped if the matrix job fails
|
||||
name: all-jobs
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- crate_metadata
|
||||
- ensure_cargo_fmt
|
||||
- min_version
|
||||
- license_checks
|
||||
- test_with_new_syntaxes_and_themes
|
||||
- test_with_system_config
|
||||
- documentation
|
||||
- cargo-audit
|
||||
- build
|
||||
steps:
|
||||
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
||||
|
||||
crate_metadata:
|
||||
name: Extract crate metadata
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Extract crate information
|
||||
id: crate_metadata
|
||||
run: |
|
||||
cargo metadata --no-deps --format-version 1 | jq -r '"name=" + .packages[0].name' | tee -a $GITHUB_OUTPUT
|
||||
cargo metadata --no-deps --format-version 1 | jq -r '"version=" + .packages[0].version' | tee -a $GITHUB_OUTPUT
|
||||
cargo metadata --no-deps --format-version 1 | jq -r '"maintainer=" + .packages[0].authors[0]' | tee -a $GITHUB_OUTPUT
|
||||
cargo metadata --no-deps --format-version 1 | jq -r '"homepage=" + .packages[0].homepage' | tee -a $GITHUB_OUTPUT
|
||||
cargo metadata --no-deps --format-version 1 | jq -r '"msrv=" + .packages[0].rust_version' | tee -a $GITHUB_OUTPUT
|
||||
outputs:
|
||||
name: ${{ steps.crate_metadata.outputs.name }}
|
||||
version: ${{ steps.crate_metadata.outputs.version }}
|
||||
maintainer: ${{ steps.crate_metadata.outputs.maintainer }}
|
||||
homepage: ${{ steps.crate_metadata.outputs.homepage }}
|
||||
msrv: ${{ steps.crate_metadata.outputs.msrv }}
|
||||
|
||||
ensure_cargo_fmt:
|
||||
name: Ensure 'cargo fmt' has been run
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: rustfmt
|
||||
- uses: actions/checkout@v4
|
||||
- run: cargo fmt -- --check
|
||||
|
||||
min_version:
|
||||
name: Minimum supported rust version
|
||||
runs-on: ubuntu-latest
|
||||
needs: crate_metadata
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install rust toolchain (v${{ needs.crate_metadata.outputs.msrv }})
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ needs.crate_metadata.outputs.msrv }}
|
||||
components: clippy
|
||||
- name: Run clippy (on minimum supported rust version to prevent warnings we can't fix)
|
||||
run: cargo clippy --locked --all-targets ${{ env.MSRV_FEATURES }}
|
||||
- name: Run tests
|
||||
run: cargo test --locked ${{ env.MSRV_FEATURES }}
|
||||
|
||||
license_checks:
|
||||
name: License checks
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true # we especially want to perform license checks on submodules
|
||||
- run: tests/scripts/license-checks.sh
|
||||
|
||||
test_with_new_syntaxes_and_themes:
|
||||
name: Run tests with updated syntaxes and themes
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true # we need all syntax and theme submodules
|
||||
- name: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
- name: Build and install bat
|
||||
run: cargo install --locked --path .
|
||||
- name: Rebuild binary assets (syntaxes and themes)
|
||||
run: bash assets/create.sh
|
||||
- name: Build and install bat with updated assets
|
||||
run: cargo install --locked --path .
|
||||
- name: Run unit tests with new syntaxes and themes
|
||||
run: cargo test --locked --release
|
||||
- name: Run ignored-by-default unit tests with new syntaxes and themes
|
||||
run: cargo test --locked --release --test assets -- --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
|
||||
|
||||
test_with_system_config:
|
||||
name: Run tests with system wide configuration
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Prepare environment variables
|
||||
run: |
|
||||
echo "BAT_SYSTEM_CONFIG_PREFIX=$GITHUB_WORKSPACE/tests/examples/system_config" >> $GITHUB_ENV
|
||||
- name: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
- name: Build and install bat
|
||||
run: cargo install --locked --path .
|
||||
- name: Run unit tests
|
||||
run: cargo test --locked --test system_wide_config -- --ignored
|
||||
|
||||
documentation:
|
||||
name: Documentation
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Git checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
- name: Check documentation
|
||||
env:
|
||||
RUSTDOCFLAGS: -D warnings
|
||||
run: cargo doc --locked --no-deps --document-private-items --all-features
|
||||
- name: Show man page
|
||||
run: man $(find . -name bat.1)
|
||||
|
||||
cargo-audit:
|
||||
name: cargo audit
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- run: cargo install cargo-audit --locked
|
||||
- uses: actions/checkout@v4
|
||||
- run: cargo audit
|
||||
|
||||
build:
|
||||
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
|
||||
runs-on: ${{ matrix.job.os }}
|
||||
needs: crate_metadata
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job:
|
||||
- { target: aarch64-unknown-linux-musl , os: ubuntu-latest, dpkg_arch: arm64, use-cross: true }
|
||||
- { target: aarch64-unknown-linux-gnu , os: ubuntu-latest, dpkg_arch: arm64, use-cross: true }
|
||||
- { target: arm-unknown-linux-gnueabihf , os: ubuntu-latest, dpkg_arch: armhf, use-cross: true }
|
||||
- { target: arm-unknown-linux-musleabihf, os: ubuntu-latest, dpkg_arch: musl-linux-armhf, use-cross: true }
|
||||
- { target: i686-pc-windows-msvc , os: windows-2019, }
|
||||
- { target: i686-unknown-linux-gnu , os: ubuntu-latest, dpkg_arch: i686, use-cross: true }
|
||||
- { target: i686-unknown-linux-musl , os: ubuntu-latest, dpkg_arch: musl-linux-i686, use-cross: true }
|
||||
- { target: x86_64-apple-darwin , os: macos-13, }
|
||||
- { target: aarch64-apple-darwin , os: macos-14, }
|
||||
- { target: x86_64-pc-windows-msvc , os: windows-2019, }
|
||||
- { target: x86_64-unknown-linux-gnu , os: ubuntu-latest, dpkg_arch: amd64, use-cross: true }
|
||||
- { target: x86_64-unknown-linux-musl , os: ubuntu-latest, dpkg_arch: musl-linux-amd64, use-cross: true }
|
||||
env:
|
||||
BUILD_CMD: cargo
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- 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: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: ${{ matrix.job.target }}
|
||||
|
||||
- name: Install cross
|
||||
if: matrix.job.use-cross
|
||||
uses: taiki-e/install-action@v2
|
||||
with:
|
||||
tool: cross
|
||||
|
||||
- name: Overwrite build command env variable
|
||||
if: matrix.job.use-cross
|
||||
shell: bash
|
||||
run: echo "BUILD_CMD=cross" >> $GITHUB_ENV
|
||||
|
||||
- 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
|
||||
shell: bash
|
||||
run: $BUILD_CMD build --locked --release --target=${{ matrix.job.target }}
|
||||
|
||||
- name: Set binary name & path
|
||||
id: bin
|
||||
shell: bash
|
||||
run: |
|
||||
# Figure out suffix of binary
|
||||
EXE_suffix=""
|
||||
case ${{ matrix.job.target }} in
|
||||
*-pc-windows-*) EXE_suffix=".exe" ;;
|
||||
esac;
|
||||
|
||||
# Setup paths
|
||||
BIN_NAME="${{ needs.crate_metadata.outputs.name }}${EXE_suffix}"
|
||||
BIN_PATH="target/${{ matrix.job.target }}/release/${BIN_NAME}"
|
||||
|
||||
# Let subsequent steps know where to find the binary
|
||||
echo "BIN_PATH=${BIN_PATH}" >> $GITHUB_OUTPUT
|
||||
echo "BIN_NAME=${BIN_NAME}" >> $GITHUB_OUTPUT
|
||||
|
||||
- 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 ${{ needs.crate_metadata.outputs.name }}" ;; esac;
|
||||
echo "CARGO_TEST_OPTIONS=${CARGO_TEST_OPTIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: |
|
||||
if [[ ${{ matrix.job.os }} = windows-* ]]
|
||||
then
|
||||
powershell.exe -command "$BUILD_CMD test --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}}"
|
||||
else
|
||||
$BUILD_CMD test --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}}
|
||||
fi
|
||||
|
||||
- name: Run bat
|
||||
shell: bash
|
||||
run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
|
||||
|
||||
- name: Show diagnostics (bat --diagnostic)
|
||||
shell: bash
|
||||
run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
|
||||
|
||||
- name: "Feature check: regex-onig"
|
||||
shell: bash
|
||||
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
|
||||
|
||||
- name: "Feature check: regex-onig,git"
|
||||
shell: bash
|
||||
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
|
||||
|
||||
- name: "Feature check: regex-onig,paging"
|
||||
shell: bash
|
||||
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
|
||||
|
||||
- name: "Feature check: regex-onig,git,paging"
|
||||
shell: bash
|
||||
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
|
||||
|
||||
- name: "Feature check: minimal-application"
|
||||
shell: bash
|
||||
run: $BUILD_CMD check --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=${{ needs.crate_metadata.outputs.name }}-v${{ needs.crate_metadata.outputs.version }}-${{ matrix.job.target }}
|
||||
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
|
||||
echo "PKG_NAME=${PKG_NAME}" >> $GITHUB_OUTPUT
|
||||
|
||||
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.bin.outputs.BIN_PATH }}" "$ARCHIVE_DIR"
|
||||
|
||||
# README, LICENSE and CHANGELOG files
|
||||
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
|
||||
|
||||
# Man page
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
|
||||
|
||||
# Autocompletion files
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.bash "$ARCHIVE_DIR/autocomplete/${{ needs.crate_metadata.outputs.name }}.bash"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ needs.crate_metadata.outputs.name }}.fish"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/_bat.ps1 "$ARCHIVE_DIR/autocomplete/_${{ needs.crate_metadata.outputs.name }}.ps1"
|
||||
cp 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ needs.crate_metadata.outputs.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 "PKG_PATH=${PKG_STAGING}/${PKG_NAME}" >> $GITHUB_OUTPUT
|
||||
|
||||
- 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=${{ needs.crate_metadata.outputs.name }}
|
||||
DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }}-musl
|
||||
case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${{ needs.crate_metadata.outputs.name }}-musl ; DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }} ;; esac;
|
||||
DPKG_VERSION=${{ needs.crate_metadata.outputs.version }}
|
||||
DPKG_ARCH="${{ matrix.job.dpkg_arch }}"
|
||||
DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb"
|
||||
echo "DPKG_NAME=${DPKG_NAME}" >> $GITHUB_OUTPUT
|
||||
|
||||
# Binary
|
||||
install -Dm755 "${{ steps.bin.outputs.BIN_PATH }}" "${DPKG_DIR}/usr/bin/${{ steps.bin.outputs.BIN_NAME }}"
|
||||
|
||||
# Man page
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ needs.crate_metadata.outputs.name }}.1"
|
||||
gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ needs.crate_metadata.outputs.name }}.1"
|
||||
|
||||
# Autocompletion files
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.bash "${DPKG_DIR}/usr/share/bash-completion/completions/${{ needs.crate_metadata.outputs.name }}"
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ needs.crate_metadata.outputs.name }}.fish"
|
||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ needs.crate_metadata.outputs.name }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/vendor-completions/_${{ needs.crate_metadata.outputs.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: ${{ needs.crate_metadata.outputs.name }}
|
||||
Source: ${{ needs.crate_metadata.outputs.homepage }}
|
||||
|
||||
Files: *
|
||||
Copyright: ${{ needs.crate_metadata.outputs.maintainer }}
|
||||
Copyright: $COPYRIGHT_YEARS ${{ needs.crate_metadata.outputs.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: ${{ needs.crate_metadata.outputs.maintainer }}
|
||||
Homepage: ${{ needs.crate_metadata.outputs.homepage }}
|
||||
Architecture: ${DPKG_ARCH}
|
||||
Provides: ${{ needs.crate_metadata.outputs.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 "DPKG_PATH=${DPKG_PATH}" >> $GITHUB_OUTPUT
|
||||
|
||||
# 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 "IS_RELEASE=${IS_RELEASE}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Publish archives and packages
|
||||
uses: softprops/action-gh-release@v2
|
||||
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 }}
|
||||
|
||||
winget:
|
||||
name: Publish to Winget
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/v')
|
||||
steps:
|
||||
- uses: vedantmgoyal2009/winget-releaser@v2
|
||||
with:
|
||||
identifier: sharkdp.bat
|
||||
installers-regex: '-pc-windows-msvc\.zip$'
|
||||
token: ${{ secrets.WINGET_TOKEN }}
|
33
.github/workflows/require-changelog-for-PRs.yml
vendored
Normal file
33
.github/workflows/require-changelog-for-PRs.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
name: Changelog
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
check-changelog:
|
||||
name: Check for changelog entry
|
||||
runs-on: ubuntu-latest
|
||||
# dependabot PRs are automerged if CI passes; we shouldn't block these
|
||||
if: github.actor != 'dependabot[bot]'
|
||||
env:
|
||||
PR_NUMBER: ${{ github.event.number }}
|
||||
PR_BASE: ${{ github.base_ref }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Fetch PR base
|
||||
run: git fetch --no-tags --prune --depth=1 origin
|
||||
|
||||
# cannot use `github.actor`: the triggering commit may be authored by a maintainer
|
||||
- name: Get PR submitter
|
||||
id: get-submitter
|
||||
run: curl -sSfL https://api.github.com/repos/sharkdp/bat/pulls/${PR_NUMBER} | jq -r '"submitter=" + .user.login' | tee -a $GITHUB_OUTPUT
|
||||
|
||||
- name: Search for added line in changelog
|
||||
env:
|
||||
PR_SUBMITTER: ${{ steps.get-submitter.outputs.submitter }}
|
||||
run: |
|
||||
ADDED=$(git diff -U0 "origin/${PR_BASE}" HEAD -- CHANGELOG.md | grep -P '^\+[^\+].+$')
|
||||
echo "Added lines in CHANGELOG.md:"
|
||||
echo "$ADDED"
|
||||
echo "Grepping for PR info (see CONTRIBUTING.md):"
|
||||
grep "#${PR_NUMBER}\\b.*${PR_SUBMITTER}\\b" <<< "$ADDED"
|
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,3 +1,10 @@
|
||||
|
||||
/target/
|
||||
**/*.rs.bk
|
||||
|
||||
# Generated files
|
||||
/assets/completions/_bat.ps1
|
||||
/assets/completions/bat.bash
|
||||
/assets/completions/bat.fish
|
||||
/assets/completions/bat.zsh
|
||||
/assets/manual/bat.1
|
||||
/assets/metadata.yaml
|
||||
|
235
.gitmodules
vendored
235
.gitmodules
vendored
@ -1,32 +1,32 @@
|
||||
[submodule "assets/syntaxes/Elixir"]
|
||||
path = assets/syntaxes/Elixir
|
||||
path = assets/syntaxes/02_Extra/Elixir
|
||||
url = https://github.com/princemaple/elixir-sublime-syntax/
|
||||
[submodule "assets/syntaxes/Packages"]
|
||||
path = assets/syntaxes/Packages
|
||||
path = assets/syntaxes/01_Packages
|
||||
url = https://github.com/sublimehq/Packages/
|
||||
[submodule "assets/syntaxes/TOML"]
|
||||
path = assets/syntaxes/TOML
|
||||
path = assets/syntaxes/02_Extra/TOML
|
||||
url = https://github.com/jasonwilliams/sublime_toml_highlighting
|
||||
[submodule "assets/syntaxes/Julia"]
|
||||
path = assets/syntaxes/Julia
|
||||
path = assets/syntaxes/02_Extra/Julia
|
||||
url = https://github.com/JuliaEditorSupport/Julia-sublime
|
||||
[submodule "assets/themes/sublime-monokai-extended"]
|
||||
path = assets/themes/sublime-monokai-extended
|
||||
url = https://github.com/jonschlinkert/sublime-monokai-extended
|
||||
[submodule "assets/syntaxes/Docker"]
|
||||
path = assets/syntaxes/Docker
|
||||
path = assets/syntaxes/02_Extra/Docker
|
||||
url = https://github.com/asbjornenge/Docker.tmbundle
|
||||
[submodule "assets/syntaxes/VimL"]
|
||||
path = assets/syntaxes/VimL
|
||||
path = assets/syntaxes/02_Extra/VimL
|
||||
url = https://github.com/SalGnt/Sublime-VimL
|
||||
[submodule "assets/syntaxes/INI"]
|
||||
path = assets/syntaxes/INI
|
||||
path = assets/syntaxes/02_Extra/INI
|
||||
url = https://github.com/clintberry/sublime-text-2-ini
|
||||
[submodule "assets/syntaxes/CMake"]
|
||||
path = assets/syntaxes/CMake
|
||||
path = assets/syntaxes/02_Extra/CMake
|
||||
url = https://github.com/zyxar/Sublime-CMakeLists
|
||||
[submodule "assets/syntaxes/LESS"]
|
||||
path = assets/syntaxes/LESS
|
||||
path = assets/syntaxes/02_Extra/LESS
|
||||
url = https://github.com/danro/LESS-sublime
|
||||
[submodule "assets/themes/DarkNeon"]
|
||||
path = assets/themes/DarkNeon
|
||||
@ -41,115 +41,234 @@
|
||||
path = assets/themes/TwoDark
|
||||
url = https://github.com/erremauro/TwoDark
|
||||
[submodule "assets/syntaxes/AWK"]
|
||||
path = assets/syntaxes/AWK
|
||||
path = assets/syntaxes/02_Extra/AWK
|
||||
url = https://github.com/JohnNilsson/awk-sublime
|
||||
[submodule "assets/syntaxes/Nix"]
|
||||
path = assets/syntaxes/Nix
|
||||
path = assets/syntaxes/02_Extra/Nix
|
||||
url = https://github.com/wmertens/sublime-nix
|
||||
[submodule "assets/themes/zenburn"]
|
||||
path = assets/themes/zenburn
|
||||
url = https://github.com/colinta/zenburn.git
|
||||
[submodule "assets/syntaxes/Kotlin"]
|
||||
path = assets/syntaxes/Kotlin
|
||||
path = assets/syntaxes/02_Extra/Kotlin
|
||||
url = https://github.com/vkostyukov/kotlin-sublime-package
|
||||
[submodule "assets/syntaxes/Elm"]
|
||||
path = assets/syntaxes/Elm
|
||||
path = assets/syntaxes/02_Extra/Elm
|
||||
url = https://github.com/elm-community/SublimeElmLanguageSupport
|
||||
[submodule "assets/syntaxes/TypeScript"]
|
||||
path = assets/syntaxes/TypeScript
|
||||
path = assets/syntaxes/02_Extra/TypeScript
|
||||
url = https://github.com/Microsoft/TypeScript-Sublime-Plugin
|
||||
[submodule "assets/syntaxes/Puppet"]
|
||||
path = assets/syntaxes/Puppet
|
||||
path = assets/syntaxes/02_Extra/Puppet
|
||||
url = https://github.com/russCloak/SublimePuppet
|
||||
[submodule "assets/syntaxes/CSV"]
|
||||
path = assets/syntaxes/CSV
|
||||
url = https://github.com/wadetb/Sublime-Text-Advanced-CSV
|
||||
[submodule "assets/themes/onehalf"]
|
||||
path = assets/themes/onehalf
|
||||
url = https://github.com/sonph/onehalf
|
||||
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
||||
path = assets/syntaxes/JavaScript (Babel)
|
||||
path = assets/syntaxes/02_Extra/JavaScript_(Babel)
|
||||
url = https://github.com/babel/babel-sublime
|
||||
[submodule "assets/syntaxes/Cabal"]
|
||||
path = assets/syntaxes/Cabal
|
||||
url = https://github.com/SublimeHaskell/SublimeHaskell
|
||||
[submodule "assets/syntaxes/Dart"]
|
||||
path = assets/syntaxes/Dart
|
||||
url = https://github.com/guillermooo/dart-sublime-bundle
|
||||
[submodule "assets/syntaxes/FSharp"]
|
||||
path = assets/syntaxes/FSharp
|
||||
path = assets/syntaxes/02_Extra/FSharp
|
||||
url = https://github.com/hoest/sublimetext-fsharp
|
||||
[submodule "assets/syntaxes/PureScript"]
|
||||
path = assets/syntaxes/PureScript
|
||||
path = assets/syntaxes/02_Extra/PureScript
|
||||
url = https://github.com/tellnobody1/sublime-purescript-syntax
|
||||
[submodule "assets/syntaxes/Swift"]
|
||||
path = assets/syntaxes/Swift
|
||||
path = assets/syntaxes/02_Extra/Swift
|
||||
url = https://github.com/quiqueg/Swift-Sublime-Package
|
||||
[submodule "assets/syntaxes/Crystal"]
|
||||
path = assets/syntaxes/Crystal
|
||||
path = assets/syntaxes/02_Extra/Crystal
|
||||
url = https://github.com/crystal-lang-tools/sublime-crystal.git
|
||||
[submodule "assets/syntaxes/PowerShell"]
|
||||
path = assets/syntaxes/PowerShell
|
||||
path = assets/syntaxes/02_Extra/PowerShell
|
||||
url = https://github.com/PowerShell/EditorSyntax
|
||||
[submodule "assets/syntaxes/Robot"]
|
||||
path = assets/syntaxes/Robot
|
||||
path = assets/syntaxes/02_Extra/Robot
|
||||
url = https://github.com/andriyko/sublime-robot-framework-assistant.git
|
||||
[submodule "assets/themes/sublime-snazzy"]
|
||||
path = assets/themes/sublime-snazzy
|
||||
url = https://github.com/greggb/sublime-snazzy
|
||||
[submodule "assets/syntaxes/HTML (Twig)"]
|
||||
path = assets/syntaxes/HTML (Twig)
|
||||
url = https://github.com/Anomareh/PHP-Twig.tmbundle.git
|
||||
[submodule "assets/syntaxes/AsciiDoc"]
|
||||
path = assets/syntaxes/AsciiDoc
|
||||
url = https://github.com/SublimeText/AsciiDoc.git
|
||||
[submodule "assets/syntaxes/Assembly (ARM)"]
|
||||
path = assets/syntaxes/Assembly (ARM)
|
||||
path = assets/syntaxes/02_Extra/Assembly_(ARM)
|
||||
url = https://github.com/tvi/Sublime-ARM-Assembly
|
||||
[submodule "assets/syntaxes/syslog-syntax"]
|
||||
path = assets/syntaxes/Syslog
|
||||
url = https://github.com/caos21/syslog-syntax.git
|
||||
branch = master
|
||||
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
||||
path = assets/syntaxes/Protobuf
|
||||
path = assets/syntaxes/02_Extra/Protobuf
|
||||
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
||||
branch = master
|
||||
[submodule "assets/syntaxes/Terraform"]
|
||||
path = assets/syntaxes/Terraform
|
||||
path = assets/syntaxes/02_Extra/Terraform
|
||||
url = https://github.com/alexlouden/Terraform.tmLanguage.git
|
||||
[submodule "assets/syntaxes/Jsonnet"]
|
||||
path = assets/syntaxes/Jsonnet
|
||||
path = assets/syntaxes/02_Extra/Jsonnet
|
||||
url = https://github.com/gburiola/sublime-jsonnet-syntax.git
|
||||
[submodule "assets/syntaxes/varlink"]
|
||||
path = assets/syntaxes/varlink
|
||||
path = assets/syntaxes/02_Extra/varlink
|
||||
url = https://github.com/varlink/syntax-highlight-varlink.git
|
||||
[submodule "assets/syntaxes/sublime-fish"]
|
||||
path = assets/syntaxes/sublime-fish
|
||||
path = assets/syntaxes/02_Extra/Fish
|
||||
url = https://github.com/Phidica/sublime-fish.git
|
||||
[submodule "assets/syntaxes/Org mode"]
|
||||
path = assets/syntaxes/Org mode
|
||||
path = assets/syntaxes/02_Extra/Org_mode
|
||||
url = https://github.com/jezcope/Org.tmbundle.git
|
||||
[submodule "assets/syntaxes/requirementstxt"]
|
||||
path = assets/syntaxes/requirementstxt
|
||||
url = https://github.com/wuub/requirementstxt
|
||||
[submodule "assets/syntaxes/DotENV"]
|
||||
path = assets/syntaxes/DotENV
|
||||
path = assets/syntaxes/02_Extra/DotENV
|
||||
url = https://github.com/zaynali53/DotENV
|
||||
[submodule "assets/syntaxes/hosts"]
|
||||
path = assets/syntaxes/hosts
|
||||
path = assets/syntaxes/02_Extra/hosts
|
||||
url = https://github.com/brandonwamboldt/sublime-hosts
|
||||
[submodule "assets/syntaxes/ssh-config"]
|
||||
path = assets/syntaxes/ssh-config
|
||||
path = assets/syntaxes/02_Extra/ssh-config
|
||||
url = https://github.com/robballou/sublimetext-sshconfig.git
|
||||
[submodule "assets/syntaxes/GraphQL"]
|
||||
path = assets/syntaxes/GraphQL
|
||||
path = assets/syntaxes/02_Extra/GraphQL
|
||||
url = https://github.com/dncrews/GraphQL-SublimeText3.git
|
||||
[submodule "assets/syntaxes/Verilog"]
|
||||
path = assets/syntaxes/Verilog
|
||||
path = assets/syntaxes/02_Extra/Verilog
|
||||
url = https://github.com/pro711/sublime-verilog
|
||||
[submodule "assets/syntaxes/SCSS_Sass"]
|
||||
path = assets/syntaxes/SCSS_Sass
|
||||
path = assets/syntaxes/02_Extra/SCSS_Sass
|
||||
url = https://github.com/braver/SublimeSass
|
||||
[submodule "assets/syntaxes/Strace"]
|
||||
path = assets/syntaxes/Strace
|
||||
path = assets/syntaxes/02_Extra/Strace
|
||||
url = https://github.com/djuretic/SublimeStrace
|
||||
[submodule "assets/syntaxes/Jinja2"]
|
||||
path = assets/syntaxes/02_Extra/Jinja2
|
||||
url = https://github.com/Martin819/sublime-jinja2
|
||||
[submodule "assets/syntaxes/SLS"]
|
||||
path = assets/syntaxes/02_Extra/SLS
|
||||
url = https://github.com/saltstack/sublime-text
|
||||
branch = master
|
||||
[submodule "assets/themes/dracula-sublime"]
|
||||
path = assets/themes/dracula-sublime
|
||||
url = https://github.com/dracula/sublime.git
|
||||
[submodule "assets/syntaxes/HTML (Twig)"]
|
||||
path = assets/syntaxes/02_Extra/HTML_(Twig)
|
||||
url = https://github.com/Anomareh/PHP-Twig.tmbundle.git
|
||||
[submodule "assets/themes/Nord-sublime"]
|
||||
path = assets/themes/Nord-sublime
|
||||
url = https://github.com/crabique/Nord-plist.git
|
||||
[submodule "assets/syntaxes/Vue"]
|
||||
path = assets/syntaxes/02_Extra/Vue
|
||||
url = https://github.com/vuejs/vue-syntax-highlight.git
|
||||
branch = new
|
||||
[submodule "assets/syntaxes/CoffeeScript"]
|
||||
path = assets/syntaxes/02_Extra/CoffeeScript
|
||||
url = https://github.com/sustained/CoffeeScript-Sublime-Plugin
|
||||
[submodule "assets/syntaxes/02_Extra/Stylus"]
|
||||
path = assets/syntaxes/02_Extra/Stylus
|
||||
url = https://github.com/billymoon/Stylus
|
||||
[submodule "assets/themes/Solarized"]
|
||||
path = assets/themes/Solarized
|
||||
url = https://github.com/braver/Solarized
|
||||
[submodule "assets/syntaxes/02_Extra/Fortran"]
|
||||
path = assets/syntaxes/02_Extra/Fortran
|
||||
url = https://github.com/315234/SublimeFortran
|
||||
[submodule "assets/syntaxes/02_Extra/Email"]
|
||||
path = assets/syntaxes/02_Extra/Email
|
||||
url = https://github.com/mariozaizar/email.sublime-syntax.git
|
||||
[submodule "assets/syntaxes/02_Extra/QML"]
|
||||
path = assets/syntaxes/02_Extra/QML
|
||||
url = https://github.com/skozlovf/Sublime-QML
|
||||
[submodule "assets/syntaxes/02_Extra/AsciiDoc"]
|
||||
path = assets/syntaxes/02_Extra/AsciiDoc
|
||||
url = https://github.com/asciidoctor/sublimetext-asciidoc.git
|
||||
[submodule "assets/syntaxes/02_Extra/GLSL"]
|
||||
path = assets/syntaxes/02_Extra/GLSL
|
||||
url = https://github.com/euler0/sublime-glsl
|
||||
[submodule "assets/syntaxes/02_Extra/Nginx"]
|
||||
path = assets/syntaxes/02_Extra/Nginx
|
||||
url = https://github.com/brandonwamboldt/sublime-nginx
|
||||
[submodule "assets/syntaxes/02_Extra/Apache"]
|
||||
path = assets/syntaxes/02_Extra/Apache
|
||||
url = https://github.com/colinta/ApacheConf.tmLanguage
|
||||
[submodule "assets/syntaxes/02_Extra/Ninja"]
|
||||
path = assets/syntaxes/02_Extra/Ninja
|
||||
url = https://github.com/pope/SublimeNinja.git
|
||||
[submodule "assets/syntaxes/02_Extra/Svelte"]
|
||||
path = assets/syntaxes/02_Extra/Svelte
|
||||
url = https://github.com/corneliusio/svelte-sublime
|
||||
[submodule "assets/themes/Coldark"]
|
||||
path = assets/themes/Coldark
|
||||
url = https://github.com/ArmandPhilippot/coldark-bat.git
|
||||
[submodule "assets/themes/gruvbox"]
|
||||
path = assets/themes/gruvbox
|
||||
url = https://github.com/subnut/gruvbox-tmTheme.git
|
||||
branch = bat-source
|
||||
[submodule "assets/syntaxes/02_Extra/Lean"]
|
||||
path = assets/syntaxes/02_Extra/Lean
|
||||
url = https://github.com/leanprover/vscode-lean.git
|
||||
[submodule "assets/syntaxes/02_Extra/LiveScript"]
|
||||
path = assets/syntaxes/02_Extra/LiveScript
|
||||
url = https://github.com/paulmillr/LiveScript.tmbundle
|
||||
[submodule "assets/syntaxes/02_Extra/Zig"]
|
||||
path = assets/syntaxes/02_Extra/Zig
|
||||
url = https://github.com/ziglang/sublime-zig-language.git
|
||||
[submodule "assets/syntaxes/02_Extra/gnuplot"]
|
||||
path = assets/syntaxes/02_Extra/gnuplot
|
||||
url = https://github.com/hesstobi/sublime_gnuplot
|
||||
[submodule "assets/syntaxes/02_Extra/SystemVerilog"]
|
||||
path = assets/syntaxes/02_Extra/SystemVerilog
|
||||
url = https://github.com/TheClams/SystemVerilog.git
|
||||
[submodule "assets/themes/visual-studio-dark-plus"]
|
||||
path = assets/themes/visual-studio-dark-plus
|
||||
url = https://github.com/vidann1/visual-studio-dark-plus.git
|
||||
[submodule "assets/syntaxes/02_Extra/SublimeEthereum"]
|
||||
path = assets/syntaxes/02_Extra/SublimeEthereum
|
||||
url = https://github.com/davidhq/SublimeEthereum.git
|
||||
[submodule "assets/syntaxes/02_Extra/Groff"]
|
||||
path = assets/syntaxes/02_Extra/Groff
|
||||
url = https://github.com/carsonoid/sublime_man_page_support
|
||||
[submodule "assets/syntaxes/02_Extra/http-request-response"]
|
||||
path = assets/syntaxes/02_Extra/http-request-response
|
||||
url = https://github.com/keith-hall/http-request-response-syntax.git
|
||||
[submodule "assets/syntaxes/02_Extra/LLVM"]
|
||||
path = assets/syntaxes/02_Extra/LLVM
|
||||
url = https://github.com/ioncodes/LLVM.tmBundle
|
||||
[submodule "assets/syntaxes/02_Extra/Slim"]
|
||||
path = assets/syntaxes/02_Extra/Slim
|
||||
url = https://github.com/slim-template/ruby-slim.tmbundle.git
|
||||
[submodule "assets/syntaxes/02_Extra/Racket"]
|
||||
path = assets/syntaxes/02_Extra/Racket
|
||||
url = https://github.com/follesoe/sublime-racket.git
|
||||
[submodule "assets/syntaxes/02_Extra/MediaWiki"]
|
||||
path = assets/syntaxes/02_Extra/MediaWiki
|
||||
url = https://github.com/tosher/Mediawiker.git
|
||||
[submodule "assets/syntaxes/02_Extra/Dart"]
|
||||
path = assets/syntaxes/02_Extra/Dart
|
||||
url = https://github.com/elMuso/Dartlight.git
|
||||
[submodule "assets/syntaxes/02_Extra/SublimeJQ"]
|
||||
path = assets/syntaxes/02_Extra/SublimeJQ
|
||||
url = https://github.com/zogwarg/SublimeJQ.git
|
||||
[submodule "assets/syntaxes/02_Extra/cmd-help"]
|
||||
path = assets/syntaxes/02_Extra/cmd-help
|
||||
url = https://github.com/victor-gp/cmd-help-sublime-syntax.git
|
||||
branch = main
|
||||
shallow = true
|
||||
[submodule "assets/syntaxes/02_Extra/TodoTxt"]
|
||||
path = assets/syntaxes/02_Extra/TodoTxt
|
||||
url = https://github.com/dertuxmalwieder/SublimeTodoTxt
|
||||
[submodule "assets/syntaxes/02_Extra/Ada"]
|
||||
path = assets/syntaxes/02_Extra/Ada
|
||||
url = https://github.com/wiremoons/ada-sublime-syntax
|
||||
|
||||
[submodule "assets/syntaxes/02_Extra/Crontab"]
|
||||
path = assets/syntaxes/02_Extra/Crontab
|
||||
url = https://github.com/michaelblyons/SublimeSyntax-Crontab
|
||||
[submodule "assets/syntaxes/02_Extra/NSIS"]
|
||||
path = assets/syntaxes/02_Extra/NSIS
|
||||
url = https://github.com/SublimeText/NSIS
|
||||
[submodule "assets/syntaxes/02_Extra/vscode-wgsl"]
|
||||
path = assets/syntaxes/02_Extra/vscode-wgsl
|
||||
url = https://github.com/PolyMeilex/vscode-wgsl.git
|
||||
[submodule "assets/syntaxes/02_Extra/CFML"]
|
||||
path = assets/syntaxes/02_Extra/CFML
|
||||
url = https://github.com/jcberquist/sublimetext-cfml.git
|
||||
[submodule "assets/syntaxes/02_Extra/Idris2"]
|
||||
path = assets/syntaxes/02_Extra/Idris2
|
||||
url = https://github.com/buzden/sublime-syntax-idris2
|
||||
[submodule "assets/syntaxes/02_Extra/GDScript-sublime"]
|
||||
path = assets/syntaxes/02_Extra/GDScript-sublime
|
||||
url = https://github.com/beefsack/GDScript-sublime
|
||||
[submodule "assets/syntaxes/02_Extra/sublime-odin"]
|
||||
path = assets/syntaxes/02_Extra/sublime-odin
|
||||
url = https://github.com/odin-lang/sublime-odin
|
||||
|
112
.travis.yml
112
.travis.yml
@ -1,112 +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.35.0
|
||||
env: TARGET=x86_64-unknown-linux-gnu
|
||||
- os: linux
|
||||
rust: 1.35.0
|
||||
env:
|
||||
- TARGET=x86_64-unknown-linux-musl
|
||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
||||
- os: osx
|
||||
rust: 1.35.0
|
||||
env: TARGET=x86_64-apple-darwin
|
||||
|
||||
# Code formatting check
|
||||
- os: linux
|
||||
rust: nightly
|
||||
# skip the global install step
|
||||
install:
|
||||
- cargo install --debug --force rustfmt-nightly
|
||||
script: cargo fmt -- --check
|
||||
|
||||
sudo: required
|
||||
|
||||
before_install:
|
||||
- ci/before_install.bash
|
||||
|
||||
env:
|
||||
global:
|
||||
# Default target on travis-ci.
|
||||
# Used as conditional check in the install stage
|
||||
- HOST=x86_64-unknown-linux-gnu
|
||||
# Used on the deployment script
|
||||
- PROJECT_NAME=bat
|
||||
|
||||
install:
|
||||
# prevent target re-add error from rustup
|
||||
- if [[ $TRAVIS_OS_NAME = linux && $HOST != $TARGET ]]; then rustup target add $TARGET; fi
|
||||
|
||||
script:
|
||||
- ci/script.bash
|
||||
|
||||
before_deploy:
|
||||
- bash ci/before_deploy.bash
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
# NOTE updating the `api_key.secure`
|
||||
# - go to: https://github.com/settings/tokens/new
|
||||
# - generate new token using `public_repo` scope
|
||||
# - encrypt it using: `travis encrypt API_KEY_HERE`
|
||||
# - paste the output below
|
||||
api_key:
|
||||
secure: "GZL8nYk+/MZGEqejpP0UMMGVmwUEdxiF9CflFIGccu+/tznDyHnHOpyJmbH3M5IKWIxa7xFgqOE8pHuD4oQXt4mzyJGB0KMKKEFLW7ckbTYKya5bw0heKznaqGnS0Yz+vpfqYR25eiPFYCz7mDsGsCzH5QZqt3cdn9MDQGu1D0IaxPjuBNH3T9kBblR0ifBd3Diy0JYhiVcMSI3V1rkel18F1yBHO2GQ95hkWxVgjANQnefq5+zdzbx4ki539ewYENShA8N0w6ULJVY9LmWRWJIp90ggOD3JCH6Nz/fBpYBqwfABO6Dr7Csw7IRm7pM4IVkFZS1taiDYFX9thxZh3UTmI4YYtSTPxH9NGV47kxPipbf4vAXFwW+1VcHKMpBzz+5IVsHnk1Pfx9/GZsXbqXM3PUWCStec36Xtqh5vQapDKEg9khkEs4b1X7/E73gvpRuQl9gbnyufSVWgDsXIWqM+0aDbqQz1FpLmVxz6eij0cB9vR+8kbNoe/CEPHPO9ZllvAHseukOeHPzSBd8rILORXaaGmQausXz2wWgSsffUSYz4705P8joI0zFCfmkHjL+kA1ZUx5SxLCc1ID7CFFZChhAxHoPL7xc21snswwr8QeheERdwvuzKNaerBGZEw8dmMMx98YkjftIj65DDySr2mRZuufBQeQpmMhFyIT4="
|
||||
# for uploading multiple files
|
||||
file_glob: true
|
||||
# NOTE explanation on each env variable
|
||||
# - PROJECT_NAME: name of the project, set on the `env.global` above
|
||||
# - TRAVIS_TAG: tag name that the build is being deployed for, usually the version number
|
||||
# - TARGET: target triple of the build
|
||||
file:
|
||||
- $PROJECT_NAME-$TRAVIS_TAG-$TARGET.*
|
||||
- $PROJECT_NAME*.deb
|
||||
# don't delete artifacts from previous stage
|
||||
skip_cleanup: true
|
||||
on:
|
||||
# deploy only if we push a tag
|
||||
tags: true
|
||||
# deploy only on stable channel that has TARGET env variable sets
|
||||
condition: $TRAVIS_RUST_VERSION = stable && $TARGET != ""
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: never
|
||||
|
||||
# Caching
|
||||
cache:
|
||||
directories:
|
||||
- /home/travis/.cargo
|
||||
before_cache:
|
||||
- rm -rf /home/travis/.cargo/registry
|
1257
CHANGELOG.md
Normal file
1257
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
91
CONTRIBUTING.md
Normal file
91
CONTRIBUTING.md
Normal file
@ -0,0 +1,91 @@
|
||||
# Contributing
|
||||
|
||||
Thank you for considering to contribute to `bat`!
|
||||
|
||||
|
||||
|
||||
## Add an entry to the changelog
|
||||
|
||||
Keeping the [`CHANGELOG.md`](CHANGELOG.md) file up-to-date makes the release
|
||||
process much easier and therefore helps to get your changes into a new `bat`
|
||||
release faster. However, not every change to the repository requires a
|
||||
changelog entry. Below are a few examples of that.
|
||||
|
||||
Please update the changelog if your contribution contains changes regarding
|
||||
any of the following:
|
||||
- the behavior of `bat`
|
||||
- syntax mappings
|
||||
- syntax definitions
|
||||
- themes
|
||||
- the build system, linting, or CI workflows
|
||||
|
||||
A changelog entry is not necessary when:
|
||||
- updating documentation
|
||||
- fixing typos
|
||||
|
||||
>[!NOTE]
|
||||
> For PRs, a CI workflow verifies that a suitable changelog entry is
|
||||
> added. If such an entry is missing, the workflow will fail. If your
|
||||
> changes do not need an entry to the changelog (see above), that
|
||||
> workflow failure can be disregarded.
|
||||
|
||||
|
||||
### Changelog entry format
|
||||
|
||||
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 must follow this format:
|
||||
```
|
||||
- Short description of what has been changed, see #123 (@user)
|
||||
```
|
||||
Please replace `#123` with the number of your pull request (not issue) and
|
||||
`@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 details and specifics of the potential new feature before you go and build it.
|
||||
|
||||
|
||||
## Adding new syntaxes/languages or themes
|
||||
|
||||
Before you make a pull request that adds a new syntax or theme, please read
|
||||
the [Customization](https://github.com/sharkdp/bat#customization) section
|
||||
in the README first.
|
||||
|
||||
If you really think that a particular syntax or theme should be added for all
|
||||
users, please read the corresponding
|
||||
[documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md)
|
||||
first.
|
||||
|
||||
|
||||
## Regression tests
|
||||
|
||||
You are **strongly encouraged** to add regression tests. Regression tests are great,
|
||||
not least because they:
|
||||
|
||||
* ensure that your contribution will never completely stop working.
|
||||
|
||||
* makes code reviews easier, because it becomes very clear what the code is
|
||||
supposed to do.
|
||||
|
||||
For functional changes, you most likely want to add a test to
|
||||
[`tests/integration_tests.rs`](https://github.com/sharkdp/bat/blob/master/tests/integration_tests.rs).
|
||||
Look at existing tests to know how to write a new test. In short, you will
|
||||
invoke the `bat` binary with a certain set of arguments, and then assert on
|
||||
stdout/stderr.
|
||||
|
||||
To learn how to write regression tests for theme and syntax changes, read the
|
||||
[Syntax
|
||||
tests](https://github.com/sharkdp/bat/blob/master/doc/assets.md#syntax-tests)
|
||||
section in `assets.md`.
|
2294
Cargo.lock
generated
2294
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
136
Cargo.toml
136
Cargo.toml
@ -1,56 +1,126 @@
|
||||
[package]
|
||||
authors = ["David Peter <mail@david-peter.de>"]
|
||||
categories = ["command-line-utilities"]
|
||||
description="A cat(1) clone with wings."
|
||||
description = "A cat(1) clone with wings."
|
||||
homepage = "https://github.com/sharkdp/bat"
|
||||
license = "MIT/Apache-2.0"
|
||||
license = "MIT OR Apache-2.0"
|
||||
name = "bat"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/sharkdp/bat"
|
||||
version = "0.12.0"
|
||||
exclude = [
|
||||
"assets/syntaxes/*",
|
||||
"assets/themes/*",
|
||||
version = "0.25.0"
|
||||
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
||||
build = "build/main.rs"
|
||||
edition = '2021'
|
||||
# You are free to bump MSRV as soon as a reason for bumping emerges.
|
||||
rust-version = "1.74"
|
||||
|
||||
[features]
|
||||
default = ["application"]
|
||||
# Feature required for bat the application. Should be disabled when depending on
|
||||
# bat as a library.
|
||||
application = [
|
||||
"bugreport",
|
||||
"build-assets",
|
||||
"git",
|
||||
"minimal-application",
|
||||
]
|
||||
build = "build.rs"
|
||||
edition = '2018'
|
||||
# Mainly for developers that want to iterate quickly
|
||||
# Be aware that the included features might change in the future
|
||||
minimal-application = [
|
||||
"clap",
|
||||
"etcetera",
|
||||
"paging",
|
||||
"regex-onig",
|
||||
"wild",
|
||||
]
|
||||
git = ["git2"] # Support indicating git modifications
|
||||
paging = ["shell-words", "grep-cli"] # Support applying a pager on the output
|
||||
lessopen = ["execute"] # Support $LESSOPEN preprocessor
|
||||
build-assets = ["syntect/yaml-load", "syntect/plist-load", "regex", "walkdir"]
|
||||
|
||||
# You need to use one of these if you depend on bat as a library:
|
||||
regex-onig = ["syntect/regex-onig"] # Use the "oniguruma" regex engine
|
||||
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
||||
|
||||
[dependencies]
|
||||
atty = "0.2.13"
|
||||
ansi_term = "0.12"
|
||||
ansi_colours = "^1.0"
|
||||
console = "0.8"
|
||||
dirs = "2.0"
|
||||
lazy_static = "1.4"
|
||||
wild = "2.0"
|
||||
nu-ansi-term = "0.50.0"
|
||||
ansi_colours = "^1.2"
|
||||
bincode = "1.0"
|
||||
console = "0.15.10"
|
||||
flate2 = "1.0"
|
||||
once_cell = "1.20"
|
||||
thiserror = "2.0"
|
||||
wild = { version = "2.2", optional = true }
|
||||
content_inspector = "0.2.4"
|
||||
encoding = "0.2"
|
||||
shell-words = "0.1.0"
|
||||
shell-words = { version = "1.1.0", optional = true }
|
||||
unicode-width = "0.1.13"
|
||||
globset = "0.4"
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
serde_yaml = "0.9.28"
|
||||
semver = "1.0"
|
||||
path_abs = { version = "0.5", default-features = false }
|
||||
clircle = { version = "0.6.1", default-features = false }
|
||||
bugreport = { version = "0.5.0", optional = true }
|
||||
etcetera = { version = "0.10.0", optional = true }
|
||||
grep-cli = { version = "0.1.11", optional = true }
|
||||
regex = { version = "1.10.6", optional = true }
|
||||
walkdir = { version = "2.5", optional = true }
|
||||
bytesize = { version = "1.3.0" }
|
||||
encoding_rs = "0.8.35"
|
||||
execute = { version = "0.2.13", optional = true }
|
||||
terminal-colorsaurus = "0.4"
|
||||
unicode-segmentation = "1.12.0"
|
||||
itertools = "0.13.0"
|
||||
|
||||
[dependencies.git2]
|
||||
version = "0.10"
|
||||
version = "0.20"
|
||||
optional = true
|
||||
default-features = false
|
||||
features = []
|
||||
|
||||
[dependencies.syntect]
|
||||
version = "3.2.1"
|
||||
version = "5.2.0"
|
||||
default-features = false
|
||||
features = ["parsing", "yaml-load", "dump-load", "dump-create"]
|
||||
features = ["parsing"]
|
||||
|
||||
[dependencies.clap]
|
||||
version = "2.33"
|
||||
default-features = false
|
||||
features = ["suggestions", "color", "wrap_help"]
|
||||
version = "4.4.12"
|
||||
optional = true
|
||||
features = ["wrap_help", "cargo"]
|
||||
|
||||
[dependencies.error-chain]
|
||||
version = "0.12"
|
||||
default-features = false
|
||||
features = []
|
||||
[target.'cfg(target_os = "macos")'.dependencies]
|
||||
home = "0.5.9"
|
||||
plist = "1.7.0"
|
||||
|
||||
[dev-dependencies]
|
||||
tempdir = "0.3"
|
||||
assert_cmd = "0.11.1"
|
||||
escargot = "0.5.0"
|
||||
assert_cmd = "2.0.12"
|
||||
expect-test = "1.5.0"
|
||||
serial_test = { version = "2.0.0", default-features = false }
|
||||
predicates = "3.1.3"
|
||||
wait-timeout = "0.2.0"
|
||||
tempfile = "3.16.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
|
||||
[target.'cfg(unix)'.dev-dependencies]
|
||||
nix = { version = "0.29", default-features = false, features = ["term"] }
|
||||
|
||||
[build-dependencies]
|
||||
clap = "2.33"
|
||||
anyhow = "1.0.97"
|
||||
indexmap = { version = "2.8.0", features = ["serde"] }
|
||||
itertools = "0.14.0"
|
||||
once_cell = "1.20"
|
||||
regex = "1.10.6"
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
serde_with = { version = "3.12.0", default-features = false, features = ["macros"] }
|
||||
toml = { version = "0.8.19", features = ["preserve_order"] }
|
||||
walkdir = "2.5"
|
||||
|
||||
[build-dependencies.clap]
|
||||
version = "4.4.12"
|
||||
optional = true
|
||||
features = ["wrap_help", "cargo"]
|
||||
|
||||
[profile.release]
|
||||
lto = true
|
||||
strip = true
|
||||
codegen-units = 1
|
||||
|
@ -1,4 +1,4 @@
|
||||
Copyright (c) 2018 bat-developers (https://github.com/sharkdp/bat).
|
||||
Copyright (c) 2018-2023 bat-developers (https://github.com/sharkdp/bat).
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
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.
|
580
README.md
580
README.md
@ -1,7 +1,6 @@
|
||||
<p align="center">
|
||||
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
||||
<a href="https://travis-ci.org/sharkdp/bat"><img src="https://travis-ci.org/sharkdp/bat.svg?branch=master" alt="Build Status"></a>
|
||||
<a href="https://ci.appveyor.com/project/sharkdp/bat"><img src="https://ci.appveyor.com/api/projects/status/cptsmtbiwbnr2vhf?svg=true"></a>
|
||||
<a href="https://github.com/sharkdp/bat/actions?query=workflow%3ACICD"><img src="https://github.com/sharkdp/bat/workflows/CICD/badge.svg" alt="Build Status"></a>
|
||||
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
||||
<a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
|
||||
A <i>cat(1)</i> clone with syntax highlighting and Git integration.
|
||||
@ -12,10 +11,26 @@
|
||||
<a href="#how-to-use">How To Use</a> •
|
||||
<a href="#installation">Installation</a> •
|
||||
<a href="#customization">Customization</a> •
|
||||
<a href="#project-goals-and-alternatives">Project goals, alternatives</a> •
|
||||
Translation [<a href="https://github.com/chinanf-boy/bat-zh">中文</a>][<a href="doc/README-ja.md">日本文</a>]
|
||||
<a href="#project-goals-and-alternatives">Project goals, alternatives</a><br>
|
||||
[English]
|
||||
[<a href="doc/README-zh.md">中文</a>]
|
||||
[<a href="doc/README-ja.md">日本語</a>]
|
||||
[<a href="doc/README-ko.md">한국어</a>]
|
||||
[<a href="doc/README-ru.md">Русский</a>]
|
||||
</p>
|
||||
|
||||
### Sponsors
|
||||
|
||||
A special *thank you* goes to our biggest <a href="doc/sponsors.md">sponsor</a>:<br>
|
||||
|
||||
<a href="https://www.warp.dev/bat">
|
||||
<img src="doc/sponsors/warp-logo.png" width="200" alt="Warp">
|
||||
<br>
|
||||
<strong>Warp, the intelligent terminal</strong>
|
||||
<br>
|
||||
<sub>Available on MacOS, Linux, Windows</sub>
|
||||
</a>
|
||||
|
||||
### Syntax highlighting
|
||||
|
||||
`bat` supports syntax highlighting for a large number of programming and markup
|
||||
@ -39,14 +54,14 @@ characters:
|
||||
|
||||
### Automatic paging
|
||||
|
||||
`bat` can pipe its own output to `less` if the output is too large for one screen.
|
||||
By default, `bat` pipes its own output to a pager (e.g. `less`) if the output is too large for one screen.
|
||||
If you would rather `bat` work like `cat` all the time (never page output), you can set `--paging=never` as an option, either on the command line or in your configuration file.
|
||||
If you intend to alias `cat` to `bat` in your shell configuration, you can use `alias cat='bat --paging=never'` to preserve the default behavior.
|
||||
|
||||
### File concatenation
|
||||
#### File concatenation
|
||||
|
||||
Oh.. you can also use it to concatenate files :wink:. Whenever
|
||||
`bat` detects a non-interactive terminal (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.
|
||||
Even with a pager set, you can still use `bat` to concatenate files :wink:.
|
||||
Whenever `bat` detects a non-interactive terminal (i.e. when you pipe into another process or into a file), `bat` will act as a drop-in replacement for `cat` and fall back to printing the plain file contents, regardless of the `--pager` option's value.
|
||||
|
||||
## How to use
|
||||
|
||||
@ -62,7 +77,9 @@ Display multiple files at once
|
||||
> 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
|
||||
> curl -s https://sh.rustup.rs | bat
|
||||
@ -93,35 +110,73 @@ bat f - g # output 'f', then stdin, then 'g'.
|
||||
|
||||
### Integration with other tools
|
||||
|
||||
#### `fzf`
|
||||
|
||||
You can use `bat` as a previewer for [`fzf`](https://github.com/junegunn/fzf). To do this,
|
||||
use `bat`s `--color=always` option to force colorized output. You can also use `--line-range`
|
||||
option to restrict the load times for long files:
|
||||
|
||||
```bash
|
||||
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
|
||||
```
|
||||
|
||||
For more information, see [`fzf`'s `README`](https://github.com/junegunn/fzf#preview-window).
|
||||
|
||||
#### `find` or `fd`
|
||||
|
||||
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
||||
|
||||
```bash
|
||||
find … -exec bat {} +
|
||||
```
|
||||
|
||||
If you happen to use [`fd`](https://github.com/sharkdp/fd), you can use the `-X`/`--exec-batch` option to do the same:
|
||||
|
||||
```bash
|
||||
fd … -X bat
|
||||
```
|
||||
|
||||
#### `ripgrep`
|
||||
|
||||
With [`batgrep`](https://github.com/eth-p/bat-extras/blob/master/doc/batgrep.md), `bat` can be used as the printer for [`ripgrep`](https://github.com/BurntSushi/ripgrep) search results.
|
||||
|
||||
```bash
|
||||
batgrep needle src/
|
||||
```
|
||||
|
||||
#### `tail -f`
|
||||
|
||||
`bat` can be combined with `tail -f` to continuously monitor a given file with syntax highlighting.
|
||||
|
||||
```bash
|
||||
tail -f /var/log/pacman.log | bat --paging=never -l log
|
||||
```
|
||||
|
||||
Note that we have to switch off paging in order for this to work. We have also specified the syntax
|
||||
explicitly (`-l log`), as it can not be auto-detected in this case.
|
||||
|
||||
#### `git show`
|
||||
#### `git`
|
||||
|
||||
You can combine `bat` with `git show` to view an older version of a given file with proper syntax
|
||||
highlighting:
|
||||
|
||||
```bash
|
||||
git show v0.6.0:src/main.rs | bat -l rs
|
||||
```
|
||||
|
||||
#### `git diff`
|
||||
|
||||
You can combine `bat` with `git diff` to view lines around code changes with proper syntax
|
||||
highlighting:
|
||||
```bash
|
||||
batdiff() {
|
||||
git diff --name-only --relative --diff-filter=d | xargs bat --diff
|
||||
}
|
||||
```
|
||||
If you prefer to use this as a separate tool, check out `batdiff` in [`bat-extras`](https://github.com/eth-p/bat-extras).
|
||||
|
||||
If you are looking for more support for git and diff operations, check out [`delta`](https://github.com/dandavison/delta).
|
||||
|
||||
#### `xclip`
|
||||
|
||||
The line numbers and Git modification markers in the output of `bat` can make it hard to copy
|
||||
@ -134,24 +189,102 @@ bat main.cpp | xclip
|
||||
|
||||
#### `man`
|
||||
|
||||
`bat` can be used as a pager for `man`. It can be used like this:
|
||||
```
|
||||
export MANPAGER="sh -c 'col -b | bat -l man -p'"
|
||||
`bat` can be used as a colorizing pager for `man`, by setting the
|
||||
`MANPAGER` environment variable:
|
||||
|
||||
```bash
|
||||
export MANPAGER="sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat -p -lman'"
|
||||
man 2 select
|
||||
```
|
||||
(replace `bat` with `batcat` if you are on Debian or Ubuntu)
|
||||
|
||||
If you prefer to have this bundled in a new command, you can also use [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md).
|
||||
|
||||
> [!WARNING]
|
||||
> This will [not work](https://github.com/sharkdp/bat/issues/1145) out of the box with Mandoc's `man` implementation.
|
||||
>
|
||||
> Please either use `batman`, or convert the shell script to a [shebang executable](https://en.wikipedia.org/wiki/Shebang_(Unix)) and point `MANPAGER` to that.
|
||||
|
||||
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
||||
|
||||
#### `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`.
|
||||
|
||||
#### `Warp`
|
||||
|
||||
<a href="https://app.warp.dev/drive/folder/-Bat-Warp-Pack-lxhe7HrEwgwpG17mvrFSz1">
|
||||
<img src="doc/sponsors/warp-pack-header.png" alt="Warp">
|
||||
</a>
|
||||
|
||||
#### Highlighting `--help` messages
|
||||
|
||||
You can use `bat` to colorize help text: `$ cp --help | bat -plhelp`
|
||||
|
||||
You can also use a wrapper around this:
|
||||
|
||||
```bash
|
||||
# in your .bashrc/.zshrc/*rc
|
||||
alias bathelp='bat --plain --language=help'
|
||||
help() {
|
||||
"$@" --help 2>&1 | bathelp
|
||||
}
|
||||
```
|
||||
|
||||
Then you can do `$ help cp` or `$ help git commit`.
|
||||
|
||||
When you are using `zsh`, you can also use global aliases to override `-h` and `--help` entirely:
|
||||
|
||||
```bash
|
||||
alias -g -- -h='-h 2>&1 | bat --language=help --style=plain'
|
||||
alias -g -- --help='--help 2>&1 | bat --language=help --style=plain'
|
||||
```
|
||||
|
||||
For `fish`, you can use abbreviations:
|
||||
|
||||
```fish
|
||||
abbr -a --position anywhere -- --help '--help | bat -plhelp'
|
||||
abbr -a --position anywhere -- -h '-h | bat -plhelp'
|
||||
```
|
||||
|
||||
This way, you can keep on using `cp --help`, but get colorized help pages.
|
||||
|
||||
Be aware that in some cases, `-h` may not be a shorthand of `--help` (for example with `ls`).
|
||||
|
||||
Please report any issues with the help syntax in [this repository](https://github.com/victor-gp/cmd-help-sublime-syntax).
|
||||
|
||||
The [Manpage syntax](assets/syntaxes/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
||||
|
||||
## Installation
|
||||
|
||||
### On Ubuntu
|
||||
[](https://repology.org/project/bat-cat/versions)
|
||||
|
||||
### On Ubuntu (using `apt`)
|
||||
*... and other Debian-based Linux distributions.*
|
||||
|
||||
Download the latest `.deb` package from the [release page](https://github.com/sharkdp/bat/releases)
|
||||
and install it via:
|
||||
`bat` is available on [Ubuntu since 20.04 ("Focal")](https://packages.ubuntu.com/search?keywords=bat&exact=1) and [Debian since August 2021 (Debian 11 - "Bullseye")](https://packages.debian.org/bullseye/bat).
|
||||
|
||||
If your Ubuntu/Debian installation is new enough you can simply run:
|
||||
|
||||
```bash
|
||||
sudo apt install bat
|
||||
```
|
||||
|
||||
**Important**: If you install `bat` this way, please note that the executable may be installed as `batcat` instead of `bat` (due to [a name
|
||||
clash with another package](https://github.com/sharkdp/bat/issues/982)). You can set up a `bat -> batcat` symlink or alias to prevent any issues that may come up because of this and to be consistent with other distributions:
|
||||
``` bash
|
||||
sudo dpkg -i bat_0.12.0_amd64.deb # adapt version number and architecture
|
||||
mkdir -p ~/.local/bin
|
||||
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||
```
|
||||
|
||||
### On Ubuntu (using most recent `.deb` packages)
|
||||
*... and other Debian-based Linux distributions.*
|
||||
|
||||
If the package has not yet been promoted to your Ubuntu/Debian installation, or you want
|
||||
the most recent release of `bat`, download the latest `.deb` package from the
|
||||
[release page](https://github.com/sharkdp/bat/releases) and install it via:
|
||||
|
||||
```bash
|
||||
sudo dpkg -i bat_0.18.3_amd64.deb # adapt version number and architecture
|
||||
```
|
||||
|
||||
### On Alpine Linux
|
||||
@ -165,7 +298,7 @@ apk add bat
|
||||
|
||||
### On Arch Linux
|
||||
|
||||
You can install [the `bat` package](https://www.archlinux.org/packages/community/x86_64/bat/)
|
||||
You can install [the `bat` package](https://www.archlinux.org/packages/extra/x86_64/bat/)
|
||||
from the official sources:
|
||||
|
||||
```bash
|
||||
@ -180,6 +313,14 @@ You can install [the `bat` package](https://koji.fedoraproject.org/koji/packagei
|
||||
dnf install bat
|
||||
```
|
||||
|
||||
### On Funtoo Linux
|
||||
|
||||
You can install [the `bat` package](https://github.com/funtoo/dev-kit/tree/1.4-release/sys-apps/bat) from dev-kit.
|
||||
|
||||
```bash
|
||||
emerge sys-apps/bat
|
||||
```
|
||||
|
||||
### On Gentoo Linux
|
||||
|
||||
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
||||
@ -192,10 +333,17 @@ emerge sys-apps/bat
|
||||
### On Void Linux
|
||||
|
||||
You can install `bat` via xbps-install:
|
||||
```
|
||||
```bash
|
||||
xbps-install -S bat
|
||||
```
|
||||
|
||||
### On Termux
|
||||
|
||||
You can install `bat` via pkg:
|
||||
```bash
|
||||
pkg install bat
|
||||
```
|
||||
|
||||
### On FreeBSD
|
||||
|
||||
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
||||
@ -211,6 +359,14 @@ cd /usr/ports/textproc/bat
|
||||
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
|
||||
|
||||
You can install `bat` using the [nix package manager](https://nixos.org/nix):
|
||||
@ -219,72 +375,79 @@ You can install `bat` using the [nix package manager](https://nixos.org/nix):
|
||||
nix-env -i bat
|
||||
```
|
||||
|
||||
### Via flox
|
||||
|
||||
You can install `bat` using [Flox](https://flox.dev)
|
||||
|
||||
```bash
|
||||
flox install bat
|
||||
```
|
||||
|
||||
### On openSUSE
|
||||
|
||||
You can install `bat` with zypper:
|
||||
|
||||
```
|
||||
```bash
|
||||
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](https://formulae.brew.sh/formula/bat):
|
||||
|
||||
```bash
|
||||
brew install bat
|
||||
```
|
||||
|
||||
### On Windows
|
||||
### On macOS via MacPorts
|
||||
|
||||
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
||||
or install it with [scoop](https://scoop.sh/) or [Chocolatey](https://chocolatey.org):
|
||||
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
||||
|
||||
```bash
|
||||
scoop install bat
|
||||
port install bat
|
||||
```
|
||||
|
||||
### On Windows
|
||||
|
||||
There are a few options to install `bat` on Windows. Once you have installed `bat`,
|
||||
take a look at the ["Using `bat` on Windows"](#using-bat-on-windows) section.
|
||||
|
||||
#### Prerequisites
|
||||
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
#### With WinGet
|
||||
|
||||
You can install `bat` via [WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget):
|
||||
|
||||
```bash
|
||||
winget install sharkdp.bat
|
||||
```
|
||||
|
||||
#### With Chocolatey
|
||||
|
||||
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
||||
```bash
|
||||
choco install bat
|
||||
```
|
||||
|
||||
[See below](#using-bat-on-windows) for notes.
|
||||
#### With Scoop
|
||||
|
||||
### Via Docker
|
||||
|
||||
There is a [Docker image](https://hub.docker.com/r/danlynn/bat/) that you can use to run `bat` in a container:
|
||||
You can install `bat` via [scoop](https://scoop.sh/):
|
||||
```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'
|
||||
scoop install bat
|
||||
```
|
||||
|
||||
### Via Ansible
|
||||
#### From prebuilt binaries:
|
||||
|
||||
You can install `bat` with [Ansible](https://www.ansible.com/):
|
||||
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
||||
|
||||
```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
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
### From binaries
|
||||
|
||||
@ -294,15 +457,21 @@ binaries are also available: look for archives with `musl` in the file name.
|
||||
|
||||
### From source
|
||||
|
||||
If you want to build `bat` from source, you need Rust 1.35 or
|
||||
If you want to build `bat` from source, you need Rust 1.74.0 or
|
||||
higher. You can then use `cargo` to build everything:
|
||||
|
||||
```bash
|
||||
cargo install bat
|
||||
cargo install --locked bat
|
||||
```
|
||||
|
||||
You may have to install `cmake` and the `libz` development package
|
||||
(`libz-dev` or `libz-devel`) in order for the build to succeed.
|
||||
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`).
|
||||
|
||||
Shell completions are also available by running:
|
||||
```bash
|
||||
bat --completion <shell>
|
||||
# see --help for supported shells
|
||||
```
|
||||
|
||||
## Customization
|
||||
|
||||
@ -317,15 +486,37 @@ make the change permanent. Alternatively, use `bat`s
|
||||
|
||||
If you want to preview the different themes on a custom file, you can use
|
||||
the following command (you need [`fzf`](https://github.com/junegunn/fzf) for this):
|
||||
``` bash
|
||||
```bash
|
||||
bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"
|
||||
```
|
||||
|
||||
`bat` looks good on a dark background by default. However, if your terminal uses a
|
||||
light background, some themes like `GitHub` or `OneHalfLight` will work better for you.
|
||||
`bat` automatically picks a fitting theme depending on your terminal's background color.
|
||||
You can use the `--theme-dark` / `--theme-light` options or the `BAT_THEME_DARK` / `BAT_THEME_LIGHT` environment variables
|
||||
to customize the themes used. This is especially useful if you frequently switch between dark and light mode.
|
||||
|
||||
You can also use a custom theme by following the
|
||||
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
||||
|
||||
### 8-bit themes
|
||||
|
||||
`bat` has three themes that always use [8-bit colors](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors),
|
||||
even when truecolor support is available:
|
||||
|
||||
- `ansi` looks decent on any terminal. It uses 3-bit colors: black, red, green,
|
||||
yellow, blue, magenta, cyan, and white.
|
||||
- `base16` is designed for [base16](https://github.com/chriskempson/base16) terminal themes. It uses
|
||||
4-bit colors (3-bit colors plus bright variants) in accordance with the
|
||||
[base16 styling guidelines](https://github.com/chriskempson/base16/blob/master/styling.md).
|
||||
- `base16-256` is designed for [base16-shell](https://github.com/chriskempson/base16-shell).
|
||||
It replaces certain bright colors with 8-bit colors from 16 to 21. **Do not** use this simply
|
||||
because you have a 256-color terminal but are not using base16-shell.
|
||||
|
||||
Although these themes are more restricted, they have three advantages over truecolor themes. They:
|
||||
|
||||
- Enjoy maximum compatibility. Some terminal utilities do not support more than 3-bit colors.
|
||||
- Adapt to terminal theme changes. Even for already printed output.
|
||||
- Visually harmonize better with other terminal software.
|
||||
|
||||
### Output style
|
||||
|
||||
You can use the `--style` option to control the appearance of `bat`s output.
|
||||
@ -334,37 +525,57 @@ and line numbers but no grid and no file header. Set the `BAT_STYLE` environment
|
||||
variable to make these changes permanent or use `bat`s
|
||||
[configuration file](https://github.com/sharkdp/bat#configuration-file).
|
||||
|
||||
>[!tip]
|
||||
> If you specify a default style in `bat`'s config file, you can change which components
|
||||
> are displayed during a single run of `bat` using the `--style` command-line argument.
|
||||
> By prefixing a component with `+` or `-`, it can be added or removed from the current style.
|
||||
>
|
||||
> For example, if your config contains `--style=full,-snip`, you can run bat with
|
||||
> `--style=-grid,+snip` to remove the grid and add back the `snip` component.
|
||||
> Or, if you want to override the styles completely, you use `--style=numbers` to
|
||||
> only show the line numbers.
|
||||
|
||||
### Adding new syntaxes / language definitions
|
||||
|
||||
Should you find that a particular syntax is not available within `bat`, you can follow these
|
||||
instructions to easily add new syntaxes to your current `bat` installation.
|
||||
|
||||
`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/)
|
||||
library for syntax highlighting. `syntect` can read any
|
||||
[Sublime Text `.sublime-syntax` file](https://www.sublimetext.com/docs/3/syntax.html)
|
||||
and theme. To add new syntax definitions, do the following.
|
||||
and theme.
|
||||
|
||||
Create a folder with syntax definition files:
|
||||
A good resource for finding Sublime Syntax packages is [Package Control](https://packagecontrol.io/). Once you found a
|
||||
syntax:
|
||||
|
||||
```bash
|
||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||
cd "$(bat --config-dir)/syntaxes"
|
||||
1. Create a folder with syntax definition files:
|
||||
|
||||
# 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
|
||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||
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
|
||||
bat cache --build
|
||||
```
|
||||
2. Now use the following command to parse these files into a binary cache:
|
||||
|
||||
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
|
||||
bat cache --clear
|
||||
```
|
||||
If you ever want to go back to the default settings, call:
|
||||
|
||||
```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
|
||||
|
||||
@ -384,6 +595,34 @@ bat cache --build
|
||||
|
||||
Finally, use `bat --list-themes` to check if the new themes are available.
|
||||
|
||||
### Adding or changing file type associations
|
||||
|
||||
You can add new (or change existing) file name patterns using the `--map-syntax`
|
||||
command line option. The option takes an argument of the form `pattern:syntax` where
|
||||
`pattern` is a glob pattern that is matched against the file name and
|
||||
the absolute file path. The `syntax` part is the full name of a supported language
|
||||
(use `bat --list-languages` for an overview).
|
||||
|
||||
**Note:** You probably want to use this option as [an entry in `bat`'s configuration file](#configuration-file)
|
||||
for persistence instead of passing it on the command line as a one-off. Generally
|
||||
you'd just use `-l` if you want to manually specify a language for a file.
|
||||
|
||||
Example: To use "INI" syntax highlighting for all files with a `.conf` file extension, use
|
||||
```bash
|
||||
--map-syntax='*.conf:INI'
|
||||
```
|
||||
|
||||
Example: To open all files called `.ignore` (exact match) with the "Git Ignore" syntax, use:
|
||||
```bash
|
||||
--map-syntax='.ignore:Git Ignore'
|
||||
```
|
||||
|
||||
Example: To open all `.conf` files in subfolders of `/etc/apache2` with the "Apache Conf"
|
||||
syntax, use (this mapping is already built in):
|
||||
```bash
|
||||
--map-syntax='/etc/apache2/**/*.conf:Apache Conf'
|
||||
```
|
||||
|
||||
### Using a different pager
|
||||
|
||||
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
||||
@ -391,6 +630,9 @@ 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`.
|
||||
|
||||
>[!NOTE]
|
||||
> If `PAGER` is `more` or `most`, `bat` will silently use `less` instead to ensure support for colors.
|
||||
|
||||
If you want to pass command-line arguments to the pager, you can also set them via the
|
||||
`PAGER`/`BAT_PAGER` variables:
|
||||
|
||||
@ -400,34 +642,83 @@ export BAT_PAGER="less -RF"
|
||||
|
||||
Instead of using environment variables, you can also use `bat`s [configuration file](https://github.com/sharkdp/bat#configuration-file) to configure the pager (`--pager` option).
|
||||
|
||||
**Note**: By default, if the pager is set to `less` (and no command-line options are specified),
|
||||
`bat` will pass the following command line
|
||||
options to the pager: `-R`/`--RAW-CONTROL-CHARS`, `-F`/`--quit-if-one-screen` and `-X`/`--no-init`.
|
||||
The first (`-R`) 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, you can either pass just `-R` (as in the example above, this will disable
|
||||
the quit-if-one-screen feature), or you can use a recent version of `less` and pass `-RF` which
|
||||
will hopefully enable both quit-if-one-screen and mouse-wheel scrolling.
|
||||
|
||||
If scrolling still doesn't work for you, you can try to pass the `-S` option in addition.
|
||||
### Using `less` as a pager
|
||||
|
||||
When using `less` as a pager, `bat` will automatically pass extra options along to `less`
|
||||
to improve the experience. Specifically, `-R`/`--RAW-CONTROL-CHARS`, `-F`/`--quit-if-one-screen`,
|
||||
and under certain conditions, `-X`/`--no-init` and/or `-S`/`--chop-long-lines`.
|
||||
|
||||
>[!IMPORTANT]
|
||||
> These options will not be added if:
|
||||
> - The pager is not named `less`.
|
||||
> - The `--pager` argument contains any command-line arguments (e.g. `--pager="less -R"`).
|
||||
> - The `BAT_PAGER` environment variable contains any command-line arguments (e.g. `export BAT_PAGER="less -R"`)
|
||||
>
|
||||
> The `--quit-if-one-screen` option will not be added when:
|
||||
> - The `--paging=always` argument is used.
|
||||
> - The `BAT_PAGING` environment is set to `always`.
|
||||
|
||||
The `-R` option is needed to interpret ANSI colors correctly.
|
||||
|
||||
The `-F` option 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 `-X` option is needed to fix a bug with the `--quit-if-one-screen` feature in versions
|
||||
of `less` older than version 530. Unfortunately, it also breaks mouse-wheel support in `less`.
|
||||
If you want to enable mouse-wheel scrolling on older versions of `less` and do not mind losing
|
||||
the quit-if-one-screen feature, you can set the pager (via `--pager` or `BAT_PAGER`) to `less -R`.
|
||||
For `less` 530 or newer, it should work out of the box.
|
||||
|
||||
The `-S` option is added when `bat`'s `-S`/`--chop-long-lines` option is used. This tells `less`
|
||||
to truncate any lines larger than the terminal width.
|
||||
|
||||
### Indentation
|
||||
|
||||
`bat` expands tabs to 4 spaces by itself, not relying on the pager. To change this, simply add the
|
||||
`--tabs` argument with the number of spaces you want to be displayed.
|
||||
|
||||
**Note**: Defining tab stops for the pager (via the `--pager` argument by `bat`, or via the `LESS`
|
||||
environment variable for `less`) won't be taken into account because the pager will already get
|
||||
expanded spaces instead of tabs. This behaviour is added to avoid indentation issues caused by the
|
||||
sidebar. Calling `bat` with `--tabs=0` will override it and let tabs be consumed by the pager.
|
||||
|
||||
### Dark mode
|
||||
|
||||
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
||||
theme based on the OS theme. The following snippet uses the `default` theme when in the _dark mode_
|
||||
and the `GitHub` theme when in the _light mode_.
|
||||
|
||||
```bash
|
||||
alias cat="bat --theme auto:system --theme-dark default --theme-light GitHub"
|
||||
```
|
||||
|
||||
|
||||
## Configuration file
|
||||
|
||||
`bat` can also be customized with a configuration file. The location of the file is dependent
|
||||
on your operating system. To get the default path for your system, call
|
||||
```
|
||||
```bash
|
||||
bat --config-file
|
||||
```
|
||||
|
||||
Alternatively, you can use the `BAT_CONFIG_PATH` environment variable to point `bat` to a
|
||||
non-default location of the configuration file:
|
||||
Alternatively, you can use `BAT_CONFIG_PATH` or `BAT_CONFIG_DIR` environment variables to point `bat`
|
||||
to a non-default location of the configuration file or the configuration directory respectively:
|
||||
```bash
|
||||
export BAT_CONFIG_PATH="/path/to/bat.conf"
|
||||
export BAT_CONFIG_PATH="/path/to/bat/bat.conf"
|
||||
export BAT_CONFIG_DIR="/path/to/bat"
|
||||
```
|
||||
|
||||
A default configuration file can be created with the `--generate-config-file` option.
|
||||
```bash
|
||||
bat --generate-config-file
|
||||
```
|
||||
|
||||
There is also now a systemwide configuration file, which is located under `/etc/bat/config` on
|
||||
Linux and Mac OS and `C:\ProgramData\bat\config` on windows. If the system wide configuration
|
||||
file is present, the content of the user configuration will simply be appended to it.
|
||||
|
||||
### Format
|
||||
|
||||
The configuration file is a simple list of command line arguments. Use `bat --help` to see a full list of possible options and values. In addition, you can add comments by prepending a line with the `#` character.
|
||||
@ -443,21 +734,18 @@ Example configuration file:
|
||||
# Use italic text on the terminal (not supported on all terminals)
|
||||
--italic-text=always
|
||||
|
||||
# Add mouse scrolling support in less (does not work with older
|
||||
# versions of "less")
|
||||
--pager="less -FR"
|
||||
|
||||
# Use C++ syntax (instead of C) for .h header files
|
||||
--map-syntax h:cpp
|
||||
|
||||
# Use "gitignore" highlighting for ".ignore" files
|
||||
--map-syntax .ignore:.gitignore
|
||||
# Use C++ syntax for Arduino .ino files
|
||||
--map-syntax "*.ino:C++"
|
||||
```
|
||||
|
||||
## Using `bat` on Windows
|
||||
|
||||
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||
|
||||
### Paging
|
||||
|
||||
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
||||
@ -470,11 +758,9 @@ your `PATH` or [define an environment variable](#using-a-different-pager). The [
|
||||
Windows 10 natively supports colors in both `conhost.exe` (Command Prompt) and PowerShell since
|
||||
[v1511](https://en.wikipedia.org/wiki/Windows_10_version_history#Version_1511_(November_Update)), as
|
||||
well as in newer versions of bash. On earlier versions of Windows, you can use
|
||||
[Cmder](http://cmder.net/), which includes [ConEmu](https://conemu.github.io/).
|
||||
[Cmder](http://cmder.app/), which includes [ConEmu](https://conemu.github.io/).
|
||||
|
||||
**Note:** The Git and MSYS versions of `less` do not correctly interpret colors on Windows. If you
|
||||
don’t have any other pagers installed, you can disable paging entirely by passing `--paging=never`
|
||||
or by setting `BAT_PAGER` to an empty string.
|
||||
**Note:** Old versions of `less` do not correctly interpret colors on Windows. To fix this, you can add the optional Unix tools to your PATH when installing Git. If you don’t have any other pagers installed, you can disable paging entirely by passing `--paging=never` or by setting `BAT_PAGER` to an empty string.
|
||||
|
||||
### Cygwin
|
||||
|
||||
@ -482,7 +768,7 @@ or by setting `BAT_PAGER` to an empty string.
|
||||
|
||||
This can be solved by creating a wrapper or adding the following function to your `.bash_profile` file:
|
||||
|
||||
```shell
|
||||
```bash
|
||||
bat() {
|
||||
local index
|
||||
local args=("$@")
|
||||
@ -498,11 +784,24 @@ bat() {
|
||||
|
||||
## 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.
|
||||
|
||||
If your version of `bat` supports the `--strip-ansi=auto` option, it can be used to remove such sequences
|
||||
before syntax highlighting. Alternatively, you may disable both syntax highlighting and wrapping by
|
||||
passing the `--color=never --wrap=never` options to `bat`.
|
||||
|
||||
> [!NOTE]
|
||||
> The `auto` option of `--strip-ansi` avoids removing escape sequences when the syntax is plain text.
|
||||
|
||||
### Terminals & colors
|
||||
|
||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in the syntax
|
||||
highlighting themes are not optimized for 8-bit colors and it is therefore strongly recommended
|
||||
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...).
|
||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
||||
highlighting themes are not optimized for 8-bit colors. It is therefore strongly recommended
|
||||
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...),
|
||||
or use one of the basic [8-bit themes](#8-bit-themes) designed for a restricted set of colors.
|
||||
See [this article](https://gist.github.com/XVilka/8346728) for more details and a full list of
|
||||
terminals with truecolor support.
|
||||
|
||||
@ -515,6 +814,18 @@ are supported (and fall back to 8-bit colors).
|
||||
Please try a different theme (see `bat --list-themes` for a list). The `OneHalfDark` and
|
||||
`OneHalfLight` themes provide grid and line colors that are brighter.
|
||||
|
||||
### File encodings
|
||||
|
||||
`bat` natively supports UTF-8 as well as UTF-16. For every other file encoding, you may need to
|
||||
convert to UTF-8 first because the encodings can typically not be auto-detected. You can `iconv`
|
||||
to do so.
|
||||
Example: if you have a PHP file in Latin-1 (ISO-8859-1) encoding, you can call:
|
||||
``` bash
|
||||
iconv -f ISO-8859-1 -t UTF-8 my-file.php | bat
|
||||
```
|
||||
Note: you might have to use the `-l`/`--language` option if the syntax can not be auto-detected
|
||||
by `bat`.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
@ -523,19 +834,39 @@ git clone --recursive https://github.com/sharkdp/bat
|
||||
|
||||
# Build (debug version)
|
||||
cd bat
|
||||
cargo build
|
||||
cargo build --bins
|
||||
|
||||
# Run unit tests and integration tests
|
||||
cargo test
|
||||
|
||||
# Install (release version)
|
||||
cargo install
|
||||
cargo install --path . --locked
|
||||
|
||||
# Build a bat binary with modified syntaxes and themes
|
||||
bash assets/create.sh
|
||||
cargo install -f
|
||||
cargo install --path . --locked --force
|
||||
```
|
||||
|
||||
If you want to build an application that uses `bat`s pretty-printing
|
||||
features as a library, check out the [the API documentation](https://docs.rs/bat/).
|
||||
Note that you have to use either `regex-onig` or `regex-fancy` as a feature
|
||||
when you depend on `bat` as a library.
|
||||
|
||||
## Contributing
|
||||
|
||||
Take a look at the [`CONTRIBUTING.md`](CONTRIBUTING.md) guide.
|
||||
|
||||
## Maintainers
|
||||
|
||||
- [sharkdp](https://github.com/sharkdp)
|
||||
- [eth-p](https://github.com/eth-p)
|
||||
- [keith-hall](https://github.com/keith-hall)
|
||||
- [Enselic](https://github.com/Enselic)
|
||||
|
||||
## Security vulnerabilities
|
||||
|
||||
Please contact [David Peter](https://david-peter.de/) via email if you want to report a vulnerability in `bat`.
|
||||
|
||||
## Project goals and alternatives
|
||||
|
||||
`bat` tries to achieve the following goals:
|
||||
@ -547,3 +878,10 @@ cargo install -f
|
||||
|
||||
There are a lot of alternatives, if you are looking for similar programs. See
|
||||
[this document](doc/alternatives.md) for a comparison.
|
||||
|
||||
## License
|
||||
Copyright (c) 2018-2023 [bat-developers](https://github.com/sharkdp/bat).
|
||||
|
||||
`bat` is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
|
||||
|
||||
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.
|
||||
|
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%
|
||||
- set PATH=%PATH%;C:\cargo\bin
|
||||
- rustc -Vv
|
||||
- cargo -V
|
||||
|
||||
build: false
|
||||
test_script:
|
||||
- cargo test --target %TARGET% --verbose
|
||||
- cargo run --target %TARGET% -- src/main.rs README.md --paging=never
|
||||
|
||||
before_deploy:
|
||||
# Generate artifacts for release
|
||||
- cargo build --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
|
40
assets/README.md
vendored
40
assets/README.md
vendored
@ -1,40 +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.
|
||||
|
||||
### 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
|
BIN
assets/acknowledgements.bin
vendored
Normal file
BIN
assets/acknowledgements.bin
vendored
Normal file
Binary file not shown.
97
assets/completions/_bat.ps1.in
vendored
Normal file
97
assets/completions/_bat.ps1.in
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
|
||||
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('--theme-dark', 'theme', [CompletionResultType]::ParameterName, 'Set the color theme for syntax highlighting for dark backgrounds.')
|
||||
[CompletionResult]::new('--theme-light', 'theme', [CompletionResultType]::ParameterName, 'Set the color theme for syntax highlighting for light backgrounds.')
|
||||
[CompletionResult]::new('--style', 'style', [CompletionResultType]::ParameterName, 'Comma-separated list of style elements to display (*default*, auto, full, plain, changes, header, header-filename, header-filesize, grid, rule, numbers, snip).')
|
||||
[CompletionResult]::new('-r', 'r', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
||||
[CompletionResult]::new('--line-range', 'line-range', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
||||
[CompletionResult]::new('-A', 'A', [CompletionResultType]::ParameterName, 'Show non-printable characters (space, tab, newline, ..).')
|
||||
[CompletionResult]::new('--show-all', 'show-all', [CompletionResultType]::ParameterName, 'Show non-printable characters (space, tab, newline, ..).')
|
||||
[CompletionResult]::new('-p', 'p', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
||||
[CompletionResult]::new('--plain', 'plain', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
||||
[CompletionResult]::new('-d', 'd', [CompletionResultType]::ParameterName, 'Only show lines that have been added/removed/modified.')
|
||||
[CompletionResult]::new('--diff', 'diff', [CompletionResultType]::ParameterName, 'Only show lines that have been added/removed/modified.')
|
||||
[CompletionResult]::new('-n', 'n', [CompletionResultType]::ParameterName, 'Show line numbers (alias for ''--style=numbers'').')
|
||||
[CompletionResult]::new('--number', 'number', [CompletionResultType]::ParameterName, 'Show line numbers (alias for ''--style=numbers'').')
|
||||
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'f')
|
||||
[CompletionResult]::new('--force-colorization', 'force-colorization', [CompletionResultType]::ParameterName, 'force-colorization')
|
||||
[CompletionResult]::new('-P', 'P', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
||||
[CompletionResult]::new('--no-paging', 'no-paging', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
||||
[CompletionResult]::new('--list-themes', 'list-themes', [CompletionResultType]::ParameterName, 'Display all supported highlighting themes.')
|
||||
[CompletionResult]::new('-L', 'L', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
||||
[CompletionResult]::new('--list-languages', 'list-languages', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
||||
[CompletionResult]::new('-u', 'u', [CompletionResultType]::ParameterName, 'u')
|
||||
[CompletionResult]::new('--unbuffered', 'unbuffered', [CompletionResultType]::ParameterName, 'unbuffered')
|
||||
[CompletionResult]::new('--no-config', 'no-config', [CompletionResultType]::ParameterName, 'Do not use the configuration file')
|
||||
[CompletionResult]::new('--no-custom-assets', 'no-custom-assets', [CompletionResultType]::ParameterName, 'Do not load custom assets')
|
||||
[CompletionResult]::new('--lessopen', 'lessopen', [CompletionResultType]::ParameterName, 'Enable the $LESSOPEN preprocessor')
|
||||
[CompletionResult]::new('--no-lessopen', 'no-lessopen', [CompletionResultType]::ParameterName, 'Disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)')
|
||||
[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.')
|
||||
## Completion of the 'cache' command itself is removed for better UX
|
||||
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||
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
|
||||
}
|
209
assets/completions/bat.bash.in
vendored
Normal file
209
assets/completions/bat.bash.in
vendored
Normal file
@ -0,0 +1,209 @@
|
||||
# shellcheck disable=SC2207
|
||||
|
||||
# Requires https://github.com/scop/bash-completion
|
||||
|
||||
# Macs have bash3 for which the bash-completion package doesn't include
|
||||
# _init_completion. This is a minimal version of that function.
|
||||
__bat_init_completion()
|
||||
{
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref "$@" cur prev words cword
|
||||
}
|
||||
|
||||
__bat_escape_completions()
|
||||
{
|
||||
# Do not escape if completing a quoted value.
|
||||
[[ $cur == [\"\']* ]] && return 0
|
||||
# printf -v to an array index is available in bash >= 4.1.
|
||||
# Use it if available, as -o filenames is semantically incorrect if
|
||||
# we are not actually completing filenames, and it has side effects
|
||||
# (e.g. adds trailing slash to candidates matching present dirs).
|
||||
if ((
|
||||
BASH_VERSINFO[0] > 4 || \
|
||||
BASH_VERSINFO[0] == 4 && BASH_VERSINFO[1] > 0
|
||||
)); then
|
||||
local i
|
||||
for i in ${!COMPREPLY[*]}; do
|
||||
printf -v "COMPREPLY[i]" %q "${COMPREPLY[i]}"
|
||||
done
|
||||
else
|
||||
compopt -o filenames
|
||||
fi
|
||||
}
|
||||
|
||||
_bat() {
|
||||
local cur prev words split=false
|
||||
if declare -F _init_completion >/dev/null 2>&1; then
|
||||
_init_completion -s || return 0
|
||||
else
|
||||
__bat_init_completion -n "=" || return 0
|
||||
_split_longopt && split=true
|
||||
fi
|
||||
|
||||
if [[ ${words[1]-} == cache ]]; then
|
||||
case $prev in
|
||||
--source | --target)
|
||||
_filedir -d
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
COMPREPLY=($(compgen -W "
|
||||
--build
|
||||
--clear
|
||||
--source
|
||||
--target
|
||||
--blank
|
||||
--help
|
||||
" -- "$cur"))
|
||||
return 0
|
||||
fi
|
||||
|
||||
case $prev in
|
||||
-l | --language)
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=($(compgen -W "$(
|
||||
"$1" --list-languages | while IFS=: read -r lang _; do
|
||||
printf "%s\n" "$lang"
|
||||
done
|
||||
)" -- "$cur"))
|
||||
__bat_escape_completions
|
||||
return 0
|
||||
;;
|
||||
-H | --highlight-line | \
|
||||
--diff-context | \
|
||||
--tabs | \
|
||||
--terminal-width | \
|
||||
-m | --map-syntax | \
|
||||
--ignored-suffix | \
|
||||
--list-themes | \
|
||||
--squeeze-limit | \
|
||||
--line-range | \
|
||||
-L | --list-languages | \
|
||||
--lessopen | \
|
||||
--diagnostic | \
|
||||
--acknowledgements | \
|
||||
-h | --help | \
|
||||
-V | --version | \
|
||||
--cache-dir | \
|
||||
--config-dir | \
|
||||
--config-file | \
|
||||
--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 "auto${IFS}auto:always${IFS}auto:system${IFS}dark${IFS}light${IFS}$("$1" --list-themes)" -- "$cur"))
|
||||
__bat_escape_completions
|
||||
return 0
|
||||
;;
|
||||
--theme-dark | \
|
||||
--theme-light)
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=($(compgen -W "$("$1" --list-themes)" -- "$cur"))
|
||||
__bat_escape_completions
|
||||
return 0
|
||||
;;
|
||||
--style)
|
||||
# shellcheck disable=SC2034
|
||||
local -a styles=(
|
||||
default
|
||||
full
|
||||
auto
|
||||
plain
|
||||
changes
|
||||
header
|
||||
header-filename
|
||||
header-filesize
|
||||
grid
|
||||
rule
|
||||
numbers
|
||||
snip
|
||||
)
|
||||
# shellcheck disable=SC2016
|
||||
if declare -F _comp_delimited >/dev/null 2>&1; then
|
||||
# bash-completion > 2.11
|
||||
_comp_delimited , -W '"${styles[@]}"'
|
||||
else
|
||||
COMPREPLY=($(compgen -W '${styles[@]}' -- "$cur"))
|
||||
fi
|
||||
return 0
|
||||
esac
|
||||
|
||||
$split && return 0
|
||||
|
||||
if [[ $cur == -* ]]; then
|
||||
# --unbuffered excluded intentionally (no-op)
|
||||
COMPREPLY=($(compgen -W "
|
||||
--show-all
|
||||
--plain
|
||||
--language
|
||||
--highlight-line
|
||||
--file-name
|
||||
--diff
|
||||
--diff-context
|
||||
--tabs
|
||||
--wrap
|
||||
--chop-long-lines
|
||||
--terminal-width
|
||||
--number
|
||||
--color
|
||||
--italic-text
|
||||
--decorations
|
||||
--force-colorization
|
||||
--paging
|
||||
--pager
|
||||
--map-syntax
|
||||
--ignored-suffix
|
||||
--theme
|
||||
--theme-dark
|
||||
--theme-light
|
||||
--list-themes
|
||||
--squeeze-blank
|
||||
--squeeze-limit
|
||||
--style
|
||||
--line-range
|
||||
--list-languages
|
||||
--lessopen
|
||||
--diagnostic
|
||||
--acknowledgements
|
||||
--set-terminal-title
|
||||
--help
|
||||
--version
|
||||
--cache-dir
|
||||
--config-dir
|
||||
--config-file
|
||||
--generate-config-file
|
||||
--no-config
|
||||
--no-custom-assets
|
||||
--no-lessopen
|
||||
" -- "$cur"))
|
||||
return 0
|
||||
fi
|
||||
|
||||
_filedir
|
||||
|
||||
## Completion of the 'cache' command itself is removed for better UX
|
||||
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||
} && complete -F _bat {{PROJECT_EXECUTABLE}}
|
76
assets/completions/bat.fish
vendored
76
assets/completions/bat.fish
vendored
@ -1,76 +0,0 @@
|
||||
# Fish Shell Completions
|
||||
# Place or symlink to $XDG_CONFIG_HOME/fish/completions/bat.fish ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||
|
||||
# Helper function:
|
||||
function __bat_autocomplete_languages --description "A helper function used by "(status filename)
|
||||
bat --list-languages | awk -F':' '
|
||||
{
|
||||
lang=$1
|
||||
split($2, exts, ",")
|
||||
|
||||
for (i in exts) {
|
||||
ext=exts[i]
|
||||
if (ext !~ /[A-Z].*/ && ext !~ /^\..*rc$/) {
|
||||
print ext"\t"lang
|
||||
}
|
||||
}
|
||||
}
|
||||
' | sort
|
||||
end
|
||||
|
||||
# Completions:
|
||||
|
||||
complete -c bat -l color -xka "auto never always" -d "Specify when to use colored output (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l config-dir -d "Display location of 'bat' configuration directory" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l config-file -d "Display location of 'bat' configuration file" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l decorations -xka "auto never always" -d "Specify when to use the decorations specified with '--style' (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s h -l help -d "Print help message" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s H -l highlight-line -x -d "<N> Highlight the N-th line with a different background color" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -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 bat -s l -l language -d "Set the language for syntax highlighting" -n "not __fish_seen_subcommand_from cache" -xa "(__bat_autocomplete_languages)"
|
||||
|
||||
complete -c bat -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 bat -l list-languages -d "Display list of supported languages for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l list-themes -d "Display a list of supported themes for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s m -l map-syntax -x -d "<from:to> Map a file extension or file name to an existing syntax" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s n -l number -d "Only show line numbers, no other decorations. Alias for '--style=numbers'" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l pager -x -d "<command> Specify which pager program to use (default: less)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l paging -xka "auto never always" -d "Specify when to use the pager (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s p -l plain -d "Only show plain style, no decorations. Alias for '--style=plain'" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -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 bat -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 bat -l terminal-width -x -d "<width> Explicitly set terminal width; Prefix with '+' or '-' to offset (default width is auto determined)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l theme -xka "(bat --list-themes | cat)" -d "Set the theme for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s u -l unbuffered -d "POSIX-compliant unbuffered output. Option is ignored" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -s V -l version -d "Show version information" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l wrap -xka "auto never character" -d "<mode> Specify the text-wrapping mode (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
# Sub-command 'cache' completions
|
||||
complete -c bat -a "cache" -d "Modify the syntax/language definition cache" -n "not __fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l build -f -d "Parse syntaxes/language definitions into cache" -n "__fish_seen_subcommand_from cache"
|
||||
|
||||
complete -c bat -l clear -f -d "Reset syntaxes/language definitions to default settings" -n "__fish_seen_subcommand_from cache"
|
244
assets/completions/bat.fish.in
vendored
Normal file
244
assets/completions/bat.fish.in
vendored
Normal file
@ -0,0 +1,244 @@
|
||||
# Fish Shell Completions
|
||||
# Copy or symlink to $XDG_CONFIG_HOME/fish/completions/{{PROJECT_EXECUTABLE}}.fish
|
||||
# ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||
|
||||
# `bat` is `batcat` on Debian and Ubuntu
|
||||
set bat {{PROJECT_EXECUTABLE}}
|
||||
|
||||
# Helper functions:
|
||||
|
||||
function __bat_complete_files -a token
|
||||
# Cheat to complete files by calling `complete -C` on a fake command name,
|
||||
# like `__fish_complete_directories` does.
|
||||
set -l fake_command aaabccccdeeeeefffffffffgghhhhhhiiiii
|
||||
complete -C"$fake_command $token"
|
||||
end
|
||||
|
||||
function __bat_complete_one_language -a comp
|
||||
command $bat --list-languages | string split -f1 : | string match -e "$comp"
|
||||
end
|
||||
|
||||
function __bat_complete_list_languages
|
||||
for spec in (command $bat --list-languages)
|
||||
set -l name (string split -f1 : $spec)
|
||||
for ext in (string split -f2 : $spec | string split ,)
|
||||
test -n "$ext"; or continue
|
||||
string match -rq '[/*]' $ext; and continue
|
||||
printf "%s\t%s\n" $ext $name
|
||||
end
|
||||
printf "%s\t\n" $name
|
||||
end
|
||||
end
|
||||
|
||||
function __bat_complete_map_syntax
|
||||
set -l token (commandline -ct)
|
||||
|
||||
if string match -qr '(?<glob>.+):(?<syntax>.*)' -- $token
|
||||
# If token ends with a colon, complete with the list of language names.
|
||||
set -f comps $glob:(__bat_complete_one_language $syntax)
|
||||
else if string match -qr '\*' -- $token
|
||||
# If token contains a globbing character (`*`), complete only possible
|
||||
# globs in the current directory
|
||||
set -f comps (__bat_complete_files $token | string match -er '[*]'):
|
||||
else
|
||||
# Complete files (and globs).
|
||||
set -f comps (__bat_complete_files $token | string match -erv '/$'):
|
||||
end
|
||||
|
||||
if set -q comps[1]
|
||||
printf "%s\t\n" $comps
|
||||
end
|
||||
end
|
||||
|
||||
function __bat_cache_subcommand
|
||||
__fish_seen_subcommand_from cache
|
||||
end
|
||||
|
||||
# Returns true if no exclusive arguments seen.
|
||||
function __bat_no_excl_args
|
||||
not __bat_cache_subcommand; and not __fish_seen_argument \
|
||||
-s h -l help \
|
||||
-s V -l version \
|
||||
-l acknowledgements \
|
||||
-l config-dir -l config-file \
|
||||
-l diagnostic \
|
||||
-l list-languages -l list-themes
|
||||
end
|
||||
|
||||
# Returns true if the 'cache' subcommand is seen without any exclusive arguments.
|
||||
function __bat_cache_no_excl
|
||||
__bat_cache_subcommand; and not __fish_seen_argument \
|
||||
-s h -l help \
|
||||
-l acknowledgements -l build -l clear
|
||||
end
|
||||
|
||||
function __bat_style_opts
|
||||
set -l style_opts \
|
||||
"default,recommended components" \
|
||||
"auto,same as 'default' unless piped" \
|
||||
"full,all components" \
|
||||
"plain,no components" \
|
||||
"changes,Git change markers" \
|
||||
"header,alias for header-filename" \
|
||||
"header-filename,filename above content" \
|
||||
"header-filesize,filesize above content" \
|
||||
"grid,lines b/w sidebar/header/content" \
|
||||
"numbers,line numbers in sidebar" \
|
||||
"rule,separate files" \
|
||||
"snip,separate ranges"
|
||||
|
||||
string replace , \t $style_opts
|
||||
end
|
||||
|
||||
# Use option argument descriptions to indicate which is the default, saving
|
||||
# horizontal space and making sure the option description isn't truncated.
|
||||
set -l color_opts '
|
||||
auto\tdefault
|
||||
never\t
|
||||
always\t
|
||||
'
|
||||
set -l decorations_opts $color_opts
|
||||
set -l paging_opts $color_opts
|
||||
|
||||
# Include some examples so we can indicate the default.
|
||||
set -l pager_opts '
|
||||
less\tdefault
|
||||
less\ -FR\t
|
||||
more\t
|
||||
vimpager\t
|
||||
'
|
||||
|
||||
set -l italic_text_opts '
|
||||
always\t
|
||||
never\tdefault
|
||||
'
|
||||
|
||||
set -l wrap_opts '
|
||||
auto\tdefault
|
||||
never\t
|
||||
character\t
|
||||
'
|
||||
|
||||
# While --tabs theoretically takes any number, most people should be OK with these.
|
||||
# Specifying a list lets us explain what 0 does.
|
||||
set -l tabs_opts '
|
||||
0\tpass\ tabs\ through\ directly
|
||||
1\t
|
||||
2\t
|
||||
4\t
|
||||
8\t
|
||||
'
|
||||
|
||||
set -l special_themes '
|
||||
auto\tdefault,\ Choose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
auto:always\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
auto:system\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
dark\tUse\ the\ theme\ specified\ by\ --theme-dark
|
||||
light\tUse\ the\ theme\ specified\ by\ --theme-light
|
||||
'
|
||||
|
||||
# Completions:
|
||||
|
||||
complete -c $bat -l acknowledgements -d "Print acknowledgements" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l cache-dir -f -d "Show bat's cache directory" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l color -x -a "$color_opts" -d "When to use colored output" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l config-dir -f -d "Display location of configuration directory" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l config-file -f -d "Display location of configuration file" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l decorations -x -a "$decorations_opts" -d "When to use --style decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l diagnostic -d "Print diagnostic info for bug reports" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s d -l diff -d "Only show lines with Git changes" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l diff-context -x -d "Show N context lines around Git changes" -n "__fish_seen_argument -s d -l diff"
|
||||
|
||||
complete -c $bat -l generate-config-file -f -d "Generates a default configuration file" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l file-name -x -d "Specify the display name" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s f -l force-colorization -d "Force color and decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s h -d "Print a concise overview" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l help -f -d "Print all help information" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s H -l highlight-line -x -d "Highlight line(s) N[:M]" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l ignored-suffix -x -d "Ignore extension" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l italic-text -x -a "$italic_text_opts" -d "When to use italic text in the output" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s l -l language -x -k -a "(__bat_complete_list_languages)" -d "Set the syntax highlighting language" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l lessopen -d "Enable the $LESSOPEN preprocessor" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s r -l line-range -x -d "Only print lines [M]:[N] (either optional)" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l list-languages -f -d "List syntax highlighting languages" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l list-themes -f -d "List syntax highlighting themes" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s m -l map-syntax -x -a "(__bat_complete_map_syntax)" -d "Map <glob pattern>:<language syntax>" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l no-config -d "Do not use the configuration file"
|
||||
|
||||
complete -c $bat -l no-custom-assets -d "Do not load custom assets"
|
||||
|
||||
complete -c $bat -l no-lessopen -d "Disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)"
|
||||
|
||||
complete -c $bat -s n -l number -d "Only show line numbers, no other decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l pager -x -a "$pager_opts" -d "Which pager to use" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l paging -x -a "$paging_opts" -d "When to use the pager" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s p -l plain -d "Disable decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -o pp -d "Disable decorations and paging" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s P -d "Disable paging" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s A -l show-all -d "Show non-printable characters" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l style -x -k -a "(__fish_complete_list , __bat_style_opts)" -d "Specify which non-content elements to display" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l tabs -x -a "$tabs_opts" -d "Set tab width" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l terminal-width -x -d "Set terminal <width>, +<offset>, or -<offset>" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme -x -a "$special_themes(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme-dark -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for dark backgrounds" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme-light -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for light backgrounds" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s V -l version -f -d "Show version information" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l wrap -x -a "$wrap_opts" -d "Text-wrapping mode" -n __bat_no_excl_args
|
||||
|
||||
# Sub-command 'cache' completions
|
||||
## Completion of the 'cache' command itself is removed for better UX
|
||||
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||
|
||||
complete -c $bat -l build -f -d "Parse new definitions into cache" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l clear -f -d "Reset definitions to defaults" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l blank -f -d "Create new data instead of appending" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||
|
||||
complete -c $bat -l source -x -a "(__fish_complete_directories)" -d "Load syntaxes and themes from DIR" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||
|
||||
complete -c $bat -l target -x -a "(__fish_complete_directories)" -d "Store cache in DIR" -n __bat_cache_subcommand
|
||||
|
||||
complete -c $bat -l acknowledgements -d "Build acknowledgements.bin" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -s h -d "Print a concise overview of $bat-cache help" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l help -f -d "Print all $bat-cache help" -n __bat_cache_no_excl
|
||||
|
||||
# vim:ft=fish
|
115
assets/completions/bat.zsh.in
vendored
Normal file
115
assets/completions/bat.zsh.in
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
#compdef {{PROJECT_EXECUTABLE}}
|
||||
|
||||
local curcontext="$curcontext" ret=1
|
||||
local -a 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='[specify directory to load syntaxes and themes from]:directory:_files -/'
|
||||
--target='[specify directory to store the cached syntax and theme set in]:directory:_files -/'
|
||||
--blank'[create completely new syntax and theme sets]'
|
||||
--acknowledgements'[build acknowledgements.bin]'
|
||||
'(: -)'{-h,--help}'[show 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, ..)]'
|
||||
--nonprintable-notation='[specify how to display non-printable characters when using --show-all]:notation:(caret unicode)'
|
||||
\*{-p,--plain}'[show plain style (alias for `--style=plain`), repeat twice to disable automatic paging (alias for `--paging=never`)]'
|
||||
'(-l --language)'{-l+,--language=}'[set the language for syntax highlighting]:language:->languages'
|
||||
\*{-H+,--highlight-line=}'[highlight specified block of lines]:start\:end'
|
||||
\*--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='[specify lines of context around added/removed/modified lines when using `--diff`]:lines'
|
||||
--tabs='[set the tab width]:tab width [4]'
|
||||
--wrap='[specify the text-wrapping mode]:mode [auto]:(auto never character)'
|
||||
'!(--wrap)'{-S,--chop-long-lines}
|
||||
--terminal-width='[explicitly set the width of the terminal instead of determining it automatically]:width'
|
||||
'(-n --number --diff --diff-context)'{-n,--number}'[show line numbers]'
|
||||
--color='[specify when to use colors]:when:(auto never always)'
|
||||
--italic-text='[use italics in output]:when:(always never)'
|
||||
--decorations='[specify when to show the decorations]:when:(auto never always)'
|
||||
--paging='[specify when to use the pager]:when:(auto never always)'
|
||||
'(-m --map-syntax)'{-m+,--map-syntax=}'[map a glob pattern to an existing syntax name]: :->syntax-maps'
|
||||
'(--theme)'--theme='[set the color theme for syntax highlighting]:theme:->theme_preferences'
|
||||
'(--theme-dark)'--theme-dark='[set the color theme for syntax highlighting for dark backgrounds]:theme:->themes'
|
||||
'(--theme-light)'--theme-light='[set the color theme for syntax highlighting for light backgrounds]:theme:->themes'
|
||||
'(: --list-themes --list-languages -L)'--list-themes'[show all supported highlighting themes]'
|
||||
--style='[comma-separated list of style elements to display]: : _values "style [default]"
|
||||
default auto full plain changes header header-filename header-filesize grid rule numbers snip'
|
||||
\*{-r+,--line-range=}'[only print the specified line range]:start\:end'
|
||||
'(* -)'{-L,--list-languages}'[display all supported languages]'
|
||||
-P'[disable paging]'
|
||||
"--no-config[don't use the configuration file]"
|
||||
"--no-custom-assets[don't load custom assets]"
|
||||
'(--no-lessopen)'--lessopen'[enable the $LESSOPEN preprocessor]'
|
||||
'(--lessopen)'--no-lessopen'[disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)]'
|
||||
'(* -)'--config-dir"[show bat's configuration directory]"
|
||||
'(* -)'--config-file'[show path to the configuration file]'
|
||||
'(* -)'--generate-config-file'[generate a default configuration file]'
|
||||
'(* -)'--cache-dir"[show bat's cache directory]"
|
||||
'(* -)'{-h,--help}'[show help information]'
|
||||
'(* -)'{-V,--version}'[show version information]'
|
||||
'*: :{ _files || compadd cache }'
|
||||
)
|
||||
|
||||
_arguments -S -s $args && ret=0
|
||||
|
||||
case "$state" in
|
||||
syntax-maps)
|
||||
if ! compset -P '*:'; then
|
||||
_message -e patterns 'glob pattern:language'
|
||||
return
|
||||
fi
|
||||
;& # fall-through
|
||||
|
||||
languages)
|
||||
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 && ret=0
|
||||
;;
|
||||
|
||||
themes)
|
||||
local -a themes expl
|
||||
themes=(${(f)"$(_call_program themes {{PROJECT_EXECUTABLE}} --list-themes)"} )
|
||||
|
||||
_wanted themes expl 'theme' compadd -a themes && ret=0
|
||||
;;
|
||||
theme_preferences)
|
||||
local -a themes expl
|
||||
themes=(auto dark light auto:always auto:system ${(f)"$(_call_program themes {{PROJECT_EXECUTABLE}} --list-themes)"} )
|
||||
|
||||
_wanted themes expl 'theme' compadd -a themes && ret=0
|
||||
;;
|
||||
esac
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
case $words[2] in
|
||||
cache)
|
||||
## Completion of the 'cache' command itself is removed for better UX
|
||||
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||
shift words
|
||||
(( CURRENT-- ))
|
||||
curcontext="${curcontext%:*}-${words[1]}:"
|
||||
_{{PROJECT_EXECUTABLE}}_cache_subcommand
|
||||
;;
|
||||
|
||||
*)
|
||||
_{{PROJECT_EXECUTABLE}}_main
|
||||
;;
|
||||
esac
|
68
assets/create.sh
vendored
68
assets/create.sh
vendored
@ -1,17 +1,69 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
REPO_DIR="$ASSET_DIR/.."
|
||||
|
||||
# Ensure submodules are initialized.
|
||||
update_submodules() {
|
||||
local submodule
|
||||
local submodule_prompt=unspecified
|
||||
local submodule_path
|
||||
|
||||
{
|
||||
while { read -r submodule && read -r submodule_path; } <&3; do
|
||||
if ! [[ -d "${REPO_DIR}/.git/modules/${submodule}" ]] && [[ -d "${REPO_DIR}/${submodule_path}" ]]; then
|
||||
if [[ "$submodule_prompt" = "unspecified" ]]; then
|
||||
echo "One or more submodules were found to be uninitialized."
|
||||
printf "Initialize and update them? [Y/n] "
|
||||
read -r submodule_prompt
|
||||
fi
|
||||
|
||||
case "$submodule_prompt" in
|
||||
y|yes|'') {
|
||||
git -C "$REPO_DIR" submodule update --init "$submodule_path"
|
||||
};;
|
||||
n|no) {
|
||||
return
|
||||
};;
|
||||
*) {
|
||||
echo "Unknown answer. Not updating submodules."
|
||||
};;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
} 3< <(git config --file "${REPO_DIR}/.gitmodules" --null --get-regexp path | xargs -0 printf "%s\n" | sed 's/^submodule.//;s/.path$//')
|
||||
}
|
||||
|
||||
if [ -t 0 ]; then
|
||||
update_submodules
|
||||
fi
|
||||
|
||||
# Always remove the local cache to avoid any confusion
|
||||
bat cache --clear
|
||||
|
||||
# TODO: Remove this (and the reverse part below) when
|
||||
# https://github.com/trishume/syntect/issues/222 has been fixed
|
||||
JAVADOC_FILE="${ASSET_DIR}/syntaxes/Packages/Java/JavaDoc.sublime-syntax"
|
||||
JAVADOC_PATCH="${ASSET_DIR}/JavaDoc.sublime-syntax.patch"
|
||||
patch "$JAVADOC_FILE" "$JAVADOC_PATCH"
|
||||
# TODO:
|
||||
# - Remove the JavaDoc patch once https://github.com/trishume/syntect/issues/222 has been fixed
|
||||
# - Remove the C# patch once https://github.com/sublimehq/Packages/pull/2331 has been merged
|
||||
|
||||
bat cache --build --blank --source="$ASSET_DIR" --target="$ASSET_DIR"
|
||||
# Apply patches
|
||||
(
|
||||
cd "$ASSET_DIR"
|
||||
for patch in patches/*.patch; do
|
||||
patch --strip=0 < "$patch"
|
||||
done
|
||||
)
|
||||
|
||||
patch -R "$JAVADOC_FILE" "$JAVADOC_PATCH"
|
||||
reverse_patches() {
|
||||
(
|
||||
cd "$ASSET_DIR"
|
||||
for patch in patches/*.patch; do
|
||||
patch --strip=0 --reverse <"$patch"
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
# Make sure to always reverse patches, even if the `bat cache` command fails or aborts
|
||||
trap reverse_patches EXIT
|
||||
|
||||
bat cache --build --blank --acknowledgements --source="$ASSET_DIR" --target="$ASSET_DIR"
|
||||
|
361
assets/manual/bat.1.in
vendored
Normal file
361
assets/manual/bat.1.in
vendored
Normal file
@ -0,0 +1,361 @@
|
||||
.TH {{PROJECT_EXECUTABLE_UPPERCASE}} "1"
|
||||
.SH NAME
|
||||
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
||||
.SH "USAGE"
|
||||
.IP "{{PROJECT_EXECUTABLE}} [OPTIONS] [FILE]..."
|
||||
.IP "{{PROJECT_EXECUTABLE}} cache [CACHE-OPTIONS] [--build|--clear]
|
||||
.SH DESCRIPTION
|
||||
{{PROJECT_EXECUTABLE}} prints the syntax-highlighted content of a collection of FILEs to the
|
||||
terminal. If no FILE is specified, or when FILE is '-', it reads from standard input.
|
||||
|
||||
{{PROJECT_EXECUTABLE}} supports a large number of programming and markup languages.
|
||||
It also communicates with git(1) to show modifications with respect to the git index.
|
||||
{{PROJECT_EXECUTABLE}} automatically pipes its output through a pager (by default: less).
|
||||
|
||||
Whenever the output of {{PROJECT_EXECUTABLE}} goes to a non-interactive terminal, i.e. when the
|
||||
output is piped into another process or into a file, {{PROJECT_EXECUTABLE}} will act as a drop-in
|
||||
replacement for cat(1) and fall back to printing the plain file contents.
|
||||
|
||||
.SH "OPTIONS"
|
||||
General remarks: Command-line options like '-l'/'--language' that take values can be specified as
|
||||
either '--language value', '--language=value', '-l value' or '-lvalue'.
|
||||
.HP
|
||||
\fB\-A\fR, \fB\-\-show\-all\fR
|
||||
.IP
|
||||
Show non\-printable characters like space, tab or newline. Use '\-\-tabs' to
|
||||
control the width of the tab\-placeholders.
|
||||
.HP
|
||||
\fB\-\-nonprintable\-notation\fR <notation>
|
||||
.IP
|
||||
Specify how to display non-printable characters when using \-\-show\-all.
|
||||
|
||||
Possible values:
|
||||
.RS
|
||||
.IP "caret"
|
||||
Use character sequences like ^G, ^J, ^@, .. to identify non-printable characters
|
||||
.IP "unicode"
|
||||
Use special Unicode code points to identify non-printable characters
|
||||
.RE
|
||||
.HP
|
||||
\fB\-p\fR, \fB\-\-plain\fR
|
||||
.IP
|
||||
Only show plain style, no decorations. This is an alias for
|
||||
\&'\-\-style=plain'. When '\-p' is used twice ('\-pp'), it also disables
|
||||
automatic paging (alias for '\-\-style=plain \fB\-\-paging\fR=\fI\,never\/\fR').
|
||||
.HP
|
||||
\fB\-l\fR, \fB\-\-language\fR <language>
|
||||
.IP
|
||||
Explicitly set the language for syntax highlighting. The language can be
|
||||
specified as a name (like 'C++' or 'LaTeX') or possible file extension
|
||||
(like 'cpp', 'hpp' or 'md'). Use '\-\-list\-languages' to show all supported
|
||||
language names and file extensions.
|
||||
.HP
|
||||
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
||||
.IP
|
||||
Highlight the specified line ranges with a different background color. For example:
|
||||
.RS
|
||||
.IP "\-\-highlight\-line 40"
|
||||
highlights line 40
|
||||
.IP "\-\-highlight\-line 30:40"
|
||||
highlights lines 30 to 40
|
||||
.IP "\-\-highlight\-line :40"
|
||||
highlights lines 1 to 40
|
||||
.IP "\-\-highlight\-line 40:"
|
||||
highlights lines 40 to the end of the file
|
||||
.IP "\-\-highlight\-line 30:+10"
|
||||
highlights lines 30 to 40
|
||||
.RE
|
||||
.HP
|
||||
\fB\-\-file\-name\fR <name>...
|
||||
.IP
|
||||
Specify the name to display for a file. Useful when piping data to {{PROJECT_EXECUTABLE}} from STDIN when {{PROJECT_EXECUTABLE}} does not otherwise know the filename. Note that the provided file name is also used for syntax detection.
|
||||
.HP
|
||||
\fB\-d\fR, \fB\-\-diff\fR
|
||||
.IP
|
||||
Only show lines that have been added/removed/modified with respect to the Git index. Use '\-\-diff\-context=N' to control how much context you want to see.
|
||||
.HP
|
||||
\fB\-\-diff\-context\fR <N>...
|
||||
.IP
|
||||
Include N lines of context around added/removed/modified lines when using '\-\-diff'.
|
||||
.HP
|
||||
\fB\-\-tabs\fR <T>
|
||||
.IP
|
||||
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
||||
.HP
|
||||
\fB\-\-wrap\fR <mode>
|
||||
.IP
|
||||
Specify the text\-wrapping mode (*auto*, never, character). The '\-\-terminal\-width' option
|
||||
can be used in addition to control the output width.
|
||||
.HP
|
||||
\fB\-S\fR, \fB\-\-chop\-long\-lines\fR
|
||||
.IP
|
||||
Truncate all lines longer than screen width. Alias for '\-\-wrap=never'.
|
||||
.HP
|
||||
\fB\-\-terminal\-width\fR <width>
|
||||
.IP
|
||||
Explicitly set the width of the terminal instead of determining it automatically. If
|
||||
prefixed with '+' or '\-', the value will be treated as an offset to the actual terminal
|
||||
width. See also: '\-\-wrap'.
|
||||
.HP
|
||||
\fB\-n\fR, \fB\-\-number\fR
|
||||
.IP
|
||||
Only show line numbers, no other decorations. This is an alias for '\-\-style=numbers'
|
||||
.HP
|
||||
\fB\-\-color\fR <when>
|
||||
.IP
|
||||
Specify when to use colored output. The automatic mode only enables colors if an
|
||||
interactive terminal is detected. Possible values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-\-italic\-text\fR <when>
|
||||
.IP
|
||||
Specify when to use ANSI sequences for italic text in the output. Possible values:
|
||||
always, *never*.
|
||||
.HP
|
||||
\fB\-\-decorations\fR <when>
|
||||
.IP
|
||||
Specify when to use the decorations that have been specified via '\-\-style'. The
|
||||
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
||||
values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-f\fR, \fB\-\-force\-colorization\fR
|
||||
.IP
|
||||
Alias for '--decorations=always --color=always'. This is useful \
|
||||
if the output of {{PROJECT_EXECUTABLE}} is piped to another program, but you want \
|
||||
to keep the colorization/decorations.
|
||||
.HP
|
||||
\fB\-\-paging\fR <when>
|
||||
.IP
|
||||
Specify when to use the pager. To disable the pager, use \&'\-\-paging=never' or its alias,
|
||||
\fB-P\fR. To disable the pager permanently, set BAT_PAGER to an empty string. To control
|
||||
which pager is used, see the '\-\-pager' option. Possible values: *auto*, never, always.
|
||||
.HP
|
||||
\fB\-\-pager\fR <command>
|
||||
.IP
|
||||
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
||||
environment variables. The default pager is 'less'. To control when the pager is used, see
|
||||
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
||||
|
||||
Note: By default, if the pager is set to 'less' (and no command-line options are specified), 'bat' will pass the following command line options to the pager: '-R'/'--RAW-CONTROL-CHARS', '-F'/'--quit-if-one-screen' and '-X'/'--no-init'. The last option ('-X') is only used for 'less' versions older than 530. The '-R' option is needed to interpret ANSI colors correctly. The second option ('-F') instructs less to exit immediately if the output size is smaller than the vertical size of the terminal. This is convenient for small files because you do not have to press 'q' to quit the pager. The third option ('-X') is needed to fix a bug with the '--quit-if-one-screen' feature in old versions of 'less'. Unfortunately, it also breaks mouse-wheel support in 'less'. If you want to enable mouse-wheel scrolling on older versions of 'less', you can pass just '-R' (as in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer, it should work out of the box.
|
||||
.HP
|
||||
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
||||
.IP
|
||||
Map a glob pattern to an existing syntax name. The glob pattern is matched on the full
|
||||
path and the filename. For example, to highlight *.build files with the Python syntax,
|
||||
use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore
|
||||
syntax, use -m '.myignore:Git Ignore'.
|
||||
Note that the right-hand side is the *name* of the syntax, not a file extension.
|
||||
.HP
|
||||
\fB\-\-ignored\-suffix\fR <ignored-suffix>
|
||||
.IP
|
||||
Ignore extension. For example: 'bat \-\-ignored-suffix ".dev" my_file.json.dev'
|
||||
will use JSON syntax, and ignore '.dev'
|
||||
.HP
|
||||
\fB\-\-theme\fR <theme>
|
||||
.IP
|
||||
Set the theme for syntax highlighting. Use \fB\-\-list\-themes\fP to see all available themes.
|
||||
To set a default theme, add the \fB\-\-theme="..."\fP option to the configuration file or
|
||||
export the \fBBAT_THEME\fP environment variable (e.g.: \fBexport BAT_THEME="..."\fP).
|
||||
|
||||
Special values:
|
||||
.RS
|
||||
.IP "auto (\fIdefault\fR)"
|
||||
Picks a dark or light theme depending on the terminal's colors.
|
||||
Use \fB-\-theme\-light\fR and \fB-\-theme\-dark\fR to customize the selected theme.
|
||||
.IP "auto:always"
|
||||
Variation of \fBauto\fR where where the terminal's colors are detected even when the output is redirected.
|
||||
.IP "auto:system (macOS only)"
|
||||
Variation of \fBauto\fR where the color scheme is detected from the system-wide preference instead.
|
||||
.IP "dark"
|
||||
Use the dark theme specified by \fB-\-theme-dark\fR.
|
||||
.IP "light"
|
||||
Use the light theme specified by \fB-\-theme-light\fR.
|
||||
.RE
|
||||
.HP
|
||||
\fB\-\-theme\-dark\fR <theme>
|
||||
.IP
|
||||
Sets the theme name for syntax highlighting used when the terminal uses a dark background.
|
||||
To set a default theme, add the \fB\-\-theme-dark="..."\fP option to the configuration file or
|
||||
export the \fBBAT_THEME_DARK\fP environment variable (e.g. \fBexport BAT_THEME_DARK="..."\fP).
|
||||
This option only has an effect when \fB\-\-theme\fP option is set to \fBauto\fR or \fBdark\fR.
|
||||
.HP
|
||||
\fB\-\-theme\-light\fR <theme>
|
||||
.IP
|
||||
Sets the theme name for syntax highlighting used when the terminal uses a light background.
|
||||
To set a default theme, add the \fB\-\-theme-light="..."\fP option to the configuration file or
|
||||
export the \fBBAT_THEME_LIGHT\fP environment variable (e.g. \fBexport BAT_THEME_LIGHT="..."\fP).
|
||||
This option only has an effect when \fB\-\-theme\fP option is set to \fBauto\fR or \fBlight\fR.
|
||||
.HP
|
||||
\fB\-\-list\-themes\fR
|
||||
.IP
|
||||
Display a list of supported themes for syntax highlighting.
|
||||
.HP
|
||||
\fB\-s\fR, \fB\-\-squeeze\-blank\fR
|
||||
.IP
|
||||
Squeeze consecutive empty lines into a single empty line.
|
||||
.HP
|
||||
\fB\-\-squeeze\-limit\fR <squeeze-limit>
|
||||
.IP
|
||||
Set the maximum number of consecutive empty lines to be printed.
|
||||
.HP
|
||||
\fB\-\-style\fR <style\-components>
|
||||
.IP
|
||||
Configure which elements (line numbers, file headers, grid borders, Git modifications,
|
||||
\&..) to display in addition to the file contents. The argument is a comma\-separated list
|
||||
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
||||
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
||||
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
||||
values: *default*, full, auto, plain, changes, header, header-filename, header-filesize, grid,
|
||||
rule, numbers, snip.
|
||||
.HP
|
||||
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
||||
.IP
|
||||
Only print the specified range of lines for each file. For example:
|
||||
.RS
|
||||
.IP "\-\-line\-range 30:40"
|
||||
prints lines 30 to 40
|
||||
.IP "\-\-line\-range :40"
|
||||
prints lines 1 to 40
|
||||
.IP "\-\-line\-range 40:"
|
||||
prints lines 40 to the end of the file
|
||||
.IP "\-\-line\-range 30:+10"
|
||||
prints lines 30 to 40
|
||||
.RE
|
||||
.HP
|
||||
\fB\-L\fR, \fB\-\-list\-languages\fR
|
||||
.IP
|
||||
Display a list of supported languages for syntax highlighting.
|
||||
.HP
|
||||
\fB\-u\fR, \fB\-\-unbuffered\fR
|
||||
.IP
|
||||
This option exists for POSIX\-compliance reasons ('u' is for 'unbuffered'). The output is
|
||||
always unbuffered \- this option is simply ignored.
|
||||
.HP
|
||||
\fB\-\-no\-custom\-assets\fR
|
||||
.IP
|
||||
Do not load custom assets.
|
||||
.HP
|
||||
\fB\-\-config\-dir\fR
|
||||
.IP
|
||||
Show bat's configuration directory.
|
||||
.HP
|
||||
\fB\-\-cache\-dir\fR
|
||||
.IP
|
||||
Show bat's cache directory.
|
||||
.HP
|
||||
\fB\-\-diagnostic\fR
|
||||
.IP
|
||||
Show diagnostic information for bug reports.
|
||||
.HP
|
||||
\fB\-\-acknowledgements\fR
|
||||
.IP
|
||||
Show acknowledgements.
|
||||
.HP
|
||||
\fB\-\-set\-terminal\-title\fR
|
||||
.IP
|
||||
Sets terminal title to filenames when using a pager.
|
||||
.HP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
.IP
|
||||
Print this help message.
|
||||
.HP
|
||||
\fB\-V\fR, \fB\-\-version\fR
|
||||
.IP
|
||||
Show version information.
|
||||
.SH "POSITIONAL ARGUMENTS"
|
||||
.HP
|
||||
\fB<FILE>...\fR
|
||||
.IP
|
||||
Files to print and concatenate. Use a dash ('\-') or no argument at all to read from
|
||||
standard input.
|
||||
.SH "SUBCOMMANDS"
|
||||
.HP
|
||||
\fBcache\fR - Modify the syntax\-definition and theme cache.
|
||||
.SH "FILES"
|
||||
{{PROJECT_EXECUTABLE}} can also be customized with a configuration file. The location of the file
|
||||
is dependent on your operating system. To get the default path for your system, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
||||
|
||||
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point {{PROJECT_EXECUTABLE}} to a non-default
|
||||
location of the configuration file.
|
||||
|
||||
To generate a default configuration file, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --generate-config-file\fR
|
||||
|
||||
These are related options:
|
||||
.HP
|
||||
\fB\-\-config\-file\fR
|
||||
.IP
|
||||
Show path to the configuration file.
|
||||
.HP
|
||||
\fB\-\-generate-config\-file\fR
|
||||
.IP
|
||||
Generates a default configuration file.
|
||||
.HP
|
||||
\fB\-\-no\-config\fR
|
||||
.IP
|
||||
Do not use the configuration file.
|
||||
.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 "INPUT PREPROCESSOR"
|
||||
Much like less(1) does, {{PROJECT_EXECUTABLE}} supports input preprocessors via the LESSOPEN and LESSCLOSE environment variables.
|
||||
In addition, {{PROJECT_EXECUTABLE}} attempts to be as compatible with less's preprocessor implementation as possible.
|
||||
|
||||
To use the preprocessor, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --lessopen\fR
|
||||
|
||||
Alternatively, the preprocessor may be enabled by default by adding the '\-\-lessopen' option to the configuration file.
|
||||
|
||||
To temporarily disable the preprocessor if it is enabled by default, call:
|
||||
|
||||
\fB{{PROJECT_EXECUTABLE}} --no-lessopen\fR
|
||||
|
||||
These are related options:
|
||||
.HP
|
||||
\fB\-\-lessopen\fR
|
||||
.IP
|
||||
Enable the $LESSOPEN preprocessor.
|
||||
.HP
|
||||
\fB\-\-no\-lessopen\fR
|
||||
.IP
|
||||
Disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)
|
||||
.PP
|
||||
For more information, see the "INPUT PREPROCESSOR" section of less(1).
|
||||
|
||||
.SH "MORE INFORMATION"
|
||||
|
||||
For more information and up-to-date documentation, visit the {{PROJECT_EXECUTABLE}} repo:
|
||||
.br
|
||||
\fBhttps://github.com/sharkdp/bat\fR
|
22
assets/patches/1337.tmTheme.patch
vendored
Normal file
22
assets/patches/1337.tmTheme.patch
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
diff --git themes/1337-Scheme/1337.tmTheme themes/1337-Scheme/1337.tmTheme
|
||||
index fdff5bf..8cfc888 100644
|
||||
--- themes/1337-Scheme/1337.tmTheme
|
||||
+++ themes/1337-Scheme/1337.tmTheme
|
||||
@@ -280,7 +280,7 @@ SOFTWARE.
|
||||
<key>name</key>
|
||||
<string>PHP Namespaces</string>
|
||||
<key>scope</key>
|
||||
- <string>support.other.namespace, entity.name.type.namespace</string>
|
||||
+ <string>support.other.namespace, entity.name.type.namespace, entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
@@ -561,7 +561,7 @@ SOFTWARE.
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
- <string>meta.diff, meta.diff.header</string>
|
||||
+ <string>meta.diff, meta.diff.header, markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
13
assets/patches/C#.sublime-syntax.patch
vendored
Normal file
13
assets/patches/C#.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/01_Packages/C#/C#.sublime-syntax syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
index ed494f8b..01b710e8 100644
|
||||
--- syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
+++ syntaxes/01_Packages/C#/C#.sublime-syntax
|
||||
@@ -1312,7 +1312,7 @@ contexts:
|
||||
2: punctuation.separator.cs
|
||||
3: punctuation.section.brackets.end.cs
|
||||
4: keyword.operator.pointer.cs
|
||||
- - match: \((?=(?:[^,)(]*|\([^\)]*\))*,)
|
||||
+ - match: \((?=(?:[^,)(]|\([^\)]*\))*,)
|
||||
scope: punctuation.section.group.begin.cs
|
||||
push:
|
||||
- meta_scope: meta.group.tuple.cs
|
16
assets/patches/Groff.sublime-syntax.patch
vendored
Normal file
16
assets/patches/Groff.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
index 57834af..6648664 100644
|
||||
--- syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
+++ syntaxes/02_Extra/Groff/Man Page/Man Page.sublime-syntax
|
||||
@@ -4,9 +4,9 @@
|
||||
# - man-pages(7)
|
||||
# - groff(7)
|
||||
---
|
||||
-name: Man Page (groff/troff)
|
||||
+name: Groff/troff
|
||||
scope: text.groff
|
||||
-file_extensions: [man, groff, troff, '1', '2', '3', '4', '5', '6', '7']
|
||||
+file_extensions: [groff, troff, '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||
|
||||
contexts:
|
||||
main:
|
@ -1,7 +1,7 @@
|
||||
diff --git syntaxes/Packages/Java/JavaDoc.sublime-syntax syntaxes/Packages/Java/JavaDoc.sublime-syntax
|
||||
diff --git syntaxes/01_Packages/Java/JavaDoc.sublime-syntax syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
index 422a6a9..40a741e 100644
|
||||
--- syntaxes/Packages/Java/JavaDoc.sublime-syntax
|
||||
+++ syntaxes/Packages/Java/JavaDoc.sublime-syntax
|
||||
--- syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Java/JavaDoc.sublime-syntax
|
||||
@@ -13,7 +13,7 @@ variables:
|
||||
contexts:
|
||||
prototype:
|
14
assets/patches/JavaScript.sublime-syntax.patch
vendored
Normal file
14
assets/patches/JavaScript.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
Submodule assets/syntaxes/01_Packages contains modified content
|
||||
diff --git syntaxes/01_Packages/JavaScript/JavaScript.sublime-syntax syntaxes/01_Packages/JavaScript/JavaScript.sublime-syntax
|
||||
index 05a4fed6..78a7bf55 100644
|
||||
--- syntaxes/01_Packages/JavaScript/JavaScript.sublime-syntax
|
||||
+++ syntaxes/01_Packages/JavaScript/JavaScript.sublime-syntax
|
||||
@@ -5,7 +5,7 @@ name: JavaScript
|
||||
file_extensions:
|
||||
- js
|
||||
- htc
|
||||
-first_line_match: ^#!\s*/.*\b(node|js)\b
|
||||
+first_line_match: ^#!\s*/.*\b(node|bun|js)\b
|
||||
scope: source.js
|
||||
variables:
|
||||
bin_digit: '[01_]'
|
2365
assets/patches/Lisp.sublime-syntax.patch
vendored
Normal file
2365
assets/patches/Lisp.sublime-syntax.patch
vendored
Normal file
File diff suppressed because one or more lines are too long
81
assets/patches/Makefile.sublime-syntax.patch
vendored
Normal file
81
assets/patches/Makefile.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
diff --git syntaxes/01_Packages/Makefile/Makefile.sublime-syntax syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
index 3cc3a97e..0c7a3f24 100644
|
||||
--- syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Makefile/Makefile.sublime-syntax
|
||||
@@ -44,64 +44,50 @@ variables:
|
||||
# variable substitutions anywhere. We try to remedy this by hacking in a
|
||||
# regex that matches up to four levels of nested parentheses, and ignores
|
||||
# whatever's inside the parentheses.
|
||||
- nps: '[^()]*'
|
||||
- open: '(?:\('
|
||||
- close: '\))?' # ignore this invalid.illegal
|
||||
+ nps_unnested: '[^()]*'
|
||||
+ nps: '[^()]*(?=[()])'
|
||||
+ open: '(?:{{nps}}\('
|
||||
+ close: '\){{nps_unnested}})?' # ignore this invalid.illegal
|
||||
just_eat: | # WARNING: INSANITY FOLLOWS!
|
||||
- (?x) # ignore whitespace in this regex
|
||||
- {{nps}} # level 0
|
||||
+ (?x)(?: # ignore whitespace in this regex
|
||||
{{open}} # start level 1 __
|
||||
- {{nps}} # level 1 _______ /*_>-<
|
||||
{{open}} # start level 2 ___/ _____ \__/ /
|
||||
- {{nps}} # level 2 <____/ \____/
|
||||
{{open}} # start level 3 is like snek... (by Valerie Haecky)
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
+ {{nps}}
|
||||
{{close}} # end level 2
|
||||
- {{nps}} # level 1
|
||||
{{open}} # start level 2
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
{{open}} # start level 3
|
||||
- {{nps}} # level 3
|
||||
{{open}} # start level 4
|
||||
{{nps}} # level 4
|
||||
{{close}} # end level 4
|
||||
- {{nps}} # level 3
|
||||
+ {{nps}}
|
||||
{{close}} # end level 3
|
||||
- {{nps}} # level 2
|
||||
+ {{nps}}
|
||||
{{close}} # end level 2
|
||||
- {{nps}} # level 1
|
||||
+ {{nps}}
|
||||
{{close}} # end level 1
|
||||
- {{nps}} # level 0
|
||||
+ |{{nps_unnested}})
|
||||
rule_lookahead: '{{just_eat}}{{ruleassign}}{{just_eat}}'
|
||||
|
||||
var_lookahead_base: '{{just_eat}}({{varassign}}|{{shellassign}}){{just_eat}}'
|
199
assets/patches/Markdown.sublime-syntax.patch
vendored
Normal file
199
assets/patches/Markdown.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,199 @@
|
||||
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
index 19dc685d..3a45ea05 100644
|
||||
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||
@@ -24,7 +24,6 @@ variables:
|
||||
)
|
||||
[ \t]*$ # followed by any number of tabs or spaces, followed by the end of the line
|
||||
)
|
||||
- setext_escape: ^(?=\s{0,3}(?:---+|===+)\s*$)
|
||||
block_quote: (?:[ ]{,3}>(?:.|$)) # between 0 and 3 spaces, followed by a greater than sign, followed by any character or the end of the line
|
||||
atx_heading: (?:[#]{1,6}\s*) # between 1 and 6 hashes, followed by any amount of whitespace
|
||||
indented_code_block: (?:[ ]{4}|\t) # 4 spaces or a tab
|
||||
@@ -277,69 +276,40 @@ contexts:
|
||||
8: markup.underline.link.markdown
|
||||
push: [link-ref-def, after-link-title, link-title]
|
||||
- match: '^(?=\S)(?![=-]{3,}\s*$)'
|
||||
- branch_point: heading2-branch
|
||||
- branch:
|
||||
- - not-heading2
|
||||
- - heading2
|
||||
-
|
||||
- not-paragraph:
|
||||
- - match: |-
|
||||
- (?x) # pop out of this context when one of the following conditions are met:
|
||||
- ^(?:
|
||||
- \s*$ # the line is blank (or only contains whitespace)
|
||||
- | (?=
|
||||
- {{block_quote}} # a block quote begins the line
|
||||
- | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||
- | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||
- | \# # an ATX heading begins the line
|
||||
- | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||
- {{html_tag_block_end_at_close_tag}} # 1
|
||||
- | !-- # 2
|
||||
- | \? # 3
|
||||
- | ![A-Z] # 4
|
||||
- | !\[CDATA\[ # 5
|
||||
- | {{html_tag_block_end_at_blank_line}} # 6
|
||||
+ push:
|
||||
+ - meta_scope: meta.paragraph.markdown
|
||||
+ - match: |-
|
||||
+ (?x) # pop out of this context when one of the following conditions are met:
|
||||
+ ^(?:
|
||||
+ \s*$ # the line is blank (or only contains whitespace)
|
||||
+ | (?=
|
||||
+ {{block_quote}} # a block quote begins the line
|
||||
+ | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||
+ | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||
+ | \# # an ATX heading begins the line
|
||||
+ | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||
+ {{html_tag_block_end_at_close_tag}} # 1
|
||||
+ | !-- # 2
|
||||
+ | \? # 3
|
||||
+ | ![A-Z] # 4
|
||||
+ | !\[CDATA\[ # 5
|
||||
+ | {{html_tag_block_end_at_blank_line}} # 6
|
||||
+ )
|
||||
)
|
||||
)
|
||||
- )
|
||||
- pop: true
|
||||
-
|
||||
- not-heading2:
|
||||
- - include: not-paragraph
|
||||
- - match: (?=\S)
|
||||
- branch_point: heading1-branch
|
||||
- branch:
|
||||
- - paragraph
|
||||
- - heading1
|
||||
- - match: ''
|
||||
- pop: true
|
||||
-
|
||||
- paragraph:
|
||||
- - meta_scope: meta.paragraph.markdown
|
||||
- - match: ^\s{0,3}===+\s*$
|
||||
- fail: heading1-branch
|
||||
- - match: ^\s{0,3}---+\s*$
|
||||
- fail: heading2-branch
|
||||
- - include: not-paragraph
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - include: scope:text.html.basic
|
||||
-
|
||||
- heading1:
|
||||
- - meta_scope: markup.heading.1.markdown
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - match: '^[ \t]{0,3}(={3,})(?=[ \t]*$)'
|
||||
- captures:
|
||||
- 1: markup.heading.1.setext.markdown punctuation.definition.heading.setext.markdown
|
||||
- pop: true
|
||||
-
|
||||
- heading2:
|
||||
- - meta_scope: markup.heading.2.markdown
|
||||
- - include: inline-bold-italic-linebreak
|
||||
- - match: '^[ \t]{0,3}(-{3,})(?=[ \t]*$)'
|
||||
- captures:
|
||||
- 1: markup.heading.2.setext.markdown punctuation.definition.heading.setext.markdown
|
||||
- pop: true
|
||||
-
|
||||
+ pop: true
|
||||
+ - include: inline-bold-italic-linebreak
|
||||
+ - include: scope:text.html.basic
|
||||
+ - match: '^(={3,})(?=[ \t]*$)'
|
||||
+ scope: markup.heading.1.setext.markdown
|
||||
+ captures:
|
||||
+ 1: punctuation.definition.heading.setext.markdown
|
||||
+ pop: true
|
||||
+ - match: '^(-{3,})(?=[ \t]*$)'
|
||||
+ scope: markup.heading.2.setext.markdown
|
||||
+ captures:
|
||||
+ 1: punctuation.definition.heading.setext.markdown
|
||||
+ pop: true
|
||||
link-ref-def:
|
||||
- meta_scope: meta.link.reference.def.markdown
|
||||
- match: ''
|
||||
@@ -430,8 +400,6 @@ contexts:
|
||||
push:
|
||||
- meta_scope: markup.bold.markdown
|
||||
- meta_content_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -446,8 +414,6 @@ contexts:
|
||||
scope: punctuation.definition.bold.end.markdown
|
||||
set:
|
||||
- meta_content_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -463,8 +429,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.end.markdown
|
||||
set:
|
||||
- meta_content_scope: markup.bold.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -727,8 +691,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.begin.markdown
|
||||
push:
|
||||
- meta_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -745,8 +707,6 @@ contexts:
|
||||
scope: punctuation.definition.italic.begin.markdown
|
||||
push:
|
||||
- meta_scope: markup.italic.markdown
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: |-
|
||||
(?x)
|
||||
[ \t]*_{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||
@@ -773,8 +733,6 @@ contexts:
|
||||
- include: bold-italic-trailing
|
||||
bold-italic-trailing:
|
||||
- include: scope:text.html.basic
|
||||
- - match: '{{setext_escape}}'
|
||||
- pop: true
|
||||
- match: ^\s*$\n?
|
||||
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
||||
pop: true
|
||||
@@ -1073,6 +1031,21 @@ contexts:
|
||||
escape: '{{code_fence_escape}}'
|
||||
escape_captures:
|
||||
0: meta.code-fence.definition.end.python.markdown-gfm
|
||||
+ 1: punctuation.definition.raw.code-fence.end.markdown
|
||||
+ - match: |-
|
||||
+ (?x)
|
||||
+ {{fenced_code_block_start}}
|
||||
+ ((?i:puppet))
|
||||
+ {{fenced_code_block_trailing_infostring_characters}}
|
||||
+ captures:
|
||||
+ 0: meta.code-fence.definition.begin.puppet.markdown-gfm
|
||||
+ 2: punctuation.definition.raw.code-fence.begin.markdown
|
||||
+ 5: constant.other.language-name.markdown
|
||||
+ embed: scope:source.puppet
|
||||
+ embed_scope: markup.raw.code-fence.puppet.markdown-gfm
|
||||
+ escape: '{{code_fence_escape}}'
|
||||
+ escape_captures:
|
||||
+ 0: meta.code-fence.definition.end.puppet.markdown-gfm
|
||||
1: punctuation.definition.raw.code-fence.end.markdown
|
||||
- match: |-
|
||||
(?x)
|
||||
@@ -1152,7 +1125,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
|
||||
|
51
assets/patches/Monokai-Extended.tmTheme.patch
vendored
Normal file
51
assets/patches/Monokai-Extended.tmTheme.patch
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
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, meta.annotation.error-line</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
@@ -1038,11 +1038,22 @@
|
||||
<string>#f8f8f0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
+ <dict>
|
||||
+ <key>name</key>
|
||||
+ <string>Error</string>
|
||||
+ <key>scope</key>
|
||||
+ <string>markup.error</string>
|
||||
+ <key>settings</key>
|
||||
+ <dict>
|
||||
+ <key>foreground</key>
|
||||
+ <string>#dd2020</string>
|
||||
+ </dict>
|
||||
+ </dict>
|
||||
<dict>
|
||||
<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>
|
47
assets/patches/OneHalfDark.tmTheme.patch
vendored
Normal file
47
assets/patches/OneHalfDark.tmTheme.patch
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
diff --git themes/onehalf/sublimetext/OneHalfDark.tmTheme themes/onehalf/sublimetext/OneHalfDark.tmTheme
|
||||
index b16050c..b021071 100644
|
||||
--- themes/onehalf/sublimetext/OneHalfDark.tmTheme
|
||||
+++ themes/onehalf/sublimetext/OneHalfDark.tmTheme
|
||||
@@ -28,7 +28,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
- <string>OneHalfLight</string>
|
||||
+ <string>OneHalfDark</string>
|
||||
<key>semanticClass</key>
|
||||
<string>theme.dark.one_half_dark</string>
|
||||
<key>uuid</key>
|
||||
@@ -155,7 +155,7 @@
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
- <string>support.class, entity.name.class, entity.name.type.class</string>
|
||||
+ <string>support.class, entity.name.class, entity.name.type.class, entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
@@ -188,7 +188,7 @@
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
- <string>storage</string>
|
||||
+ <string>storage, meta.mapping.key string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
@@ -309,7 +309,7 @@
|
||||
<key>name</key>
|
||||
<string>Markdown: Headings</string>
|
||||
<key>scope</key>
|
||||
- <string>markup.heading punctuation.definition.heading, entity.name.section</string>
|
||||
+ <string>markup.heading punctuation.definition.heading, entity.name.section, markup.heading - text.html.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
@@ -660,4 +660,4 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
-</plist>
|
||||
\ No newline at end of file
|
||||
+</plist>
|
15
assets/patches/Python.sublime-syntax.patch
vendored
Normal file
15
assets/patches/Python.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
diff --git syntaxes/01_Packages/Python/Python.sublime-syntax syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
index 2acd86d8..86257f7b 100644
|
||||
--- syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||
@@ -988,10 +988,6 @@ contexts:
|
||||
- match: \}
|
||||
scope: punctuation.section.mapping-or-set.end.python
|
||||
set: after-expression
|
||||
- - match: (?={{simple_expression}}:|\s*\*\*)
|
||||
- set: inside-dictionary
|
||||
- - match: (?={{simple_expression}}[,}]|\s*\*)
|
||||
- set: inside-set
|
||||
- match: ','
|
||||
scope: punctuation.separator.set.python
|
||||
set: inside-set
|
13
assets/patches/Rust.sublime-syntax.patch
vendored
Normal file
13
assets/patches/Rust.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/01_Packages/Rust/Rust.sublime-syntax syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
index 3c354486..24727a4e 100644
|
||||
--- syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
+++ syntaxes/01_Packages/Rust/Rust.sublime-syntax
|
||||
@@ -907,6 +907,8 @@ contexts:
|
||||
- include: type-any-identifier
|
||||
- match: ':'
|
||||
scope: punctuation.separator.rust
|
||||
+ - match: (?=;)
|
||||
+ pop: true
|
||||
|
||||
fn-body:
|
||||
- meta_scope: meta.function.rust
|
20
assets/patches/ShellScript.sublime-syntax.patch
vendored
Normal file
20
assets/patches/ShellScript.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
diff --git syntaxes/01_Packages/ShellScript/Bash.sublime-syntax syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
index e973e319..07c170a7 100644
|
||||
--- syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
+++ syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||
@@ -30,12 +30,12 @@ file_extensions:
|
||||
- .zshenv
|
||||
- .zshrc
|
||||
- PKGBUILD # https://jlk.fjfi.cvut.cz/arch/manpages/man/PKGBUILD.5
|
||||
- - .ebuild
|
||||
- - .eclass
|
||||
+ - ebuild
|
||||
+ - eclass
|
||||
|
||||
first_line_match: |
|
||||
(?x)
|
||||
- ^\#! .* \b(bash|zsh|sh|tcsh|ash)\b
|
||||
+ ^\#! .* \b(bash|zsh|sh|tcsh|ash|dash)\b
|
||||
| ^\# \s* -\*- [^*]* mode: \s* shell-script [^*]* -\*-
|
||||
|
||||
#-------------------------------------------------------------------------------
|
13
assets/patches/TodoTxt.sublime-syntax.patch
vendored
Normal file
13
assets/patches/TodoTxt.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git syntaxes/02_Extra/TodoTxt/TodoTxt.sublime-syntax syntaxes/02_Extra/TodoTxt/TodoTxt.sublime-syntax
|
||||
index 6c75dbb..0115978 100644
|
||||
--- syntaxes/02_Extra/TodoTxt/TodoTxt.sublime-syntax
|
||||
+++ syntaxes/02_Extra/TodoTxt/TodoTxt.sublime-syntax
|
||||
@@ -68,7 +68,7 @@ contexts:
|
||||
|
||||
- match: (\s+[^\s:]+:[^\s:]+)+\s*$
|
||||
comment: Custom attributes
|
||||
- scope: variable.annotation.todotxt.attribute
|
||||
+ scope: variable.other.todotxt.attribute
|
||||
|
||||
comments:
|
||||
# Comments begin with a '//' and finish at the end of the line.
|
38
assets/patches/TwoDark.tmTheme.patch
vendored
Normal file
38
assets/patches/TwoDark.tmTheme.patch
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
diff --git themes/TwoDark/TwoDark.tmTheme themes/TwoDark/TwoDark.tmTheme
|
||||
index 87fd358..56376d3 100644
|
||||
--- themes/TwoDark/TwoDark.tmTheme
|
||||
+++ themes/TwoDark/TwoDark.tmTheme
|
||||
@@ -125,7 +125,7 @@
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
- <string>support.class, entity.name.class, entity.name.type.class</string>
|
||||
+ <string>support.class, entity.name.class, entity.name.type.class, entity.name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
@@ -290,7 +290,7 @@
|
||||
<key>name</key>
|
||||
<string>Headings</string>
|
||||
<key>scope</key>
|
||||
- <string>markup.heading punctuation.definition.heading, entity.name.section</string>
|
||||
+ <string>markup.heading punctuation.definition.heading, entity.name.section, markup.heading - text.html.markdown</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
@@ -533,7 +533,7 @@
|
||||
<key>name</key>
|
||||
<string>Json key</string>
|
||||
<key>scope</key>
|
||||
- <string>source.json meta.structure.dictionary.json string.quoted.double.json</string>
|
||||
+ <string>source.json meta.mapping.key.json string.quoted.double.json</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
@@ -875,4 +875,4 @@
|
||||
<key>comment</key>
|
||||
<string>Work in progress</string>
|
||||
</dict>
|
||||
-</plist>
|
||||
\ No newline at end of file
|
||||
+</plist>
|
12
assets/patches/XML.sublime-syntax.patch
vendored
Normal file
12
assets/patches/XML.sublime-syntax.patch
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git syntaxes/01_Packages/XML/XML.sublime-syntax syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
index ad7d9c87..af4a00f0 100644
|
||||
--- syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
+++ syntaxes/01_Packages/XML/XML.sublime-syntax
|
||||
@@ -12,6 +12,7 @@ file_extensions:
|
||||
- rss
|
||||
- opml
|
||||
- svg
|
||||
+ - xaml
|
||||
first_line_match: |-
|
||||
(?x:
|
||||
^(?:
|
BIN
assets/syntaxes.bin
vendored
BIN
assets/syntaxes.bin
vendored
Binary file not shown.
1
assets/syntaxes/01_Packages
vendored
Submodule
1
assets/syntaxes/01_Packages
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 759d6eed9b4beed87e602a23303a121c3a6c2fb3
|
1
assets/syntaxes/02_Extra/AWK
vendored
Submodule
1
assets/syntaxes/02_Extra/AWK
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e23926eca1b6a0bd0b572b7191aead9f77c748d1
|
1
assets/syntaxes/02_Extra/Ada
vendored
Submodule
1
assets/syntaxes/02_Extra/Ada
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e2b8fd51756e0cc42172c1c3405832ce9c19b6b6
|
1
assets/syntaxes/02_Extra/Apache
vendored
Submodule
1
assets/syntaxes/02_Extra/Apache
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit cf6cefc51ebb46b1b54906433edbae0fe9c71cad
|
221
assets/syntaxes/02_Extra/Apache.sublime-syntax
vendored
Normal file
221
assets/syntaxes/02_Extra/Apache.sublime-syntax
vendored
Normal file
@ -0,0 +1,221 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Apache Conf
|
||||
file_extensions:
|
||||
- envvars
|
||||
- htaccess
|
||||
- HTACCESS
|
||||
- htgroups
|
||||
- HTGROUPS
|
||||
- htpasswd
|
||||
- HTPASSWD
|
||||
- .htaccess
|
||||
- .HTACCESS
|
||||
- .htgroups
|
||||
- .HTGROUPS
|
||||
- .htpasswd
|
||||
- .HTPASSWD
|
||||
scope: source.apacheconf
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(\s)*(#).*$\n?
|
||||
scope: comment.line.hash.ini
|
||||
captures:
|
||||
1: punctuation.definition.comment.apacheconf
|
||||
- match: (<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\s(.+?))?(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.apacheconf
|
||||
2: entity.tag.apacheconf
|
||||
4: string.value.apacheconf
|
||||
5: punctuation.definition.tag.apacheconf
|
||||
- match: (</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)
|
||||
captures:
|
||||
1: punctuation.definition.tag.apacheconf
|
||||
2: entity.tag.apacheconf
|
||||
3: punctuation.definition.tag.apacheconf
|
||||
- match: (?<=(Rewrite(Rule|Cond)))\s+(.+?)\s+(.+?)($|\s)
|
||||
captures:
|
||||
3: string.regexp.apacheconf
|
||||
4: string.replacement.apacheconf
|
||||
- match: (?<=RedirectMatch)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
2: entity.status.apacheconf
|
||||
3: string.regexp.apacheconf
|
||||
5: string.path.apacheconf
|
||||
- match: (?<=Redirect)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
2: entity.status.apacheconf
|
||||
3: string.path.apacheconf
|
||||
5: string.path.apacheconf
|
||||
- match: (?<=ScriptAliasMatch|AliasMatch)\s+(.+?)\s+((.+?)\s)?
|
||||
captures:
|
||||
1: string.regexp.apacheconf
|
||||
3: string.path.apacheconf
|
||||
- match: (?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\s+(.+?)\s+((.+?)($|\s))?
|
||||
captures:
|
||||
1: string.path.apacheconf
|
||||
3: string.path.apacheconf
|
||||
- match: \b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\w+|MaxRanges)\b
|
||||
captures:
|
||||
1: keyword.core.apacheconf
|
||||
- match: \b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\b
|
||||
captures:
|
||||
1: keyword.mpm.apacheconf
|
||||
- match: \b(Allow|Deny|Order)\b
|
||||
captures:
|
||||
1: keyword.access.apacheconf
|
||||
- match: \b(Action|Script)\b
|
||||
captures:
|
||||
1: keyword.actions.apacheconf
|
||||
- match: \b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\b
|
||||
captures:
|
||||
1: keyword.alias.apacheconf
|
||||
- match: \b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\b
|
||||
captures:
|
||||
1: keyword.auth.apacheconf
|
||||
- match: \b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\b
|
||||
captures:
|
||||
1: keyword.auth_anon.apacheconf
|
||||
- match: \b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\b
|
||||
captures:
|
||||
1: keyword.auth_dbm.apacheconf
|
||||
- match: \b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\b
|
||||
captures:
|
||||
1: keyword.auth_digest.apacheconf
|
||||
- match: \b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\b
|
||||
captures:
|
||||
1: keyword.auth_ldap.apacheconf
|
||||
- match: \b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\b
|
||||
captures:
|
||||
1: keyword.autoindex.apacheconf
|
||||
- match: \b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\b
|
||||
captures:
|
||||
1: keyword.filter.apacheconf
|
||||
- match: \b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\b
|
||||
captures:
|
||||
1: keyword.cache.apacheconf
|
||||
- match: \b(MetaDir|MetaFiles|MetaSuffix)\b
|
||||
captures:
|
||||
1: keyword.cern_meta.apacheconf
|
||||
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\b
|
||||
captures:
|
||||
1: keyword.cgi.apacheconf
|
||||
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\b
|
||||
captures:
|
||||
1: keyword.cgid.apacheconf
|
||||
- match: \b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\b
|
||||
captures:
|
||||
1: keyword.charset_lite.apacheconf
|
||||
- match: \b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\b
|
||||
captures:
|
||||
1: keyword.dav.apacheconf
|
||||
- match: \b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\b
|
||||
captures:
|
||||
1: keyword.deflate.apacheconf
|
||||
- match: \b(DirectoryIndex|DirectorySlash|FallbackResource)\b
|
||||
captures:
|
||||
1: keyword.dir.apacheconf
|
||||
- match: \b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\b
|
||||
captures:
|
||||
1: keyword.disk_cache.apacheconf
|
||||
- match: \b(DumpIOInput|DumpIOOutput)\b
|
||||
captures:
|
||||
1: keyword.dumpio.apacheconf
|
||||
- match: \b(PassEnv|SetEnv|UnsetEnv)\b
|
||||
captures:
|
||||
1: keyword.env.apacheconf
|
||||
- match: \b(ExpiresActive|ExpiresByType|ExpiresDefault)\b
|
||||
captures:
|
||||
1: keyword.expires.apacheconf
|
||||
- match: \b(ExtFilterDefine|ExtFilterOptions)\b
|
||||
captures:
|
||||
1: keyword.ext_filter.apacheconf
|
||||
- match: \b(CacheFile|MMapFile)\b
|
||||
captures:
|
||||
1: keyword.file_cache.apacheconf
|
||||
- match: \b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\b
|
||||
captures:
|
||||
1: keyword.filter.apacheconf
|
||||
- match: \b(Header|RequestHeader)\b
|
||||
captures:
|
||||
1: keyword.headers.apacheconf
|
||||
- match: \b(ImapBase|ImapDefault|ImapMenu)\b
|
||||
captures:
|
||||
1: keyword.imap.apacheconf
|
||||
- match: \b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\b
|
||||
captures:
|
||||
1: keyword.include.apacheconf
|
||||
- match: \b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\b
|
||||
captures:
|
||||
1: keyword.isapi.apacheconf
|
||||
- match: \b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\b
|
||||
captures:
|
||||
1: keyword.ldap.apacheconf
|
||||
- match: \b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\b
|
||||
captures:
|
||||
1: keyword.log.apacheconf
|
||||
- match: \b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\b
|
||||
captures:
|
||||
1: keyword.mem_cache.apacheconf
|
||||
- match: \b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\b
|
||||
captures:
|
||||
1: keyword.mime.apacheconf
|
||||
- match: \b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\b
|
||||
captures:
|
||||
1: keyword.misc.apacheconf
|
||||
- match: \b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\b
|
||||
captures:
|
||||
1: keyword.negotiation.apacheconf
|
||||
- match: \b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\b
|
||||
captures:
|
||||
1: keyword.nw_ssl.apacheconf
|
||||
- match: \b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\b
|
||||
captures:
|
||||
1: keyword.proxy.apacheconf
|
||||
- match: \b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\b
|
||||
captures:
|
||||
1: keyword.rewrite.apacheconf
|
||||
- match: \b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\b
|
||||
captures:
|
||||
1: keyword.setenvif.apacheconf
|
||||
- match: \b(LoadFile|LoadModule)\b
|
||||
captures:
|
||||
1: keyword.so.apacheconf
|
||||
- match: \b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\b
|
||||
captures:
|
||||
1: keyword.ssl.apacheconf
|
||||
- match: \b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\b
|
||||
captures:
|
||||
1: keyword.substitute.apacheconf
|
||||
- match: \b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\b
|
||||
captures:
|
||||
1: keyword.usertrack.apacheconf
|
||||
- match: \b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\b
|
||||
captures:
|
||||
1: keyword.vhost_alias.apacheconf
|
||||
- match: \b(php_value|php_flag|php_admin_value|php_admin_flag)\b(\s+(.+?)(\s+(".+?"|.+?))?)?\s
|
||||
captures:
|
||||
1: keyword.php.apacheconf
|
||||
3: entity.property.apacheconf
|
||||
5: string.value.apacheconf
|
||||
- match: '(%\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\})'
|
||||
captures:
|
||||
1: punctuation.variable.apacheconf
|
||||
3: variable.env.apacheconf
|
||||
4: variable.misc.apacheconf
|
||||
5: punctuation.variable.apacheconf
|
||||
- match: \b((text|image|application|video|audio)/.+?)\s
|
||||
captures:
|
||||
1: entity.mime-type.apacheconf
|
||||
- match: \b(?i)(export|from|unset|set|on|off)\b
|
||||
captures:
|
||||
1: entity.helper.apacheconf
|
||||
- match: \b(\d+)\b
|
||||
captures:
|
||||
1: constant.numeric.integer.decimal.apacheconf
|
||||
- match: '\s(\[)(.*?)(\])\s'
|
||||
captures:
|
||||
1: punctuation.definition.flag.apacheconf
|
||||
2: string.flag.apacheconf
|
||||
3: punctuation.definition.flag.apacheconf
|
1
assets/syntaxes/02_Extra/AsciiDoc
vendored
Submodule
1
assets/syntaxes/02_Extra/AsciiDoc
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e316a0a85c67c3edb73a46fc3a3ec4a9dfbbba40
|
997
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
Normal file
997
assets/syntaxes/02_Extra/AsciiDoc.sublime-syntax
vendored
Normal file
@ -0,0 +1,997 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: AsciiDoc (Asciidoctor)
|
||||
file_extensions:
|
||||
- adoc
|
||||
- ad
|
||||
- asciidoc
|
||||
scope: text.asciidoc
|
||||
contexts:
|
||||
main:
|
||||
- include: lists
|
||||
- include: blocks
|
||||
- include: section_titles
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
attribute_entry:
|
||||
- match: |-
|
||||
(?x)
|
||||
^(:) # opening delimiter
|
||||
(!)? # bang symbol (unset attribute)
|
||||
([A-Za-z0-9_][A-Za-z0-9_-]*) # attribute name
|
||||
(!)? # bang symbol (unset attribute)
|
||||
(:) # closing delimiter
|
||||
(?:\s+|(?=$))
|
||||
comment: |
|
||||
An attribute entry.
|
||||
|
||||
Examples:
|
||||
:my-attribute: value
|
||||
:sectnums!:
|
||||
:!sectnums:
|
||||
captures:
|
||||
1: punctuation.definition.attributeentry.attrname.begin.asciidoc
|
||||
2: punctuation.definition.attributeentry.unset.asciidoc
|
||||
3: support.variable.attribute.asciidoc
|
||||
4: punctuation.definition.attributeentry.unset.asciidoc
|
||||
5: punctuation.definition.attributeentry.attrname.end.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.attributeentry.asciidoc
|
||||
- meta_content_scope: meta.attributeentry.value.asciidoc
|
||||
- match: $\n?
|
||||
pop: true
|
||||
- include: characters
|
||||
attribute_list_line:
|
||||
- match: '^(\[)[^\[\]]*(\])\s*$\n?'
|
||||
comment: "Attribute list as paragraph: single brackets. No need for special treatment of escape; follows literal block, section template as being a more general regex."
|
||||
scope: support.variable.attributelist.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.attributelistline.begin.asciidoc
|
||||
2: punctuation.definition.attributelistline.end.asciidoc
|
||||
attribute_reference:
|
||||
- match: "({)([A-Za-z0-9_][A-Za-z0-9_-]*)(})"
|
||||
comment: |
|
||||
Examples:
|
||||
{my-attribute}
|
||||
scope: variable.other
|
||||
captures:
|
||||
1: constant.character.attributes.reference.begin.asciidoc
|
||||
2: support.variable.attribute.asciidoc
|
||||
3: constant.character.attributes.reference.end.asciidoc
|
||||
biblio_anchor:
|
||||
- match: '(?<!\[)(\[\[\[).*?(\]\]\])(?!\])'
|
||||
comment: |
|
||||
Bibliography anchor
|
||||
|
||||
Examples:
|
||||
[[[Lorem ipsum]]]
|
||||
scope: storage.type.reference.biblioanchor.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.biblioanchor.begin.asciidoc
|
||||
2: punctuation.definition.biblioanchor.end.asciidoc
|
||||
block_admonition_label:
|
||||
- match: ^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):(?=\s+)
|
||||
comment: |
|
||||
Label of an admonition block.
|
||||
|
||||
Examples:
|
||||
NOTE: This is a admonition block.
|
||||
WARNING: Be aware of them!
|
||||
scope: support.constant.admonitionword.asciidoc
|
||||
block_comment:
|
||||
- match: '^(/{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
////
|
||||
A multi-line comment.
|
||||
Notice it's a delimited block.
|
||||
////
|
||||
captures:
|
||||
0: punctuation.definition.comment.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: comment.block.asciidoc
|
||||
- meta_content_scope: meta.block.comment.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: punctuation.definition.comment.end.asciidoc
|
||||
pop: true
|
||||
- include: macro
|
||||
block_example:
|
||||
- match: '^(={4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
====
|
||||
Lorem ipsum.
|
||||
====
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise in
|
||||
practice for me.
|
||||
captures:
|
||||
0: constant.delimiter.example.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.unquoted.block.example.asciidoc
|
||||
- meta_content_scope: meta.block.example.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.example.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_listing
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_id:
|
||||
- match: '^(\[\[)([^\[].*)(\]\])\s*$\n?'
|
||||
comment: |
|
||||
A block id (i.e. anchor).
|
||||
|
||||
Examples:
|
||||
[[myid]]
|
||||
Lorem ipsum dolor.
|
||||
scope: meta.tag.blockid.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.blockid.begin.asciidoc
|
||||
2: markup.underline.blockid.id.asciidoc
|
||||
3: punctuation.definition.blockid.end.asciidoc
|
||||
block_listing:
|
||||
- match: '^(\-{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
----
|
||||
Lorem ipsum.
|
||||
----
|
||||
captures:
|
||||
0: constant.delimiter.listing.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.listing.asciidoc
|
||||
- meta_content_scope: source.block.listing.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.listing.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_literal:
|
||||
- match: '^(\.{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
....
|
||||
Lorem ipsum.
|
||||
....
|
||||
captures:
|
||||
0: constant.delimiter.block.literal.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.literal.block.delimited.asciidoc
|
||||
- meta_content_scope: meta.block.literal.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.literal.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_open:
|
||||
- match: ^\-\-\s*$\n?
|
||||
comment: |
|
||||
Examples:
|
||||
--
|
||||
Lorem ipsum
|
||||
--
|
||||
Note: Might need to check on these includes.
|
||||
captures:
|
||||
0: constant.delimiter.block.open.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.block.open.asciidoc
|
||||
- meta_content_scope: meta.block.open.content.asciidoc
|
||||
- match: ^\-\-\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.open.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: block_pass
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_page_break:
|
||||
- match: '^<{3,}$\n?'
|
||||
comment: |
|
||||
A page break.
|
||||
|
||||
Examples:
|
||||
<<<
|
||||
<<<<<
|
||||
scope: meta.separator.pagebreak.asciidoc
|
||||
block_pass:
|
||||
- match: '^(\+{4,})\s*$\n?'
|
||||
captures:
|
||||
0: constant.delimiter.block.passthrough.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.passthrough.asciidoc
|
||||
- meta_content_scope: text.xml.block.passthrough.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.passthrough.end.asciidoc
|
||||
pop: true
|
||||
- include: scope:text.xml
|
||||
block_quote:
|
||||
- match: '^(_{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
____
|
||||
Lorem ipsum
|
||||
____
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise for me in practice.
|
||||
captures:
|
||||
0: constant.delimiter.block.quote.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.quote.block.asciidoc
|
||||
- meta_content_scope: meta.block.quote.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.quote.end.asciidoc
|
||||
pop: true
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_sidebar:
|
||||
- match: '^(\*{4,})\s*$\n?'
|
||||
comment: |
|
||||
Examples:
|
||||
****
|
||||
Lorem ipsum
|
||||
****
|
||||
|
||||
Note: Might need to add more includes, but these are the ones that arise
|
||||
for me in practice.
|
||||
captures:
|
||||
0: constant.delimiter.block.sidebar.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.quoted.block.sidebar.asciidoc
|
||||
- meta_content_scope: meta.block.sidebar.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.block.sidebar.end.asciidoc
|
||||
pop: true
|
||||
- include: lists
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: lines
|
||||
- include: inline
|
||||
- include: characters
|
||||
block_source_fenced:
|
||||
- match: ^(```)(\w+)?\s*$\n?
|
||||
comment: |
|
||||
Fenced code block (ala Markdown)
|
||||
|
||||
Examples:
|
||||
```rb
|
||||
puts 'Hello world!'
|
||||
```
|
||||
captures:
|
||||
0: constant.delimiter.listing.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.embedded.block.listing.asciidoc
|
||||
- meta_content_scope: source.block.listing.content.asciidoc
|
||||
- match: ^\1\s*$\n?
|
||||
captures:
|
||||
0: constant.delimiter.listing.end.asciidoc
|
||||
pop: true
|
||||
- include: inline_callout
|
||||
block_thematic_break:
|
||||
- match: '^''{3,}$\n?'
|
||||
comment: |
|
||||
A thematic break (aka horizontal rule).
|
||||
|
||||
Examples:
|
||||
'''
|
||||
''''''
|
||||
scope: meta.separator.ruler.asciidoc
|
||||
block_title:
|
||||
- match: ^(\.)\w.*$\n?
|
||||
comment: |
|
||||
Title of a block.
|
||||
|
||||
Examples:
|
||||
.My title
|
||||
Lorem ipsum dolor.
|
||||
scope: markup.heading.block.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.blockheading.asciidoc
|
||||
blocks:
|
||||
- include: block_literal
|
||||
- include: block_comment
|
||||
- include: block_listing
|
||||
- include: block_source_fenced
|
||||
- include: block_sidebar
|
||||
- include: block_pass
|
||||
- include: block_quote
|
||||
- include: block_example
|
||||
- include: block_open
|
||||
characters:
|
||||
- include: attribute_reference
|
||||
- include: entity_number
|
||||
- include: entity_name
|
||||
- include: escape
|
||||
- include: replacement
|
||||
- include: macro_pass
|
||||
- include: macro
|
||||
- include: xref
|
||||
- include: biblio_anchor
|
||||
- include: indexterm_triple
|
||||
- include: indexterm_double
|
||||
colist_item_marker:
|
||||
- match: ^(\s*((<)\d+?(>)))\s+(?=\S)
|
||||
comment: |
|
||||
Marker of a callout list item.
|
||||
|
||||
Examples:
|
||||
<1> a callout
|
||||
<42> another callout
|
||||
scope: markup.list.numbered.callout.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.callout.asciidoc
|
||||
2: constant.numeric.callout.asciidoc
|
||||
3: punctuation.definition.calloutlistnumber.begin.asciidoc
|
||||
4: punctuation.definition.calloutlistnumber.end.asciidoc
|
||||
dlist_item_label:
|
||||
- match: '^\s*(?=.*:{2,4}(?:\s|$))'
|
||||
comment: |
|
||||
Label of a definition (labeled) list item.
|
||||
|
||||
Examples:
|
||||
Label level 1:: lorem ipsum
|
||||
Label level 2::: dolor sit amet
|
||||
Label level 3:::: consectetur
|
||||
Label level 1::
|
||||
lorem ipsum
|
||||
Another label :: lorem ipsum
|
||||
Last::label:: dolor sit amet
|
||||
|
||||
Note: This rule is not strictly correct, because Asciidoctor allows
|
||||
double colon followed by a space inside a label, i.e. it matches the
|
||||
*last* double colon, not the first. I don't know how to do that
|
||||
*effectively.
|
||||
push:
|
||||
- meta_scope: markup.list.labeled.asciidoc
|
||||
- meta_content_scope: meta.list.label.asciidoc
|
||||
- match: '(:{2,4})(?:\s|$\n?)'
|
||||
captures:
|
||||
1: constant.labeledlist.separator.asciidoc
|
||||
pop: true
|
||||
- include: inline
|
||||
- include: characters
|
||||
emphasis:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might be preceded by an attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(_)(?=\S) # delimiter underscore that must be followed by a nonspace character
|
||||
comment: |
|
||||
Emphasized (italic) text (constrained variant).
|
||||
|
||||
Examples:
|
||||
_Lorem ipsum_ dolor
|
||||
[red]_Lorem ipsum_ dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.italic.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.single.asciidoc
|
||||
- meta_content_scope: meta.italicinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(_) # delimiter underscore that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.italic.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
emphasis_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(__)
|
||||
comment: |
|
||||
Emphasized (italic) text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo__re__m __ipsum dolor__.
|
||||
Lo[red]__re__m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.italic.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.italic.double.asciidoc
|
||||
- meta_content_scope: meta.italicinner.double.asciidoc
|
||||
- match: __
|
||||
captures:
|
||||
0: punctuation.definition.italic.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
entity_name:
|
||||
- match: '(?<!\\)&([a-zA-Z][a-zA-Z0-9]*);'
|
||||
comment: |
|
||||
Character entity reference
|
||||
|
||||
Examples:
|
||||
|
||||
²
|
||||
scope: constant.character.entity.xml.asciidoc
|
||||
entity_number:
|
||||
- match: '(?<!\\)&#(x?[0-9a-fA-f]{2,4});'
|
||||
comment: |
|
||||
Numeric character reference
|
||||
|
||||
Examples:
|
||||
➊
|
||||
¶
|
||||
scope: constant.character.entity.asciidoc
|
||||
escape:
|
||||
- match: '\\(?=[-`*_#+.!(){}\[\]\\>:])'
|
||||
comment: |
|
||||
List of special characters that may be escaped.
|
||||
|
||||
Note: I do not really know if this is a good list, adopted wholesale from
|
||||
original bundle.
|
||||
scope: constant.character.escape.asciidoc
|
||||
indexterm_double:
|
||||
- match: '(?<!\()(\({2})([^\(\s].*?)(\){2})(?!\))'
|
||||
comment: |
|
||||
Double parenthesis indexterm.
|
||||
|
||||
Examples:
|
||||
((Arthur))
|
||||
scope: variable.other.indexterm.double.asciidoc
|
||||
captures:
|
||||
1: constant.character.indexterm.double.begin.asciidoc
|
||||
3: constant.character.indexterm.double.end.asciidoc
|
||||
indexterm_triple:
|
||||
- match: '(?<!\()(\({3})([^\(].*?)(\){3})(?!\))'
|
||||
comment: |
|
||||
Triple parenthesis indexterm.
|
||||
|
||||
Examples:
|
||||
(((Sword, Broadsword, Excalibur)))
|
||||
scope: variable.other.indexterm.triple.asciidoc
|
||||
captures:
|
||||
1: constant.character.indexterm.triple.begin.asciidoc
|
||||
3: constant.character.indexterm.triple.end.asciidoc
|
||||
inline:
|
||||
- include: passthrough
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
inline_break:
|
||||
- match: (?<=\s)\+$\n?
|
||||
comment: |
|
||||
Line hard break with a plus sign (+).
|
||||
|
||||
Examples:
|
||||
Rubies are red, +
|
||||
Topazes are blue.
|
||||
scope: constant.linebreak.asciidoc
|
||||
inline_callout:
|
||||
- match: (?<!\\)(<)\d+(>)
|
||||
comment: |
|
||||
Callout label
|
||||
|
||||
Examples:
|
||||
<1>
|
||||
<42>
|
||||
scope: constant.other.callout.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.callout.begin.asciidoc
|
||||
2: punctuation.definition.callout.end.asciidoc
|
||||
inline_comment:
|
||||
- match: '^(//)([^/\n].*|)$\n?'
|
||||
comment: |
|
||||
Inline comment.
|
||||
|
||||
Examples:
|
||||
// This is just a comment!
|
||||
scope: comment.line.double-slash.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.comment.line.asciidoc
|
||||
2: meta.line.comment.content.asciidoc
|
||||
lines:
|
||||
- include: inline_comment
|
||||
- include: list_continuation
|
||||
- include: inline_break
|
||||
- include: block_page_break
|
||||
- include: block_thematic_break
|
||||
- include: block_title
|
||||
- include: block_id
|
||||
- include: section_template
|
||||
- include: attribute_list_line
|
||||
- include: attribute_entry
|
||||
list_continuation:
|
||||
- match: ^\+\s*$\n?
|
||||
scope: constant.listcontinuation.asciidoc
|
||||
lists:
|
||||
- include: block_admonition_label
|
||||
- include: ulist_item_marker
|
||||
- include: olist_item_marker
|
||||
- include: dlist_item_label
|
||||
- include: colist_item_marker
|
||||
macro:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?:
|
||||
((?:https?|mailto|ftp|file) # specify separately so we can mark them as links that TextMate opens
|
||||
?:{1} # inline only
|
||||
\S*) # (others such as image are partial URLs and/or TextMate cannot handle them)
|
||||
|
|
||||
(([a-zA-Z0-9][a-zA-Z0-9_]*)
|
||||
(:{1,2})
|
||||
(\S*))
|
||||
)
|
||||
(?:(\[)([^\]]*)(\]))
|
||||
comment: |
|
||||
Note: There are other macro notations, but I match only those that end in
|
||||
square brackets.
|
||||
scope: meta.macro.asciidoc
|
||||
captures:
|
||||
1: markup.underline.link.macro.asciidoc
|
||||
3: keyword.control.name.macro.asciidoc
|
||||
4: constant.character.separator.macro.asciidoc
|
||||
5: markup.underline.target.macro.asciidoc
|
||||
6: constant.character.attributes.macro.begin.asciidoc
|
||||
7: variable.parameter.attributes.macro.asciidoc
|
||||
8: constant.character.attributes.macro.end.asciidoc
|
||||
macro_pass:
|
||||
- match: |-
|
||||
(?x)
|
||||
(pass)
|
||||
(:{1,2})
|
||||
(\S*)
|
||||
(\[)(?=[^\]]*\])
|
||||
comment: |
|
||||
Passthrough macro
|
||||
|
||||
Examples:
|
||||
pass:[Lorem ipsum]
|
||||
pass::[Lorem ipsum]
|
||||
captures:
|
||||
1: keyword.control.name.macro.pass.asciidoc
|
||||
2: constant.character.separator.macro.asciidoc
|
||||
3: markup.underline.target.macro.asciidoc
|
||||
4: constant.character.attributes.macro.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.macro.pass.asciidoc
|
||||
- meta_content_scope: variable.parameter.attributes.macro.pass.asciidoc
|
||||
- match: '\]'
|
||||
captures:
|
||||
0: constant.character.attributes.macro.end.asciidoc
|
||||
pop: true
|
||||
- include: scope:text.xml
|
||||
mark:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list (darned well better or why are we here)
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(\#)(?=\S) # delimiter hash that must be followed by a nonspace character
|
||||
comment: |
|
||||
Marked text (constrained variant).
|
||||
|
||||
Examples:
|
||||
#Lorem ipsum# dolor
|
||||
[red]#Lorem ipsum# dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.unquoted.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.unquoted.single.asciidoc
|
||||
- meta_content_scope: string.unquoted.unquotedinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(\#) # delimiter hash that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.string.unquoted.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
mark_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attribute list (indeed, that is its purpose)
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(\#\#)
|
||||
comment: |
|
||||
Marked text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo##re##m ##ipsum dolor##.
|
||||
Lo[red]##re##m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.unquoted.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.unquoted.double.asciidoc
|
||||
- meta_content_scope: string.unquoted.unquotedinner.double.asciidoc
|
||||
- match: '\#\#'
|
||||
captures:
|
||||
0: punctuation.definition.string.unquoted.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
monospaced:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(`)(?=\S) # delimiter backtick that must be followed by a nonspace character
|
||||
comment: |
|
||||
Monospaced text (constrained variant).
|
||||
|
||||
Examples:
|
||||
`Lorem ipsum` dolor
|
||||
[red]`Lorem ipsum` dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.literal.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.literal.single.asciidoc
|
||||
- meta_content_scope: meta.literalinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(`) # delimiter backtick that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.literal.single.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
monospaced_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(``)
|
||||
comment: |
|
||||
Monospaced text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo``re``m ``ipsum dolor``.
|
||||
Lo[red]``re``m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.literal.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.literal.double.asciidoc
|
||||
- meta_content_scope: meta.literalinner.double.asciidoc
|
||||
- match: "``"
|
||||
captures:
|
||||
0: punctuation.definition.literal.double.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
olist_item_marker:
|
||||
- match: '^(\s*(\.{1,5}))\s+(?=\S)'
|
||||
comment: |
|
||||
Marker of an ordered (numbered) list item.
|
||||
|
||||
Examples:
|
||||
. level 1
|
||||
.. level 2
|
||||
... level 3
|
||||
.... level 4
|
||||
..... level 5
|
||||
|
||||
Note: The space distinguishes it from a block title.
|
||||
scope: markup.list.numbered.dotted.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.dotted.asciidoc
|
||||
2: constant.numeric.list.dot.asciidoc
|
||||
passthrough:
|
||||
- match: (\+\+\+|\$\$)
|
||||
comment: |
|
||||
Inline triple-plus and double dolar passthrough.
|
||||
|
||||
Examples:
|
||||
Lo+++re++++m +++ipsum dolor+++.
|
||||
Lo$$re$$m $$ipsum dolor$$.
|
||||
|
||||
Note: Must be dead first among the inlines, so as to take priority.
|
||||
captures:
|
||||
1: constant.character.passthru.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: meta.passthru.inline.asciidoc
|
||||
- meta_content_scope: variable.parameter.passthruinner.asciidoc
|
||||
- match: \1
|
||||
captures:
|
||||
0: constant.character.passthru.end.asciidoc
|
||||
pop: true
|
||||
replacement:
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<!\\) # must not be escaped
|
||||
(
|
||||
\(C\)
|
||||
| \(TM\)
|
||||
| \(R\)
|
||||
| ((?<!\-)\-\-(?!\-)) # exactly two, and even this may not rule out all that I want to
|
||||
| ((?<!\.)\.\.\.(?!\.)) # exactly three
|
||||
| \->
|
||||
| <\-
|
||||
| =>
|
||||
| <=
|
||||
)
|
||||
scope: constant.character.replacement.asciidoc
|
||||
section_template:
|
||||
- match: |-
|
||||
(?x)^
|
||||
(\[) # in square brackets
|
||||
(template\s*=\s*)?(")? # might start with template-equals and might have template name in quotes
|
||||
(
|
||||
sect\d|abstract|preface|colophon|dedication|glossary|bibliography|synopsis|appendix|index # fixed list of known templates
|
||||
)
|
||||
(".*(\])|(\])) # either close the quote (and perhaps go on) and close the bracket, or close the bracket immediately
|
||||
\s*$\n?
|
||||
comment: fixed list of known template names
|
||||
scope: variable.parameter.sectiontemplate.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.sectiontemplate.begin.asciidoc
|
||||
4: meta.tag.sectiontemplate.asciidoc
|
||||
6: punctuation.definition.sectiontemplate.end.asciidoc
|
||||
7: punctuation.definition.sectiontemplate.end.asciidoc
|
||||
section_titles:
|
||||
- include: title_level_5
|
||||
- include: title_level_4
|
||||
- include: title_level_3
|
||||
- include: title_level_2
|
||||
- include: title_level_1
|
||||
- include: title_level_0
|
||||
strong:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attributes list
|
||||
(?<=^|\W)(?<!\\|}) # must be preceded by nonword character, and not by escape or } (attribute)
|
||||
(\*)(?=\S) # delimiter star that must be followed by a nonspace character
|
||||
comment: |
|
||||
Strong (bold) text (constrained variant).
|
||||
|
||||
Examples:
|
||||
*Lorem ipsum* dolor
|
||||
[red]*Lorem ipsum* dolor
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.bold.single.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.single.asciidoc
|
||||
- meta_content_scope: meta.boldinner.single.asciidoc
|
||||
- match: |-
|
||||
(?x)
|
||||
(?<=\S)(\*) # delimiter star that must be preceded by a nonspace character
|
||||
(?!\w) # ...and followed by a nonword character
|
||||
captures:
|
||||
1: punctuation.definition.bold.single.end.asciidoc
|
||||
pop: true
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
strong_double:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with an attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(\*\*)
|
||||
comment: |
|
||||
Strong (bold) text (unconstrained variant).
|
||||
|
||||
Examples:
|
||||
Lo**re**m **ipsum dolor**.
|
||||
Lo[red]**re**m
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.bold.double.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: markup.bold.double.asciidoc
|
||||
- meta_content_scope: meta.boldinner.double.asciidoc
|
||||
- match: \*\*
|
||||
captures:
|
||||
0: punctuation.definition.bold.double.end.asciidoc
|
||||
pop: true
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: subscript
|
||||
- include: characters
|
||||
subscript:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # must not be preceded by escape
|
||||
(~)
|
||||
comment: |
|
||||
Subscript text.
|
||||
|
||||
Examples:
|
||||
E=mc^2^
|
||||
E=mc[red]^2^
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.subscript.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.subscript.asciidoc
|
||||
- meta_content_scope: meta.subscriptinner.asciidoc
|
||||
- match: '~' # this tilda a problem if unquoted
|
||||
captures:
|
||||
0: punctuation.definition.string.subscript.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: superscript
|
||||
- include: characters
|
||||
superscript:
|
||||
- match: |-
|
||||
(?x)
|
||||
(\[[^\]]*?\])? # might start with attribute list
|
||||
(?<!\\) # no preceding escape
|
||||
(\^)
|
||||
comment: |
|
||||
Superscript text.
|
||||
|
||||
Examples:
|
||||
H~2~O
|
||||
H[red]~2~O
|
||||
captures:
|
||||
1: support.variable.attributelist.asciidoc
|
||||
2: punctuation.definition.string.superscript.begin.asciidoc
|
||||
push:
|
||||
- meta_scope: string.other.superscript.asciidoc
|
||||
- meta_content_scope: meta.superscriptinner.asciidoc
|
||||
- match: ^
|
||||
captures:
|
||||
0: punctuation.definition.string.superscript.end.asciidoc
|
||||
pop: true
|
||||
- include: strong_double
|
||||
- include: emphasis_double
|
||||
- include: monospaced_double
|
||||
- include: mark_double
|
||||
- include: strong
|
||||
- include: emphasis
|
||||
- include: monospaced
|
||||
- include: mark
|
||||
- include: subscript
|
||||
- include: characters
|
||||
title_level_0:
|
||||
- match: ^(=) (\w.*)$\n?
|
||||
scope: markup.heading.level.0.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_1:
|
||||
- match: ^(==) (\w.*)$\n?
|
||||
scope: markup.heading.level.1.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_2:
|
||||
- match: ^(===) (\w.*)$\n?
|
||||
scope: markup.heading.level.2.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_3:
|
||||
- match: ^(====) (\w.*)$\n?
|
||||
scope: markup.heading.level.3.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_4:
|
||||
- match: ^(=====) (\w.*)$\n?
|
||||
scope: markup.heading.level.4.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
title_level_5:
|
||||
- match: ^(======) (\w.*)$\n?
|
||||
scope: markup.heading.level.5.asciidoc
|
||||
captures:
|
||||
1: punctuation.definition.heading.asciidoc
|
||||
2: entity.name.section.asciidoc
|
||||
ulist_item_marker:
|
||||
- match: '^(\s*(\-|\*{1,5}))\s+(?=\S)'
|
||||
comment: |
|
||||
Marker of an unordered (bullet) list item.
|
||||
|
||||
Examples:
|
||||
* level 1
|
||||
** level 2
|
||||
*** level 3
|
||||
**** level 4
|
||||
***** level 5
|
||||
- level 1
|
||||
-- level 2
|
||||
--- level 3
|
||||
---- level 4
|
||||
----- level 5
|
||||
scope: markup.list.bulleted.asciidoc
|
||||
captures:
|
||||
1: string.unquoted.list.bullet.asciidoc
|
||||
2: constant.numeric.list.bullet.asciidoc
|
||||
xref:
|
||||
- match: '(?<!<)(<<)([^,]*?)((,\s*)(.*?))?(>>)(?!<)'
|
||||
comment: |
|
||||
Internal cross-reference
|
||||
|
||||
Examples:
|
||||
<<lorem>>
|
||||
<<lorem, see here>>
|
||||
scope: meta.xref.asciidoc
|
||||
captures:
|
||||
1: constant.character.xref.begin.asciidoc
|
||||
2: markup.underline.term.xref.asciidoc
|
||||
5: variable.parameter.xref.asciidoc
|
||||
6: constant.character.xref.end.asciidoc
|
1
assets/syntaxes/02_Extra/CFML
vendored
Submodule
1
assets/syntaxes/02_Extra/CFML
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit b91c44a32e251c20c6359a8d9232287e1b408e6c
|
1
assets/syntaxes/02_Extra/CMake
vendored
Submodule
1
assets/syntaxes/02_Extra/CMake
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit eb40ede56c2d4d5a4a129b2a5bc7095a2df46bb1
|
79
assets/syntaxes/02_Extra/CSV/CSV-comma.sublime-syntax
vendored
Normal file
79
assets/syntaxes/02_Extra/CSV/CSV-comma.sublime-syntax
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Comma Separated Values
|
||||
scope: text.csv.comma
|
||||
variables:
|
||||
field_separator: (?:,)
|
||||
record_separator: (?:$\n?)
|
||||
contexts:
|
||||
main:
|
||||
- match: '^'
|
||||
push: fields
|
||||
|
||||
fields:
|
||||
- include: record_separator
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field5
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
|
||||
record_separator_pop:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
|
||||
record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
pop: true
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- include: record_separator_pop
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: scope:text.csv#double_quoted_string
|
||||
|
||||
- include: record_separator_pop
|
||||
- match: (?={{field_separator}})
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
field5:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||
- include: field_contents
|
80
assets/syntaxes/02_Extra/CSV/CSV-pipe.sublime-syntax
vendored
Normal file
80
assets/syntaxes/02_Extra/CSV/CSV-pipe.sublime-syntax
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Pipe Separated Values
|
||||
scope: text.csv.pipe
|
||||
variables:
|
||||
field_separator: (?:\|)
|
||||
record_separator: (?:$\n?)
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^'
|
||||
push: fields
|
||||
|
||||
fields:
|
||||
- include: record_separator
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field5
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
|
||||
record_separator_pop:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
|
||||
record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
pop: true
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- include: record_separator_pop
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: scope:text.csv#double_quoted_string
|
||||
|
||||
- include: record_separator_pop
|
||||
- match: (?={{field_separator}})
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
field5:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||
- include: field_contents
|
79
assets/syntaxes/02_Extra/CSV/CSV-semi-colon.sublime-syntax
vendored
Normal file
79
assets/syntaxes/02_Extra/CSV/CSV-semi-colon.sublime-syntax
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Semi-Colon Separated Values
|
||||
scope: text.csv.semi-colon
|
||||
variables:
|
||||
field_separator: (?:;)
|
||||
record_separator: (?:$\n?)
|
||||
contexts:
|
||||
main:
|
||||
- match: '^'
|
||||
push: fields
|
||||
|
||||
fields:
|
||||
- include: record_separator
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field5
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
|
||||
record_separator_pop:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
|
||||
record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
pop: true
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- include: record_separator_pop
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: scope:text.csv#double_quoted_string
|
||||
|
||||
- include: record_separator_pop
|
||||
- match: (?={{field_separator}})
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
field5:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||
- include: field_contents
|
113
assets/syntaxes/02_Extra/CSV/CSV.sublime-syntax
vendored
Normal file
113
assets/syntaxes/02_Extra/CSV/CSV.sublime-syntax
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Separated Values
|
||||
file_extensions:
|
||||
- csv
|
||||
scope: text.csv
|
||||
variables:
|
||||
field_separator_chars: ',;\t|'
|
||||
field_separator: (?:[{{field_separator_chars}}])
|
||||
record_separator: (?:$\n?)
|
||||
contexts:
|
||||
main:
|
||||
- meta_include_prototype: false
|
||||
- include: three_field_separators
|
||||
- include: single_separator_type_on_line
|
||||
- match: '^'
|
||||
push: unknown-separated-main
|
||||
|
||||
three_field_separators:
|
||||
- match: ^(?=(?:[^,]*,){3})
|
||||
set: scope:text.csv.comma
|
||||
- match: ^(?=(?:[^;]*;){3})
|
||||
set: scope:text.csv.semi-colon
|
||||
- match: ^(?=(?:[^\t]*\t){3})
|
||||
set: scope:text.csv.tab
|
||||
- match: ^(?=(?:[^|]*\|){3})
|
||||
set: scope:text.csv.pipe
|
||||
|
||||
single_separator_type_on_line:
|
||||
- match: ^(?=[^{{field_separator_chars}}]*,[^;\t|]*$)
|
||||
set: scope:text.csv.comma
|
||||
- match: ^(?=[^{{field_separator_chars}}]*;[^,\t|]*$)
|
||||
set: scope:text.csv.semi-colon
|
||||
- match: ^(?=[^{{field_separator_chars}}]*\t[^,;|]*$)
|
||||
set: scope:text.csv.tab
|
||||
- match: ^(?=[^{{field_separator_chars}}]*\|[^,;\t]*$)
|
||||
set: scope:text.csv.pipe
|
||||
|
||||
unknown-separated-main:
|
||||
- include: record_separator
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field5
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
|
||||
record_separator_pop:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
|
||||
record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- include: record_separator_pop
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: double_quoted_string
|
||||
|
||||
- include: record_separator_pop
|
||||
- match: (?={{field_separator}})
|
||||
pop: true
|
||||
|
||||
double_quoted_string:
|
||||
- meta_include_prototype: false
|
||||
- meta_scope: string.quoted.double.csv
|
||||
- match: '""'
|
||||
scope: constant.character.escape.csv
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.end.csv
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
field5:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||
- include: field_contents
|
83
assets/syntaxes/02_Extra/CSV/TSV.sublime-syntax
vendored
Normal file
83
assets/syntaxes/02_Extra/CSV/TSV.sublime-syntax
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: Tab Separated Values
|
||||
scope: text.csv.tab
|
||||
file_extensions:
|
||||
- tsv
|
||||
|
||||
variables:
|
||||
field_separator: (?:\t)
|
||||
record_separator: (?:$\n?)
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^'
|
||||
push: fields
|
||||
|
||||
fields:
|
||||
- include: record_separator
|
||||
- match: ''
|
||||
push:
|
||||
- field_or_record_separator
|
||||
- field5
|
||||
- field_or_record_separator
|
||||
- field4
|
||||
- field_or_record_separator
|
||||
- field3
|
||||
- field_or_record_separator
|
||||
- field2
|
||||
- field_or_record_separator
|
||||
- field1
|
||||
|
||||
record_separator_pop:
|
||||
- match: (?={{record_separator}})
|
||||
pop: true
|
||||
|
||||
record_separator:
|
||||
- meta_include_prototype: false
|
||||
- match: '{{record_separator}}'
|
||||
scope: punctuation.terminator.record.csv
|
||||
pop: true
|
||||
|
||||
field_or_record_separator:
|
||||
- meta_include_prototype: false
|
||||
- include: record_separator_pop
|
||||
- match: '{{field_separator}}'
|
||||
scope: punctuation.separator.sequence.csv
|
||||
pop: true
|
||||
|
||||
field_contents:
|
||||
- match: '"'
|
||||
scope: punctuation.definition.string.begin.csv
|
||||
push: scope:text.csv#double_quoted_string
|
||||
|
||||
- include: record_separator_pop
|
||||
- match: (?={{field_separator}})
|
||||
pop: true
|
||||
|
||||
field1:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||
- include: field_contents
|
||||
field2:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-2.csv support.function
|
||||
- include: field_contents
|
||||
field3:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||
- include: field_contents
|
||||
field4:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||
- include: field_contents
|
||||
field5:
|
||||
- match: ''
|
||||
set:
|
||||
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||
- include: field_contents
|
@ -33,7 +33,7 @@ contexts:
|
||||
captures:
|
||||
1: constant.other.cabal
|
||||
2: punctuation.entity.cabal
|
||||
- match: '^(?i)(executable|library|test-suite|benchmark|flag|source-repository)\s+([^\s,]+)\s*$'
|
||||
- match: '^(?i)(executable|library|test-suite|benchmark|flag|source-repository|custom-setup)\s+([^\s,]+)\s*$'
|
||||
scope: entity.cabal
|
||||
captures:
|
||||
1: keyword.entity.cabal
|
1
assets/syntaxes/02_Extra/CoffeeScript
vendored
Submodule
1
assets/syntaxes/02_Extra/CoffeeScript
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e08f9b8cdfc84e0456ae63dca7aaefb94bf06e24
|
271
assets/syntaxes/02_Extra/CoffeeScript.sublime-syntax
vendored
Normal file
271
assets/syntaxes/02_Extra/CoffeeScript.sublime-syntax
vendored
Normal file
@ -0,0 +1,271 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CoffeeScript
|
||||
comment: "CoffeeScript Syntax: version 1"
|
||||
file_extensions:
|
||||
- coffee
|
||||
- Cakefile
|
||||
- coffee.erb
|
||||
- cson
|
||||
first_line_match: ^#!.*\bcoffee
|
||||
scope: source.coffee
|
||||
contexts:
|
||||
main:
|
||||
- match: '(\([^()]*?\))\s*([=-]>)'
|
||||
comment: "match stuff like: a -> …"
|
||||
scope: meta.inline.function.coffee
|
||||
captures:
|
||||
1: variable.parameter.function.coffee
|
||||
2: storage.type.function.coffee
|
||||
- match: (new)\s+(\w+(?:\.\w*)*)
|
||||
scope: meta.class.instance.constructor
|
||||
captures:
|
||||
1: keyword.operator.new.coffee
|
||||
2: support.class.coffee
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.heredoc.coffee
|
||||
- match: "'''"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.double.heredoc.coffee
|
||||
- match: '"""'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: \\.
|
||||
scope: constant.character.escape.coffee
|
||||
- include: interpolated_coffee
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.script.coffee
|
||||
- match: "`"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
- match: (?<!#)###(?!#)
|
||||
captures:
|
||||
0: punctuation.definition.comment.coffee
|
||||
push:
|
||||
- meta_scope: comment.block.coffee
|
||||
- match: '###(?:[ \t]*\n)'
|
||||
captures:
|
||||
0: punctuation.definition.comment.coffee
|
||||
pop: true
|
||||
- match: '@\w*'
|
||||
scope: storage.type.annotation.coffeescript
|
||||
- match: '(#)(?!\{).*$\n?'
|
||||
scope: comment.line.number-sign.coffee
|
||||
captures:
|
||||
1: punctuation.definition.comment.coffee
|
||||
- match: "/{3}"
|
||||
push:
|
||||
- meta_scope: string.regexp.coffee
|
||||
- match: "/{3}[imgy]{0,4}"
|
||||
pop: true
|
||||
- include: interpolated_coffee
|
||||
- include: embedded_comment
|
||||
- match: '/(?![\s=/*+{}?]).*?[^\\]/[igmy]{0,4}(?![a-zA-Z0-9])'
|
||||
scope: string.regexp.coffee
|
||||
- match: |-
|
||||
(?x)
|
||||
\b(?<![\.\$])(
|
||||
break|by|catch|continue|else|finally|for|in|of|if|return|switch|
|
||||
then|throw|try|unless|when|while|until|loop|do|(?<=for)\s+own
|
||||
)(?!\s*:)\b
|
||||
scope: keyword.control.coffee
|
||||
- match: |-
|
||||
(?x)
|
||||
and=|or=|!|%|&|\^|\*|\/|(\-)?\-(?!>)|\+\+|\+|~|==|=(?!>)|!=|<=|>=|<<=|>>=|
|
||||
>>>=|<>|<|>|!|&&|\.\.(\.)?|\?|\||\|\||\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|
|
||||
\^=|\b(?<![\.\$])(instanceof|new|delete|typeof|and|or|is|isnt|not|super)\b
|
||||
scope: keyword.operator.coffee
|
||||
- match: '([a-zA-Z\$_](\w|\$|\.)*\s*(?!\::)((:)|(=[^=]))(?!(\s*\(.*\))?\s*((=|-)>)))'
|
||||
scope: variable.assignment.coffee
|
||||
captures:
|
||||
1: variable.assignment.coffee
|
||||
4: punctuation.separator.key-value
|
||||
5: keyword.operator.coffee
|
||||
- match: '(?<=\s|^)([\[\{])(?=.*?[\]\}]\s+[:=])'
|
||||
captures:
|
||||
0: keyword.operator.coffee
|
||||
push:
|
||||
- meta_scope: meta.variable.assignment.destructured.coffee
|
||||
- match: '([\]\}]\s*[:=])'
|
||||
captures:
|
||||
0: keyword.operator.coffee
|
||||
pop: true
|
||||
- include: variable_name
|
||||
- include: instance_variable
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
- match: |-
|
||||
(?x)
|
||||
(\s*)
|
||||
(?=[a-zA-Z\$_])
|
||||
(
|
||||
[a-zA-Z\$_](\w|\$|:|\.)*\s*
|
||||
(?=[:=](\s*\(.*\))?\s*([=-]>))
|
||||
)
|
||||
scope: meta.function.coffee
|
||||
captures:
|
||||
2: entity.name.function.coffee
|
||||
3: entity.name.function.coffee
|
||||
4: variable.parameter.function.coffee
|
||||
5: storage.type.function.coffee
|
||||
- match: ^\s*(describe|it|app\.(get|post|put|all|del|delete))
|
||||
comment: Show well-known functions from Express and Mocha in Go To Symbol view
|
||||
push:
|
||||
- meta_scope: meta.function.symbols.coffee
|
||||
- match: $
|
||||
pop: true
|
||||
- include: main
|
||||
- match: "[=-]>"
|
||||
scope: storage.type.function.coffee
|
||||
- match: '\b(?<!\.)(true|on|yes)(?!\s*[:=])\b'
|
||||
scope: constant.language.boolean.true.coffee
|
||||
- match: '\b(?<!\.)(false|off|no)(?!\s*[:=])\b'
|
||||
scope: constant.language.boolean.false.coffee
|
||||
- match: '\b(?<!\.)null(?!\s*[:=])\b'
|
||||
scope: constant.language.null.coffee
|
||||
- match: '\b(?<!\.)(this|extends)(?!\s*[:=])\b'
|
||||
scope: variable.language.coffee
|
||||
- match: '(class\b)\s+(@?[a-zA-Z\$_][\w\.]*)?(?:\s+(extends)\s+(@?[a-zA-Z\$\._][\w\.]*))?'
|
||||
scope: meta.class.coffee
|
||||
captures:
|
||||
1: storage.type.class.coffee
|
||||
2: entity.name.type.class.coffee
|
||||
3: keyword.control.inheritance.coffee
|
||||
4: entity.other.inherited-class.coffee
|
||||
- match: \b(debugger|\\)\b
|
||||
scope: keyword.other.coffee
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
Array|ArrayBuffer|Blob|Boolean|Date|document|event|Function|
|
||||
Int(8|16|32|64)Array|Math|Map|Number|
|
||||
Object|Proxy|RegExp|Set|String|WeakMap|
|
||||
window|Uint(8|16|32|64)Array|XMLHttpRequest
|
||||
)\b
|
||||
scope: support.class.coffee
|
||||
- match: ((?<=console\.)(debug|warn|info|log|error|time|timeEnd|assert))\b
|
||||
scope: support.function.console.coffee
|
||||
- match: |-
|
||||
(?x)\b(
|
||||
decodeURI(Component)?|encodeURI(Component)?|eval|parse(Float|Int)|require
|
||||
)\b
|
||||
scope: support.function.coffee
|
||||
- match: |-
|
||||
(?x)((?<=\.)(
|
||||
apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|
|
||||
isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|
|
||||
reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|
|
||||
unshift|valueOf
|
||||
))\b
|
||||
scope: support.function.method.array.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Array\.)(
|
||||
isArray
|
||||
))\b
|
||||
scope: support.function.static.array.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Object\.)(
|
||||
create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|
|
||||
getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|
|
||||
isnt|keys|preventExtensions|seal
|
||||
))\b
|
||||
scope: support.function.static.object.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Math\.)(
|
||||
abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|
|
||||
hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|
|
||||
tan|tanh|trunc
|
||||
))\b
|
||||
scope: support.function.static.math.coffee
|
||||
- match: |-
|
||||
(?x)((?<=Number\.)(
|
||||
is(Finite|Integer|NaN)|toInteger
|
||||
))\b
|
||||
scope: support.function.static.number.coffee
|
||||
- match: \b(Infinity|NaN|undefined)\b
|
||||
scope: constant.language.coffee
|
||||
- match: \;
|
||||
scope: punctuation.terminator.statement.coffee
|
||||
- match: ',[ |\t]*'
|
||||
scope: meta.delimiter.object.comma.coffee
|
||||
- match: \.
|
||||
scope: meta.delimiter.method.period.coffee
|
||||
- match: '\{|\}'
|
||||
scope: meta.brace.curly.coffee
|
||||
- match: \(|\)
|
||||
scope: meta.brace.round.coffee
|
||||
- match: '\[|\]\s*'
|
||||
scope: meta.brace.square.coffee
|
||||
- include: instance_variable
|
||||
- include: single_quoted_string
|
||||
- include: double_quoted_string
|
||||
- include: numeric
|
||||
double_quoted_string:
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.double.coffee
|
||||
- match: '"'
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
- include: interpolated_coffee
|
||||
embedded_comment:
|
||||
- match: (?<!\\)(#).*$\n?
|
||||
scope: comment.line.number-sign.coffee
|
||||
captures:
|
||||
1: punctuation.definition.comment.coffee
|
||||
instance_variable:
|
||||
- match: '(@)([a-zA-Z_\$]\w*)?'
|
||||
scope: variable.other.readwrite.instance.coffee
|
||||
interpolated_coffee:
|
||||
- match: '\#\{'
|
||||
captures:
|
||||
0: punctuation.section.embedded.coffee
|
||||
push:
|
||||
- meta_scope: source.coffee.embedded.source
|
||||
- match: '\}'
|
||||
captures:
|
||||
0: punctuation.section.embedded.coffee
|
||||
pop: true
|
||||
- include: main
|
||||
numeric:
|
||||
- match: '(?<!\$)\b((0([box])[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?(e[+\-]?[0-9]+)?))\b'
|
||||
scope: constant.numeric.coffee
|
||||
single_quoted_string:
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.coffee
|
||||
push:
|
||||
- meta_scope: string.quoted.single.coffee
|
||||
- match: "'"
|
||||
captures:
|
||||
0: punctuation.definition.string.end.coffee
|
||||
pop: true
|
||||
- match: '\\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)'
|
||||
scope: constant.character.escape.coffee
|
||||
variable_name:
|
||||
- match: '([a-zA-Z\$_]\w*(\.\w+)*)'
|
||||
scope: variable.assignment.coffee
|
||||
captures:
|
||||
1: variable.assignment.coffee
|
14
assets/syntaxes/02_Extra/CpuInfo.sublime-syntax
vendored
Normal file
14
assets/syntaxes/02_Extra/CpuInfo.sublime-syntax
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: CpuInfo
|
||||
file_extensions:
|
||||
- cpuinfo
|
||||
scope: source.cpuinfo
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- match: '^([^:]+)\w*:\w*(.*)$'
|
||||
captures:
|
||||
1: keyword.other.cpuinfo-key
|
||||
2: string.other.cpuinfo-value
|
1
assets/syntaxes/02_Extra/Crontab
vendored
Submodule
1
assets/syntaxes/02_Extra/Crontab
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 54f1fa7ff0c9d18aea3790555dba6e533ce3749b
|
1
assets/syntaxes/02_Extra/Crystal
vendored
Submodule
1
assets/syntaxes/02_Extra/Crystal
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit eb63666f35c259733d4c7fcec9adbd82e5a91dda
|
@ -108,7 +108,7 @@ contexts:
|
||||
- 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.
|
||||
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..
|
||||
scope: keyword.control.primary.crystal
|
||||
- match: '(?<!\.)\b(when|else|elsif)\b(?![?!])'
|
||||
@ -131,9 +131,9 @@ contexts:
|
||||
scope: keyword.control.pseudo-method.crystal
|
||||
- match: '\b(nil|true|false)\b(?![?!])'
|
||||
scope: constant.language.crystal
|
||||
- match: '\b(__(DIR|FILE|LINE)__|self)\b(?![?!])'
|
||||
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])|self[?]'
|
||||
scope: variable.language.crystal
|
||||
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn)\b[!?]?'
|
||||
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
|
||||
comment: everything being a method but having a special function is a..
|
||||
scope: keyword.control.special-method.crystal
|
||||
- match: \b(require)\b
|
||||
@ -180,7 +180,7 @@ contexts:
|
||||
(?<=^|\s)(def)\s+ # the def keyword
|
||||
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\x{80}-\x{10FFFF}\w]*(?>\.|::))? # a method name prefix
|
||||
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\x{80}-\x{10FFFF}\w]*(?>[?!]|=(?!>))? # the method name
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) # …or an operator method
|
||||
\s*(\() # the openning parenthesis for arguments
|
||||
comment: the method pattern comes from the symbol pattern, see there for a explaination
|
||||
captures:
|
||||
@ -190,7 +190,7 @@ contexts:
|
||||
push:
|
||||
- meta_scope: meta.function.method.with-arguments.crystal
|
||||
- meta_content_scope: variable.parameter.function.crystal
|
||||
- match: \)\s*$|\)\s*:|\)\s*;
|
||||
- match: \)
|
||||
captures:
|
||||
0: punctuation.definition.parameters.crystal
|
||||
pop: true
|
||||
@ -201,7 +201,7 @@ contexts:
|
||||
(?<=^|\s)(def)\s+ # the def keyword
|
||||
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>\.|::))? # a method name prefix
|
||||
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?!>))? # the method name
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) # …or an operator method
|
||||
[ \t] # the space separating the arguments
|
||||
(?=[ \t]*[^\s#;]) # make sure arguments and not a comment follow
|
||||
comment: same as the previous rule, but without parentheses around the arguments
|
||||
@ -221,7 +221,7 @@ contexts:
|
||||
( \s+ # an optional group of whitespace followed by…
|
||||
( (?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>\.|::))? # a method name prefix
|
||||
(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?!>))? # the method name
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) )? # …or an operator method
|
||||
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?) ) )? # …or an operator method
|
||||
comment: the optional name is just to catch the def also without a method-name
|
||||
scope: meta.function.method.without-arguments.crystal
|
||||
captures:
|
||||
@ -588,7 +588,7 @@ contexts:
|
||||
pop: true
|
||||
- match: \\.
|
||||
comment: Cant be named because its not neccesarily an escape.
|
||||
- match: '(?<!:)(:)(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?|@@?[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*)'
|
||||
- match: '(?<!:)(:)(?>[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\](?:=|\?)?|@@?[a-zA-Z_\x{80}-\x{10FFFF}][\w\x{80}-\x{10FFFF}]*|!=?(?![?!]))'
|
||||
comment: symbols
|
||||
scope: constant.other.symbol.crystal
|
||||
captures:
|
||||
@ -705,6 +705,7 @@ contexts:
|
||||
0: punctuation.definition.string.end.crystal
|
||||
pop: true
|
||||
- include: heredoc
|
||||
- include: scope:text.html.basic
|
||||
- include: scope:source.js
|
||||
- include: interpolated_crystal
|
||||
- include: escaped_char
|
||||
@ -713,14 +714,14 @@ contexts:
|
||||
captures:
|
||||
0: punctuation.definition.string.begin.crystal
|
||||
push:
|
||||
- meta_scope: string.unquoted.embedded.js.jquery.crystal
|
||||
- meta_content_scope: text.js.jquery.embedded.crystal
|
||||
- meta_scope: string.unquoted.embedded.js.crystal
|
||||
- meta_content_scope: text.js.embedded.crystal
|
||||
- match: \s*\2$
|
||||
captures:
|
||||
0: punctuation.definition.string.end.crystal
|
||||
pop: true
|
||||
- include: heredoc
|
||||
- include: scope:source.js.jquery
|
||||
- include: scope:source.js
|
||||
- include: interpolated_crystal
|
||||
- include: escaped_char
|
||||
- match: '(?><<-("?)((?:[_\w]+_|)(?:SH|SHELL))\b\1)'
|
1
assets/syntaxes/02_Extra/Dart
vendored
Submodule
1
assets/syntaxes/02_Extra/Dart
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 2734901b014191f5a7f71c3f48678adf31239098
|
211
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
Normal file
211
assets/syntaxes/02_Extra/Dart.sublime-syntax
vendored
Normal file
@ -0,0 +1,211 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/syntax.html
|
||||
name: Dart
|
||||
file_extensions:
|
||||
- dart
|
||||
scope: source.dart
|
||||
contexts:
|
||||
main:
|
||||
- match: ^(#!.*)$
|
||||
scope: meta.preprocessor.script.dart
|
||||
- match: ^\w*\b(library|import|part of|part|export)\b
|
||||
captures:
|
||||
0: keyword.other.import.dart
|
||||
push:
|
||||
- meta_scope: meta.declaration.dart
|
||||
- match: ;
|
||||
captures:
|
||||
0: punctuation.terminator.dart
|
||||
pop: true
|
||||
- include: strings
|
||||
- include: comments
|
||||
- match: \b(as|show|hide)\b
|
||||
scope: keyword.other.import.dart
|
||||
- include: comments
|
||||
- include: punctuation
|
||||
- include: annotations
|
||||
- include: keywords
|
||||
- include: constants-and-special-vars
|
||||
- include: strings
|
||||
annotations:
|
||||
- match: '@[a-zA-Z]+'
|
||||
scope: storage.type.annotation.dart
|
||||
comments:
|
||||
- match: /\*\*/
|
||||
scope: comment.block.empty.dart
|
||||
captures:
|
||||
0: punctuation.definition.comment.dart
|
||||
- include: comments-doc-oldschool
|
||||
- include: comments-doc
|
||||
- include: comments-inline
|
||||
comments-block:
|
||||
- match: /\*
|
||||
push:
|
||||
- meta_scope: comment.block.dart
|
||||
- match: \*/
|
||||
pop: true
|
||||
- include: comments-block
|
||||
comments-doc:
|
||||
- match: ///
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.dart
|
||||
- match: .*
|
||||
pop: true
|
||||
- include: dartdoc
|
||||
comments-doc-oldschool:
|
||||
- match: /\*\*
|
||||
push:
|
||||
- meta_scope: comment.block.documentation.dart
|
||||
- match: \*/
|
||||
pop: true
|
||||
- include: comments-doc-oldschool
|
||||
- include: comments-block
|
||||
- include: dartdoc
|
||||
comments-inline:
|
||||
- include: comments-block
|
||||
- match: ((//).*)$
|
||||
captures:
|
||||
1: comment.line.double-slash.dart
|
||||
constants-and-special-vars:
|
||||
- match: (?<!\$)\b(true|false|null)\b(?!\$)
|
||||
scope: constant.language.dart
|
||||
- match: (?<!\$)\b(this|super)\b(?!\$)
|
||||
scope: variable.language.dart
|
||||
- match: '(?<!\$)\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b(?!\$)'
|
||||
scope: constant.numeric.dart
|
||||
- match: '(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\b|num\b|int\b|double\b|dynamic\b)'
|
||||
scope: support.class.dart
|
||||
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(<|\(|\s+=>)'
|
||||
captures:
|
||||
1: entity.name.function.dart
|
||||
dartdoc:
|
||||
- match: '(\[.*?\])'
|
||||
captures:
|
||||
0: variable.name.source.dart
|
||||
- match: '^ {4,}(?![ \*]).*'
|
||||
captures:
|
||||
0: variable.name.source.dart
|
||||
- match: '```.*?$'
|
||||
push:
|
||||
- meta_content_scope: variable.other.source.dart
|
||||
- match: '```'
|
||||
pop: true
|
||||
- match: (`.*?`)
|
||||
captures:
|
||||
0: variable.other.source.dart
|
||||
- match: (`.*?`)
|
||||
captures:
|
||||
0: variable.other.source.dart
|
||||
- match: (\* (( ).*))$
|
||||
captures:
|
||||
2: variable.other.source.dart
|
||||
- match: (\* .*)$
|
||||
keywords:
|
||||
- match: (?<!\$)\bas\b(?!\$)
|
||||
scope: keyword.cast.dart
|
||||
- match: (?<!\$)\b(try|on|catch|finally|throw|rethrow)\b(?!\$)
|
||||
scope: keyword.control.catch-exception.dart
|
||||
- match: (?<!\$)\b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\b(sync(\*)?|async(\*)?|await|yield(\*)?)\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\bassert\b(?!\$)
|
||||
scope: keyword.control.dart
|
||||
- match: (?<!\$)\b(new)\b(?!\$)
|
||||
scope: keyword.control.new.dart
|
||||
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\b(?!\$)
|
||||
scope: keyword.declaration.dart
|
||||
- match: (?<!\$)\b(is\!?)\b(?!\$)
|
||||
scope: keyword.operator.dart
|
||||
- match: '\?|:'
|
||||
scope: keyword.operator.ternary.dart
|
||||
- match: (<<|>>>?|~|\^|\||&)
|
||||
scope: keyword.operator.bitwise.dart
|
||||
- match: ((&|\^|\||<<|>>>?)=)
|
||||
scope: keyword.operator.assignment.bitwise.dart
|
||||
- match: (=>)
|
||||
scope: keyword.operator.closure.dart
|
||||
- match: (==|!=|<=?|>=?)
|
||||
scope: keyword.operator.comparison.dart
|
||||
- match: '(([+*/%-]|\~)=)'
|
||||
scope: keyword.operator.assignment.arithmetic.dart
|
||||
- match: (=)
|
||||
scope: keyword.operator.assignment.dart
|
||||
- match: (\-\-|\+\+)
|
||||
scope: keyword.operator.increment-decrement.dart
|
||||
- match: (\-|\+|\*|\/|\~\/|%)
|
||||
scope: keyword.operator.arithmetic.dart
|
||||
- match: (!|&&|\|\|)
|
||||
scope: keyword.operator.logical.dart
|
||||
- match: (?<!\$)\b(static|final|const)\b(?!\$)
|
||||
scope: storage.modifier.dart
|
||||
- match: (?<!\$)\b(?:void|var)\b(?!\$)
|
||||
scope: storage.type.primitive.dart
|
||||
punctuation:
|
||||
- match: ','
|
||||
scope: punctuation.comma.dart
|
||||
- match: ;
|
||||
scope: punctuation.terminator.dart
|
||||
- match: \.
|
||||
scope: punctuation.dot.dart
|
||||
string-interp:
|
||||
- match: '\$((\w+)|\{([^{}]+)\})'
|
||||
captures:
|
||||
2: variable.parameter.dart
|
||||
3: variable.parameter.dart
|
||||
- match: \\.
|
||||
scope: constant.character.escape.dart
|
||||
strings:
|
||||
- match: (?<!r)"""
|
||||
push:
|
||||
- meta_scope: string.interpolated.triple.double.dart
|
||||
- match: '"""(?!")'
|
||||
pop: true
|
||||
- include: string-interp
|
||||
- match: (?<!r)'''
|
||||
push:
|
||||
- meta_scope: string.interpolated.triple.single.dart
|
||||
- match: '''''''(?!'')'
|
||||
pop: true
|
||||
- include: string-interp
|
||||
- match: r"""
|
||||
push:
|
||||
- meta_scope: string.quoted.triple.double.dart
|
||||
- match: '"""(?!")'
|
||||
pop: true
|
||||
- match: r'''
|
||||
push:
|
||||
- meta_scope: string.quoted.triple.single.dart
|
||||
- match: '''''''(?!'')'
|
||||
pop: true
|
||||
- match: (?<!\|r)"
|
||||
push:
|
||||
- meta_scope: string.interpolated.double.dart
|
||||
- match: '"'
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- include: string-interp
|
||||
- match: r"
|
||||
push:
|
||||
- meta_scope: string.quoted.double.dart
|
||||
- match: '"'
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- match: (?<!\|r)'
|
||||
push:
|
||||
- meta_scope: string.interpolated.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
||||
- include: string-interp
|
||||
- match: r'
|
||||
push:
|
||||
- meta_scope: string.quoted.single.dart
|
||||
- match: "'"
|
||||
pop: true
|
||||
- match: \n
|
||||
scope: invalid.string.newline
|
1
assets/syntaxes/02_Extra/Docker
vendored
Submodule
1
assets/syntaxes/02_Extra/Docker
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c001fb280561d7c16f0f2837d76af493cf6c3bf8
|
1
assets/syntaxes/02_Extra/DotENV
vendored
Submodule
1
assets/syntaxes/02_Extra/DotENV
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 58201ba2abbbe6a12b2f6d0595efea3b388c1e38
|
@ -4,13 +4,14 @@
|
||||
name: DotENV
|
||||
file_extensions:
|
||||
- .env
|
||||
- .envrc
|
||||
- .env.dist
|
||||
- .env.local
|
||||
- .env.sample
|
||||
- .env.example
|
||||
- .env.template
|
||||
- .env.test
|
||||
- .env.test.local
|
||||
- .env.testing
|
||||
- .env.dev
|
||||
- .env.development
|
||||
- .env.development.local
|
||||
@ -18,6 +19,15 @@ file_extensions:
|
||||
- .env.production
|
||||
- .env.production.local
|
||||
- .env.dusk.local
|
||||
- .env.staging
|
||||
- .env.default
|
||||
- .env.defaults
|
||||
- .envrc
|
||||
- .flaskenv
|
||||
- env
|
||||
- env.example
|
||||
- env.sample
|
||||
- env.template
|
||||
scope: source.env
|
||||
contexts:
|
||||
main:
|
1
assets/syntaxes/02_Extra/Elixir
vendored
Submodule
1
assets/syntaxes/02_Extra/Elixir
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 4fb01891dd17434dde42887bc821917a30f4e010
|
1
assets/syntaxes/02_Extra/Elm
vendored
Submodule
1
assets/syntaxes/02_Extra/Elm
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e266d279c8074aa342f106554cfa87ebe839a782
|
1
assets/syntaxes/02_Extra/Email
vendored
Submodule
1
assets/syntaxes/02_Extra/Email
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit e89d09d440f342b753a490918f2c9777c64836b3
|
1
assets/syntaxes/02_Extra/FSharp
vendored
Submodule
1
assets/syntaxes/02_Extra/FSharp
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 9e4645c6085871d6fe4ae8dbcbafe93cb155b074
|
1
assets/syntaxes/02_Extra/Fish
vendored
Submodule
1
assets/syntaxes/02_Extra/Fish
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 98316d4332936f74babb51cb56161410ae9d6e2c
|
1
assets/syntaxes/02_Extra/Fortran
vendored
Submodule
1
assets/syntaxes/02_Extra/Fortran
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit dcf4f24f1cecd9eebf6b1eb388e4f5db671a7b08
|
135
assets/syntaxes/02_Extra/Fstab.sublime-syntax
vendored
Normal file
135
assets/syntaxes/02_Extra/Fstab.sublime-syntax
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: fstab
|
||||
file_extensions:
|
||||
- fstab
|
||||
- crypttab
|
||||
- mtab
|
||||
scope: source.fstab
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- include: comment
|
||||
- match: '^'
|
||||
push: fstab_device
|
||||
comment: leading spaces
|
||||
|
||||
fstab_device:
|
||||
- include: comment
|
||||
- match: '\s*([^=\s]+=)([^\s]+)\s*'
|
||||
comment: device by uuid or label
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*(//|\\\\)([^\s]+)\s*'
|
||||
comment: device by samba share
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*([^\s]+)(:)([^\s]+)\s*'
|
||||
comment: device by server
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: keyword.other.device
|
||||
2: punctuation.accessor
|
||||
3: keyword.other.device
|
||||
- match: '\s*[^\s/\\]+\s*'
|
||||
comment: device by dev name
|
||||
set: fstab_mountpoint
|
||||
scope: keyword.other.device
|
||||
- match: '\s*(/dev/)([^\s]+)\s*'
|
||||
comment: device by dev path
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- match: '\s*([^\s/]*/)*([^\s]+)\s*'
|
||||
comment: device by unknown path
|
||||
set: fstab_mountpoint
|
||||
captures:
|
||||
1: punctuation.accessor
|
||||
2: keyword.other.device
|
||||
- include: clear
|
||||
|
||||
fstab_mountpoint:
|
||||
- include: comment
|
||||
- match: '\s*/[^\s]*\s*'
|
||||
comment: mount point
|
||||
set: fstab_filesystem
|
||||
scope: string.unquoted.mountpoint
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: mount point without leading slash (invalid)
|
||||
set: fstab_filesystem
|
||||
scope: invalid.illegal
|
||||
- include: clear
|
||||
|
||||
fstab_filesystem:
|
||||
- include: comment
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: filesystem type
|
||||
set: fstab_options
|
||||
scope: variable.parameter.filesystem
|
||||
- include: clear
|
||||
|
||||
fstab_options:
|
||||
- include: comment
|
||||
- match: '([^\s,=]+)(=)([^\s,]+)'
|
||||
comment: key-value option
|
||||
captures:
|
||||
1: entity.name.option
|
||||
2: entity.other.separator
|
||||
3: variable.parameter
|
||||
- match: '[^\s,]+'
|
||||
comment: flag option
|
||||
scope: entity.name.option
|
||||
- match: ','
|
||||
comment: option separator
|
||||
scope: punctuation.separator
|
||||
- match: '\s+'
|
||||
comment: next field
|
||||
set: fstab_dump
|
||||
- include: clear
|
||||
|
||||
fstab_dump:
|
||||
- include: comment
|
||||
- match: '\s*[012]\s*'
|
||||
comment: dump field
|
||||
scope: constant.numeric
|
||||
set: fstab_pass
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: invalid dump field
|
||||
scope: invalid.illegal
|
||||
set: fstab_pass
|
||||
- include: clear
|
||||
|
||||
fstab_pass:
|
||||
- include: comment
|
||||
- match: '\s*[012]\s*'
|
||||
comment: pass field
|
||||
scope: constant.numeric
|
||||
set: expected_eol
|
||||
- match: '\s*[^\s]+\s*'
|
||||
comment: invalid pass field
|
||||
scope: invalid.illegal
|
||||
set: expected_eol
|
||||
- include: clear
|
||||
|
||||
expected_eol:
|
||||
- include: comment
|
||||
- include: clear
|
||||
- match: '.*'
|
||||
scope: invalid.illegal
|
||||
|
||||
comment:
|
||||
- match: '\s*#.*$'
|
||||
comment: comment using the number sign
|
||||
scope: comment.line
|
||||
|
||||
clear:
|
||||
- match: '.*$'
|
||||
comment: used for clearing the context
|
||||
pop: true
|
||||
|
1
assets/syntaxes/02_Extra/GDScript-sublime
vendored
Submodule
1
assets/syntaxes/02_Extra/GDScript-sublime
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 96f5dcf29728aa987123321e2544330eed991a3e
|
1
assets/syntaxes/02_Extra/GLSL
vendored
Submodule
1
assets/syntaxes/02_Extra/GLSL
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 59a5f8a3120358657cefdc4b830b4a883ebfbf77
|
1
assets/syntaxes/02_Extra/GraphQL
vendored
Submodule
1
assets/syntaxes/02_Extra/GraphQL
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 9b6f6d0a86d7e7ef1d44490b107472af7fb4ffaf
|
1
assets/syntaxes/02_Extra/Groff
vendored
Submodule
1
assets/syntaxes/02_Extra/Groff
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 651091c7e266e05c0a529b137b6efd43d717894c
|
48
assets/syntaxes/02_Extra/Group.sublime-syntax
vendored
Normal file
48
assets/syntaxes/02_Extra/Group.sublime-syntax
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
%YAML 1.2
|
||||
---
|
||||
# http://www.sublimetext.com/docs/3/syntax.html
|
||||
name: group
|
||||
file_extensions:
|
||||
- group
|
||||
scope: source.group
|
||||
|
||||
contexts:
|
||||
main:
|
||||
- comment: name
|
||||
match: ^[^:]+
|
||||
scope: keyword
|
||||
|
||||
- comment: password
|
||||
match: ":"
|
||||
push: password
|
||||
|
||||
password:
|
||||
- comment: uid
|
||||
match: ":"
|
||||
set: gid
|
||||
|
||||
- comment: shadowpassword
|
||||
match: "[^:]+"
|
||||
scope: invalid
|
||||
|
||||
gid:
|
||||
- comment: gid
|
||||
match: ":"
|
||||
set: users
|
||||
|
||||
- comment: number
|
||||
match: "[0-9]+"
|
||||
scope: constant.numeric
|
||||
|
||||
users:
|
||||
- comment: newline
|
||||
match: "\n"
|
||||
pop: true
|
||||
|
||||
- comment: directory
|
||||
match: "[^:\n]+"
|
||||
scope: variable.parameter
|
||||
|
||||
- comment: separator
|
||||
match: ","
|
||||
scope: punctuation
|
1
assets/syntaxes/02_Extra/HTML_(Twig)
vendored
Submodule
1
assets/syntaxes/02_Extra/HTML_(Twig)
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit aedf955eba9753554815b2cbef5e072415e42068
|
@ -5,8 +5,8 @@ name: INI
|
||||
file_extensions:
|
||||
- ini
|
||||
- INI
|
||||
- inf
|
||||
- INF
|
||||
- "inf"
|
||||
- "INF"
|
||||
- reg
|
||||
- REG
|
||||
- lng
|
||||
@ -16,6 +16,9 @@ file_extensions:
|
||||
- url
|
||||
- URL
|
||||
- .editorconfig
|
||||
- .coveragerc
|
||||
- .pylintrc
|
||||
- .gitlint
|
||||
- .hgrc
|
||||
- hgrc
|
||||
scope: source.ini
|
||||
@ -25,12 +28,13 @@ contexts:
|
||||
scope: comment.line.semicolon.ini
|
||||
captures:
|
||||
1: punctuation.definition.comment.ini
|
||||
- match: '^\s*(\[)(.*?)(\])'
|
||||
- match: '^\s*(\[)(.*?)(\])\s*(;.*)?$\n?'
|
||||
scope: meta.tag.section.ini
|
||||
captures:
|
||||
1: punctuation.definition.section.ini
|
||||
2: entity.section.ini
|
||||
3: punctuation.definition.section.ini
|
||||
4: comment.definition.section.ini
|
||||
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
||||
scope: meta.declaration.ini
|
||||
captures:
|
1
assets/syntaxes/02_Extra/Idris2
vendored
Submodule
1
assets/syntaxes/02_Extra/Idris2
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 7c1bf44c4f9092b7b1e274b1332cf32a089b2b99
|
@ -4,9 +4,11 @@
|
||||
name: JavaScript (Babel)
|
||||
file_extensions:
|
||||
- js
|
||||
- mjs
|
||||
- jsx
|
||||
- babel
|
||||
- es6
|
||||
- cjs
|
||||
first_line_match: ^#!\s*/.*\b(node|js)$\n?
|
||||
scope: source.js
|
||||
contexts:
|
1
assets/syntaxes/02_Extra/JavaScript_(Babel)
vendored
Submodule
1
assets/syntaxes/02_Extra/JavaScript_(Babel)
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f4579f9107996c16208466248a85dc2296083a5f
|
1
assets/syntaxes/02_Extra/Jinja2
vendored
Submodule
1
assets/syntaxes/02_Extra/Jinja2
vendored
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 45355633d17ee562481ca1d2ad0e3502c238f58a
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user