mirror of
https://github.com/sharkdp/bat
synced 2026-08-04 19:01:44 +00:00
Compare commits
1688 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6510fc0c74 | |||
| bb4f48a124 | |||
| c75cc01eef | |||
| 835bd2a756 | |||
| 3409674d9c | |||
| 7de0c4ba47 | |||
| 20a818fe14 | |||
| 30b50a9eed | |||
| 088f1e4253 | |||
| 53769d03b0 | |||
| b7ae4585ad | |||
| a4609d1778 | |||
| 8f70e0cf00 | |||
| e34595b53e | |||
| 6ba745b74b | |||
| 98f09fd6f3 | |||
| 69f40d9d8a | |||
| 6e6137ce10 | |||
| df164cc2e3 | |||
| f9eed8d619 | |||
| d695ad8f88 | |||
| e60d184f97 | |||
| e2568c52cd | |||
| c5e6f6aae3 | |||
| 8f93137246 | |||
| fa00fb8ce8 | |||
| d117bf2320 | |||
| f4d836ee87 | |||
| 04576fd5a5 | |||
| e7025d9bdb | |||
| 6d4a3cef53 | |||
| 6b8887133d | |||
| 5bb35b4bed | |||
| d28aa4a8b4 | |||
| e9b552d5d0 | |||
| af1f53d9a9 | |||
| 8033b1e7be | |||
| 01408ce094 | |||
| bcd1d3f45b | |||
| 4cd5db2a78 | |||
| 67aa491313 | |||
| e490c0f322 | |||
| 2d29ecb939 | |||
| 707b5949fd | |||
| fd53693e1f | |||
| f3d0773468 | |||
| 66e336bcfb | |||
| ce7ad9adca | |||
| f9fa590c3d | |||
| 1e1c3773fb | |||
| 0ef0342ff2 | |||
| de396794cf | |||
| 43c4957e18 | |||
| c9fa10e76b | |||
| 2cec8cdf25 | |||
| 138d70fd4c | |||
| 98df25434e | |||
| 5f952066fb | |||
| f74082cee8 | |||
| a0c95618c4 | |||
| f57c1b6b1d | |||
| 517de0463b | |||
| 3be4e30e00 | |||
| 15fdc7637a | |||
| 72fc697372 | |||
| b8d2781784 | |||
| 787a36acb6 | |||
| a79701a43e | |||
| 3bcbc45ab0 | |||
| 7953df44ea | |||
| 443bcb9287 | |||
| 0523b70473 | |||
| f776d1ad3f | |||
| cfc6d9c415 | |||
| 89d7c86b19 | |||
| c437ad4d27 | |||
| 1c6e763d75 | |||
| baebdd1789 | |||
| f7b84a3b41 | |||
| b483f90612 | |||
| 6edad56b00 | |||
| e2174379ed | |||
| 816aea0625 | |||
| 7fcab0616a | |||
| e157ac911b | |||
| b29e1d55c4 | |||
| 12ee94f530 | |||
| cbe7919451 | |||
| 10b4f07a87 | |||
| ebf469b99a | |||
| 8fbc96a5f2 | |||
| 54bfc33248 | |||
| 91aac95db2 | |||
| 5bf932d511 | |||
| 5977245a23 | |||
| 3f98e6f10f | |||
| 78963986e0 | |||
| de64d3a0eb | |||
| 78cb14af05 | |||
| 8c8ed90d6d | |||
| 492c387ce7 | |||
| bceb260e91 | |||
| 8cadefb5cb | |||
| 64567c4819 | |||
| de2f21562a | |||
| 5722311b2e | |||
| f39d63b85d | |||
| 4144059e7a | |||
| 044d445adc | |||
| c3df0e6a88 | |||
| 71c894e843 | |||
| 93c52a4f88 | |||
| ea7fafca1e | |||
| e782ec125c | |||
| 0ecdeb28d4 | |||
| 77ea750e66 | |||
| cafad6b036 | |||
| e070d105b5 | |||
| 1f89178fce | |||
| 52763e0205 | |||
| f822bd05ce | |||
| e89c515e9a | |||
| a36b02d90f | |||
| 6876a782da | |||
| db647c9813 | |||
| 33045c3558 | |||
| 01174b31f5 | |||
| a9137fab05 | |||
| a995764d23 | |||
| b3aec318cf | |||
| 2459aa9404 | |||
| 111aa2e10e | |||
| c64b6761fe | |||
| 11efacbe64 | |||
| 204ca18d71 | |||
| a158f12106 | |||
| 956f0aeb08 | |||
| 1a6073d2e8 | |||
| 57e99e9bcd | |||
| 68eaa96e06 | |||
| de9ca4ef7b | |||
| 7bb905436b | |||
| f820ad1050 | |||
| 259e1266a8 | |||
| 31b0a35719 | |||
| 3e4169b8c3 | |||
| ba223289ce | |||
| abab6533e4 | |||
| 7d9884d6d2 | |||
| 652489251b | |||
| 89f3d2d31a | |||
| 5c3b8040db | |||
| 7ff1fb3278 | |||
| 3ee9ea9a8d | |||
| b511b928f4 | |||
| 3e789f5241 | |||
| a500fb236a | |||
| 515b9d62db | |||
| 62907b1da5 | |||
| eef7107407 | |||
| 87e043b91c | |||
| b8d462ba87 | |||
| ca3ef28d56 | |||
| 0b4c886efc | |||
| 780fdeb888 | |||
| 7a9c6e0de5 | |||
| a1e7c0ab4a | |||
| 1e36873704 | |||
| e86797fbf4 | |||
| e60875ac12 | |||
| 66eece4e2c | |||
| a19593b383 | |||
| 7a6f442c86 | |||
| 3767f15c2a | |||
| 1932d1da39 | |||
| b0e5590864 | |||
| f2daa1eb6e | |||
| 1f540752ef | |||
| fc94a0ec49 | |||
| 169dc7c45b | |||
| 5e140558b1 | |||
| 99c8e15c27 | |||
| 2a3ed948ec | |||
| 618d7340bb | |||
| 4a38eab3ea | |||
| 9fccdbc484 | |||
| c6e661d80b | |||
| 031ba0953a | |||
| 2a29802dd5 | |||
| 31e30a2e97 | |||
| ffed52f6eb | |||
| a4e853c4fa | |||
| f11374535d | |||
| de209f8a23 | |||
| 22c38b6fcb | |||
| 63d5796f8f | |||
| a1917275cd | |||
| 884765bdeb | |||
| 56fe0fa226 | |||
| d9adfe90fc | |||
| b1f04995a6 | |||
| ea6d2ac911 | |||
| ac97356930 | |||
| 23abbdcea9 | |||
| 927873392b | |||
| 91965d28a6 | |||
| 88ff40f93e | |||
| 652d50e92e | |||
| 0dcdcb678a | |||
| f49641a6c3 | |||
| fc4f12b390 | |||
| 9cce9e04d2 | |||
| 844bfded50 | |||
| ab80bd9717 | |||
| a1a10c777f | |||
| cc5f782d28 | |||
| 1424f9d6bf | |||
| fd67095cff | |||
| 908b1f22d1 | |||
| 17a70d9b8c | |||
| 49d77a469a | |||
| fa35495888 | |||
| 8a858b19dc | |||
| 397252d2cc | |||
| 5e59957349 | |||
| 90f8e00e0c | |||
| 673929c189 | |||
| e36bb8cc66 | |||
| 7d7e202bd5 | |||
| 74de075748 | |||
| 594069581d | |||
| 62b0388236 | |||
| 16d041492c | |||
| 22ee03ff00 | |||
| 790bed3a2d | |||
| bc84854d4b | |||
| 319811df01 | |||
| 2c1a8caadd | |||
| a240aa4afd | |||
| 00e38cd056 | |||
| 335eff51f3 | |||
| d04b960c05 | |||
| fbc05da785 | |||
| a71d16fa1b | |||
| 5bd08845a3 | |||
| 3ebfbb7ac5 | |||
| 2b47f3c5eb | |||
| 9f8ac934ab | |||
| ab393a0281 | |||
| 990b2fc06f | |||
| 0c883d6f28 | |||
| 167dda63a8 | |||
| cb8b637574 | |||
| 391e7ff072 | |||
| 2b517199a2 | |||
| a0f326aa22 | |||
| a4a7692134 | |||
| 3df9d581b7 | |||
| eb724f2dc4 | |||
| c491488140 | |||
| 3f12b1c1ab | |||
| 2c682ff6a6 | |||
| 36b37e1aa5 | |||
| d19c80a7c1 | |||
| eff57943c9 | |||
| 5a4a7de933 | |||
| ba97230b98 | |||
| 8664cc9df9 | |||
| 3b34b47d55 | |||
| 9a5519057c | |||
| 93411a96e4 | |||
| bd461afd75 | |||
| 55306c15a6 | |||
| afd804ebea | |||
| 3d0a7ed0a0 | |||
| 8f6f5dfbd2 | |||
| 43ab174d42 | |||
| b396ab865f | |||
| 8a82847121 | |||
| c3c19c8018 | |||
| 0d2078b32b | |||
| cddfad83e4 | |||
| 2e355ffa4e | |||
| fa66d8e3ef | |||
| cb83b8fb9a | |||
| adfdcf4c6d | |||
| 593cf76811 | |||
| 3aaec8cb3b | |||
| 2030ffa664 | |||
| edb8342eab | |||
| 6a7936a26f | |||
| 26118afde0 | |||
| 783acbc83d | |||
| 6f0a61cef9 | |||
| 53a10e0b0a | |||
| 626154317f | |||
| 885ae1dc81 | |||
| f6f1f18e9c | |||
| 69a2ffbdac | |||
| 6b8decf2a4 | |||
| cd06fe46e0 | |||
| 099d716455 | |||
| 298e1f5321 | |||
| 3cb55e85d0 | |||
| 981f25989a | |||
| 57bf8ff7da | |||
| 31f982e736 | |||
| 0a97a1edd7 | |||
| 6c75acfffc | |||
| 4e84e838a3 | |||
| d48bf240a7 | |||
| 7dc180eefb | |||
| 3276e9469a | |||
| 60902c796f | |||
| c12cdcace3 | |||
| 823fd9f5c6 | |||
| 88d6fd0248 | |||
| 32047346e3 | |||
| 56678dc771 | |||
| b34a1e0cc2 | |||
| 41f55bf902 | |||
| c8514543af | |||
| ad608014d9 | |||
| 782ce71247 | |||
| 8c7fccc8a5 | |||
| fca5502f21 | |||
| 9bf344f760 | |||
| 4db185834b | |||
| 4549ab3f22 | |||
| 629a8968fc | |||
| de414ed631 | |||
| 59c5896902 | |||
| b22fc5db6b | |||
| f97f9ebf03 | |||
| 64a4b204a2 | |||
| 5fb8a25c30 | |||
| 80ef6832d3 | |||
| 51bdaa5f88 | |||
| eb2a8e29c7 | |||
| b7dd88eafd | |||
| 79fe5fea63 | |||
| d15e399fce | |||
| 4d188e45fe | |||
| abce6ac0d1 | |||
| 566595f0eb | |||
| 1796324531 | |||
| 2371077352 | |||
| 7e7ab8a860 | |||
| c054541776 | |||
| d6ffe3a9be | |||
| 4a1ceb3ce0 | |||
| 45a6ee95d5 | |||
| 3eeaf29675 | |||
| 58d1fa83e9 | |||
| 9d4ca3bc22 | |||
| 9b23b05841 | |||
| f3e8ffc276 | |||
| 9b73911f2c | |||
| 25bfa9fa81 | |||
| 979ba22628 | |||
| 19ab724a73 | |||
| def49e19a7 | |||
| 1fb269a0fb | |||
| 0e469634a3 | |||
| 6dfe471686 | |||
| 2c7fc5f926 | |||
| 579d371378 | |||
| c74ca27075 | |||
| e8f7b12bb1 | |||
| e7006b53e3 | |||
| a6e0057c12 | |||
| 1ffed0c039 | |||
| 602df893de | |||
| 3755f788ca | |||
| abc7261488 | |||
| f9c33971d9 | |||
| 7d37325c19 | |||
| d17481575a | |||
| 1ee1d8fdff | |||
| af8f0626ac | |||
| c88353b386 | |||
| 961f367ca8 | |||
| 8bf3be5e61 | |||
| f8b6a009cb | |||
| efa9f0e63d | |||
| a4212e99b0 | |||
| 6884a8e7e0 | |||
| a1b1feb247 | |||
| 70ec3fc24e | |||
| 1e4a4b765f | |||
| cfe49779fa | |||
| c51cff8961 | |||
| 1abecd2c93 | |||
| 3217a7e667 | |||
| 015cafdbdc | |||
| f5a934c213 | |||
| 24813db49f | |||
| ce856dbba7 | |||
| 8b09724420 | |||
| 2af7be1b65 | |||
| dac98da526 | |||
| 9456f7d8cd | |||
| 3ecbd18e56 | |||
| 61fbc3fc0c | |||
| 5bcbd91943 | |||
| cfe32fa219 | |||
| f0f4af864a | |||
| 8bace0e808 | |||
| 2f5cba7f8f | |||
| 528aa4fedd | |||
| 490e1580ad | |||
| cbfbfc8ff3 | |||
| b6edf7ab0b | |||
| 65e6b4de69 | |||
| 2ca62e25f1 | |||
| 1b2a814478 | |||
| e33967aa39 | |||
| a1adefce36 | |||
| 6e87e02e96 | |||
| ab9cc674d5 | |||
| 8e0e13a899 | |||
| 5371426588 | |||
| 1852dea96a | |||
| a8140f91cc | |||
| 2fac9b2740 | |||
| 6a99915afe | |||
| 4e13c3eb5b | |||
| 7e55608975 | |||
| 4bd5cbca8e | |||
| 7c3fa7e1ce | |||
| 3188a147d8 | |||
| 926fbc4b13 | |||
| 006d77fa39 | |||
| 52a792d46f | |||
| 20db989fb1 | |||
| 2c63d3c792 | |||
| c734087e1d | |||
| 3331a306c9 | |||
| 83ffd1ea09 | |||
| 200924772f | |||
| 7eedc0f854 | |||
| f1a0d8b3f7 | |||
| a730eaae0a | |||
| 8920c738c5 | |||
| 0139c9d9ae | |||
| b0fa9e1dfe | |||
| e6a1d40f8d | |||
| d3cf75a36e | |||
| 8221554865 | |||
| a2eaa6c22c | |||
| 5863a57921 | |||
| af365d762f | |||
| 640369d4a1 | |||
| 7a13516d21 | |||
| 01b7ac62c5 | |||
| aa1c4fb48f | |||
| c0389b0e5c | |||
| 3e816f08c7 | |||
| 6c8929128f | |||
| 98b75db115 | |||
| 2badaf5d99 | |||
| 588ff32d18 | |||
| 1838e25d2f | |||
| 0e931aadde | |||
| 8e90efb2b4 | |||
| e3f92c0975 | |||
| da23939561 | |||
| d478ba2923 | |||
| f558902ad2 | |||
| 3ae23cc57b | |||
| 7b67981fb9 | |||
| 7ee6ee385e | |||
| 28ab873a3f | |||
| d392cea348 | |||
| 6ece3063ab | |||
| 839bfded39 | |||
| 2c87b9480f | |||
| 2ae4253577 | |||
| 0d468b023a | |||
| 60096d9971 | |||
| e879f532a7 | |||
| c8b8132228 | |||
| 9d003dd1b9 | |||
| c36dbf86f5 | |||
| c29f1875d3 | |||
| a470cebf32 | |||
| 929669728c | |||
| 4f912fca16 | |||
| 93b020bf93 | |||
| d7f11869ab | |||
| fe4754e9cd | |||
| ff8cd39620 | |||
| 8d65d4591b | |||
| b4dcc155f0 | |||
| f754f43e84 | |||
| d291b3e5fa | |||
| 6772225477 | |||
| 339e7df0bc | |||
| 297e8280d9 | |||
| d397bea6dc | |||
| 3d174b8c09 | |||
| d9dd9729b8 | |||
| c657b18efd | |||
| c9b41b1df7 | |||
| 45efc4117e | |||
| 6a74283289 | |||
| 120c39429f | |||
| 1c6ad4d514 | |||
| 36d25c8642 | |||
| caf6fa369f | |||
| 503c50b1ec | |||
| d9fbd18541 | |||
| 9824090654 | |||
| bdaf25793d | |||
| 96ce80d0e2 | |||
| 40c4c8e542 | |||
| 6675153460 | |||
| 76e6a49a2e | |||
| 1bcf760d90 | |||
| 94f1035c08 | |||
| 3516a3311a | |||
| f79adaf607 | |||
| d9ac757b6a | |||
| 58bfcd9051 | |||
| 67e3e42531 | |||
| 3fd3f1def8 | |||
| 6d849e53d2 | |||
| 7fc3d6b588 | |||
| 1a931224eb | |||
| 60833ae5ec | |||
| 183def9569 | |||
| 77cfca1aff | |||
| d9cc01b50c | |||
| 466087156f | |||
| a8d610c6e8 | |||
| 30b42149aa | |||
| c25e005c87 | |||
| c4d7451841 | |||
| d4fc07a347 | |||
| 0238473868 | |||
| 4363ddf0fb | |||
| 43c5fef70a | |||
| 7e436e307d | |||
| b4d529402a | |||
| b47338ec75 | |||
| bd782ab228 | |||
| 4c2b20fedd | |||
| 9d3245eebe | |||
| 369ea67ad3 | |||
| c56ce6ad36 | |||
| 4f0a3f5766 | |||
| bac58be1ee | |||
| 20caaf26c8 | |||
| 3574118e17 | |||
| 847b717cdf | |||
| 3dfb51b25d | |||
| d0b5dd8977 | |||
| 23d97eb4a8 | |||
| 8bc4e76e47 | |||
| 38762724f5 | |||
| feb0bc1ae6 | |||
| 872d0baafb | |||
| 35c3f065a3 | |||
| 8b12191bda | |||
| 90b2c57951 | |||
| f484a9dfce | |||
| b97c275de5 | |||
| 91c95d8ba7 | |||
| 2015c99e65 | |||
| eadf15d9c0 | |||
| bb8c5657e1 | |||
| dc2eae08a6 | |||
| 6c13a98f01 | |||
| 1ad294dcd3 | |||
| 806df574e7 | |||
| 9b580c7a98 | |||
| 7c8e2324ab | |||
| 555933315d | |||
| 9121746f05 | |||
| f1d45da676 | |||
| cf147a440e | |||
| a3a23e5759 | |||
| bc7d1cd44a | |||
| 735fb7be0e | |||
| 4661f22e81 | |||
| bfd8776042 | |||
| e8ff13cd53 | |||
| 1771f6da8d | |||
| e888e968b6 | |||
| 68df079c0e | |||
| 563c4c290d | |||
| ffbcfd53f9 | |||
| fd12328293 | |||
| b387abea6b | |||
| efdd038fa4 | |||
| 94b699d8df | |||
| 226efecdd6 | |||
| a0b4397ddf | |||
| c18f5e054e | |||
| 360d43dd4d | |||
| e0165a2d6a | |||
| 9776ebfa0f | |||
| eda3ecb0b3 | |||
| cf7631d469 | |||
| 185a2f3437 | |||
| bdc971eca3 | |||
| 288b7e9ca3 | |||
| a9d5880dc8 | |||
| 0918984249 | |||
| e2aa4bc33c | |||
| 9d3db318e3 | |||
| 5aa123b4f0 | |||
| f11d34997a | |||
| 510814410c | |||
| e4bae61393 | |||
| 4cfc50c358 | |||
| 6886cdaace | |||
| 17e6952ab8 | |||
| 0da4084064 | |||
| 4c9a51990c | |||
| 36a86d34e8 | |||
| fb514ca90f | |||
| aa5e28bef5 | |||
| 5dc3d8c936 | |||
| a4ffe2fdbf | |||
| c32fa662d5 | |||
| 0a9588a866 | |||
| 861b868416 | |||
| b7f9662097 | |||
| 79ecb11ce2 | |||
| 4e9bb610b3 | |||
| c88faf8cfa | |||
| 0b48eab7a6 | |||
| ccfbd1ee31 | |||
| 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 |
@@ -0,0 +1,2 @@
|
|||||||
|
[advisories]
|
||||||
|
ignore = ["RUSTSEC-2024-0320", "RUSTSEC-2024-0421"]
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# On Windows MSVC, statically link the C runtime so that the resulting EXE does
|
||||||
|
# not depend on the vcruntime DLL.
|
||||||
|
#
|
||||||
|
# See: https://github.com/sharkdp/bat/issues/3634
|
||||||
|
|
||||||
|
[target.x86_64-pc-windows-msvc]
|
||||||
|
rustflags = ["-C", "target-feature=+crt-static"]
|
||||||
|
[target.i686-pc-windows-msvc]
|
||||||
|
rustflags = ["-C", "target-feature=+crt-static"]
|
||||||
|
[target.aarch64-pc-windows-msvc]
|
||||||
|
rustflags = ["-C", "target-feature=+crt-static"]
|
||||||
@@ -7,9 +7,26 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- Hey there, thank you for creating an issue! -->
|
<!--
|
||||||
|
|
||||||
**Describe the bug you encountered:**
|
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?**
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|||||||
@@ -7,3 +7,5 @@ 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. -->
|
||||||
|
|||||||
@@ -26,4 +26,4 @@ guidelines for adding new syntaxes:
|
|||||||
[Name or description of the syntax/language here]
|
[Name or description of the syntax/language here]
|
||||||
|
|
||||||
**Guideline Criteria:**
|
**Guideline Criteria:**
|
||||||
[packagecontro.io link here]
|
[packagecontrol.io link here]
|
||||||
|
|||||||
@@ -16,3 +16,9 @@ updates:
|
|||||||
interval: monthly
|
interval: monthly
|
||||||
time: "04:00"
|
time: "04:00"
|
||||||
timezone: Europe/Berlin
|
timezone: Europe/Berlin
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: monthly
|
||||||
|
time: "04:00"
|
||||||
|
timezone: Europe/Berlin
|
||||||
|
|||||||
+206
-212
@@ -1,8 +1,8 @@
|
|||||||
name: CICD
|
name: CICD
|
||||||
|
|
||||||
env:
|
env:
|
||||||
MIN_SUPPORTED_RUST_VERSION: "1.51.0"
|
|
||||||
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
|
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
|
||||||
|
MSRV_FEATURES: --no-default-features --features minimal-application,bugreport,build-assets
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -14,89 +14,97 @@ on:
|
|||||||
- '*'
|
- '*'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ensure_cargo_fmt:
|
all-jobs:
|
||||||
name: Ensure 'cargo fmt' has been run
|
if: always() # Otherwise this job is skipped if the matrix job fails
|
||||||
runs-on: ubuntu-20.04
|
name: all-jobs
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- crate_metadata
|
||||||
|
- lint
|
||||||
|
- min_version
|
||||||
|
- license_checks
|
||||||
|
- test_with_new_syntaxes_and_themes
|
||||||
|
- test_with_system_config
|
||||||
|
- documentation
|
||||||
|
- cargo-audit
|
||||||
|
- build
|
||||||
steps:
|
steps:
|
||||||
- uses: actions-rs/toolchain@v1
|
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
||||||
|
|
||||||
|
crate_metadata:
|
||||||
|
name: Extract crate metadata
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v7
|
||||||
|
- 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 }}
|
||||||
|
|
||||||
|
lint:
|
||||||
|
name: Ensure code quality
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
with:
|
||||||
toolchain: stable
|
components: rustfmt,clippy
|
||||||
default: true
|
- uses: actions/checkout@v7
|
||||||
profile: minimal
|
|
||||||
components: rustfmt
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- run: cargo fmt -- --check
|
- run: cargo fmt -- --check
|
||||||
|
- run: cargo clippy --locked --all-targets --all-features -- -D warnings
|
||||||
|
|
||||||
|
min_version:
|
||||||
|
name: Minimum supported rust version
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: crate_metadata
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
- name: Install rust toolchain (v${{ needs.crate_metadata.outputs.msrv }})
|
||||||
|
uses: dtolnay/rust-toolchain@master
|
||||||
|
with:
|
||||||
|
toolchain: ${{ needs.crate_metadata.outputs.msrv }}
|
||||||
|
- name: Run tests
|
||||||
|
run: cargo test --locked ${{ env.MSRV_FEATURES }}
|
||||||
|
|
||||||
license_checks:
|
license_checks:
|
||||||
name: License checks
|
name: License checks
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
submodules: true # we especially want to perform license checks on submodules
|
submodules: true # we especially want to perform license checks on submodules
|
||||||
- run: tests/scripts/license-checks.sh
|
- run: tests/scripts/license-checks.sh
|
||||||
|
|
||||||
min_version:
|
|
||||||
name: Minimum supported rust version
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
steps:
|
|
||||||
- name: Checkout source code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }})
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ env.MIN_SUPPORTED_RUST_VERSION }}
|
|
||||||
default: true
|
|
||||||
profile: minimal # minimal component installation (ie, no documentation)
|
|
||||||
components: clippy
|
|
||||||
- name: Run clippy (on minimum supported rust version to prevent warnings we can't fix)
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: clippy
|
|
||||||
args: --locked --all-targets --all-features
|
|
||||||
- name: Run tests
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: test
|
|
||||||
args: --locked
|
|
||||||
|
|
||||||
test_with_new_syntaxes_and_themes:
|
test_with_new_syntaxes_and_themes:
|
||||||
name: Run tests with updated syntaxes and themes
|
name: Run tests with updated syntaxes and themes
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Git checkout
|
- name: Git checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
submodules: true # we need all syntax and theme submodules
|
submodules: true # we need all syntax and theme submodules
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: actions-rs/toolchain@v1
|
uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
|
||||||
toolchain: stable
|
|
||||||
default: true
|
|
||||||
profile: minimal
|
|
||||||
- name: Build and install bat
|
- name: Build and install bat
|
||||||
uses: actions-rs/cargo@v1
|
run: cargo install --locked --path .
|
||||||
with:
|
|
||||||
command: install
|
|
||||||
args: --locked --path .
|
|
||||||
- name: Rebuild binary assets (syntaxes and themes)
|
- name: Rebuild binary assets (syntaxes and themes)
|
||||||
run: bash assets/create.sh
|
run: bash assets/create.sh
|
||||||
- name: Build and install bat with updated assets
|
- name: Build and install bat with updated assets
|
||||||
uses: actions-rs/cargo@v1
|
run: cargo install --locked --path .
|
||||||
with:
|
|
||||||
command: install
|
|
||||||
args: --locked --path .
|
|
||||||
- name: Run unit tests with new syntaxes and themes
|
- name: Run unit tests with new syntaxes and themes
|
||||||
uses: actions-rs/cargo@v1
|
run: cargo test --locked --release
|
||||||
with:
|
|
||||||
command: test
|
|
||||||
args: --locked --release
|
|
||||||
- name: Run ignored-by-default unit tests with new syntaxes and themes
|
- name: Run ignored-by-default unit tests with new syntaxes and themes
|
||||||
uses: actions-rs/cargo@v1
|
run: cargo test --locked --release --test assets -- --ignored
|
||||||
with:
|
|
||||||
command: test
|
|
||||||
args: --locked --release -- --ignored
|
|
||||||
- name: Syntax highlighting regression test
|
- name: Syntax highlighting regression test
|
||||||
run: tests/syntax-tests/regression_test.sh
|
run: tests/syntax-tests/regression_test.sh
|
||||||
- name: List of languages
|
- name: List of languages
|
||||||
@@ -106,47 +114,71 @@ jobs:
|
|||||||
- name: Test custom assets
|
- name: Test custom assets
|
||||||
run: tests/syntax-tests/test_custom_assets.sh
|
run: tests/syntax-tests/test_custom_assets.sh
|
||||||
|
|
||||||
documentation:
|
test_with_system_config:
|
||||||
name: Documentation
|
name: Run tests with system wide configuration
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Git checkout
|
- name: Git checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v7
|
||||||
|
- name: Prepare environment variables
|
||||||
|
run: |
|
||||||
|
echo "BAT_SYSTEM_CONFIG_PREFIX=$GITHUB_WORKSPACE/tests/examples/system_config" >> $GITHUB_ENV
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: actions-rs/toolchain@v1
|
uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
- name: Build and install bat
|
||||||
toolchain: stable
|
run: cargo install --locked --path .
|
||||||
default: true
|
- name: Run unit tests
|
||||||
profile: minimal
|
run: cargo test --locked --test system_wide_config -- --ignored
|
||||||
|
|
||||||
|
documentation:
|
||||||
|
name: Documentation
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Git checkout
|
||||||
|
uses: actions/checkout@v7
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: dtolnay/rust-toolchain@stable
|
||||||
- name: Check documentation
|
- name: Check documentation
|
||||||
env:
|
env:
|
||||||
RUSTDOCFLAGS: -D warnings
|
RUSTDOCFLAGS: -D warnings
|
||||||
uses: actions-rs/cargo@v1
|
run: cargo doc --locked --no-deps --document-private-items --all-features
|
||||||
with:
|
- name: Show man page
|
||||||
command: doc
|
run: man $(find . -name bat.1)
|
||||||
args: --locked --no-deps --document-private-items --all-features
|
|
||||||
|
cargo-audit:
|
||||||
|
name: cargo audit
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: cargo install cargo-audit --locked
|
||||||
|
- uses: actions/checkout@v7
|
||||||
|
- run: cargo audit
|
||||||
|
|
||||||
build:
|
build:
|
||||||
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
|
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
|
||||||
runs-on: ${{ matrix.job.os }}
|
runs-on: ${{ matrix.job.os }}
|
||||||
|
needs: crate_metadata
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
job:
|
job:
|
||||||
- { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
|
- { target: aarch64-unknown-linux-musl , os: ubuntu-latest , dpkg_arch: musl-linux-arm64, use-cross: true }
|
||||||
- { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04, use-cross: true }
|
- { target: aarch64-unknown-linux-gnu , os: ubuntu-latest , dpkg_arch: arm64, use-cross: true }
|
||||||
- { target: arm-unknown-linux-musleabihf, os: ubuntu-20.04, use-cross: true }
|
- { target: arm-unknown-linux-gnueabihf , os: ubuntu-latest , dpkg_arch: armhf, use-cross: true }
|
||||||
- { target: i686-pc-windows-msvc , os: windows-2019 }
|
- { target: arm-unknown-linux-musleabihf, os: ubuntu-latest , dpkg_arch: musl-linux-armhf, use-cross: true }
|
||||||
- { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
|
- { target: i686-pc-windows-msvc , os: windows-2025 , }
|
||||||
- { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
|
- { target: i686-unknown-linux-gnu , os: ubuntu-latest , dpkg_arch: i386, use-cross: true }
|
||||||
- { target: x86_64-apple-darwin , os: macos-10.15 }
|
- { target: i686-unknown-linux-musl , os: ubuntu-latest , dpkg_arch: musl-linux-i686, use-cross: true }
|
||||||
- { target: x86_64-pc-windows-gnu , os: windows-2019 }
|
- { target: x86_64-apple-darwin , os: macos-15-intel, }
|
||||||
- { target: x86_64-pc-windows-msvc , os: windows-2019 }
|
- { target: aarch64-apple-darwin , os: macos-latest , }
|
||||||
- { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04 }
|
- { target: x86_64-pc-windows-msvc , os: windows-2025 , }
|
||||||
- { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
|
- { target: aarch64-pc-windows-msvc , os: windows-11-arm, }
|
||||||
|
- { 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:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v7
|
||||||
|
|
||||||
- name: Install prerequisites
|
- name: Install prerequisites
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -156,21 +188,19 @@ jobs:
|
|||||||
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
|
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
- name: Extract crate information
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
|
|
||||||
echo "PROJECT_VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
|
|
||||||
echo "PROJECT_MAINTAINER=$(sed -n 's/^authors = \["\(.*\)"\]/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
|
||||||
echo "PROJECT_HOMEPAGE=$(sed -n 's/^homepage = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Install Rust toolchain
|
- name: Install Rust toolchain
|
||||||
uses: actions-rs/toolchain@v1
|
uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
with:
|
||||||
toolchain: stable
|
targets: ${{ matrix.job.target }}
|
||||||
target: ${{ matrix.job.target }}
|
|
||||||
override: true
|
- name: Install cross
|
||||||
profile: minimal # minimal component installation (ie, no documentation)
|
if: matrix.job.use-cross
|
||||||
|
run: cargo install cross --git https://github.com/cross-rs/cross --rev 588b3c99db52b5a9c5906fab96cfadcf1bde7863
|
||||||
|
|
||||||
|
- 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)
|
- name: Show version information (Rust, cargo, GCC)
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -183,14 +213,11 @@ jobs:
|
|||||||
rustc -V
|
rustc -V
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD build --locked --release --target=${{ matrix.job.target }}
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: build
|
|
||||||
args: --locked --release --target=${{ matrix.job.target }}
|
|
||||||
|
|
||||||
- name: Strip debug information from executable
|
- name: Set binary name & path
|
||||||
id: strip
|
id: bin
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
# Figure out suffix of binary
|
# Figure out suffix of binary
|
||||||
@@ -199,31 +226,13 @@ jobs:
|
|||||||
*-pc-windows-*) EXE_suffix=".exe" ;;
|
*-pc-windows-*) EXE_suffix=".exe" ;;
|
||||||
esac;
|
esac;
|
||||||
|
|
||||||
# Figure out what strip tool to use if any
|
|
||||||
STRIP="strip"
|
|
||||||
case ${{ matrix.job.target }} in
|
|
||||||
arm-unknown-linux-*) STRIP="arm-linux-gnueabihf-strip" ;;
|
|
||||||
aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;;
|
|
||||||
*-pc-windows-msvc) STRIP="" ;;
|
|
||||||
esac;
|
|
||||||
|
|
||||||
# Setup paths
|
# Setup paths
|
||||||
BIN_DIR="${{ env.CICD_INTERMEDIATES_DIR }}/stripped-release-bin/"
|
BIN_NAME="${{ needs.crate_metadata.outputs.name }}${EXE_suffix}"
|
||||||
mkdir -p "${BIN_DIR}"
|
BIN_PATH="target/${{ matrix.job.target }}/release/${BIN_NAME}"
|
||||||
BIN_NAME="${{ env.PROJECT_NAME }}${EXE_suffix}"
|
|
||||||
BIN_PATH="${BIN_DIR}/${BIN_NAME}"
|
|
||||||
|
|
||||||
# Copy the release build binary to the result location
|
# Let subsequent steps know where to find the binary
|
||||||
cp "target/${{ matrix.job.target }}/release/${BIN_NAME}" "${BIN_DIR}"
|
echo "BIN_PATH=${BIN_PATH}" >> $GITHUB_OUTPUT
|
||||||
|
echo "BIN_NAME=${BIN_NAME}" >> $GITHUB_OUTPUT
|
||||||
# Also strip if possible
|
|
||||||
if [ -n "${STRIP}" ]; then
|
|
||||||
"${STRIP}" "${BIN_PATH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Let subsequent steps know where to find the (stripped) bin
|
|
||||||
echo ::set-output name=BIN_PATH::${BIN_PATH}
|
|
||||||
echo ::set-output name=BIN_NAME::${BIN_NAME}
|
|
||||||
|
|
||||||
- name: Set testing options
|
- name: Set testing options
|
||||||
id: test-options
|
id: test-options
|
||||||
@@ -231,73 +240,55 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# test only library unit tests and binary for arm-type targets
|
# test only library unit tests and binary for arm-type targets
|
||||||
unset CARGO_TEST_OPTIONS
|
unset CARGO_TEST_OPTIONS
|
||||||
unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${PROJECT_NAME}" ;; esac;
|
unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${{ needs.crate_metadata.outputs.name }}" ;; esac;
|
||||||
echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
|
echo "CARGO_TEST_OPTIONS=${CARGO_TEST_OPTIONS}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: |
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
if [[ ${{ matrix.job.os }} = windows-* ]]
|
||||||
command: test
|
then
|
||||||
args: --locked --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}}
|
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
|
- name: Run bat
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: run
|
|
||||||
args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
|
|
||||||
|
|
||||||
- name: Show diagnostics (bat --diagnostic)
|
- name: Show diagnostics (bat --diagnostic)
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD run --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: run
|
|
||||||
args: --locked --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
|
|
||||||
|
|
||||||
- name: "Feature check: regex-onig"
|
- name: "Feature check: regex-onig"
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: check
|
|
||||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
|
|
||||||
|
|
||||||
- name: "Feature check: regex-onig,git"
|
- name: "Feature check: regex-onig,git"
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: check
|
|
||||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
|
|
||||||
|
|
||||||
- name: "Feature check: regex-onig,paging"
|
- name: "Feature check: regex-onig,paging"
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: check
|
|
||||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
|
|
||||||
|
|
||||||
- name: "Feature check: regex-onig,git,paging"
|
- name: "Feature check: regex-onig,git,paging"
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: check
|
|
||||||
args: --locked --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
|
|
||||||
|
|
||||||
- name: "Feature check: minimal-application"
|
- name: "Feature check: minimal-application"
|
||||||
uses: actions-rs/cargo@v1
|
shell: bash
|
||||||
with:
|
run: $BUILD_CMD check --locked --target=${{ matrix.job.target }} --verbose --no-default-features --features minimal-application
|
||||||
use-cross: ${{ matrix.job.use-cross }}
|
|
||||||
command: check
|
|
||||||
args: --locked --target=${{ matrix.job.target }} --verbose --no-default-features --features minimal-application
|
|
||||||
|
|
||||||
- name: Create tarball
|
- name: Create tarball
|
||||||
id: package
|
id: package
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
|
PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
|
||||||
PKG_BASENAME=${PROJECT_NAME}-v${PROJECT_VERSION}-${{ matrix.job.target }}
|
PKG_BASENAME=${{ needs.crate_metadata.outputs.name }}-v${{ needs.crate_metadata.outputs.version }}-${{ matrix.job.target }}
|
||||||
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
|
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
|
||||||
echo ::set-output name=PKG_NAME::${PKG_NAME}
|
echo "PKG_NAME=${PKG_NAME}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
|
PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
|
||||||
ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
|
ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
|
||||||
@@ -305,19 +296,19 @@ jobs:
|
|||||||
mkdir -p "${ARCHIVE_DIR}/autocomplete"
|
mkdir -p "${ARCHIVE_DIR}/autocomplete"
|
||||||
|
|
||||||
# Binary
|
# Binary
|
||||||
cp "${{ steps.strip.outputs.BIN_PATH }}" "$ARCHIVE_DIR"
|
cp "${{ steps.bin.outputs.BIN_PATH }}" "$ARCHIVE_DIR"
|
||||||
|
|
||||||
# Man page
|
|
||||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
|
|
||||||
|
|
||||||
# README, LICENSE and CHANGELOG files
|
# README, LICENSE and CHANGELOG files
|
||||||
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
|
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
|
# Autocompletion files
|
||||||
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.bash "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.bash"
|
cp 'target/${{ matrix.job.target }}/release/build/${{ 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/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
|
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/${{ env.PROJECT_NAME }}'-*/out/assets/completions/_bat.ps1 "$ARCHIVE_DIR/autocomplete/_${{ env.PROJECT_NAME }}.ps1"
|
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/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
|
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
|
# base compressed package
|
||||||
pushd "${PKG_STAGING}/" >/dev/null
|
pushd "${PKG_STAGING}/" >/dev/null
|
||||||
@@ -328,7 +319,7 @@ jobs:
|
|||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
||||||
# Let subsequent steps know where to find the compressed package
|
# Let subsequent steps know where to find the compressed package
|
||||||
echo ::set-output name=PKG_PATH::"${PKG_STAGING}/${PKG_NAME}"
|
echo "PKG_PATH=${PKG_STAGING}/${PKG_NAME}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Create Debian package
|
- name: Create Debian package
|
||||||
id: debian-package
|
id: debian-package
|
||||||
@@ -340,34 +331,25 @@ jobs:
|
|||||||
DPKG_DIR="${DPKG_STAGING}/dpkg"
|
DPKG_DIR="${DPKG_STAGING}/dpkg"
|
||||||
mkdir -p "${DPKG_DIR}"
|
mkdir -p "${DPKG_DIR}"
|
||||||
|
|
||||||
DPKG_BASENAME=${PROJECT_NAME}
|
DPKG_BASENAME=${{ needs.crate_metadata.outputs.name }}
|
||||||
DPKG_CONFLICTS=${PROJECT_NAME}-musl
|
DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }}-musl
|
||||||
case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${PROJECT_NAME}-musl ; DPKG_CONFLICTS=${PROJECT_NAME} ;; esac;
|
case ${{ matrix.job.target }} in *-musl*) DPKG_BASENAME=${{ needs.crate_metadata.outputs.name }}-musl ; DPKG_CONFLICTS=${{ needs.crate_metadata.outputs.name }} ;; esac;
|
||||||
DPKG_VERSION=${PROJECT_VERSION}
|
DPKG_VERSION=${{ needs.crate_metadata.outputs.version }}
|
||||||
|
DPKG_ARCH="${{ matrix.job.dpkg_arch }}"
|
||||||
unset DPKG_ARCH
|
|
||||||
case ${{ matrix.job.target }} in
|
|
||||||
aarch64-*-linux-*) DPKG_ARCH=arm64 ;;
|
|
||||||
arm-*-linux-*hf) DPKG_ARCH=armhf ;;
|
|
||||||
i686-*-linux-*) DPKG_ARCH=i686 ;;
|
|
||||||
x86_64-*-linux-*) DPKG_ARCH=amd64 ;;
|
|
||||||
*) DPKG_ARCH=notset ;;
|
|
||||||
esac;
|
|
||||||
|
|
||||||
DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb"
|
DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb"
|
||||||
echo ::set-output name=DPKG_NAME::${DPKG_NAME}
|
echo "DPKG_NAME=${DPKG_NAME}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
# Binary
|
# Binary
|
||||||
install -Dm755 "${{ steps.strip.outputs.BIN_PATH }}" "${DPKG_DIR}/usr/bin/${{ steps.strip.outputs.BIN_NAME }}"
|
install -Dm755 "${{ steps.bin.outputs.BIN_PATH }}" "${DPKG_DIR}/usr/bin/${{ steps.bin.outputs.BIN_NAME }}"
|
||||||
|
|
||||||
# Man page
|
# Man page
|
||||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
|
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/${{ env.PROJECT_NAME }}.1"
|
gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ needs.crate_metadata.outputs.name }}.1"
|
||||||
|
|
||||||
# Autocompletion files
|
# Autocompletion files
|
||||||
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.bash "${DPKG_DIR}/usr/share/bash-completion/completions/${{ env.PROJECT_NAME }}"
|
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ 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/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
|
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ 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/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/vendor-completions/_${{ env.PROJECT_NAME }}"
|
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
|
# README and LICENSE
|
||||||
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/README.md"
|
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/README.md"
|
||||||
@@ -378,12 +360,12 @@ jobs:
|
|||||||
|
|
||||||
cat > "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright" <<EOF
|
cat > "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright" <<EOF
|
||||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
Upstream-Name: ${{ env.PROJECT_NAME }}
|
Upstream-Name: ${{ needs.crate_metadata.outputs.name }}
|
||||||
Source: ${{ env.PROJECT_HOMEPAGE }}
|
Source: ${{ needs.crate_metadata.outputs.homepage }}
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: ${{ env.PROJECT_MAINTAINER }}
|
Copyright: ${{ needs.crate_metadata.outputs.maintainer }}
|
||||||
Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
|
Copyright: $COPYRIGHT_YEARS ${{ needs.crate_metadata.outputs.maintainer }}
|
||||||
License: Apache-2.0 or MIT
|
License: Apache-2.0 or MIT
|
||||||
|
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
@@ -424,17 +406,17 @@ jobs:
|
|||||||
Version: ${DPKG_VERSION}
|
Version: ${DPKG_VERSION}
|
||||||
Section: utils
|
Section: utils
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: ${{ env.PROJECT_MAINTAINER }}
|
Maintainer: ${{ needs.crate_metadata.outputs.maintainer }}
|
||||||
Homepage: ${{ env.PROJECT_HOMEPAGE }}
|
Homepage: ${{ needs.crate_metadata.outputs.homepage }}
|
||||||
Architecture: ${DPKG_ARCH}
|
Architecture: ${DPKG_ARCH}
|
||||||
Provides: ${{ env.PROJECT_NAME }}
|
Provides: ${{ needs.crate_metadata.outputs.name }}
|
||||||
Conflicts: ${DPKG_CONFLICTS}
|
Conflicts: ${DPKG_CONFLICTS}
|
||||||
Description: cat(1) clone with wings.
|
Description: cat(1) clone with wings.
|
||||||
A cat(1) clone with syntax highlighting and Git integration.
|
A cat(1) clone with syntax highlighting and Git integration.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
DPKG_PATH="${DPKG_STAGING}/${DPKG_NAME}"
|
DPKG_PATH="${DPKG_STAGING}/${DPKG_NAME}"
|
||||||
echo ::set-output name=DPKG_PATH::${DPKG_PATH}
|
echo "DPKG_PATH=${DPKG_PATH}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
# build dpkg
|
# build dpkg
|
||||||
fakeroot dpkg-deb --build "${DPKG_DIR}" "${DPKG_PATH}"
|
fakeroot dpkg-deb --build "${DPKG_DIR}" "${DPKG_PATH}"
|
||||||
@@ -457,10 +439,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
|
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
|
||||||
echo ::set-output name=IS_RELEASE::${IS_RELEASE}
|
echo "IS_RELEASE=${IS_RELEASE}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish archives and packages
|
- name: Publish archives and packages
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
if: steps.is-release.outputs.IS_RELEASE
|
if: steps.is-release.outputs.IS_RELEASE
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -468,3 +450,15 @@ jobs:
|
|||||||
${{ steps.debian-package.outputs.DPKG_PATH }}
|
${{ steps.debian-package.outputs.DPKG_PATH }}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
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: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f
|
||||||
|
with:
|
||||||
|
identifier: sharkdp.bat
|
||||||
|
installers-regex: '-pc-windows-msvc\.zip$'
|
||||||
|
token: ${{ secrets.WINGET_TOKEN }}
|
||||||
|
|||||||
@@ -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@v7
|
||||||
|
- 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"
|
||||||
@@ -1,9 +1,17 @@
|
|||||||
|
.direnv/
|
||||||
/target/
|
/target/
|
||||||
**/*.rs.bk
|
**/*.rs.bk
|
||||||
|
|
||||||
|
# Editors
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
# Generated files
|
# Generated files
|
||||||
|
/assets/completions/_bat.ps1
|
||||||
/assets/completions/bat.bash
|
/assets/completions/bat.bash
|
||||||
/assets/completions/bat.fish
|
/assets/completions/bat.fish
|
||||||
/assets/completions/bat.zsh
|
/assets/completions/bat.zsh
|
||||||
/assets/manual/bat.1
|
/assets/manual/bat.1
|
||||||
/assets/metadata.yaml
|
/assets/metadata.yaml
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+68
-20
@@ -49,9 +49,6 @@
|
|||||||
[submodule "assets/themes/zenburn"]
|
[submodule "assets/themes/zenburn"]
|
||||||
path = assets/themes/zenburn
|
path = assets/themes/zenburn
|
||||||
url = https://github.com/colinta/zenburn.git
|
url = https://github.com/colinta/zenburn.git
|
||||||
[submodule "assets/syntaxes/Kotlin"]
|
|
||||||
path = assets/syntaxes/02_Extra/Kotlin
|
|
||||||
url = https://github.com/vkostyukov/kotlin-sublime-package
|
|
||||||
[submodule "assets/syntaxes/Elm"]
|
[submodule "assets/syntaxes/Elm"]
|
||||||
path = assets/syntaxes/02_Extra/Elm
|
path = assets/syntaxes/02_Extra/Elm
|
||||||
url = https://github.com/elm-community/SublimeElmLanguageSupport
|
url = https://github.com/elm-community/SublimeElmLanguageSupport
|
||||||
@@ -65,7 +62,7 @@
|
|||||||
path = assets/themes/onehalf
|
path = assets/themes/onehalf
|
||||||
url = https://github.com/sonph/onehalf
|
url = https://github.com/sonph/onehalf
|
||||||
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
||||||
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
path = assets/syntaxes/02_Extra/JavaScript_(Babel)
|
||||||
url = https://github.com/babel/babel-sublime
|
url = https://github.com/babel/babel-sublime
|
||||||
[submodule "assets/syntaxes/FSharp"]
|
[submodule "assets/syntaxes/FSharp"]
|
||||||
path = assets/syntaxes/02_Extra/FSharp
|
path = assets/syntaxes/02_Extra/FSharp
|
||||||
@@ -89,7 +86,7 @@
|
|||||||
path = assets/themes/sublime-snazzy
|
path = assets/themes/sublime-snazzy
|
||||||
url = https://github.com/greggb/sublime-snazzy
|
url = https://github.com/greggb/sublime-snazzy
|
||||||
[submodule "assets/syntaxes/Assembly (ARM)"]
|
[submodule "assets/syntaxes/Assembly (ARM)"]
|
||||||
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
path = assets/syntaxes/02_Extra/Assembly_(ARM)
|
||||||
url = https://github.com/tvi/Sublime-ARM-Assembly
|
url = https://github.com/tvi/Sublime-ARM-Assembly
|
||||||
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
||||||
path = assets/syntaxes/02_Extra/Protobuf
|
path = assets/syntaxes/02_Extra/Protobuf
|
||||||
@@ -108,14 +105,11 @@
|
|||||||
path = assets/syntaxes/02_Extra/Fish
|
path = assets/syntaxes/02_Extra/Fish
|
||||||
url = https://github.com/Phidica/sublime-fish.git
|
url = https://github.com/Phidica/sublime-fish.git
|
||||||
[submodule "assets/syntaxes/Org mode"]
|
[submodule "assets/syntaxes/Org mode"]
|
||||||
path = assets/syntaxes/02_Extra/Org mode
|
path = assets/syntaxes/02_Extra/Org_mode
|
||||||
url = https://github.com/jezcope/Org.tmbundle.git
|
url = https://github.com/jezcope/Org.tmbundle.git
|
||||||
[submodule "assets/syntaxes/DotENV"]
|
[submodule "assets/syntaxes/DotENV"]
|
||||||
path = assets/syntaxes/02_Extra/DotENV
|
path = assets/syntaxes/02_Extra/DotENV
|
||||||
url = https://github.com/zaynali53/DotENV
|
url = https://github.com/zaynali53/DotENV
|
||||||
[submodule "assets/syntaxes/hosts"]
|
|
||||||
path = assets/syntaxes/02_Extra/hosts
|
|
||||||
url = https://github.com/brandonwamboldt/sublime-hosts
|
|
||||||
[submodule "assets/syntaxes/ssh-config"]
|
[submodule "assets/syntaxes/ssh-config"]
|
||||||
path = assets/syntaxes/02_Extra/ssh-config
|
path = assets/syntaxes/02_Extra/ssh-config
|
||||||
url = https://github.com/robballou/sublimetext-sshconfig.git
|
url = https://github.com/robballou/sublimetext-sshconfig.git
|
||||||
@@ -133,7 +127,7 @@
|
|||||||
url = https://github.com/djuretic/SublimeStrace
|
url = https://github.com/djuretic/SublimeStrace
|
||||||
[submodule "assets/syntaxes/Jinja2"]
|
[submodule "assets/syntaxes/Jinja2"]
|
||||||
path = assets/syntaxes/02_Extra/Jinja2
|
path = assets/syntaxes/02_Extra/Jinja2
|
||||||
url = https://github.com/Martin819/sublime-jinja2
|
url = https://github.com/ltrzesniewski/sublime-jinja2.git
|
||||||
[submodule "assets/syntaxes/SLS"]
|
[submodule "assets/syntaxes/SLS"]
|
||||||
path = assets/syntaxes/02_Extra/SLS
|
path = assets/syntaxes/02_Extra/SLS
|
||||||
url = https://github.com/saltstack/sublime-text
|
url = https://github.com/saltstack/sublime-text
|
||||||
@@ -142,7 +136,7 @@
|
|||||||
path = assets/themes/dracula-sublime
|
path = assets/themes/dracula-sublime
|
||||||
url = https://github.com/dracula/sublime.git
|
url = https://github.com/dracula/sublime.git
|
||||||
[submodule "assets/syntaxes/HTML (Twig)"]
|
[submodule "assets/syntaxes/HTML (Twig)"]
|
||||||
path = assets/syntaxes/02_Extra/HTML (Twig)
|
path = assets/syntaxes/02_Extra/HTML_(Twig)
|
||||||
url = https://github.com/Anomareh/PHP-Twig.tmbundle.git
|
url = https://github.com/Anomareh/PHP-Twig.tmbundle.git
|
||||||
[submodule "assets/themes/Nord-sublime"]
|
[submodule "assets/themes/Nord-sublime"]
|
||||||
path = assets/themes/Nord-sublime
|
path = assets/themes/Nord-sublime
|
||||||
@@ -177,7 +171,7 @@
|
|||||||
url = https://github.com/euler0/sublime-glsl
|
url = https://github.com/euler0/sublime-glsl
|
||||||
[submodule "assets/syntaxes/02_Extra/Nginx"]
|
[submodule "assets/syntaxes/02_Extra/Nginx"]
|
||||||
path = assets/syntaxes/02_Extra/Nginx
|
path = assets/syntaxes/02_Extra/Nginx
|
||||||
url = https://github.com/brandonwamboldt/sublime-nginx
|
url = https://github.com/SublimeText/nginx
|
||||||
[submodule "assets/syntaxes/02_Extra/Apache"]
|
[submodule "assets/syntaxes/02_Extra/Apache"]
|
||||||
path = assets/syntaxes/02_Extra/Apache
|
path = assets/syntaxes/02_Extra/Apache
|
||||||
url = https://github.com/colinta/ApacheConf.tmLanguage
|
url = https://github.com/colinta/ApacheConf.tmLanguage
|
||||||
@@ -196,22 +190,16 @@
|
|||||||
branch = bat-source
|
branch = bat-source
|
||||||
[submodule "assets/syntaxes/02_Extra/Lean"]
|
[submodule "assets/syntaxes/02_Extra/Lean"]
|
||||||
path = assets/syntaxes/02_Extra/Lean
|
path = assets/syntaxes/02_Extra/Lean
|
||||||
url = https://github.com/leanprover/vscode-lean.git
|
url = https://github.com/leanprover/vscode-lean4.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"]
|
[submodule "assets/syntaxes/02_Extra/Zig"]
|
||||||
path = assets/syntaxes/02_Extra/Zig
|
path = assets/syntaxes/02_Extra/Zig
|
||||||
url = https://github.com/ziglang/sublime-zig-language.git
|
url = https://codeberg.org/ziglang/sublime-zig-language.git
|
||||||
[submodule "assets/syntaxes/02_Extra/gnuplot"]
|
[submodule "assets/syntaxes/02_Extra/gnuplot"]
|
||||||
path = assets/syntaxes/02_Extra/gnuplot
|
path = assets/syntaxes/02_Extra/gnuplot
|
||||||
url = https://github.com/hesstobi/sublime_gnuplot
|
url = https://github.com/hesstobi/sublime_gnuplot
|
||||||
[submodule "assets/syntaxes/02_Extra/SystemVerilog"]
|
[submodule "assets/syntaxes/02_Extra/SystemVerilog"]
|
||||||
path = assets/syntaxes/02_Extra/SystemVerilog
|
path = assets/syntaxes/02_Extra/SystemVerilog
|
||||||
url = https://github.com/TheClams/SystemVerilog.git
|
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"]
|
[submodule "assets/syntaxes/02_Extra/SublimeEthereum"]
|
||||||
path = assets/syntaxes/02_Extra/SublimeEthereum
|
path = assets/syntaxes/02_Extra/SublimeEthereum
|
||||||
url = https://github.com/davidhq/SublimeEthereum.git
|
url = https://github.com/davidhq/SublimeEthereum.git
|
||||||
@@ -236,3 +224,63 @@
|
|||||||
[submodule "assets/syntaxes/02_Extra/Dart"]
|
[submodule "assets/syntaxes/02_Extra/Dart"]
|
||||||
path = assets/syntaxes/02_Extra/Dart
|
path = assets/syntaxes/02_Extra/Dart
|
||||||
url = https://github.com/elMuso/Dartlight.git
|
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/AldanTanneo/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
|
||||||
|
[submodule "assets/syntaxes/02_Extra/typst-syntax-highlight"]
|
||||||
|
path = assets/syntaxes/02_Extra/typst-syntax-highlight
|
||||||
|
url = https://github.com/hyrious/typst-syntax-highlight
|
||||||
|
[submodule "assets/themes/Catppuccin"]
|
||||||
|
path = assets/themes/Catppuccin
|
||||||
|
url = https://github.com/SchweGELBin/catppuccin-bat-sub.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/SmartVHDL"]
|
||||||
|
path = assets/syntaxes/02_Extra/SmartVHDL
|
||||||
|
url = https://github.com/TheClams/SmartVHDL
|
||||||
|
[submodule "assets/syntaxes/02_Extra/hosts"]
|
||||||
|
path = assets/syntaxes/02_Extra/hosts
|
||||||
|
url = https://github.com/tijn/hosts.tmLanguage
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Gomod"]
|
||||||
|
path = assets/syntaxes/02_Extra/Gomod
|
||||||
|
url = https://github.com/mitranim/sublime-gomod
|
||||||
|
[submodule "assets/syntaxes/02_Extra/COBOL"]
|
||||||
|
path = assets/syntaxes/02_Extra/COBOL
|
||||||
|
url = https://github.com/adukhan99/sublime_cobol.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Kotlin"]
|
||||||
|
path = assets/syntaxes/02_Extra/Kotlin
|
||||||
|
url = https://github.com/guille/sublime-kotlin
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Caddy"]
|
||||||
|
path = assets/syntaxes/02_Extra/Caddy
|
||||||
|
url = https://github.com/caddyserver/sublimetext.git
|
||||||
|
|||||||
+472
@@ -1,3 +1,475 @@
|
|||||||
|
# unreleased
|
||||||
|
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add instructions for removing fish help abbreviations to README, see #3655 (@claw-explorer). Closes #3536
|
||||||
|
- Add .NET slnx extension, see #3682 (@ltrzesniewski)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Map justfile, Justfile, .justfile, and *.justfile to Makefile syntax highlighting, see #3623 (@zachvalenta)
|
||||||
|
- Preserve `--diff` change markers and snip separators when `--plain` is set. Closes #3630, see #3643 (@mvanhorn)
|
||||||
|
- Added support for `hidden_file_extensions` from `.sublime-syntax` files, see #3613 (@Matei02355)
|
||||||
|
- Add word wrapping mode via `--wrap=word`, see #3597 (@veeceey)
|
||||||
|
- Support configuring `--terminal-width` via `BAT_WIDTH`, see #3679 (@officialasishkumar)
|
||||||
|
- Implement `--unbuffered` mode for streaming input, allowing partial lines to display immediately (e.g. `tail -f | bat -u`). Closes #3555, see #3583 (@mainnebula)
|
||||||
|
- Added an initial `flake.nix` for a ready made development environment; see #3578 (@vorburger)
|
||||||
|
- Add `--quiet-empty` (`-E`) flag to suppress output when input is empty. Closes #1936, see #3563 (@NORMAL-EX)
|
||||||
|
- Improve native man pages and command help syntax highlighting by stripping overstriking, see #3517 (@akirk)
|
||||||
|
- Add `--fallback-syntax`/`--fallback-language` to apply syntax highlighting only when auto-detection fails, see #1341 (@Xavrir)
|
||||||
|
- Map `BUILD` case sensitively to Python (Starlark) for Bazel, see #3576 (@vorburger)
|
||||||
|
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
- Fix `--ignored-suffix` not falling back to first-line/shebang detection when the ignored suffix is also a registered extension (e.g. `--ignored-suffix .txt` on a shebang script), see #2745 and #3816 (@adnrivera)
|
||||||
|
- Fix `capacity overflow` panic when printing a snip separator at `--terminal-width=1` with multiple line ranges. Closes #3803, see #3804 (@leeewee)
|
||||||
|
- Pass `--no-paging` to `bat` invocations inside the bash / zsh / fish / PowerShell shell completion scripts so that shell-level pager wiring (e.g. `LESSOPEN='|-bat -f -pp %s'`) cannot inject ANSI escape sequences into the completion candidates. Closes #3760 (@mvanhorn)
|
||||||
|
- Quote filenames before substituting them into `$LESSOPEN` / `$LESSCLOSE` templates, preventing shell injection when a filename contains shell metacharacters, see #3726 (@curious-rabbit)
|
||||||
|
- Fix `--list-themes` unconditionally probing the terminal via OSC 10/11 even when `--theme` was set to an explicit value, see #3700 (regression introduced in bc42149a). (@optimistiCli)
|
||||||
|
- Fix inverted `$LESSCLOSE` warning so bat warns on nonzero exit, not on success. See #3654 (@cuiweixie)
|
||||||
|
- Sanitize control characters in filenames before displaying them in the file header, error messages, and the terminal title, preventing ANSI escape injection via crafted filenames. Closes #3054, see #3691 (@curious-rabbit)
|
||||||
|
- Report initial input read errors instead of treating them as empty input. Closes #3002, see #3706 (@lawrence3699)
|
||||||
|
- Treat ZIP archives as binary content based on their magic header, see #3686 (@officialasishkumar)
|
||||||
|
- Fix i686 `.deb` package using incorrect architecture name (`i686` instead of `i386`), preventing installation on Debian. Closes #3611, see #3650 (@Sim-hu)
|
||||||
|
- Fix inconsistent `.deb` MUSL package names (aarch64-musl used `arm64` instead of `musl-linux-arm64`, and `musleabihf` target missed `bat-musl` prefix). Closes #3482, see #3642 (@mvanhorn)
|
||||||
|
- Fix incorrect text width computation when using `--binary=as-text` with non-printable characters in caret notation, see #3640 and #3631 (@eyupcanakman)
|
||||||
|
- Fix `BAT_CONFIG_DIR` pointing at system config directory causing duplicate flag errors. Closes #3589, see #3620 (@Xavrir)
|
||||||
|
- Fix syntax highlighting for symlinked files when the symlink name has no extension but the target does. Closes #1001, see #3621 (@Xavrir)
|
||||||
|
- Report error when pager is missing instead of silently falling back, see #3588 (@IMaloney)
|
||||||
|
- Fix `--wrap=never` and `-S` flags being ignored when piping to pager, see #3592 (@IMaloney)
|
||||||
|
- Fix crash with BusyBox `less` on Windows, see #3527 (@Anchal-T)
|
||||||
|
- Fix `bat cache --help` failing with 'unexpected argument' error, see #3580 and #3560 (@NORMAL-EX)
|
||||||
|
- `--help` now correctly honors `--pager=builtin`. See #3516 (@keith-hall)
|
||||||
|
- `--help` now correctly honors custom themes. See #3524 (@keith-hall)
|
||||||
|
- Fixed test compatibility with future Cargo build directory changes, see #3550 (@nmacl)
|
||||||
|
- Fixed bug caused by using `--plain` and `--terminal-width=N` flags simultaneously, see #3529 (@H4k1l)
|
||||||
|
- Fixed syntax tests path, see #3610 (@foxfromworld)
|
||||||
|
- Fix zsh tab completion word-splitting language names containing spaces (e.g. `HTML (Jinja2)`, `Apache Conf`), see #3693 (@YoshKoz)
|
||||||
|
- Fix zsh tab completion offering invalid `-l` arguments (file globs, paths, hidden filenames) sourced from the second column of `--list-languages`. Closes #3735, see #3737 (@truffle-dev)
|
||||||
|
- Fix `usize` underflow in `--list-languages` when `--terminal-width` is smaller than the longest language name, see #3812 (@greymoth-jp)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
- Use git version of cross. See #3533 (@OctopusET)
|
||||||
|
- Bump MSRV to 1.88, update `time` crate to 0.3.47 to fix RUSTSEC-2026-0009, see #3581 (@NORMAL-EX)
|
||||||
|
- Allow home and end keys to be used with builtin pager, see #3651 (@keith-hall)
|
||||||
|
- Builtin syntax mapping: cleanup matcher glob parsing logic #3652 (@cyqsimon)
|
||||||
|
- Statically link the CRT for MSVC builds via Cargo config to avoid runtime DLL dependencies. Closes #3634, see #3692 (@barry3406)
|
||||||
|
- Replace `libgit2` with a pure Rust implementation of git called `gitoxide`, see PR #3703 (@blinxen)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Add shebang-based detection for Tcl (`tclsh`, `wish`) and Expect (`expect`) scripts, see #3647 (@mvanhorn)
|
||||||
|
- Change the URL of Zig submodule from GitHub to Codeberg, see #3519 (@sorairolake)
|
||||||
|
- Don't color strings inside CSV files, to make it easier to tell which column they belong to, see #3521 (@keith-hall)
|
||||||
|
- Add syntax highlighting support for COBOL, see #3584 (@adukhan99)
|
||||||
|
- Fixed manpage syntax so that ANSI escape codes don't get incorrectly highlighted and thus broken, see #3586 (@BlueElectivire)
|
||||||
|
- Map several Google Cloud CLI config files to their appropriate syntax #3635 (@victor-gp)
|
||||||
|
- Map all ignore dotfiles to Git Ignore syntax #3636 (@victor-gp)
|
||||||
|
- Improved Kotlin syntax, see #3699 (@guille)
|
||||||
|
- Include subdirectories in SSH Config syntax mapping, see #3758 (@injust)
|
||||||
|
- Add Ghostty syntax mapping, see #3759 (@injust)
|
||||||
|
- Add syntax highlighting for `Caddyfile` #3789 (@CosmicHorrorDev)
|
||||||
|
- Include `.code-workspace` as a JSON extension #3809 (@dhruvkb)
|
||||||
|
- Add syntax mapping for DNF repo configuration files, see #3814 (@injust)
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
- Remove the Visual Studio Dark+ theme, see #3552 (@CosmicHorrorDev)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
# v0.26.1
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Add paging to '-h' and '--help' see PR #3478 (@MuntasirSZN)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix hang when using `--list-themes` with an explicit pager, see #3457 (@abhinavcool42)
|
||||||
|
- Fix negative values of N not being parsed in <N:M> line ranges without `=` flag value separator, see #3442 (@lmmx)
|
||||||
|
- Fix broken Docker syntax preventing use of custom assets, see #3476 (@keith-hall)
|
||||||
|
- Fix decorations being applied unexpectedly when piping. Now only line numbers explicitly required on the command line should be applied in auto decorations mode for `cat` compatibility. See #3496 (@keith-hall)
|
||||||
|
- Fix diagnostics attempting to find the version of an executable named builtin when builtin pager is used. See #3498 (@keith-hall)
|
||||||
|
- `--help` now correctly reads the config file for theme information etc. See #3507 (@keith-hall)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
- Improve README documentation on pager options passed to less, see #3443 (@injust)
|
||||||
|
- Make PowerShell completions compatible with PowerShell v5.1, see #3495 (@keith-hall)
|
||||||
|
- Use more robust approach to escaping in Bash completions, see #3448 (@akinomyoga)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Update quadlet syntax mapping to include *.{build,pod} files #3484 (@cyqsimon)
|
||||||
|
- Fix inconsistencies in Ada syntax, see #3481 (@AldanTanneo)
|
||||||
|
- Add syntax mapping for podman's `artifact` quadlet files, see #3497 (@xduugu)
|
||||||
|
- Highlight Korn Shell scripts (i.e. with a shebang of ...`ksh`) using Bash syntax, see #3509 (@keith-hall)
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
# v0.26.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- Add build for windows/ARM64 platform. #3190 (@alcroito)
|
||||||
|
- Add paging to `--list-themes`, see PR #3239 (@einfachIrgendwer0815)
|
||||||
|
- Support negative relative line ranges, e.g. `bat -r :-10` / `bat -r='-10:'`, see #3068 (@ajesipow)
|
||||||
|
- Support context in line ranges, e.g. `bat -r 30::5` / `bat -r 30:40:5`, see #3345 (@cavanaug)
|
||||||
|
- Add built-in 'minus' pager, e.g. `bat --pager=builtin` see PR #3402 (@academician)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix UTF-8 BOM not being stripped for syntax detection, see #3314 (@krikera)
|
||||||
|
- Fix `BAT_THEME_DARK` and `BAT_THEME_LIGHT` being ignored, see issue #3171 and PR #3168 (@bash)
|
||||||
|
- Prevent `--list-themes` from outputting default theme info to stdout when it is piped, see #3189 (@einfachIrgendwer0815)
|
||||||
|
- Rename some submodules to fix Dependabot submodule updates, see issue #3198 and PR #3201 (@victor-gp)
|
||||||
|
- Make highlight tests fail when new syntaxes don't have fixtures PR #3255 (@dan-hipschman)
|
||||||
|
- Fix crash for multibyte characters in file path, see issue #3230 and PR #3245 (@HSM95)
|
||||||
|
- Add missing mappings for various bash/zsh files, see PR #3262 (@AdamGaskins)
|
||||||
|
- Send all bat errors to stderr by default, see #3336 (@JerryImMouse)
|
||||||
|
- Make --map-syntax target case insensitive to match --language, see #3206 (@keith-hall)
|
||||||
|
- Correctly determine the end of the line in UTF16LE/BE input #3369 (@keith-hall)
|
||||||
|
- `--style=changes` no longer prints a two-space indent when the file is unmodified, see issue #2710 and PR #3406 (@jyn514)
|
||||||
|
- Add missing shell completions, see #3411 (@keith-hall)
|
||||||
|
- Execute help/version/diagnostic commands even with invalid config/arguments present, see #3414 (@keith-hall)
|
||||||
|
- Fixed line numbers (`-n`) and style components not printing when piping output, see issue #2935 and PR #3438 (@lmmx)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Update base16 README links to community driven base16 work #2871 (@JamyGolden)
|
||||||
|
- Work around build failures when building `bat` from vendored sources #3179 (@dtolnay)
|
||||||
|
- CICD: Stop building for x86_64-pc-windows-gnu which fails #3261 (Enselic)
|
||||||
|
- CICD: replace windows-2019 runners with windows-2025 #3339 (@cyqsimon)
|
||||||
|
- Build script: replace string-based codegen with quote-based codegen #3340 (@cyqsimon)
|
||||||
|
- Improve code coverage of `--list-languages` parameter #2942 (@sblondon)
|
||||||
|
- Only start offload worker thread when there's more than 1 core #2956 (@cyqsimon)
|
||||||
|
- Update terminal-colorsaurus (the library used for dark/light detection) to 1.0, see #3347 (@bash)
|
||||||
|
- Update console dependency to 0.16, see #3351 (@musicinmybrain)
|
||||||
|
- Fixed some typos #3244 (@ssbarnea)
|
||||||
|
- Update onig_sys dependency to 69.9.1 to fix a gcc build failure #3400 (@CosmicHorrorDev)
|
||||||
|
- Add a cargo feature (`vendored-libgit2`) to build with vendored libgit2 version without depending on the system's one #3426 (@0x61nas)
|
||||||
|
- Update syntect dependency to v5.3.0 to fix a few minor bugs, see #3410 (@keith-hall)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Add syntax mapping for `paru` configuration files #3182 (@cyqsimon)
|
||||||
|
- Add support for [Idris 2 programming language](https://www.idris-lang.org/) #3150 (@buzden)
|
||||||
|
- Add syntax mapping for `nix`'s '`flake.lock` lockfiles #3196 (@odilf)
|
||||||
|
- Improvements to CSV/TSV highlighting, with autodetection of delimiter and support for TSV files, see #3186 (@keith-
|
||||||
|
- Improve (Sys)log error highlighting, see #3205 (@keith-hall)
|
||||||
|
- Map `ndjson` extension to JSON syntax, see #3209 (@keith-hall)
|
||||||
|
- Map files with `csproj`, `vbproj`, `props` and `targets` extensions to XML syntax, see #3213 (@keith-hall)
|
||||||
|
- Add debsources syntax to highlight `/etc/apt/sources.list` files, see #3215 (@keith-hall)
|
||||||
|
- Add syntax definition and test file for GDScript highlighting, see #3236 (@chetanjangir0)
|
||||||
|
- Add syntax test file for Odin highlighting, see #3241 (@chetanjangir0)
|
||||||
|
- Update quadlet syntax mapping rules to cover quadlets in subdirectories #3299 (@cyqsimon)
|
||||||
|
- Add syntax Typst #3300 (@cskeeters)
|
||||||
|
- Map `.mill` files to Scala syntax for Mill build tool configuration files #3311 (@krikera)
|
||||||
|
- Add syntax highlighting for VHDL, see #3337 (@JerryImMouse)
|
||||||
|
- Add syntax mapping for certbot certificate configuration #3338 (@cyqsimon)
|
||||||
|
- Update Lean syntax from Lean 3 to Lean 4 #3322 (@YDX-2147483647)
|
||||||
|
- Map `.flatpakref` and `.flatpakrepo` files to INI syntax #3353 (@Ferenc-)
|
||||||
|
- Update hosts syntax #3368 (@keith-hall)
|
||||||
|
- Map `.kshrc` files to Bash syntax #3364 (@ritoban23)
|
||||||
|
- Map `/var/log/dmesg` files to Syslog syntax #3412 (@keith-hall)
|
||||||
|
- Add syntax definition and test file for Go modules(`go.mod` and `go.sum`) highlighting, see #3424 (@DarkMatter-999)
|
||||||
|
- Syntax highlighting for typescript code blocks within Markdown files, see #3435 (@MuntasirSZN)
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
- Add Catppuccin, see #3317 (@SchweGELBin)
|
||||||
|
- Updated Catppuccin, see #3333 (@SchweGELBin)
|
||||||
|
- Updated gruvbox, see #3372 (@Nicholas42)
|
||||||
|
- Updated GitHub theme, see #3382 (@CosmicHorrorDev)
|
||||||
|
- Updated ANSI theme to highlight JSON object keys differently from values, see #3413 (@keith-hall)
|
||||||
|
|
||||||
|
# v0.25.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Set terminal title to file names when Paging is not Paging::Never #2807 (@Oliver-Looney)
|
||||||
|
- `bat --squeeze-blank`/`bat -s` will now squeeze consecutive empty lines, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)
|
||||||
|
- `bat --squeeze-limit` to set the maximum number of empty consecutive when using `--squeeze-blank`, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)
|
||||||
|
- `PrettyPrinter::squeeze_empty_lines` to support line squeezing for bat as a library, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815)
|
||||||
|
- Syntax highlighting for JavaScript files that start with `#!/usr/bin/env bun` #2913 (@sharunkumar)
|
||||||
|
- `bat --strip-ansi={never,always,auto}` to remove ANSI escape sequences from bat's input, see #2999 (@eth-p)
|
||||||
|
- Add or remove individual style components without replacing all styles #2929 (@eth-p)
|
||||||
|
- Automatically choose theme based on the terminal's color scheme, see #2896 (@bash)
|
||||||
|
- Add option `--binary=as-text` for printing binary content, see issue #2974 and PR #2976 (@einfachIrgendwer0815)
|
||||||
|
- Make shell completions available via `--completion <shell>`, see issue #2057 and PR #3126 (@einfachIrgendwer0815)
|
||||||
|
- Syntax highlighting for puppet code blocks within Markdown files, see #3152 (@liliwilson)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix long file name wrapping in header, see #2835 (@FilipRazek)
|
||||||
|
- Fix `NO_COLOR` support, see #2767 (@acuteenvy)
|
||||||
|
- Fix handling of inputs with OSC ANSI escape sequences, see #2541 and #2544 (@eth-p)
|
||||||
|
- Fix handling of inputs with combined ANSI color and attribute sequences, see #2185 and #2856 (@eth-p)
|
||||||
|
- Fix panel width when line 10000 wraps, see #2854 (@eth-p)
|
||||||
|
- Fix compile issue of `time` dependency caused by standard library regression #3045 (@cyqsimon)
|
||||||
|
- Fix override behavior of --plain and --paging, see issue #2731 and PR #3108 (@einfachIrgendwer0815)
|
||||||
|
- Fix bugs in `$LESSOPEN` support, see #2805 (@Anomalocaridid)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Upgrade to Rust 2021 edition #2748 (@cyqsimon)
|
||||||
|
- Refactor and cleanup build script #2756 (@cyqsimon)
|
||||||
|
- Checks changelog has been written to for PRs in CI #2766 (@cyqsimon)
|
||||||
|
- Use GitHub API to get correct PR submitter #2791 (@cyqsimon)
|
||||||
|
- Minor benchmark script improvements #2768 (@cyqsimon)
|
||||||
|
- Update Arch Linux package URL in README files #2779 (@brunobell)
|
||||||
|
- Update and improve `zsh` completion, see #2772 (@okapia)
|
||||||
|
- More extensible syntax mapping mechanism #2755 (@cyqsimon)
|
||||||
|
- Use proper Architecture for Debian packages built for musl, see #2811 (@Enselic)
|
||||||
|
- Pull in fix for unsafe-libyaml security advisory, see #2812 (@dtolnay)
|
||||||
|
- Update git-version dependency to use Syn v2, see #2816 (@dtolnay)
|
||||||
|
- Update git2 dependency to v0.18.2, see #2852 (@eth-p)
|
||||||
|
- Improve performance when color output disabled, see #2397 and #2857 (@eth-p)
|
||||||
|
- Relax syntax mapping rule restrictions to allow brace expansion #2865 (@cyqsimon)
|
||||||
|
- Apply clippy fixes #2864 (@cyqsimon)
|
||||||
|
- Faster startup by offloading glob matcher building to a worker thread #2868 (@cyqsimon)
|
||||||
|
- Display which theme is the default one in basic output (no colors), see #2937 (@sblondon)
|
||||||
|
- Display which theme is the default one in colored output, see #2838 (@sblondon)
|
||||||
|
- Add aarch64-apple-darwin ("Apple Silicon") binary tarballs to releases, see #2967 (@someposer)
|
||||||
|
- Update the Lisp syntax, see #2970 (@ccqpein)
|
||||||
|
- Use bat's ANSI iterator during tab expansion, see #2998 (@eth-p)
|
||||||
|
- Support 'statically linked binary' for aarch64 in 'Release' page, see #2992 (@tzq0301)
|
||||||
|
- Update options in shell completions and the man page of `bat`, see #2995 (@akinomyoga)
|
||||||
|
- Update nix dev-dependency to v0.29.0, see #3112 (@decathorpe)
|
||||||
|
- Bump MSRV to [1.74](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html), see #3154 (@keith-hall)
|
||||||
|
- Update clircle dependency to remove winapi transitive dependency, see #3113 (@niklasmohrin)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- `cmd-help`: scope subcommands followed by other terms, and other misc improvements, see #2819 (@victor-gp)
|
||||||
|
- Upgrade JQ syntax, see #2820 (@dependabot[bot])
|
||||||
|
- Add syntax mapping for quadman quadlets #2866 (@cyqsimon)
|
||||||
|
- Map containers .conf files to TOML syntax #2867 (@cyqsimon)
|
||||||
|
- Associate `.xsh` files with `xonsh` syntax that is Python, see #2840 (@anki-code)
|
||||||
|
- Associate JSON with Comments `.jsonc` with `json` syntax, see #2795 (@mxaddict)
|
||||||
|
- Associate JSON-LD `.jsonld` files with `json` syntax, see #3037 (@vorburger)
|
||||||
|
- Associate `.textproto` files with `ProtoBuf` syntax, see #3038 (@vorburger)
|
||||||
|
- Associate GeoJSON `.geojson` files with `json` syntax, see #3084 (@mvaaltola)
|
||||||
|
- Associate `.aws/{config,credentials}`, see #2795 (@mxaddict)
|
||||||
|
- Associate Wireguard config `/etc/wireguard/*.conf`, see #2874 (@cyqsimon)
|
||||||
|
- Add support for [CFML](https://www.adobe.com/products/coldfusion-family.html), see #3031 (@brenton-at-pieces)
|
||||||
|
- Map `*.mkd` files to `Markdown` syntax, see issue #3060 and PR #3061 (@einfachIrgendwer0815)
|
||||||
|
- Add syntax mapping for CITATION.cff, see #3103 (@Ugzuzg)
|
||||||
|
- Add syntax mapping for kubernetes config files #3049 (@cyqsimon)
|
||||||
|
- Adds support for pipe delimiter for CSV #3115 (@pratik-m)
|
||||||
|
- Add syntax mapping for `/etc/pacman.conf` #2961 (@cyqsimon)
|
||||||
|
- Associate `uv.lock` with `TOML` syntax, see #3132 (@fepegar)
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
- Patched/improved themes for better Manpage syntax highlighting support, see #2994 (@keith-hall).
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Changes to `syntax_mapping::SyntaxMapping` #2755 (@cyqsimon)
|
||||||
|
- `SyntaxMapping::get_syntax_for` is now correctly public
|
||||||
|
- [BREAKING] `SyntaxMapping::{empty,builtin}` are removed; use `SyntaxMapping::new` instead
|
||||||
|
- [BREAKING] `SyntaxMapping::mappings` is replaced by `SyntaxMapping::{builtin,custom,all}_mappings`
|
||||||
|
- Make `Controller::run_with_error_handler`'s error handler `FnMut`, see #2831 (@rhysd)
|
||||||
|
- Improve compile time by 20%, see #2815 (@dtolnay)
|
||||||
|
- Add `theme::theme` for choosing an appropriate theme based on the
|
||||||
|
terminal's color scheme, see #2896 (@bash)
|
||||||
|
- [BREAKING] Remove `HighlightingAssets::default_theme`. Use `theme::default_theme` instead.
|
||||||
|
- Add `PrettyPrinter::print_with_writer` for custom output destinations, see #3070 (@kojix2)
|
||||||
|
|
||||||
|
# v0.24.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Add environment variable `BAT_PAGING`, see #2629 (@einfachIrgendwer0815)
|
||||||
|
- Add opt-in (`--features lessopen`) support for `LESSOPEN` and `LESSCLOSE`. See #1597, #1739, #2444, #2602, and #2662 (@Anomalocaridid)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix `more` not being found on Windows when provided via `BAT_PAGER`, see #2570, #2580, and #2651 (@mataha)
|
||||||
|
- Switched default behavior of `--map-syntax` to be case insensitive #2520
|
||||||
|
- Updated version of `serde_yaml` to `0.9`. See #2627 (@Raghav-Bell)
|
||||||
|
- Fix arithmetic overflow in `LineRange::from` and `LineRange::parse_range`, see #2674, #2698 (@skoriop)
|
||||||
|
- Fix paging not happening when stdout is interactive but stdin is not, see #2574 (@Nigecat)
|
||||||
|
- Make `-pp` override `--paging` and vice versa when passed as a later argument, see #2660 (@J-Kappes)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Output directory for generated assets (completion, manual) can be customized, see #2515 (@tranzystorek-io)
|
||||||
|
- Use the `is-terminal` crate instead of `atty`, see #2530 (@nickelc)
|
||||||
|
- Add Winget Releaser workflow, see #2519 (@sitiom)
|
||||||
|
- Bump MSRV to 1.70, see #2651 (@mataha)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Associate `os-release` with `bash` syntax, see #2587 (@cyqsimon)
|
||||||
|
- Associate `Containerfile` with `Dockerfile` syntax, see #2606 (@einfachIrgendwer0815)
|
||||||
|
- Replaced quotes with double quotes so fzf integration example script works on windows and linux. see #2095 (@johnmatthiggins)
|
||||||
|
- Associate `ksh` files with `bash` syntax, see #2633 (@johnmatthiggins)
|
||||||
|
- Associate `sarif` files with `JSON` syntax, see #2695 (@rhysd)
|
||||||
|
- Associate `ron` files with `rust` syntax, see #2427 (@YeungOnion)
|
||||||
|
- Add support for [WebGPU Shader Language](https://www.w3.org/TR/WGSL/), see #2692 (@rhysd)
|
||||||
|
- Add `.dpkg-new` and `.dpkg-tmp` to ignored suffixe, see #2595 (@scop)
|
||||||
|
- fix: Add syntax mapping `*.jsonl` => `json`, see #2539 (@WinterCore)
|
||||||
|
- Update `Julia` syntax, see #2553 (@dependabot)
|
||||||
|
- add `NSIS` support, see #2577 (@idleberg)
|
||||||
|
- Update `ssh-config`, see #2697 (@mrmeszaros)
|
||||||
|
- Add syntax mapping `*.debdiff` => `diff`, see #2947 (@jacg)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Add optional output_buffer arg to `Controller::run()` and `Controller::run_with_error_handler()`, see #2618 (@Piturnah)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.23.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Implemented `-S` and `--chop-long-lines` flags as aliases for `--wrap=never`. See #2309 (@johnmatthiggins)
|
||||||
|
- Breaking change: Environment variables can now override config file settings (but command-line arguments still have the highest precedence), see #1152, #1281, and #2381 (@aaronkollasch)
|
||||||
|
- Implemented `--nonprintable-notation=caret` to support showing non-printable characters using caret notation. See #2429 (@einfachIrgendwer0815)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix `bat cache --clear` not clearing the `--target` dir if specified. See #2393 (@miles170)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Various bash completion improvements, see #2310 (@scop)
|
||||||
|
- Disable completion of `cache` subcommand, see #2399 (@cyqsimon)
|
||||||
|
- Signifigantly improve startup performance on macOS, see #2442 (@BlackHoleFox)
|
||||||
|
- Bump MSRV to 1.62, see #2496 (@Enselic)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Added support for Ada, see #1300 and #2316 (@dkm)
|
||||||
|
- Added `todo.txt` syntax, see #2375 (@BANOnotIT)
|
||||||
|
- Improve Manpage.sublime-syntax. See #2364 (@Freed-Wu) and #2461 (@keith-hall)
|
||||||
|
- Added a new `requirements.txt` syntax, see #2361 (@Freed-Wu)
|
||||||
|
- Added a new VimHelp syntax, see #2366 (@Freed-Wu)
|
||||||
|
- Associate `pdm.lock` with `TOML` syntax, see #2410
|
||||||
|
- `Todo.txt`: Fix highlighting of contexts and projects at beginning of done.txt, see #2411
|
||||||
|
- `cmd-help`: overhaul scope names (colors) to improve theme support; misc syntax improvements. See #2419 (@victor-gp)
|
||||||
|
- Added support for Crontab, see #2509 (@keith-hall)
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- `PrettyPrinter::header` correctly displays a header with the filename, see #2378 and #2406 (@cstyles)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.22.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Bring back pre-processing of ANSI escape characters to so that some common `bat` use cases starts working again. See #2308 (@Enselic)
|
||||||
|
|
||||||
|
# v0.22.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Make the default macOS theme depend on Dark Mode. See #2197, #1746 (@Enselic)
|
||||||
|
- Support for separate system and user config files. See #668 (@patrickpichler)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Prevent fork nightmare with `PAGER=batcat`. See #2235 (@johnmatthiggins)
|
||||||
|
- Make `--no-paging`/`-P` override `--paging=...` if passed as a later arg, see #2201 (@themkat)
|
||||||
|
- `--map-syntax` and `--ignored-suffix` now works together, see #2093 (@czzrr)
|
||||||
|
- Strips byte order mark from output when in non-loop-through mode. See #1922 (@dag-h)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Relaxed glibc requirements on amd64, see #2106 and #2194 (@sharkdp)
|
||||||
|
- Improved fish completions. See #2275 (@zgracem)
|
||||||
|
- Stop pre-processing ANSI escape characters. Syntax highlighting on ANSI escaped input is not supported. See #2185 and #2189 (@Enselic)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- NSE (Nmap Scripting Engine) is mapped to Lua, see #2151 (@Cre3per)
|
||||||
|
- Correctly color `fstab` dump and pass fields, see #2246 (@yuvalmo)
|
||||||
|
- Update `Command Help` syntax, see #2255
|
||||||
|
- `Julia`: Fix syntax highlighting for function name starting with `struct`, see #2230
|
||||||
|
- Minor update to `LiveScript`, see #2291
|
||||||
|
- Associate `.mts` and `.cts` files with the `TypeScript` syntax. See #2236 (@kidonng)
|
||||||
|
- Fish history is mapped to YAML. See #2237 (@kidonng)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Make `bat::PrettyPrinter::syntaxes()` iterate over new `bat::Syntax` struct instead of `&syntect::parsing::SyntaxReference`. See #2222 (@Enselic)
|
||||||
|
- Clear highlights after printing, see #1919 and #1920 (@rhysd)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.21.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Correctly render tab stops in `--show-all`, see #2038 (@Synthetica9)
|
||||||
|
- Add a `--style=default` option and make it the default. It is less verbose than `full`, see #2061 (@IsaacHorvath)
|
||||||
|
- Enable BusyBox `less` as pager, see #2162 (@nfisher1226)
|
||||||
|
- File extensions are now matched case-insensitively. See #1854, #2181 (@Enselic)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Bump `regex` dependency from 1.5.4 to 1.5.5 to fix [CVE-2022-24713](https://blog.rust-lang.org/2022/03/08/cve-2022-24713.html), see #2145, #2139 (@Enselic)
|
||||||
|
- `bat` no longer crashes when encountering files that references missing syntaxes. See #915, #2181 (@Enselic)
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
- Skip syntax highlighting on long lines (> 16384 chars) to help improve performance. See #2165 (@keith-hall)
|
||||||
|
- Vastly improve startup time by lazy-loading syntaxes via syntect 5.0.0. This makes bat display small files ~75% faster than before. See #951, #2181 (@Enselic)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Include info about custom assets in `--diagnostics` if used. See #2107, #2144 (@Enselic)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Mapped clang-format config file (.clang-format) to YAML syntax (@TruncatedDinosour)
|
||||||
|
- log syntax: improved handling of escape characters in double quoted strings. See #2123 (@keith-hall)
|
||||||
|
- Associate `/var/spool/mail/*` and `/var/mail/*` with the `Email` syntax. See #2156 (@cyqsimon)
|
||||||
|
- Added cmd-help syntax to scope --help messages. See #2148 (@victor-gp)
|
||||||
|
- Slightly adjust Zig syntax. See #2136 (@Enselic)
|
||||||
|
- Associate `.inf` files with the `INI` syntax. See #2190 (@Enselic)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Allow configuration of `show_nonprintable` with `PrettyPrinter`, see #2142
|
||||||
|
- The binary format of syntaxes.bin has been changed due to syntaxes now being lazy-loaded via syntect 5.0.0. See #2181 (@Enselic)
|
||||||
|
- Mark `bat::error::Error` enum as `#[non_exhaustive]` to allow adding new variants without future semver breakage. See #2181 (@Enselic)
|
||||||
|
- Change `Error::SyntectError(syntect::LoadingError)` to `Error::SyntectError(syntect::Error)`. See #2181 (@Enselic)
|
||||||
|
- Add `Error::SyntectLoadingError(syntect::LoadingError)` enum variant. See #2181 (@Enselic)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.20.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee)
|
||||||
|
- Use underline for line highlighting on ANSI, see #1730 (@mdibaiee)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix bash completion on bash 3.x and bash-completion 1.x. See #2066 (@joshpencheon)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- `GraphQL`: Add support for interfaces implementing interfaces and consider ampersand an operator. See #2000
|
||||||
|
- Associate `_vimrc` and `_gvimrc` files with the `VimL` syntax. See #2002
|
||||||
|
- Associate `poetry.lock` files with the `TOML` syntax. See #2049
|
||||||
|
- Associate `.mesh`, `.task`, `.rgen`, `.rint`, `.rahit`, `.rchit`, `.rmiss`, and `.rcall` with the `GLSL` syntax. See #2050
|
||||||
|
- Added support for `JQ` syntax, see #2072
|
||||||
|
- Properly associate global git config files rooted in `$XDG_CONFIG_HOME/git/` or `$HOME/.config/git/`. See #2067 (@cyqsimon)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Exposed `get_syntax_set` and `get_theme` methods on `HighlightingAssets`. See #2030 (@dandavison)
|
||||||
|
- Added `HeaderFilename` and `HeaderFilesize` to `StyleComponent` enum, and mark it `#[non_exhaustive]`. See #1988 (@mdibaiee)
|
||||||
|
|
||||||
|
|
||||||
# v0.19.0
|
# v0.19.0
|
||||||
|
|
||||||
## Performance
|
## Performance
|
||||||
|
|||||||
+82
-9
@@ -6,21 +6,42 @@ Thank you for considering to contribute to `bat`!
|
|||||||
|
|
||||||
## Add an entry to the changelog
|
## Add an entry to the changelog
|
||||||
|
|
||||||
If your contribution changes the behavior of `bat` (as opposed to a typo-fix
|
Keeping the [`CHANGELOG.md`](CHANGELOG.md) file up-to-date makes the release
|
||||||
in the documentation), please update the [`CHANGELOG.md`](CHANGELOG.md) file
|
process much easier and therefore helps to get your changes into a new `bat`
|
||||||
and describe your changes. This makes the release process much easier and
|
release faster. However, not every change to the repository requires a
|
||||||
therefore helps to get your changes into a new `bat` release faster.
|
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
|
The top of the `CHANGELOG` contains a *"unreleased"* section with a few
|
||||||
subsections (Features, Bugfixes, …). Please add your entry to the subsection
|
subsections (Features, Bugfixes, …). Please add your entry to the subsection
|
||||||
that best describes your change.
|
that best describes your change.
|
||||||
|
|
||||||
Entries follow this format:
|
Entries must follow this format:
|
||||||
```
|
```
|
||||||
- Short description of what has been changed, see #123 (@user)
|
- Short description of what has been changed, see #123 (@user)
|
||||||
```
|
```
|
||||||
Here, `#123` is the number of the original issue and/or your pull request.
|
Please replace `#123` with the number of your pull request (not issue) and
|
||||||
Please replace `@user` by your GitHub username.
|
`@user` by your GitHub username.
|
||||||
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
@@ -33,7 +54,7 @@ section in the README.
|
|||||||
|
|
||||||
Please consider opening a
|
Please consider opening a
|
||||||
[feature request ticket](https://github.com/sharkdp/bat/issues/new?assignees=&labels=feature-request&template=feature_request.md)
|
[feature request ticket](https://github.com/sharkdp/bat/issues/new?assignees=&labels=feature-request&template=feature_request.md)
|
||||||
first in order to give us a chance to discuss the feature first.
|
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
|
## Adding new syntaxes/languages or themes
|
||||||
@@ -42,7 +63,59 @@ Before you make a pull request that adds a new syntax or theme, please read
|
|||||||
the [Customization](https://github.com/sharkdp/bat#customization) section
|
the [Customization](https://github.com/sharkdp/bat#customization) section
|
||||||
in the README first.
|
in the README first.
|
||||||
|
|
||||||
If you really think that a particular syntax or theme should be added for all
|
If you really think that a particular syntax should be added for all
|
||||||
users, please read the corresponding
|
users, please read the corresponding
|
||||||
[documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md)
|
[documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md)
|
||||||
first.
|
first.
|
||||||
|
|
||||||
|
To map a file name pattern to an existing syntax, read [the documentation here](https://github.com/sharkdp/bat/blob/master/src/syntax_mapping/builtins/README.md).
|
||||||
|
|
||||||
|
Note: We are currently not accepting new default themes.
|
||||||
|
|
||||||
|
|
||||||
|
## 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`.
|
||||||
|
|
||||||
|
### Ensuring bat is available for Syntax tests
|
||||||
|
|
||||||
|
The syntax test script (`tests/syntax-tests/update.sh`) calls `bat` from your PATH and regenerates the highlighted output files under
|
||||||
|
`tests/syntax-tests/highlighted/`. These files are used to verify that syntax highlighting works as expected.
|
||||||
|
|
||||||
|
- If you only built the binaries with:
|
||||||
|
```bash
|
||||||
|
cargo build --bins
|
||||||
|
```
|
||||||
|
|
||||||
|
you need to add the debug build to your PATH from the bat project root before running the tests.
|
||||||
|
See also step 5 in [Syntax
|
||||||
|
tests](https://github.com/sharkdp/bat/blob/master/doc/assets.md#syntax-tests) for related instructions.
|
||||||
|
```bash
|
||||||
|
export PATH="$PATH:$(pwd)/target/debug"
|
||||||
|
```
|
||||||
|
Otherwise, you will see:
|
||||||
|
```bash
|
||||||
|
Error: Could not execute 'bat'. Please make sure that the executable is available on the PATH.
|
||||||
|
```
|
||||||
|
- If you installed bat with:
|
||||||
|
```bash
|
||||||
|
cargo install --path . --locked
|
||||||
|
```
|
||||||
|
then bat will be available in ~/.cargo/bin (usually already in PATH), and the tests will run without issues.
|
||||||
Generated
+2379
-505
File diff suppressed because it is too large
Load Diff
+77
-44
@@ -3,98 +3,131 @@ authors = ["David Peter <mail@david-peter.de>"]
|
|||||||
categories = ["command-line-utilities"]
|
categories = ["command-line-utilities"]
|
||||||
description = "A cat(1) clone with wings."
|
description = "A cat(1) clone with wings."
|
||||||
homepage = "https://github.com/sharkdp/bat"
|
homepage = "https://github.com/sharkdp/bat"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
name = "bat"
|
name = "bat"
|
||||||
repository = "https://github.com/sharkdp/bat"
|
repository = "https://github.com/sharkdp/bat"
|
||||||
version = "0.19.0"
|
version = "0.26.1"
|
||||||
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
||||||
build = "build.rs"
|
build = "build/main.rs"
|
||||||
edition = '2018'
|
edition = '2021'
|
||||||
|
# You are free to bump MSRV as soon as a reason for bumping emerges.
|
||||||
|
rust-version = "1.88"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["application"]
|
default = ["application", "git"]
|
||||||
# Feature required for bat the application. Should be disabled when depending on
|
# Feature required for bat the application. Should be disabled when depending on
|
||||||
# bat as a library.
|
# bat as a library.
|
||||||
application = [
|
application = [
|
||||||
"bugreport",
|
"bugreport",
|
||||||
"build-assets",
|
"build-assets",
|
||||||
"git",
|
|
||||||
"minimal-application",
|
"minimal-application",
|
||||||
]
|
]
|
||||||
# Mainly for developers that want to iterate quickly
|
# Mainly for developers that want to iterate quickly
|
||||||
# Be aware that the included features might change in the future
|
# Be aware that the included features might change in the future
|
||||||
minimal-application = [
|
minimal-application = [
|
||||||
"atty",
|
|
||||||
"clap",
|
"clap",
|
||||||
"dirs-next",
|
"etcetera",
|
||||||
"paging",
|
"paging",
|
||||||
"regex-onig",
|
"regex-onig",
|
||||||
"wild",
|
"wild",
|
||||||
]
|
]
|
||||||
git = ["git2"] # Support indicating git modifications
|
git = ["gix"] # Support indicating git modifications
|
||||||
paging = ["shell-words", "grep-cli"] # Support applying a pager on the output
|
paging = [ "shell-words", "grep-cli", "minus"] # Support applying a pager on the output
|
||||||
# Add "syntect/plist-load" when https://github.com/trishume/syntect/pull/345 reaches us
|
lessopen = ["execute"] # Support $LESSOPEN preprocessor
|
||||||
build-assets = ["syntect/yaml-load", "syntect/dump-create", "regex", "walkdir"]
|
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:
|
# You need to use one of these if you depend on bat as a library:
|
||||||
regex-onig = ["syntect/regex-onig"] # Use the "oniguruma" regex engine
|
regex-onig = ["syntect/regex-onig"] # Use the "oniguruma" regex engine
|
||||||
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
atty = { version = "0.2.14", optional = true }
|
nu-ansi-term = "0.50.3"
|
||||||
ansi_term = "^0.12.1"
|
ansi_colours = "^1.2"
|
||||||
ansi_colours = "^1.0"
|
|
||||||
bincode = "1.0"
|
bincode = "1.0"
|
||||||
console = "0.15.0"
|
console = "0.16.2"
|
||||||
flate2 = "1.0"
|
flate2 = "1.1"
|
||||||
once_cell = "1.9"
|
once_cell = "1.20"
|
||||||
thiserror = "1.0"
|
thiserror = "2.0"
|
||||||
wild = { version = "2.0", optional = true }
|
wild = { version = "2.2", optional = true }
|
||||||
content_inspector = "0.2.4"
|
content_inspector = "0.2.4"
|
||||||
encoding = "0.2"
|
shell-words = { version = "1.1.1", optional = true }
|
||||||
shell-words = { version = "1.0.0", optional = true }
|
minus = { version = "5.7", optional = true, features = [
|
||||||
unicode-width = "0.1.9"
|
"dynamic_output",
|
||||||
|
"search",
|
||||||
|
] }
|
||||||
|
unicode-width = "0.2.2"
|
||||||
globset = "0.4"
|
globset = "0.4"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = "1.0"
|
||||||
serde_yaml = "0.8"
|
serde_derive = "1.0"
|
||||||
|
serde_yaml = "0.9.28"
|
||||||
semver = "1.0"
|
semver = "1.0"
|
||||||
path_abs = { version = "0.5", default-features = false }
|
path_abs = { version = "0.5", default-features = false }
|
||||||
clircle = "0.3"
|
clircle = { version = "0.6.1", default-features = false }
|
||||||
bugreport = { version = "0.4", optional = true }
|
bugreport = { version = "0.6.0", optional = true }
|
||||||
dirs-next = { version = "2.0.0", optional = true }
|
etcetera = { version = "0.11.0", optional = true }
|
||||||
grep-cli = { version = "0.1.6", optional = true }
|
grep-cli = { version = "0.1.12", optional = true }
|
||||||
regex = { version = "1.0", optional = true }
|
regex = { version = "1.12.3", optional = true }
|
||||||
walkdir = { version = "2.0", optional = true }
|
walkdir = { version = "2.5", optional = true }
|
||||||
|
bytesize = { version = "2.3.1" }
|
||||||
|
encoding_rs = "0.8.35"
|
||||||
|
execute = { version = "0.2.15", optional = true }
|
||||||
|
terminal-colorsaurus = "1.0"
|
||||||
|
unicode-segmentation = "1.13.2"
|
||||||
|
itertools = "0.14.0"
|
||||||
|
|
||||||
[dependencies.git2]
|
[dependencies.gix]
|
||||||
version = "0.13"
|
version = "0.85"
|
||||||
optional = true
|
optional = true
|
||||||
default-features = false
|
default-features = false
|
||||||
|
features = ["sha1", "blob-diff"]
|
||||||
|
|
||||||
[dependencies.syntect]
|
[dependencies.syntect]
|
||||||
version = "4.6.0"
|
version = "5.3.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["parsing"]
|
features = ["parsing"]
|
||||||
|
|
||||||
[dependencies.clap]
|
[dependencies.clap]
|
||||||
version = "2.34"
|
version = "4.6.1"
|
||||||
optional = true
|
optional = true
|
||||||
default-features = false
|
features = ["wrap_help", "cargo"]
|
||||||
features = ["suggestions", "color", "wrap_help"]
|
|
||||||
|
[target.'cfg(target_os = "macos")'.dependencies]
|
||||||
|
plist = "1.9.0"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
assert_cmd = "2.0.2"
|
assert_cmd = "2.0.16"
|
||||||
serial_test = "0.5.1"
|
expect-test = "1.5.0"
|
||||||
predicates = "2.1.0"
|
serial_test = { version = "2.0.0", default-features = false }
|
||||||
wait-timeout = "0.2.0"
|
predicates = "3.1.4"
|
||||||
tempfile = "3.2.0"
|
wait-timeout = "0.2.1"
|
||||||
|
tempfile = "3.27.0"
|
||||||
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
|
||||||
[target.'cfg(unix)'.dev-dependencies]
|
[target.'cfg(unix)'.dev-dependencies]
|
||||||
nix = "0.23.1"
|
nix = { version = "0.31", default-features = false, features = ["term"] }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
clap = { version = "2.34", optional = true }
|
anyhow = "1.0.97"
|
||||||
|
indexmap = { version = "2.14.0", features = ["serde"] }
|
||||||
|
itertools = "0.14.0"
|
||||||
|
once_cell = "1.20"
|
||||||
|
prettyplease = "0.2.37"
|
||||||
|
proc-macro2 = "1.0.106"
|
||||||
|
quote = "1.0.45"
|
||||||
|
regex = "1.12.3"
|
||||||
|
serde = "1.0"
|
||||||
|
serde_derive = "1.0"
|
||||||
|
serde_with = { version = "3.17.0", default-features = false, features = ["macros"] }
|
||||||
|
syn = { version = "2.0.104", features = ["full"] }
|
||||||
|
toml = { version = "1.1.1", features = ["preserve_order"] }
|
||||||
|
walkdir = "2.5"
|
||||||
|
|
||||||
|
[build-dependencies.clap]
|
||||||
|
version = "4.6.1"
|
||||||
|
optional = true
|
||||||
|
features = ["wrap_help", "cargo"]
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
strip = true
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2018-2021 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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ languages:
|
|||||||
### Git integration
|
### Git integration
|
||||||
|
|
||||||
`bat` communicates with `git` to show modifications with respect to the index
|
`bat` communicates with `git` to show modifications with respect to the index
|
||||||
(see left side bar):
|
(see left sidebar):
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -56,13 +56,13 @@ Whenever `bat` detects a non-interactive terminal (i.e. when you pipe into anoth
|
|||||||
Display a single file on the terminal
|
Display a single file on the terminal
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> bat README.md
|
bat README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
Display multiple files at once
|
Display multiple files at once
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> bat src/*.rs
|
bat src/*.rs
|
||||||
```
|
```
|
||||||
|
|
||||||
Read from stdin, determine the syntax automatically (note, highlighting will
|
Read from stdin, determine the syntax automatically (note, highlighting will
|
||||||
@@ -70,18 +70,18 @@ only work if the syntax can be determined from the first line of the file,
|
|||||||
usually through a shebang such as `#!/bin/sh`)
|
usually through a shebang such as `#!/bin/sh`)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> curl -s https://sh.rustup.rs | bat
|
curl -s https://sh.rustup.rs | bat
|
||||||
```
|
```
|
||||||
|
|
||||||
Read from stdin, specify the language explicitly
|
Read from stdin, specify the language explicitly
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> yaml2json .travis.yml | json_pp | bat -l json
|
yaml2json .travis.yml | json_pp | bat -l json
|
||||||
```
|
```
|
||||||
|
|
||||||
Show and highlight non-printable characters:
|
Show and highlight non-printable characters:
|
||||||
```bash
|
```bash
|
||||||
> bat -A /etc/hosts
|
bat -A /etc/hosts
|
||||||
```
|
```
|
||||||
|
|
||||||
Use it as a `cat` replacement:
|
Use it as a `cat` replacement:
|
||||||
@@ -101,11 +101,11 @@ bat f - g # output 'f', then stdin, then 'g'.
|
|||||||
#### `fzf`
|
#### `fzf`
|
||||||
|
|
||||||
You can use `bat` as a previewer for [`fzf`](https://github.com/junegunn/fzf). To do this,
|
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`
|
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:
|
option to restrict the load times for long files:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
|
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information, see [`fzf`'s `README`](https://github.com/junegunn/fzf#preview-window).
|
For more information, see [`fzf`'s `README`](https://github.com/junegunn/fzf#preview-window).
|
||||||
@@ -158,7 +158,7 @@ You can combine `bat` with `git diff` to view lines around code changes with pro
|
|||||||
highlighting:
|
highlighting:
|
||||||
```bash
|
```bash
|
||||||
batdiff() {
|
batdiff() {
|
||||||
git diff --name-only --diff-filter=d | xargs bat --diff
|
git diff --name-only --relative --diff-filter=d -z | xargs -0 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 prefer to use this as a separate tool, check out `batdiff` in [`bat-extras`](https://github.com/eth-p/bat-extras).
|
||||||
@@ -181,28 +181,77 @@ bat main.cpp | xclip
|
|||||||
`MANPAGER` environment variable:
|
`MANPAGER` environment variable:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
export MANPAGER="bat -plman"
|
||||||
man 2 select
|
man 2 select
|
||||||
```
|
```
|
||||||
(replace `bat` with `batcat` if you are on Debian or Ubuntu)
|
(on some older Debian or Ubuntu releases, the executable is named `batcat` instead of `bat`)
|
||||||
|
|
||||||
It might also be necessary to set `MANROFFOPT="-c"` if you experience
|
|
||||||
formatting problems.
|
|
||||||
|
|
||||||
If you prefer to have this bundled in a new command, you can also use [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md).
|
If you prefer to have this bundled in a new command, you can also use [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md).
|
||||||
|
|
||||||
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
||||||
|
|
||||||
Also, note that this will [not work](https://github.com/sharkdp/bat/issues/1145) with Mandocs `man` implementation.
|
|
||||||
|
|
||||||
#### `prettier` / `shfmt` / `rustfmt`
|
#### `prettier` / `shfmt` / `rustfmt`
|
||||||
|
|
||||||
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
|
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
|
||||||
|
|
||||||
|
#### 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.
|
||||||
|
|
||||||
|
> [!TIP]
|
||||||
|
> To remove these abbreviations later, run:
|
||||||
|
> ```fish
|
||||||
|
> abbr -e -- --help
|
||||||
|
> abbr -e -- -h
|
||||||
|
> ```
|
||||||
|
> The `--` before the abbreviation name is required because `--help` and `-h` start with dashes, which would otherwise be interpreted as flags to `abbr` itself.
|
||||||
|
|
||||||
|
Be aware that in some cases, `-h` may not be a shorthand of `--help` (for example with `ls`). In cases where you need to use `-h`
|
||||||
|
as a command argument you can prepend `\` to the argument (eg. `ls \-h`) to escape the aliasing defined above.
|
||||||
|
|
||||||
|
Please report any issues with the help syntax in [this repository](https://github.com/victor-gp/cmd-help-sublime-syntax).
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
[](https://repology.org/project/bat-cat/versions)
|
<!--
|
||||||
|
|
||||||
|
Installation instructions need to:
|
||||||
|
* be for widely used systems
|
||||||
|
* be non-obvious
|
||||||
|
* be from somewhat official sources
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
[](https://repology.org/project/bat-cat/versions)
|
||||||
|
|
||||||
### On Ubuntu (using `apt`)
|
### On Ubuntu (using `apt`)
|
||||||
*... and other Debian-based Linux distributions.*
|
*... and other Debian-based Linux distributions.*
|
||||||
@@ -215,13 +264,18 @@ If your Ubuntu/Debian installation is new enough you can simply run:
|
|||||||
sudo apt install bat
|
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
|
**Important**: On some older Ubuntu/Debian releases, the executable is 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:
|
clash with another package](https://github.com/sharkdp/bat/issues/982)). On newer releases, the executable is available as `bat`. If `bat --version` does not work after installation, try `batcat --version` instead. You can set up a `bat -> batcat` symlink or alias to prevent any issues that may come up because of this and to be consistent with other distributions:
|
||||||
``` bash
|
``` bash
|
||||||
mkdir -p ~/.local/bin
|
mkdir -p ~/.local/bin
|
||||||
ln -s /usr/bin/batcat ~/.local/bin/bat
|
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
an example alias for `batcat` as `bat`:
|
||||||
|
```bash
|
||||||
|
alias bat="batcat"
|
||||||
|
```
|
||||||
|
|
||||||
### On Ubuntu (using most recent `.deb` packages)
|
### On Ubuntu (using most recent `.deb` packages)
|
||||||
*... and other Debian-based Linux distributions.*
|
*... and other Debian-based Linux distributions.*
|
||||||
|
|
||||||
@@ -244,7 +298,7 @@ apk add bat
|
|||||||
|
|
||||||
### On Arch Linux
|
### 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:
|
from the official sources:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -253,20 +307,12 @@ pacman -S bat
|
|||||||
|
|
||||||
### On Fedora
|
### On Fedora
|
||||||
|
|
||||||
You can install [the `bat` package](https://koji.fedoraproject.org/koji/packageinfo?packageID=27506) from the official [Fedora Modular](https://docs.fedoraproject.org/en-US/modularity/using-modules/) repository.
|
You can install [the `bat` package](https://packages.fedoraproject.org/pkgs/rust-bat/bat/) from the official sources:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dnf install bat
|
dnf install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
### On Funtoo Linux
|
|
||||||
|
|
||||||
You can install [the `bat` package](https://github.com/funtoo/dev-kit/tree/1.4-release/sys-apps/bat) from dev-kit.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
emerge sys-apps/bat
|
|
||||||
```
|
|
||||||
|
|
||||||
### On Gentoo Linux
|
### On Gentoo Linux
|
||||||
|
|
||||||
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
You can install [the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat)
|
||||||
@@ -276,20 +322,6 @@ from the official sources:
|
|||||||
emerge sys-apps/bat
|
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
|
### On FreeBSD
|
||||||
|
|
||||||
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
||||||
@@ -336,7 +368,7 @@ Existing packages may be available, but are not officially supported and may con
|
|||||||
|
|
||||||
### On macOS (or Linux) via Homebrew
|
### On macOS (or Linux) via Homebrew
|
||||||
|
|
||||||
You can install `bat` with [Homebrew on MacOS](https://formulae.brew.sh/formula/bat) or [Homebrew on Linux](https://formulae.brew.sh/formula-linux/bat):
|
You can install `bat` with [Homebrew](https://formulae.brew.sh/formula/bat):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install bat
|
brew install bat
|
||||||
@@ -357,7 +389,15 @@ take a look at the ["Using `bat` on Windows"](#using-bat-on-windows) section.
|
|||||||
|
|
||||||
#### Prerequisites
|
#### 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.
|
You will need to install the [Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist#latest-microsoft-visual-c-redistributable-version)
|
||||||
|
|
||||||
|
#### 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
|
#### With Chocolatey
|
||||||
|
|
||||||
@@ -387,26 +427,44 @@ binaries are also available: look for archives with `musl` in the file name.
|
|||||||
|
|
||||||
### From source
|
### From source
|
||||||
|
|
||||||
If you want to build `bat` from source, you need Rust 1.51 or
|
If you want to build `bat` from source, you need Rust 1.79.0 or
|
||||||
higher. You can then use `cargo` to build everything:
|
higher. You can then use `cargo` to build everything:
|
||||||
|
|
||||||
|
#### From local source
|
||||||
|
```bash
|
||||||
|
cargo install --path . --locked
|
||||||
|
```
|
||||||
|
> [!NOTE]
|
||||||
|
> The `--path .` above specifies the directory of the source code and NOT where `bat` will be installed.
|
||||||
|
> For more information see the docs for [`cargo install`](https://doc.rust-lang.org/cargo/commands/cargo-install.html).
|
||||||
|
|
||||||
|
#### From `crates.io`
|
||||||
```bash
|
```bash
|
||||||
cargo install --locked bat
|
cargo install --locked bat
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that additional files like the man page or shell completion
|
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`).
|
files can not be installed automatically in both these ways.
|
||||||
|
If installing from a local source, they will be generated by `cargo`
|
||||||
|
and should be available in the cargo target folder under `build`.
|
||||||
|
|
||||||
|
Furthermore, shell completions are also available by running:
|
||||||
|
```bash
|
||||||
|
bat --completion <shell>
|
||||||
|
# see --help for supported shells
|
||||||
|
```
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
|
|
||||||
### Highlighting theme
|
### Highlighting theme
|
||||||
|
|
||||||
Use `bat --list-themes` to get a list of all available themes for syntax
|
Use `bat --list-themes` to get a list of all available themes for syntax
|
||||||
highlighting. To select the `TwoDark` theme, call `bat` with the
|
highlighting. By default, `bat` uses `Monokai Extended` or `Monokai Extended Light`
|
||||||
`--theme=TwoDark` option or set the `BAT_THEME` environment variable to
|
for dark and light themes respectively. To select the `TwoDark` theme, call `bat`
|
||||||
|
with the `--theme=TwoDark` option or set the `BAT_THEME` environment variable to
|
||||||
`TwoDark`. Use `export BAT_THEME="TwoDark"` in your shell's startup file to
|
`TwoDark`. Use `export BAT_THEME="TwoDark"` in your shell's startup file to
|
||||||
make the change permanent. Alternatively, use `bat`s
|
make the change permanent. Alternatively, use `bat`'s
|
||||||
[configuration file](https://github.com/sharkdp/bat#configuration-file).
|
[configuration file](#configuration-file).
|
||||||
|
|
||||||
If you want to preview the different themes on a custom file, you can use
|
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):
|
the following command (you need [`fzf`](https://github.com/junegunn/fzf) for this):
|
||||||
@@ -414,10 +472,12 @@ the following command (you need [`fzf`](https://github.com/junegunn/fzf) for thi
|
|||||||
bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"
|
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
|
`bat` automatically picks a fitting theme depending on your terminal's background color.
|
||||||
light background, some themes like `GitHub` or `OneHalfLight` will work better for you.
|
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
|
You can also use a custom theme by following the
|
||||||
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
['Adding new themes' section below](#adding-new-themes).
|
||||||
|
|
||||||
### 8-bit themes
|
### 8-bit themes
|
||||||
|
|
||||||
@@ -426,12 +486,12 @@ even when truecolor support is available:
|
|||||||
|
|
||||||
- `ansi` looks decent on any terminal. It uses 3-bit colors: black, red, green,
|
- `ansi` looks decent on any terminal. It uses 3-bit colors: black, red, green,
|
||||||
yellow, blue, magenta, cyan, and white.
|
yellow, blue, magenta, cyan, and white.
|
||||||
- `base16` is designed for [base16](https://github.com/chriskempson/base16) terminal themes. It uses
|
- `base16` is designed for [base16](https://github.com/tinted-theming/home) terminal themes. It uses
|
||||||
4-bit colors (3-bit colors plus bright variants) in accordance with the
|
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 styling guidelines](https://github.com/tinted-theming/home/blob/main/styling.md).
|
||||||
- `base16-256` is designed for [base16-shell](https://github.com/chriskempson/base16-shell).
|
- `base16-256` is designed for [tinted-shell](https://github.com/tinted-theming/tinted-shell).
|
||||||
It replaces certain bright colors with 8-bit colors from 16 to 21. **Do not** use this simply
|
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.
|
because you have a 256-color terminal but are not using tinted-shell.
|
||||||
|
|
||||||
Although these themes are more restricted, they have three advantages over truecolor themes. They:
|
Although these themes are more restricted, they have three advantages over truecolor themes. They:
|
||||||
|
|
||||||
@@ -441,11 +501,51 @@ Although these themes are more restricted, they have three advantages over truec
|
|||||||
|
|
||||||
### Output style
|
### Output style
|
||||||
|
|
||||||
You can use the `--style` option to control the appearance of `bat`s output.
|
You can use the `--style` option to control the appearance of `bat`'s output.
|
||||||
You can use `--style=numbers,changes`, for example, to show only Git changes
|
You can use `--style=numbers,changes`, for example, to show only Git changes
|
||||||
and line numbers but no grid and no file header. Set the `BAT_STYLE` environment
|
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
|
variable to make these changes permanent or use `bat`'s
|
||||||
[configuration file](https://github.com/sharkdp/bat#configuration-file).
|
[configuration file](#configuration-file).
|
||||||
|
|
||||||
|
By default, `bat` enables `changes`, `grid`, `header-filename`, `numbers`, and `snip`.
|
||||||
|
|
||||||
|
The available pre-defined styles are:
|
||||||
|
|
||||||
|
| Style | Description |
|
||||||
|
|-------|-------------|
|
||||||
|
| `default` | Enables the recommended style components listed above. |
|
||||||
|
| `full` | Enables all available components. |
|
||||||
|
| `auto` | Same as `default`, unless the output is piped. |
|
||||||
|
| `plain` | Disables all available components. |
|
||||||
|
|
||||||
|
The available individual components are:
|
||||||
|
|
||||||
|
| Component | Description |
|
||||||
|
|-----------|-------------|
|
||||||
|
| `changes` | Show Git modification markers. |
|
||||||
|
| `header` | Alias for `header-filename`. |
|
||||||
|
| `header-filename` | Show filenames before the content. |
|
||||||
|
| `header-filesize` | Show file sizes before the content. |
|
||||||
|
| `grid` | Vertical/horizontal lines to separate the side bar and header from the content. |
|
||||||
|
| `rule` | Horizontal lines to delimit files. |
|
||||||
|
| `numbers` | Show line numbers in the side bar. |
|
||||||
|
| `snip` | Draw separation lines between distinct line ranges. |
|
||||||
|
|
||||||
|
>[!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.
|
||||||
|
|
||||||
|
### Decorations
|
||||||
|
|
||||||
|
By default, `bat` only shows decorations (such as line numbers, file headers, grid borders, etc.) when outputting to an interactive terminal. You can control this behavior with the `--decorations` option. Use `--decorations=always` to show decorations even when piping output to another command, or `--decorations=never` to disable them entirely. Possible values are `auto` (default), `never`, and `always`.
|
||||||
|
|
||||||
|
There is also the `--force-colorization` option, which is an alias for `--decorations=always --color=always`. This is useful if you want to keep colorization and decorations when piping `bat`'s output to another program.
|
||||||
|
|
||||||
### Adding new syntaxes / language definitions
|
### Adding new syntaxes / language definitions
|
||||||
|
|
||||||
@@ -492,6 +592,9 @@ syntax:
|
|||||||
### Adding new themes
|
### Adding new themes
|
||||||
|
|
||||||
This works very similar to how we add new syntax definitions.
|
This works very similar to how we add new syntax definitions.
|
||||||
|
> [!NOTE]
|
||||||
|
> Custom themes must be stored in [`.tmTheme` files](https://www.sublimetext.com/docs/color_schemes_tmtheme.html).
|
||||||
|
> Newer `.sublime-color-scheme` files are currently not supported.
|
||||||
|
|
||||||
First, create a folder with the new syntax highlighting themes:
|
First, create a folder with the new syntax highlighting themes:
|
||||||
```bash
|
```bash
|
||||||
@@ -506,6 +609,8 @@ bat cache --build
|
|||||||
```
|
```
|
||||||
|
|
||||||
Finally, use `bat --list-themes` to check if the new themes are available.
|
Finally, use `bat --list-themes` to check if the new themes are available.
|
||||||
|
> [!NOTE]
|
||||||
|
> `bat` uses the name of the `.tmTheme` file for the theme's name.
|
||||||
|
|
||||||
### Adding or changing file type associations
|
### Adding or changing file type associations
|
||||||
|
|
||||||
@@ -515,8 +620,9 @@ command line option. The option takes an argument of the form `pattern:syntax` w
|
|||||||
the absolute file path. The `syntax` part is the full name of a supported language
|
the absolute file path. The `syntax` part is the full name of a supported language
|
||||||
(use `bat --list-languages` for an overview).
|
(use `bat --list-languages` for an overview).
|
||||||
|
|
||||||
Note: You probably want to use this option as an entry in `bat`s configuration file instead
|
**Note:** You probably want to use this option as [an entry in `bat`'s configuration file](#configuration-file)
|
||||||
of passing it on the command line (see below).
|
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
|
Example: To use "INI" syntax highlighting for all files with a `.conf` file extension, use
|
||||||
```bash
|
```bash
|
||||||
@@ -537,35 +643,58 @@ syntax, use (this mapping is already built in):
|
|||||||
### Using a different pager
|
### Using a different pager
|
||||||
|
|
||||||
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
||||||
set, `less` is used by default. If you want to use a different pager, you can either modify the
|
set, `less` is used by default. You can also use bat's built-in pager with `--pager=builtin` or
|
||||||
`PAGER` variable or set the `BAT_PAGER` environment variable to override what is specified in
|
by setting the `BAT_PAGER` environment variable to "builtin".
|
||||||
`PAGER`.
|
|
||||||
|
|
||||||
**Note**: If `PAGER` is `more` or `most`, `bat` will silently use `less` instead to ensure support for colors.
|
If you want to use a different pager, you can either modify the `PAGER` variable or set the
|
||||||
|
`BAT_PAGER` environment variable to override what is specified in `PAGER`.
|
||||||
|
|
||||||
|
>[!NOTE]
|
||||||
|
> If `PAGER` is `more` or `most`, `bat` will silently use `less` instead to ensure support for colors.
|
||||||
|
|
||||||
If you want to pass command-line arguments to the pager, you can also set them via the
|
If you want to pass command-line arguments to the pager, you can also set them via the
|
||||||
`PAGER`/`BAT_PAGER` variables:
|
`PAGER`/`BAT_PAGER` variables:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export BAT_PAGER="less -RF"
|
export BAT_PAGER="less -RFK"
|
||||||
```
|
```
|
||||||
|
|
||||||
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).
|
Instead of using environment variables, you can also use `bat`'s [configuration file](#configuration-file) to configure the pager (`--pager` option).
|
||||||
|
|
||||||
**Note**: By default, if the pager is set to `less` (and no command-line options are specified),
|
|
||||||
`bat` will pass the following command line options to the pager: `-R`/`--RAW-CONTROL-CHARS`,
|
|
||||||
`-F`/`--quit-if-one-screen` and `-X`/`--no-init`. The last option (`-X`) is only used for `less`
|
|
||||||
versions older than 530.
|
|
||||||
|
|
||||||
The `-R` option is needed to interpret ANSI colors correctly. The second option (`-F`) instructs
|
### Using `less` as a pager
|
||||||
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
|
When using `less` as a pager, `bat` will automatically pass extra options along to `less`
|
||||||
in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer,
|
to improve the experience. Specifically, `-R`/`--RAW-CONTROL-CHARS`, `-F`/`--quit-if-one-screen`,
|
||||||
it should work out of the box.
|
`-K`/`--quit-on-intr` 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`/`--RAW-CONTROL-CHARS` option is needed to interpret ANSI colors correctly.
|
||||||
|
|
||||||
|
The `-F`/`--quit-if-one-screen` 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 `-K`/`--quit-on-intr` option instructs `less` to exit immediately when an interrupt signal is received.
|
||||||
|
This is useful to ensure that `less` quits together with `bat` on SIGINT.
|
||||||
|
|
||||||
|
The `-X`/`--no-init` option is added to versions of `less` older than version 530 (older than 558 on Windows) to
|
||||||
|
fix a bug with the `-F`/`--quit-if-one-screen` feature. 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`/`--chop-long-lines` 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
|
### Indentation
|
||||||
|
|
||||||
@@ -579,12 +708,40 @@ sidebar. Calling `bat` with `--tabs=0` will override it and let tabs be consumed
|
|||||||
|
|
||||||
### Dark mode
|
### Dark mode
|
||||||
|
|
||||||
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
If you make use of the dark mode feature in **macOS**, you might want to configure `bat` to use a different
|
||||||
theme based on the OS theme. The following snippet uses the `default` theme when in the _dark mode_
|
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_.
|
and the `GitHub` theme when in the _light mode_.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
alias cat="bat --theme auto:system --theme-dark default --theme-light GitHub"
|
||||||
|
```
|
||||||
|
|
||||||
|
The same dark mode feature is now available in **GNOME** and affects the `org.gnome.desktop.interface color-scheme` setting. The following code converts the above to use said setting.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# .bashrc
|
||||||
|
sys_color_scheme_is_dark() {
|
||||||
|
condition=$(gsettings get org.gnome.desktop.interface color-scheme)
|
||||||
|
condition=$(echo "$condition" | tr -d "[:space:]'")
|
||||||
|
if [ $condition == "prefer-dark" ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
bat_alias_wrapper() {
|
||||||
|
#get color scheme
|
||||||
|
sys_color_scheme_is_dark
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
# bat command with dark color scheme
|
||||||
|
bat --theme=default "$@"
|
||||||
|
else
|
||||||
|
# bat command with light color scheme
|
||||||
|
bat --theme=GitHub "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
alias cat='bat_alias_wrapper'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@@ -596,10 +753,11 @@ on your operating system. To get the default path for your system, call
|
|||||||
bat --config-file
|
bat --config-file
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, you can use the `BAT_CONFIG_PATH` environment variable to point `bat` to a
|
Alternatively, you can use `BAT_CONFIG_PATH` or `BAT_CONFIG_DIR` environment variables to point `bat`
|
||||||
non-default location of the configuration file:
|
to a non-default location of the configuration file or the configuration directory respectively:
|
||||||
```bash
|
```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.
|
A default configuration file can be created with the `--generate-config-file` option.
|
||||||
@@ -607,6 +765,10 @@ A default configuration file can be created with the `--generate-config-file` op
|
|||||||
bat --generate-config-file
|
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
|
### 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.
|
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.
|
||||||
@@ -646,11 +808,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
|
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
|
[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
|
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
|
**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.
|
||||||
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
|
### Cygwin
|
||||||
|
|
||||||
@@ -678,9 +838,14 @@ bat() {
|
|||||||
|
|
||||||
If an input file contains color codes or other ANSI escape sequences or control characters, `bat` will have problems
|
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.
|
performing syntax highlighting and text wrapping, and thus the output can become garbled.
|
||||||
When displaying such files it is recommended to disable both syntax highlighting and wrapping by
|
|
||||||
|
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`.
|
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
|
### Terminals & colors
|
||||||
|
|
||||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
||||||
@@ -732,7 +897,7 @@ bash assets/create.sh
|
|||||||
cargo install --path . --locked --force
|
cargo install --path . --locked --force
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to build an application that uses `bat`s pretty-printing
|
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/).
|
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
|
Note that you have to use either `regex-onig` or `regex-fancy` as a feature
|
||||||
when you depend on `bat` as a library.
|
when you depend on `bat` as a library.
|
||||||
@@ -750,7 +915,7 @@ Take a look at the [`CONTRIBUTING.md`](CONTRIBUTING.md) guide.
|
|||||||
|
|
||||||
## Security vulnerabilities
|
## Security vulnerabilities
|
||||||
|
|
||||||
Please contact [David Peter](https://david-peter.de/) via email if you want to report a vulnerability in `bat`.
|
See [`SECURITY.md`](SECURITY.md).
|
||||||
|
|
||||||
## Project goals and alternatives
|
## Project goals and alternatives
|
||||||
|
|
||||||
@@ -765,7 +930,7 @@ There are a lot of alternatives, if you are looking for similar programs. See
|
|||||||
[this document](doc/alternatives.md) for a comparison.
|
[this document](doc/alternatives.md) for a comparison.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2025 [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.
|
`bat` is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Security Vulnerabilities
|
||||||
|
|
||||||
|
To report a security vulnerability, please contact [David Peter](https://david-peter.de/) via email.
|
||||||
Vendored
BIN
Binary file not shown.
Vendored
+172
-64
@@ -5,6 +5,24 @@ using namespace System.Management.Automation.Language
|
|||||||
Register-ArgumentCompleter -Native -CommandName '{{PROJECT_EXECUTABLE}}' -ScriptBlock {
|
Register-ArgumentCompleter -Native -CommandName '{{PROJECT_EXECUTABLE}}' -ScriptBlock {
|
||||||
param($wordToComplete, $commandAst, $cursorPosition)
|
param($wordToComplete, $commandAst, $cursorPosition)
|
||||||
|
|
||||||
|
$ArrayStyle = @('default', 'auto', 'full', 'plain', 'changes', 'header', 'header-filename', 'header-filesize', 'grid', 'rule', 'numbers', 'snip')
|
||||||
|
$ArrayCompletion = @('bash', 'fish', 'zsh', 'ps1')
|
||||||
|
$ArrayWhen = @('auto', 'never', 'always')
|
||||||
|
$ArrayYesNo = @('never', 'always')
|
||||||
|
$ArrayWrap = @('always', 'never', 'character', 'word')
|
||||||
|
$ArrayBinary = @('no-printing', 'as-text')
|
||||||
|
$ArrayPrint = @('unicode', 'caret')
|
||||||
|
|
||||||
|
function Get-MyThemes(){
|
||||||
|
$themes = {{PROJECT_EXECUTABLE}} --no-paging --list-themes | ForEach-Object {$_ -replace "^(.*)$", '''$1'''} | select-object
|
||||||
|
return $themes
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-MyLanguages(){
|
||||||
|
$themes = {{PROJECT_EXECUTABLE}} --no-paging --list-languages | ForEach-Object{[pscustomobject]@{MyParameter=$_.Substring(0,$_.IndexOf(":")).Trim();MyDescription=$_.Substring($_.IndexOf(":")+1)}} | select-object
|
||||||
|
return $themes
|
||||||
|
}
|
||||||
|
|
||||||
$commandElements = $commandAst.CommandElements
|
$commandElements = $commandAst.CommandElements
|
||||||
$command = @(
|
$command = @(
|
||||||
'{{PROJECT_EXECUTABLE}}'
|
'{{PROJECT_EXECUTABLE}}'
|
||||||
@@ -12,81 +30,171 @@ Register-ArgumentCompleter -Native -CommandName '{{PROJECT_EXECUTABLE}}' -Script
|
|||||||
$element = $commandElements[$i]
|
$element = $commandElements[$i]
|
||||||
if ($element -isnot [StringConstantExpressionAst] -or
|
if ($element -isnot [StringConstantExpressionAst] -or
|
||||||
$element.StringConstantType -ne [StringConstantType]::BareWord -or
|
$element.StringConstantType -ne [StringConstantType]::BareWord -or
|
||||||
$element.Value.StartsWith('-')) {
|
#$element.Value.StartsWith('-') -or
|
||||||
|
$element.Value -eq $wordToComplete) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
$element.Value
|
$element.Value
|
||||||
}) -join ';'
|
}) -join ';'
|
||||||
|
|
||||||
$completions = @(switch ($command) {
|
$completions = @(switch -Wildcard ($command) {
|
||||||
'{{PROJECT_EXECUTABLE}}' {
|
'*;--help' {
|
||||||
[CompletionResult]::new('-l', 'l', [CompletionResultType]::ParameterName, 'Set the language for syntax highlighting.')
|
break
|
||||||
[CompletionResult]::new('--language', 'language', [CompletionResultType]::ParameterName, 'Set the language for syntax highlighting.')
|
}
|
||||||
[CompletionResult]::new('-H', 'H', [CompletionResultType]::ParameterName, 'Highlight lines N through M.')
|
'*;--version' {
|
||||||
[CompletionResult]::new('--highlight-line', 'highlight-line', [CompletionResultType]::ParameterName, 'Highlight lines N through M.')
|
break
|
||||||
[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')
|
'*;--acknowledgements' {
|
||||||
[CompletionResult]::new('--tabs', 'tabs', [CompletionResultType]::ParameterName, 'Set the tab width to T spaces.')
|
break
|
||||||
[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''.')
|
'*;--language' {
|
||||||
[CompletionResult]::new('--color', 'color', [CompletionResultType]::ParameterName, 'When to use colors (*auto*, never, always).')
|
Get-MyLanguages |
|
||||||
[CompletionResult]::new('--italic-text', 'italic-text', [CompletionResultType]::ParameterName, 'Use italics in output (always, *never*)')
|
ForEach-Object {
|
||||||
[CompletionResult]::new('--decorations', 'decorations', [CompletionResultType]::ParameterName, 'When to show the decorations (*auto*, never, always).')
|
$desc = if ($null -eq $_.MyDescription) { '_no value_' } else { $_.MyDescription }
|
||||||
[CompletionResult]::new('--paging', 'paging', [CompletionResultType]::ParameterName, 'Specify when to use the pager, or use `-P` to disable (*auto*, never, always).')
|
[CompletionResult]::new(($_.MyParameter -replace "^(.*)$", '''$1'''), $_.MyParameter, [CompletionResultType]::ParameterName, $desc)
|
||||||
[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++'').')
|
break
|
||||||
[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.')
|
'*;--theme' {
|
||||||
[CompletionResult]::new('--style', 'style', [CompletionResultType]::ParameterName, 'Comma-separated list of style elements to display (*auto*, full, plain, changes, header, grid, rule, numbers, snip).')
|
Get-MyThemes |
|
||||||
[CompletionResult]::new('-r', 'r', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterName, $_)}
|
||||||
[CompletionResult]::new('--line-range', 'line-range', [CompletionResultType]::ParameterName, 'Only print the lines from N to M.')
|
break
|
||||||
[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, ..).')
|
'*;--binary' {
|
||||||
[CompletionResult]::new('-p', 'p', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
$ArrayBinary |
|
||||||
[CompletionResult]::new('--plain', 'plain', [CompletionResultType]::ParameterName, 'Show plain style (alias for ''--style=plain'').')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
[CompletionResult]::new('-d', 'd', [CompletionResultType]::ParameterName, 'Only show lines that have been added/removed/modified.')
|
break
|
||||||
[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'').')
|
'*;--style' {
|
||||||
[CompletionResult]::new('--number', 'number', [CompletionResultType]::ParameterName, 'Show line numbers (alias for ''--style=numbers'').')
|
$ArrayStyle |
|
||||||
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'f')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
[CompletionResult]::new('--force-colorization', 'force-colorization', [CompletionResultType]::ParameterName, 'force-colorization')
|
break
|
||||||
[CompletionResult]::new('-P', 'P', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
}
|
||||||
[CompletionResult]::new('--no-paging', 'no-paging', [CompletionResultType]::ParameterName, 'Alias for ''--paging=never''')
|
'*;--wrap' {
|
||||||
[CompletionResult]::new('--list-themes', 'list-themes', [CompletionResultType]::ParameterName, 'Display all supported highlighting themes.')
|
$ArrayWrap |
|
||||||
[CompletionResult]::new('-L', 'L', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
[CompletionResult]::new('--list-languages', 'list-languages', [CompletionResultType]::ParameterName, 'Display all supported languages.')
|
break
|
||||||
[CompletionResult]::new('-u', 'u', [CompletionResultType]::ParameterName, 'u')
|
}
|
||||||
[CompletionResult]::new('--unbuffered', 'unbuffered', [CompletionResultType]::ParameterName, 'unbuffered')
|
'*;--color' {
|
||||||
[CompletionResult]::new('--no-config', 'no-config', [CompletionResultType]::ParameterName, 'Do not use the configuration file')
|
$ArrayWhen |
|
||||||
[CompletionResult]::new('--no-custom-assets', 'no-custom-assets', [CompletionResultType]::ParameterName, 'Do not load custom assets')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
[CompletionResult]::new('--config-file', 'config-file', [CompletionResultType]::ParameterName, 'Show path to the configuration file.')
|
break
|
||||||
[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.')
|
'*;--italic-text' {
|
||||||
[CompletionResult]::new('--cache-dir', 'cache-dir', [CompletionResultType]::ParameterName, 'Show bat''s cache directory.')
|
$ArrayYesNo |
|
||||||
[CompletionResult]::new('--diagnostic', 'diagnostic', [CompletionResultType]::ParameterName, 'Show diagnostic information for bug reports.')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
[CompletionResult]::new('-h', 'h', [CompletionResultType]::ParameterName, 'Print this help message.')
|
break
|
||||||
[CompletionResult]::new('--help', 'help', [CompletionResultType]::ParameterName, 'Print this help message.')
|
}
|
||||||
[CompletionResult]::new('-V', 'V', [CompletionResultType]::ParameterName, 'Show version information.')
|
'*;--paging' {
|
||||||
[CompletionResult]::new('--version', 'version', [CompletionResultType]::ParameterName, 'Show version information.')
|
$ArrayWhen |
|
||||||
[CompletionResult]::new('cache', 'cache', [CompletionResultType]::ParameterValue, 'Modify the syntax-definition and theme cache')
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
'*;--decorations' {
|
||||||
|
$ArrayWhen |
|
||||||
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
'*;--completion' {
|
||||||
|
$ArrayCompletion |
|
||||||
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
'*;--strip-ansi' {
|
||||||
|
$ArrayWhen |
|
||||||
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
'*;--nonprintable-notation' {
|
||||||
|
$ArrayPrint |
|
||||||
|
ForEach-Object {[System.Management.Automation.CompletionResult]::new($_, $_, [CompletionResultType]::ParameterValue, $_)}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
'*;--generate-config-file' {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
'{{PROJECT_EXECUTABLE}};cache' {
|
'{{PROJECT_EXECUTABLE}};cache' {
|
||||||
[CompletionResult]::new('--source', 'source', [CompletionResultType]::ParameterName, 'Use a different directory to load syntaxes and themes from.')
|
[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('--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('-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('--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('-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('--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('--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('-h' , 'h' , [CompletionResultType]::ParameterName, 'Prints help information')
|
||||||
[CompletionResult]::new('--help', 'help', [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('-V' , 'V' , [CompletionResultType]::ParameterName, 'Prints version information')
|
||||||
[CompletionResult]::new('--version', 'version', [CompletionResultType]::ParameterName, 'Prints version information')
|
# [CompletionResult]::new('--version' , 'version' , [CompletionResultType]::ParameterName, 'Prints version information')
|
||||||
|
break
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
# [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, word).')
|
||||||
|
[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' , 'themedark' , [CompletionResultType]::ParameterName, 'Set the color theme for syntax highlighting for dark backgrounds.')
|
||||||
|
[CompletionResult]::new('--theme-light' , 'themelight' , [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('--nonprintable-notation' , 'nonprintable-notation' , [CompletionResultType]::ParameterName, 'Set notation for non-printable characters. (unicode, caret)')
|
||||||
|
[CompletionResult]::new('--chop-long-lines' , 'chop-long-lines' , [CompletionResultType]::ParameterName, 'Truncate all lines longer than screen width. Alias for ''--wrap=never''.')
|
||||||
|
[CompletionResult]::new('--binary' , 'binary' , [CompletionResultType]::ParameterName, 'How to treat binary content. (*no-printing*, as-text)')
|
||||||
|
[CompletionResult]::new('--ignored-suffix' , 'ignored-suffix' , [CompletionResultType]::ParameterName, 'Ignore extension. For example: ''bat --ignored-suffix ".dev" my_file.json.dev'' will use JSON syntax, and ignore ''.dev''')
|
||||||
|
[CompletionResult]::new('--squeeze-blank' , 'squeeze-blank' , [CompletionResultType]::ParameterName, 'Squeeze consecutive empty lines into a single empty line.')
|
||||||
|
[CompletionResult]::new('--squeeze-limit' , 'squeeze-limit' , [CompletionResultType]::ParameterName, 'Set the maximum number of consecutive empty lines to be printed.')
|
||||||
|
[CompletionResult]::new('--strip-ansi' , 'strip-ansi' , [CompletionResultType]::ParameterName, 'Specify when to strip ANSI escape sequences from the input. The automatic mode will remove escape sequences unless the syntax highlighting language is plain text. (auto, always, *never*).')
|
||||||
|
# [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, 'Enable unbuffered input reading for streaming use cases')
|
||||||
|
[CompletionResult]::new('--completion' , 'completion' , [CompletionResultType]::ParameterName, 'Show shell completion for a certain shell. [possible values: bash, fish, zsh, ps1]')
|
||||||
|
[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('--acknowledgements' , 'acknowledgements' , [CompletionResultType]::ParameterName, 'Show acknowledgements.')
|
||||||
|
[CompletionResult]::new('--set-terminal-title' , 'set-terminal-title' , [CompletionResultType]::ParameterName, 'Sets terminal title to filenames when using a pager.')
|
||||||
|
[CompletionResult]::new('--diagnostic' , 'diagnostic' , [CompletionResultType]::ParameterName, 'Show diagnostic information for bug reports.')
|
||||||
|
[CompletionResult]::new('--quiet-empty' , 'quiet-empty' , [CompletionResultType]::ParameterName, 'Do not produce any output when the input is empty.')
|
||||||
|
# [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.')
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
$completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
|
$completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
|
||||||
Sort-Object -Property ListItemText
|
Sort-Object -Property CompletionText
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+183
-20
@@ -2,9 +2,61 @@
|
|||||||
|
|
||||||
# Requires https://github.com/scop/bash-completion
|
# 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
|
||||||
|
if ((
|
||||||
|
BASH_VERSINFO[0] > 5 || \
|
||||||
|
BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >= 3
|
||||||
|
)); then
|
||||||
|
# bash >= 5.3 has "compopt -o fullquote", which exactly does
|
||||||
|
# what this function tries to do.
|
||||||
|
compopt -o fullquote
|
||||||
|
elif ((
|
||||||
|
BASH_VERSINFO[0] > 4 || \
|
||||||
|
BASH_VERSINFO[0] == 4 && BASH_VERSINFO[1] > 0
|
||||||
|
)); then
|
||||||
|
# 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).
|
||||||
|
local i
|
||||||
|
for i in ${!COMPREPLY[*]}; do
|
||||||
|
printf -v "COMPREPLY[i]" %q "${COMPREPLY[i]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# We can use "compopt -o noquote" available in bash >= 4.3 to
|
||||||
|
# prevent further quoting by the shell, which would be
|
||||||
|
# unexpectedly applied when a quoted result matches a filename.
|
||||||
|
if ((
|
||||||
|
BASH_VERSINFO[0] > 4 || \
|
||||||
|
BASH_VERSINFO[0] == 4 && BASH_VERSINFO[1] >= 3
|
||||||
|
)); then
|
||||||
|
compopt -o noquote
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
compopt -o filenames
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_bat() {
|
_bat() {
|
||||||
local cur prev words cword split
|
local cur prev words split=false
|
||||||
_init_completion -s || return 0
|
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
|
if [[ ${words[1]-} == cache ]]; then
|
||||||
case $prev in
|
case $prev in
|
||||||
@@ -14,7 +66,12 @@ _bat() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=($(compgen -W "
|
COMPREPLY=($(compgen -W "
|
||||||
--build --clear --source --target --blank --help
|
--build
|
||||||
|
--clear
|
||||||
|
--source
|
||||||
|
--target
|
||||||
|
--blank
|
||||||
|
--help
|
||||||
" -- "$cur"))
|
" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@@ -23,17 +80,34 @@ _bat() {
|
|||||||
-l | --language)
|
-l | --language)
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
COMPREPLY=($(compgen -W "$(
|
COMPREPLY=($(compgen -W "$(
|
||||||
"$1" --list-languages | while IFS=: read -r lang _; do
|
"$1" --no-paging --list-languages | while IFS=: read -r lang _; do
|
||||||
printf "%s\n" "$lang"
|
printf "%s\n" "$lang"
|
||||||
done
|
done
|
||||||
)" -- "$cur"))
|
)" -- "$cur"))
|
||||||
compopt -o filenames # for escaping
|
__bat_escape_completions
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
-H | --highlight-line | --diff-context | --tabs | --terminal-width | \
|
-H | --highlight-line | \
|
||||||
-m | --map-syntax | --style | --line-range | -h | --help | -V | \
|
--diff-context | \
|
||||||
--version | --diagnostic | --config-file | --config-dir | \
|
--tabs | \
|
||||||
--cache-dir | --generate-config-file)
|
--terminal-width | \
|
||||||
|
-m | --map-syntax | \
|
||||||
|
--ignored-suffix | \
|
||||||
|
--list-themes | \
|
||||||
|
--squeeze-limit | \
|
||||||
|
--line-range | \
|
||||||
|
-L | --list-languages | \
|
||||||
|
--lessopen | \
|
||||||
|
--no-paging | \
|
||||||
|
--diagnostic | \
|
||||||
|
--quiet-empty | \
|
||||||
|
--acknowledgements | \
|
||||||
|
-h | --help | \
|
||||||
|
-V | --version | \
|
||||||
|
--cache-dir | \
|
||||||
|
--config-dir | \
|
||||||
|
--config-file | \
|
||||||
|
--generate-config-file)
|
||||||
# argument required but no completion available, or option
|
# argument required but no completion available, or option
|
||||||
# causes an exit
|
# causes an exit
|
||||||
return 0
|
return 0
|
||||||
@@ -43,7 +117,23 @@ _bat() {
|
|||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
--wrap)
|
--wrap)
|
||||||
COMPREPLY=($(compgen -W "auto never character" -- "$cur"))
|
COMPREPLY=($(compgen -W "auto never character word" -- "$cur"))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--binary)
|
||||||
|
COMPREPLY=($(compgen -W "no-printing as-text" -- "$cur"))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--nonprintable-notation)
|
||||||
|
COMPREPLY=($(compgen -W "unicode caret" -- "$cur"))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--strip-ansi)
|
||||||
|
COMPREPLY=($(compgen -W "auto never always" -- "$cur"))
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
--completion)
|
||||||
|
COMPREPLY=($(compgen -W "bash fish zsh ps1" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
--color | --decorations | --paging)
|
--color | --decorations | --paging)
|
||||||
@@ -60,29 +150,102 @@ _bat() {
|
|||||||
;;
|
;;
|
||||||
--theme)
|
--theme)
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
COMPREPLY=($(compgen -W "$("$1" --list-themes)" -- "$cur"))
|
COMPREPLY=($(compgen -W "auto${IFS}auto:always${IFS}auto:system${IFS}dark${IFS}light${IFS}$("$1" --no-paging --list-themes)" -- "$cur"))
|
||||||
compopt -o filenames # for escaping
|
__bat_escape_completions
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
|
--theme-dark | \
|
||||||
|
--theme-light)
|
||||||
|
local IFS=$'\n'
|
||||||
|
COMPREPLY=($(compgen -W "$("$1" --no-paging --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
|
esac
|
||||||
|
|
||||||
$split && return 0
|
$split && return 0
|
||||||
|
|
||||||
if [[ $cur == -* ]]; then
|
if [[ $cur == -* ]]; then
|
||||||
COMPREPLY=($(compgen -W "
|
COMPREPLY=($(compgen -W "
|
||||||
--show-all --plain --language --highlight-line
|
--unbuffered
|
||||||
--file-name --diff --diff-context --tabs --wrap
|
--show-all
|
||||||
--terminal-width --number --color --italic-text
|
--nonprintable-notation
|
||||||
--decorations --paging --pager --map-syntax --theme
|
--binary
|
||||||
--list-themes --style --line-range --list-languages
|
--plain
|
||||||
--help --version --force-colorization --unbuffered
|
--language
|
||||||
--diagnostic --config-file --config-dir --cache-dir
|
--highlight-line
|
||||||
|
--file-name
|
||||||
|
--diff
|
||||||
|
--diff-context
|
||||||
|
--tabs
|
||||||
|
--wrap
|
||||||
|
--chop-long-lines
|
||||||
|
--terminal-width
|
||||||
|
--number
|
||||||
|
--color
|
||||||
|
--italic-text
|
||||||
|
--decorations
|
||||||
|
--force-colorization
|
||||||
|
--paging
|
||||||
|
--no-paging
|
||||||
|
--pager
|
||||||
|
--map-syntax
|
||||||
|
--ignored-suffix
|
||||||
|
--theme
|
||||||
|
--theme-dark
|
||||||
|
--theme-light
|
||||||
|
--list-themes
|
||||||
|
--squeeze-blank
|
||||||
|
--squeeze-limit
|
||||||
|
--strip-ansi
|
||||||
|
--style
|
||||||
|
--line-range
|
||||||
|
--list-languages
|
||||||
|
--lessopen
|
||||||
|
--completion
|
||||||
|
--diagnostic
|
||||||
|
--quiet-empty
|
||||||
|
--acknowledgements
|
||||||
|
--set-terminal-title
|
||||||
|
--help
|
||||||
|
--version
|
||||||
|
--cache-dir
|
||||||
|
--config-dir
|
||||||
|
--config-file
|
||||||
--generate-config-file
|
--generate-config-file
|
||||||
|
--no-config
|
||||||
|
--no-custom-assets
|
||||||
|
--no-lessopen
|
||||||
" -- "$cur"))
|
" -- "$cur"))
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_filedir
|
_filedir
|
||||||
((cword == 1)) && COMPREPLY+=($(compgen -W cache -- "$cur"))
|
|
||||||
|
|
||||||
|
## 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}}
|
} && complete -F _bat {{PROJECT_EXECUTABLE}}
|
||||||
|
|||||||
Vendored
+234
-43
@@ -1,78 +1,269 @@
|
|||||||
# Fish Shell Completions
|
# Fish Shell Completions
|
||||||
# Place or symlink to $XDG_CONFIG_HOME/fish/completions/{{PROJECT_EXECUTABLE}}.fish ($XDG_CONFIG_HOME is usually set to ~/.config)
|
# Copy or symlink to $XDG_CONFIG_HOME/fish/completions/{{PROJECT_EXECUTABLE}}.fish
|
||||||
|
# ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||||
|
|
||||||
# Helper function:
|
# `bat` is `batcat` on Debian and Ubuntu
|
||||||
function __{{PROJECT_EXECUTABLE}}_autocomplete_languages --description "A helper function used by "(status filename)
|
set bat {{PROJECT_EXECUTABLE}}
|
||||||
{{PROJECT_EXECUTABLE}} --list-languages | awk -F':' '
|
|
||||||
{
|
|
||||||
lang=$1
|
|
||||||
split($2, exts, ",")
|
|
||||||
|
|
||||||
for (i in exts) {
|
# Helper functions:
|
||||||
ext=exts[i]
|
|
||||||
if (ext !~ /[A-Z].*/ && ext !~ /^\..*rc$/) {
|
function __bat_complete_files -a token
|
||||||
print ext"\t"lang
|
# 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"
|
||||||
' | sort
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function __bat_complete_one_language -a comp
|
||||||
|
command $bat --no-paging --list-languages | string split -f1 : | string match -e "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bat_complete_list_languages
|
||||||
|
for spec in (command $bat --no-paging --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 quiet-empty \
|
||||||
|
-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
|
||||||
|
builtin\t
|
||||||
|
'
|
||||||
|
|
||||||
|
set -l italic_text_opts '
|
||||||
|
always\t
|
||||||
|
never\tdefault
|
||||||
|
'
|
||||||
|
|
||||||
|
set -l wrap_opts '
|
||||||
|
auto\tdefault
|
||||||
|
never\t
|
||||||
|
character\t
|
||||||
|
word\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:
|
# Completions:
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l color -xka "auto never always" -d "Specify when to use colored output (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l acknowledgements -d "Print acknowledgements" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l config-dir -d "Display location of '{{PROJECT_EXECUTABLE}}' configuration directory" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l binary -x -a "no-printing as-text" -d "How to treat binary content" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l config-file -d "Display location of '{{PROJECT_EXECUTABLE}}' configuration file" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l cache-dir -f -d "Show bat's cache directory" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l decorations -xka "auto never always" -d "Specify when to use the decorations specified with '--style' (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s c -l chop-long-lines -d "Truncate all lines longer than screen width" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s h -l help -d "Print help message" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l color -x -a "$color_opts" -d "When to use colored output" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s H -l highlight-line -x -d "<N> Highlight the N-th line with a different background color" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l completion -x -a "bash fish zsh ps1" -d "Show shell completion for a certain shell" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l italic-text -xka "always never" -d "Specify when to use ANSI sequences for italic text (default: never)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l config-dir -f -d "Display location of configuration directory" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s l -l language -d "Set the language for syntax highlighting" -n "not __fish_seen_subcommand_from cache" -xa "(__{{PROJECT_EXECUTABLE}}_autocomplete_languages)"
|
complete -c $bat -l config-file -f -d "Display location of configuration file" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s r -l line-range -x -d "<N:M> Only print the specified range of lines for each file" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l decorations -x -a "$decorations_opts" -d "When to use --style decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l list-languages -d "Display list of supported languages for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l diagnostic -d "Print diagnostic info for bug reports" -n __fish_is_first_arg
|
||||||
|
complete -c $bat -l quiet-empty -d "Do not produce any output when the input is empty" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l list-themes -d "Display a list of supported themes for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s d -l diff -d "Only show lines with Git changes" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s m -l map-syntax -x -d "<from:to> Map a file extension or file name to an existing syntax" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l diff-context -x -d "Show N context lines around Git changes" -n "__fish_seen_argument -s d -l diff"
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s n -l number -d "Only show line numbers, no other decorations. Alias for '--style=numbers'" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l generate-config-file -f -d "Generates a default configuration file" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l pager -x -d "<command> Specify which pager program to use (default: less)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l file-name -x -d "Specify the display name" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l paging -xka "auto never always" -d "Specify when to use the pager (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s f -l force-colorization -d "Force color and decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s p -l plain -d "Only show plain style, no decorations. Alias for '--style=plain'" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s h -d "Print a concise overview" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s P -d "Disable paging. Alias for '--paging=never'" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l help -f -d "Print all help information" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s H -l highlight-line -x -d "Highlight line(s) N[:M]" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l style -xka "auto full plain changes header grid rule numbers snip" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l ignored-suffix -x -d "Ignore extension" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l tabs -x -d "<T> Set the tab width to T spaces (width of 0 passes tabs through directly)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $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 {{PROJECT_EXECUTABLE}} -l terminal-width -x -d "<width> Explicitly set terminal width; Prefix with '+' or '-' to offset (default width is auto determined)" -n "not __fish_seen_subcommand_from cache"
|
complete -c $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 {{PROJECT_EXECUTABLE}} -l theme -xka "({{PROJECT_EXECUTABLE}} --list-themes | cat)" -d "Set the theme for syntax highlighting" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l lessopen -d "Enable the $LESSOPEN preprocessor" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s u -l unbuffered -d "POSIX-compliant unbuffered output. Option is ignored" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -s r -l line-range -x -d "Only print lines [M]:[N] (either optional)" -n __bat_no_excl_args
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s V -l version -d "Show version information" -n "not __fish_seen_subcommand_from cache"
|
complete -c $bat -l list-languages -f -d "List syntax highlighting languages" -n __fish_is_first_arg
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l wrap -xka "auto never character" -d "<mode> Specify the text-wrapping mode (default: auto)" -n "not __fish_seen_subcommand_from cache"
|
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 -l nonprintable-notation -x -a "unicode caret" -d "Set notation for non-printable characters" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s n -l number -d "Only show line numbers, no other decorations" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l no-paging -d "Alias for --paging=never" -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 "Show plain style" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l set-terminal-title -d "Sets terminal title to filenames when using a pager" -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 -s s -l squeeze-blank -d "Squeeze consecutive empty lines into a single empty line" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l squeeze-limit -x -d "Set the maximum number of consecutive empty lines to be printed" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -l strip-ansi -x -a "auto never always" -d "Specify when to strip ANSI escape sequences from the input" -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 -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 --no-paging --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 --no-paging --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 --no-paging --list-themes | command cat)" -d "Set the syntax highlighting theme for light backgrounds" -n __bat_no_excl_args
|
||||||
|
|
||||||
|
complete -c $bat -s u -l unbuffered -d "Enable unbuffered input reading for streaming use cases" -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
|
# Sub-command 'cache' completions
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -a "cache" -d "Modify the syntax/language definition cache" -n "not __fish_seen_subcommand_from cache"
|
## Completion of the 'cache' command itself is removed for better UX
|
||||||
|
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l build -f -d "Parse syntaxes/language definitions into cache" -n "__fish_seen_subcommand_from cache"
|
complete -c $bat -l build -f -d "Parse new definitions into cache" -n __bat_cache_no_excl
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l clear -f -d "Reset syntaxes/language definitions to default settings" -n "__fish_seen_subcommand_from cache"
|
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
|
||||||
|
|||||||
Vendored
+99
-65
@@ -1,19 +1,20 @@
|
|||||||
#compdef {{PROJECT_EXECUTABLE}}
|
#compdef {{PROJECT_EXECUTABLE}}
|
||||||
|
|
||||||
local context state state_descr line
|
local curcontext="$curcontext" ret=1
|
||||||
|
local -a state state_descr line
|
||||||
typeset -A opt_args
|
typeset -A opt_args
|
||||||
|
|
||||||
(( $+functions[_{{PROJECT_EXECUTABLE}}_cache_subcommand] )) ||
|
(( $+functions[_{{PROJECT_EXECUTABLE}}_cache_subcommand] )) ||
|
||||||
_{{PROJECT_EXECUTABLE}}_cache_subcommand() {
|
_{{PROJECT_EXECUTABLE}}_cache_subcommand() {
|
||||||
local -a args
|
local -a args
|
||||||
args=(
|
args=(
|
||||||
'(-b --build -c --clear)'{-b,--build}'[Initialize or update the syntax/theme cache]'
|
'(-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]'
|
'(-b --build -c --clear)'{-c,--clear}'[remove the cached syntax definitions and themes]'
|
||||||
'(--source)'--source='[Use a different directory to load syntaxes and themes from]:directory:_files -/'
|
--source='[specify directory to load syntaxes and themes from]:directory:_files -/'
|
||||||
'(--target)'--target='[Use a different directory to store the cached syntax and theme set]:directory:_files -/'
|
--target='[specify directory to store the cached syntax and theme set in]:directory:_files -/'
|
||||||
'(--blank)'--blank'[Create completely new syntax and theme sets]'
|
--blank'[create completely new syntax and theme sets]'
|
||||||
'(: -)'{-h,--help}'[Prints help information]'
|
--acknowledgements'[build acknowledgements.bin]'
|
||||||
'*: :'
|
'(: -)'{-h,--help}'[show help information]'
|
||||||
)
|
)
|
||||||
|
|
||||||
_arguments -S -s $args
|
_arguments -S -s $args
|
||||||
@@ -23,77 +24,110 @@ _{{PROJECT_EXECUTABLE}}_cache_subcommand() {
|
|||||||
_{{PROJECT_EXECUTABLE}}_main() {
|
_{{PROJECT_EXECUTABLE}}_main() {
|
||||||
local -a args
|
local -a args
|
||||||
args=(
|
args=(
|
||||||
'(-A --show-all)'{-A,--show-all}'[Show non-printable characters (space, tab, newline, ..)]'
|
'(-A --show-all)'{-A,--show-all}'[show non-printable characters (space, tab, newline, ..)]'
|
||||||
'*'{-p,--plain}'[Show plain style (alias for `--style=plain`), repeat twice to disable disable automatic paging (alias for `--paging=never`)]'
|
--nonprintable-notation='[specify how to display non-printable characters when using --show-all]:notation:(caret unicode)'
|
||||||
'(-l --language)'{-l+,--language=}'[Set the language for syntax highlighting]:<language>:->language'
|
--binary='[specify how to treat binary content]:behavior:(no-printing as-text)'
|
||||||
'(-H --highlight-line)'{-H,--highlight-line}'[Highlight lines N through M]:<N\:M>...'
|
\*{-p,--plain}'[show plain style (alias for `--style=plain`), repeat twice to disable automatic paging (alias for `--paging=never`)]'
|
||||||
'(--file-name)'--file-name'[Specify the name to display for a file]:<name>...:_files'
|
'(-l --language)'{-l+,--language=}'[set the language for syntax highlighting]:language:->languages'
|
||||||
'(-d --diff)'--diff'[Only show lines that have been added/removed/modified]'
|
\*{-H+,--highlight-line=}'[highlight specified block of lines]:start\:end'
|
||||||
'(--diff-context)'--diff-context'[Include N lines of context around added/removed/modified lines when using `--diff`]:<N> (lines):()'
|
\*--file-name='[specify the name to display for a file]:name:_files'
|
||||||
'(--tabs)'--tabs'[Set the tab width to T spaces]:<T> (tab width):()'
|
'(-d --diff)'--diff'[only show lines that have been added/removed/modified]'
|
||||||
'(--wrap)'--wrap='[Specify the text-wrapping mode]:<when>:(auto never character)'
|
--diff-context='[specify lines of context around added/removed/modified lines when using `--diff`]:lines'
|
||||||
'(--terminal-width)'--terminal-width'[Explicitly set the width of the terminal instead of determining it automatically]:<width>'
|
--tabs='[set the tab width]:tab width [4]'
|
||||||
'(-n --number)'{-n,--number}'[Show line numbers]'
|
--wrap='[specify the text-wrapping mode]:mode [auto]:(auto never character word)'
|
||||||
'(--color)'--color='[When to use colors]:<when>:(auto never always)'
|
'!(--wrap)'{-S,--chop-long-lines}
|
||||||
'(--italic-text)'--italic-text='[Use italics in output]:<when>:(always never)'
|
--terminal-width='[explicitly set the width of the terminal instead of determining it automatically]:width'
|
||||||
'(--decorations)'--decorations='[When to show the decorations]:<when>:(auto never always)'
|
'(-n --number --diff --diff-context)'{-n,--number}'[show line numbers]'
|
||||||
'(--paging)'--paging='[Specify when to use the pager]:<when>:(auto never always)'
|
--color='[specify when to use colors]:when:(auto never always)'
|
||||||
'(-m --map-syntax)'{-m+,--map-syntax=}'[Use the specified syntax for files matching the glob pattern]:<glob\:syntax>...'
|
--italic-text='[use italics in output]:when:(always never)'
|
||||||
'(--theme)'--theme='[Set the color theme for syntax highlighting]:<theme>:->theme'
|
--decorations='[specify when to show the decorations]:when:(auto never always)'
|
||||||
'(: --list-themes --list-languages -L)'--list-themes'[Display all supported highlighting themes]'
|
'(-f --force-colorization)'--force-colorization'[force colorization and decorations]'
|
||||||
'(--style)'--style='[Comma-separated list of style elements to display]:<components>:->style'
|
--paging='[specify when to use the pager]:when:(auto never always)'
|
||||||
'(-r --line-range)'{-r+,--line-range=}'[Only print the lines from N to M]:<N\:M>...'
|
'(-P --no-paging)'--no-paging'[alias for --paging=never]'
|
||||||
'(: --list-themes --list-languages -L)'{-L,--list-languages}'[Display all supported languages]'
|
--pager='[determine which pager to use]:command:'
|
||||||
'(: --no-config)'--no-config'[Do not use the configuration file]'
|
'(-m --map-syntax)'{-m+,--map-syntax=}'[map a glob pattern to an existing syntax name]: :->syntax-maps'
|
||||||
'(: --no-custom-assets)'--no-custom-assets'[Do not load custom assets]'
|
--ignored-suffix='[ignore extension]:suffix:'
|
||||||
'(: --config-dir)'--config-dir'[Show bat'"'"'s configuration directory]'
|
'(--theme)'--theme='[set the color theme for syntax highlighting]:theme:->theme_preferences'
|
||||||
'(: --config-file)'--config-file'[Show path to the configuration file]'
|
'(--theme-dark)'--theme-dark='[set the color theme for syntax highlighting for dark backgrounds]:theme:->themes'
|
||||||
'(: --generate-config-file)'--generate-config-file'[Generates a default configuration file]'
|
'(--theme-light)'--theme-light='[set the color theme for syntax highlighting for light backgrounds]:theme:->themes'
|
||||||
'(: --cache-dir)'--cache-dir'[Show bat'"'"'s cache directory]'
|
'(: --list-themes --list-languages -L)'--list-themes'[show all supported highlighting themes]'
|
||||||
'(: -)'{-h,--help}'[Print this help message]'
|
--squeeze-blank'[squeeze consecutive empty lines into a single empty line]'
|
||||||
'(: -)'{-V,--version}'[Show version information]'
|
--squeeze-limit='[set the maximum number of consecutive empty lines]:limit:'
|
||||||
'*: :_files'
|
--strip-ansi='[specify when to strip ANSI escape sequences]:when:(auto never always)'
|
||||||
|
--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]'
|
||||||
|
'(-u --unbuffered)'--unbuffered'[enable unbuffered input reading for streaming use cases]'
|
||||||
|
--completion='[show shell completion for a certain shell]:shell:(bash fish zsh ps1)'
|
||||||
|
--set-terminal-title'[sets terminal title to filenames when using a pager]'
|
||||||
|
--diagnostic'[show diagnostic information for bug reports]'
|
||||||
|
--quiet-empty'[do not produce any output when the input is empty]'
|
||||||
|
-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
|
_arguments -S -s $args && ret=0
|
||||||
|
|
||||||
case "$state" in
|
case "$state" in
|
||||||
language)
|
syntax-maps)
|
||||||
|
if ! compset -P '*:'; then
|
||||||
|
_message -e patterns 'glob pattern:language'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
;& # fall-through
|
||||||
|
|
||||||
|
languages)
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
local -a languages
|
local -a languages
|
||||||
languages=( $({{PROJECT_EXECUTABLE}} --list-languages | awk -F':|,' '{ for (i = 1; i <= NF; ++i) printf("%s:%s\n", $i, $1) }') )
|
# `--list-languages` emits one `name:matchers` line per language,
|
||||||
|
# which `_describe` parses as `value:description`. Only the
|
||||||
|
# language name is offered as the completion value; the matchers
|
||||||
|
# show up as the menu description. See
|
||||||
|
# https://github.com/sharkdp/bat/issues/3735.
|
||||||
|
languages=( ${(f)"$({{PROJECT_EXECUTABLE}} --no-paging --color=never --decorations=never --list-languages)"} )
|
||||||
|
|
||||||
_describe 'language' languages
|
_describe 'language' languages && ret=0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
theme)
|
themes)
|
||||||
local IFS=$'\n'
|
local -a themes expl
|
||||||
local -a themes
|
themes=(${(f)"$(_call_program themes {{PROJECT_EXECUTABLE}} --no-paging --color=never --decorations=never --list-themes)"} )
|
||||||
themes=( $({{PROJECT_EXECUTABLE}} --list-themes | sort) )
|
|
||||||
|
|
||||||
_values 'theme' $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}} --no-paging --color=never --decorations=never --list-themes)"} )
|
||||||
|
|
||||||
style)
|
_wanted themes expl 'theme' compadd -a themes && ret=0
|
||||||
_values -s , 'style' auto full plain changes header grid rule numbers snip
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
# first positional argument
|
case $words[2] in
|
||||||
if (( ${#words} == 2 )); then
|
cache)
|
||||||
local -a subcommands
|
## Completion of the 'cache' command itself is removed for better UX
|
||||||
subcommands=('cache:Modify the syntax-definition and theme cache')
|
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||||
_describe subcommand subcommands
|
shift words
|
||||||
_{{PROJECT_EXECUTABLE}}_main
|
(( CURRENT-- ))
|
||||||
else
|
curcontext="${curcontext%:*}-${words[1]}:"
|
||||||
case $words[2] in
|
_{{PROJECT_EXECUTABLE}}_cache_subcommand
|
||||||
cache)
|
;;
|
||||||
_{{PROJECT_EXECUTABLE}}_cache_subcommand
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
*)
|
||||||
_{{PROJECT_EXECUTABLE}}_main
|
_{{PROJECT_EXECUTABLE}}_main
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
|
||||||
|
|||||||
Vendored
+182
-14
@@ -14,7 +14,8 @@ It also communicates with git(1) to show modifications with respect to the git i
|
|||||||
|
|
||||||
Whenever the output of {{PROJECT_EXECUTABLE}} goes to a non-interactive terminal, i.e. when the
|
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
|
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.
|
replacement for cat(1) and fall back to printing the plain file contents,
|
||||||
|
unless an explicit style is requested.
|
||||||
|
|
||||||
.SH "OPTIONS"
|
.SH "OPTIONS"
|
||||||
General remarks: Command-line options like '-l'/'--language' that take values can be specified as
|
General remarks: Command-line options like '-l'/'--language' that take values can be specified as
|
||||||
@@ -25,11 +26,40 @@ either '--language value', '--language=value', '-l value' or '-lvalue'.
|
|||||||
Show non\-printable characters like space, tab or newline. Use '\-\-tabs' to
|
Show non\-printable characters like space, tab or newline. Use '\-\-tabs' to
|
||||||
control the width of the tab\-placeholders.
|
control the width of the tab\-placeholders.
|
||||||
.HP
|
.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\-\-binary\fR <behavior>
|
||||||
|
.IP
|
||||||
|
How to treat binary content.
|
||||||
|
|
||||||
|
Possible values:
|
||||||
|
.RS
|
||||||
|
.IP "no\-printing"
|
||||||
|
Do not print any binary content (default)
|
||||||
|
.IP "as\-text"
|
||||||
|
Treat binary content as normal text
|
||||||
|
.RE
|
||||||
|
.HP
|
||||||
|
\fB\-\-completion\fR <SHELL>
|
||||||
|
.IP
|
||||||
|
Show shell completion for a certain shell.
|
||||||
|
Possible values: bash, fish, zsh, ps1
|
||||||
|
.HP
|
||||||
\fB\-p\fR, \fB\-\-plain\fR
|
\fB\-p\fR, \fB\-\-plain\fR
|
||||||
.IP
|
.IP
|
||||||
Only show plain style, no decorations. This is an alias for
|
Only show plain style, no decorations. This is an alias for
|
||||||
\&'\-\-style=plain'. When '\-p' is used twice ('\-pp'), it also disables
|
\&'\-\-style=plain'. When '\-p' is used twice ('\-pp'), it also disables
|
||||||
automatic paging (alias for '\-\-style=plain \fB\-\-pager\fR=\fI\,never\/\fR').
|
automatic paging (alias for '\-\-style=plain \fB\-\-paging\fR=\fI\,never\/\fR').
|
||||||
.HP
|
.HP
|
||||||
\fB\-l\fR, \fB\-\-language\fR <language>
|
\fB\-l\fR, \fB\-\-language\fR <language>
|
||||||
.IP
|
.IP
|
||||||
@@ -72,8 +102,14 @@ Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
|||||||
.HP
|
.HP
|
||||||
\fB\-\-wrap\fR <mode>
|
\fB\-\-wrap\fR <mode>
|
||||||
.IP
|
.IP
|
||||||
Specify the text\-wrapping mode (*auto*, never, character). The '\-\-terminal\-width' option
|
Specify the text\-wrapping mode (*auto*, never, character, word). The '\-\-terminal\-width' option
|
||||||
can be used in addition to control the output width.
|
can be used in addition to control the output width. In \fBword\fR mode, lines are broken at
|
||||||
|
whitespace boundaries. If a single word exceeds the terminal width, it falls back to
|
||||||
|
character wrapping.
|
||||||
|
.HP
|
||||||
|
\fB\-S\fR, \fB\-\-chop\-long\-lines\fR
|
||||||
|
.IP
|
||||||
|
Truncate all lines longer than screen width. Alias for '\-\-wrap=never'.
|
||||||
.HP
|
.HP
|
||||||
\fB\-\-terminal\-width\fR <width>
|
\fB\-\-terminal\-width\fR <width>
|
||||||
.IP
|
.IP
|
||||||
@@ -98,7 +134,8 @@ always, *never*.
|
|||||||
\fB\-\-decorations\fR <when>
|
\fB\-\-decorations\fR <when>
|
||||||
.IP
|
.IP
|
||||||
Specify when to use the decorations that have been specified via '\-\-style'. The
|
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
|
automatic mode only enables decorations if an interactive terminal is detected. The
|
||||||
|
always mode will show decorations even when piping output. Possible
|
||||||
values: *auto*, never, always.
|
values: *auto*, never, always.
|
||||||
.HP
|
.HP
|
||||||
\fB\-f\fR, \fB\-\-force\-colorization\fR
|
\fB\-f\fR, \fB\-\-force\-colorization\fR
|
||||||
@@ -116,8 +153,9 @@ which pager is used, see the '\-\-pager' option. Possible values: *auto*, never,
|
|||||||
\fB\-\-pager\fR <command>
|
\fB\-\-pager\fR <command>
|
||||||
.IP
|
.IP
|
||||||
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
||||||
environment variables. The default pager is 'less'. To control when the pager is used, see
|
environment variables. The default pager is 'less'. If you provide '\-\-pager=builtin', use
|
||||||
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
the built-in 'minus' pager. 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.
|
Note: By default, if the pager is set to 'less' (and no command-line options are specified), 'bat' will pass the following command line options to the pager: '-R'/'--RAW-CONTROL-CHARS', '-F'/'--quit-if-one-screen' and '-X'/'--no-init'. The last option ('-X') is only used for 'less' versions older than 530. The '-R' option is needed to interpret ANSI colors correctly. The second option ('-F') instructs less to exit immediately if the output size is smaller than the vertical size of the terminal. This is convenient for small files because you do not have to press 'q' to quit the pager. The third option ('-X') is needed to fix a bug with the '--quit-if-one-screen' feature in old versions of 'less'. Unfortunately, it also breaks mouse-wheel support in 'less'. If you want to enable mouse-wheel scrolling on older versions of 'less', you can pass just '-R' (as in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer, it should work out of the box.
|
||||||
.HP
|
.HP
|
||||||
@@ -129,24 +167,83 @@ use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignor
|
|||||||
syntax, use -m '.myignore:Git Ignore'.
|
syntax, use -m '.myignore:Git Ignore'.
|
||||||
Note that the right-hand side is the *name* of the syntax, not a file extension.
|
Note that the right-hand side is the *name* of the syntax, not a file extension.
|
||||||
.HP
|
.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>
|
\fB\-\-theme\fR <theme>
|
||||||
.IP
|
.IP
|
||||||
Set the theme for syntax highlighting. Use '\-\-list\-themes' to see all available themes.
|
Set the theme for syntax highlighting. Use \fB\-\-list\-themes\fP to see all available themes.
|
||||||
To set a default theme, add the '\-\-theme="..."' option to the configuration file or
|
To set a default theme, add the \fB\-\-theme="..."\fP option to the configuration file or
|
||||||
export the BAT_THEME environment variable (e.g.: export BAT_THEME="...").
|
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
|
.HP
|
||||||
\fB\-\-list\-themes\fR
|
\fB\-\-list\-themes\fR
|
||||||
.IP
|
.IP
|
||||||
Display a list of supported themes for syntax highlighting.
|
Display a list of supported themes for syntax highlighting.
|
||||||
.HP
|
.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\-\-strip\-ansi\fR <when>
|
||||||
|
.IP
|
||||||
|
Specify when to strip ANSI escape sequences from the input. The automatic mode will remove
|
||||||
|
escape sequences unless the syntax highlighting language is plain text. Possible values:
|
||||||
|
auto, always, *never*.
|
||||||
|
.HP
|
||||||
\fB\-\-style\fR <style\-components>
|
\fB\-\-style\fR <style\-components>
|
||||||
.IP
|
.IP
|
||||||
Configure which elements (line numbers, file headers, grid borders, Git modifications,
|
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
|
\&..) 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').
|
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
||||||
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
||||||
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE="..").
|
||||||
values: *full*, auto, plain, changes, header, grid, rule, numbers, snip.
|
.IP
|
||||||
|
When styles are specified in multiple places, the "nearest" set of styles take precedence.
|
||||||
|
The command\-line arguments are the highest priority, followed by the BAT_STYLE environment
|
||||||
|
variable, and then the configuration file. If any set of styles consists entirely of
|
||||||
|
components prefixed with "+" or "\-", it will modify the previous set of styles instead of
|
||||||
|
replacing them.
|
||||||
|
.IP
|
||||||
|
By default, the following components are enabled:
|
||||||
|
changes, grid, header\-filename, numbers, snip
|
||||||
|
.IP
|
||||||
|
Possible values: *default*, full, auto, plain, changes, header, header-filename, header-filesize, grid,
|
||||||
|
rule, numbers, snip.
|
||||||
.HP
|
.HP
|
||||||
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
||||||
.IP
|
.IP
|
||||||
@@ -168,8 +265,38 @@ Display a list of supported languages for syntax highlighting.
|
|||||||
.HP
|
.HP
|
||||||
\fB\-u\fR, \fB\-\-unbuffered\fR
|
\fB\-u\fR, \fB\-\-unbuffered\fR
|
||||||
.IP
|
.IP
|
||||||
This option exists for POSIX\-compliance reasons ('u' is for 'unbuffered'). The output is
|
Enable unbuffered input reading. When this flag is set, bat will display data as soon as it
|
||||||
always unbuffered \- this option is simply ignored.
|
is available, without waiting for a complete line. This is useful for streaming use cases like
|
||||||
|
\&'tail \-f logfile | bat \-u \-\-paging=never'. Note that line numbers are automatically disabled
|
||||||
|
in unbuffered mode, and syntax highlighting may be imperfect on partial lines.
|
||||||
|
.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\-\-quiet\-empty\fR
|
||||||
|
.IP
|
||||||
|
Do not produce any output when the input is empty (e.g. an empty file or empty stdin). This is useful in scripts where silent behavior is preferred for empty input.
|
||||||
|
.HP
|
||||||
|
\fB\-\-acknowledgements\fR
|
||||||
|
.IP
|
||||||
|
Show acknowledgements.
|
||||||
|
.HP
|
||||||
|
\fB\-\-set\-terminal\-title\fR
|
||||||
|
.IP
|
||||||
|
Sets terminal title to filenames when using a pager.
|
||||||
.HP
|
.HP
|
||||||
\fB\-h\fR, \fB\-\-help\fR
|
\fB\-h\fR, \fB\-\-help\fR
|
||||||
.IP
|
.IP
|
||||||
@@ -199,6 +326,20 @@ location of the configuration file.
|
|||||||
To generate a default configuration file, call:
|
To generate a default configuration file, call:
|
||||||
|
|
||||||
\fB{{PROJECT_EXECUTABLE}} --generate-config-file\fR
|
\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"
|
.SH "ADDING CUSTOM LANGUAGES"
|
||||||
{{PROJECT_EXECUTABLE}} supports Sublime Text \fB.sublime-syntax\fR language files, and can be
|
{{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
|
customized to add additional languages to your local installation. To do this, add the \fB.sublime-syntax\fR language
|
||||||
@@ -230,6 +371,33 @@ If you ever want to remove the custom languages, you can clear the cache with `\
|
|||||||
Similarly to custom languages, {{PROJECT_EXECUTABLE}} supports Sublime Text \fB.tmTheme\fR 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
|
These can be installed to `\fB$({{PROJECT_EXECUTABLE}} --config-dir)/themes\fR`, and are added to the cache with
|
||||||
`\fB{{PROJECT_EXECUTABLE}} cache --build`.
|
`\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"
|
.SH "MORE INFORMATION"
|
||||||
|
|
||||||
For more information and up-to-date documentation, visit the {{PROJECT_EXECUTABLE}} repo:
|
For more information and up-to-date documentation, visit the {{PROJECT_EXECUTABLE}} repo:
|
||||||
|
|||||||
Vendored
+22
@@ -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>
|
||||||
+14
@@ -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
File diff suppressed because one or more lines are too long
+39
-2
@@ -1,5 +1,5 @@
|
|||||||
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
index 19dc685d..44440c7f 100644
|
index 19dc685d..3a45ea05 100644
|
||||||
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
@@ -24,7 +24,6 @@ variables:
|
@@ -24,7 +24,6 @@ variables:
|
||||||
@@ -166,7 +166,44 @@ index 19dc685d..44440c7f 100644
|
|||||||
- match: ^\s*$\n?
|
- match: ^\s*$\n?
|
||||||
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
||||||
pop: true
|
pop: true
|
||||||
@@ -1152,7 +1110,7 @@ contexts:
|
@@ -1073,6 +1031,36 @@ 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)
|
||||||
|
+ {{fenced_code_block_start}}
|
||||||
|
+ ((?i:typescript|ts))
|
||||||
|
+ {{fenced_code_block_trailing_infostring_characters}}
|
||||||
|
+ captures:
|
||||||
|
+ 0: meta.code-fence.definition.begin.typescript.markdown-gfm
|
||||||
|
+ 2: punctuation.definition.raw.code-fence.begin.markdown
|
||||||
|
+ 5: constant.other.language-name.markdown
|
||||||
|
+ embed: scope:source.ts
|
||||||
|
+ embed_scope: markup.raw.code-fence.typescript.markdown-gfm
|
||||||
|
+ escape: '{{code_fence_escape}}'
|
||||||
|
+ escape_captures:
|
||||||
|
+ 0: meta.code-fence.definition.end.typescript.markdown-gfm
|
||||||
|
1: punctuation.definition.raw.code-fence.end.markdown
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
@@ -1152,7 +1155,7 @@ contexts:
|
||||||
- match: |-
|
- match: |-
|
||||||
(?x)
|
(?x)
|
||||||
{{fenced_code_block_start}}
|
{{fenced_code_block_start}}
|
||||||
|
|||||||
+17
-2
@@ -21,11 +21,26 @@ index 9c2aa3e..180cbbf 100644
|
|||||||
<string>Invalid</string>
|
<string>Invalid</string>
|
||||||
<key>scope</key>
|
<key>scope</key>
|
||||||
- <string>invalid</string>
|
- <string>invalid</string>
|
||||||
+ <string>invalid, markup.error</string>
|
+ <string>invalid, meta.annotation.error-line</string>
|
||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
@@ -1042,7 +1042,7 @@
|
@@ -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>
|
<key>name</key>
|
||||||
<string>Invalid deprecated</string>
|
<string>Invalid deprecated</string>
|
||||||
<key>scope</key>
|
<key>scope</key>
|
||||||
|
|||||||
+47
@@ -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>
|
||||||
+9
@@ -2,6 +2,15 @@ diff --git syntaxes/01_Packages/Python/Python.sublime-syntax syntaxes/01_Package
|
|||||||
index 2acd86d8..86257f7b 100644
|
index 2acd86d8..86257f7b 100644
|
||||||
--- syntaxes/01_Packages/Python/Python.sublime-syntax
|
--- syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||||
+++ syntaxes/01_Packages/Python/Python.sublime-syntax
|
+++ syntaxes/01_Packages/Python/Python.sublime-syntax
|
||||||
|
@@ -25,7 +31,7 @@ file_extensions:
|
||||||
|
- wscript
|
||||||
|
- bazel
|
||||||
|
- bzl
|
||||||
|
-first_line_match: ^#!\s*/.*\bpython(\d(\.\d)?)?\b
|
||||||
|
+first_line_match: ^#!\s*/.*\b(python(\d(\.\d)?)?|uv)\b
|
||||||
|
scope: source.python
|
||||||
|
|
||||||
|
variables:
|
||||||
@@ -988,10 +988,6 @@ contexts:
|
@@ -988,10 +988,6 @@ contexts:
|
||||||
- match: \}
|
- match: \}
|
||||||
scope: punctuation.section.mapping-or-set.end.python
|
scope: punctuation.section.mapping-or-set.end.python
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ index e973e319..07c170a7 100644
|
|||||||
first_line_match: |
|
first_line_match: |
|
||||||
(?x)
|
(?x)
|
||||||
- ^\#! .* \b(bash|zsh|sh|tcsh|ash)\b
|
- ^\#! .* \b(bash|zsh|sh|tcsh|ash)\b
|
||||||
+ ^\#! .* \b(bash|zsh|sh|tcsh|ash|dash)\b
|
+ ^\#! .* \b(bash|zsh|sh|tcsh|ash|dash|ksh)\b
|
||||||
| ^\# \s* -\*- [^*]* mode: \s* shell-script [^*]* -\*-
|
| ^\# \s* -\*- [^*]* mode: \s* shell-script [^*]* -\*-
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git syntaxes/01_Packages/TCL/Tcl.sublime-syntax syntaxes/01_Packages/TCL/Tcl.sublime-syntax
|
||||||
|
index 1234567..abcdefg 100644
|
||||||
|
--- syntaxes/01_Packages/TCL/Tcl.sublime-syntax
|
||||||
|
+++ syntaxes/01_Packages/TCL/Tcl.sublime-syntax
|
||||||
|
@@ -3,6 +3,7 @@
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: Tcl
|
||||||
|
file_extensions:
|
||||||
|
- tcl
|
||||||
|
+first_line_match: ^\#!.*\b(tclsh|wish|expect)\b
|
||||||
|
scope: source.tcl
|
||||||
|
variables:
|
||||||
+13
@@ -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.
|
||||||
Vendored
+38
@@ -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>
|
||||||
Vendored
BIN
Binary file not shown.
+1
Submodule assets/syntaxes/02_Extra/Ada added at 3f17c2363e
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Apache updated: 163bc03ae8...c438c352db
@@ -1,5 +1,6 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
|
name: x86_64 Assembly
|
||||||
file_extensions: [yasm, nasm, asm, inc, mac]
|
file_extensions: [yasm, nasm, asm, inc, mac]
|
||||||
scope: source.asm.x86_64
|
scope: source.asm.x86_64
|
||||||
|
|
||||||
@@ -1364,4 +1365,3 @@ contexts:
|
|||||||
scope: invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic
|
scope: invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic
|
||||||
- match: '(?i)\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\b'
|
- match: '(?i)\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\b'
|
||||||
scope: invalid.keyword.operator.word.mnemonic.sse5.simd-integer
|
scope: invalid.keyword.operator.word.mnemonic.sse5.simd-integer
|
||||||
...
|
|
||||||
+1
Submodule assets/syntaxes/02_Extra/CFML added at b91c44a32e
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/CMake updated: ab6ef4ef9f...2560a080b3
+1
Submodule assets/syntaxes/02_Extra/COBOL added at 27825ee022
Vendored
+27
-26
@@ -2,20 +2,21 @@
|
|||||||
---
|
---
|
||||||
# See http://www.sublimetext.com/docs/3/syntax.html
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||||
name: Comma Separated Values
|
name: Comma Separated Values
|
||||||
file_extensions:
|
scope: text.csv.comma
|
||||||
- csv
|
|
||||||
- tsv
|
|
||||||
scope: text.csv
|
|
||||||
variables:
|
variables:
|
||||||
field_separator: (?:[,;\t])
|
field_separator: (?:,)
|
||||||
record_separator: (?:$\n?)
|
record_separator: (?:$\n?)
|
||||||
contexts:
|
contexts:
|
||||||
prototype:
|
main:
|
||||||
- match: (?={{record_separator}})
|
- match: '^'
|
||||||
pop: true
|
push: fields
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
|
- include: record_separator
|
||||||
- match: ''
|
- match: ''
|
||||||
push:
|
push:
|
||||||
|
- field_or_record_separator
|
||||||
|
- field5
|
||||||
- field_or_record_separator
|
- field_or_record_separator
|
||||||
- field4
|
- field4
|
||||||
- field_or_record_separator
|
- field_or_record_separator
|
||||||
@@ -24,16 +25,20 @@ contexts:
|
|||||||
- field2
|
- field2
|
||||||
- field_or_record_separator
|
- field_or_record_separator
|
||||||
- field1
|
- field1
|
||||||
main:
|
|
||||||
- meta_include_prototype: false
|
|
||||||
- match: '^'
|
|
||||||
set: fields
|
|
||||||
|
|
||||||
field_or_record_separator:
|
record_separator_pop:
|
||||||
|
- match: (?={{record_separator}})
|
||||||
|
pop: true
|
||||||
|
|
||||||
|
record_separator:
|
||||||
- meta_include_prototype: false
|
- meta_include_prototype: false
|
||||||
- match: '{{record_separator}}'
|
- match: '{{record_separator}}'
|
||||||
scope: punctuation.terminator.record.csv
|
scope: punctuation.terminator.record.csv
|
||||||
pop: true
|
pop: true
|
||||||
|
|
||||||
|
field_or_record_separator:
|
||||||
|
- meta_include_prototype: false
|
||||||
|
- include: record_separator_pop
|
||||||
- match: '{{field_separator}}'
|
- match: '{{field_separator}}'
|
||||||
scope: punctuation.separator.sequence.csv
|
scope: punctuation.separator.sequence.csv
|
||||||
pop: true
|
pop: true
|
||||||
@@ -41,24 +46,16 @@ contexts:
|
|||||||
field_contents:
|
field_contents:
|
||||||
- match: '"'
|
- match: '"'
|
||||||
scope: punctuation.definition.string.begin.csv
|
scope: punctuation.definition.string.begin.csv
|
||||||
push: double_quoted_string
|
push: scope:text.csv#double_quoted_string
|
||||||
|
|
||||||
- match: (?={{field_separator}}|{{record_separator}})
|
- include: record_separator_pop
|
||||||
pop: true
|
- match: (?={{field_separator}})
|
||||||
|
|
||||||
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
|
pop: true
|
||||||
|
|
||||||
field1:
|
field1:
|
||||||
- match: ''
|
- match: ''
|
||||||
set:
|
set:
|
||||||
- meta_content_scope: meta.field-1.csv support.type
|
- meta_content_scope: meta.field-1.csv variable.parameter
|
||||||
- include: field_contents
|
- include: field_contents
|
||||||
field2:
|
field2:
|
||||||
- match: ''
|
- match: ''
|
||||||
@@ -75,4 +72,8 @@ contexts:
|
|||||||
set:
|
set:
|
||||||
- meta_content_scope: meta.field-4.csv keyword.operator
|
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||||
- include: field_contents
|
- include: field_contents
|
||||||
|
field5:
|
||||||
|
- match: ''
|
||||||
|
set:
|
||||||
|
- meta_content_scope: meta.field-5.csv string.unquoted
|
||||||
|
- include: field_contents
|
||||||
@@ -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
|
||||||
@@ -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
@@ -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: meta.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
@@ -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
|
||||||
+1
Submodule assets/syntaxes/02_Extra/Caddy added at cd7d132da3
+1
Submodule assets/syntaxes/02_Extra/Crontab added at 54f1fa7ff0
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Docker updated: 9e9a518aed...0f6b7bc87a
@@ -8,6 +8,7 @@ file_extensions:
|
|||||||
- .env.local
|
- .env.local
|
||||||
- .env.sample
|
- .env.sample
|
||||||
- .env.example
|
- .env.example
|
||||||
|
- .env.template
|
||||||
- .env.test
|
- .env.test
|
||||||
- .env.test.local
|
- .env.test.local
|
||||||
- .env.testing
|
- .env.testing
|
||||||
@@ -23,6 +24,10 @@ file_extensions:
|
|||||||
- .env.defaults
|
- .env.defaults
|
||||||
- .envrc
|
- .envrc
|
||||||
- .flaskenv
|
- .flaskenv
|
||||||
|
- env
|
||||||
|
- env.example
|
||||||
|
- env.sample
|
||||||
|
- env.template
|
||||||
scope: source.env
|
scope: source.env
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Fish updated: 2c254cc851...ef510fd759
+2
-2
@@ -95,7 +95,7 @@ contexts:
|
|||||||
|
|
||||||
fstab_dump:
|
fstab_dump:
|
||||||
- include: comment
|
- include: comment
|
||||||
- match: '\s*[01]\s*'
|
- match: '\s*[012]\s*'
|
||||||
comment: dump field
|
comment: dump field
|
||||||
scope: constant.numeric
|
scope: constant.numeric
|
||||||
set: fstab_pass
|
set: fstab_pass
|
||||||
@@ -107,7 +107,7 @@ contexts:
|
|||||||
|
|
||||||
fstab_pass:
|
fstab_pass:
|
||||||
- include: comment
|
- include: comment
|
||||||
- match: '\s*[01]\s*'
|
- match: '\s*[012]\s*'
|
||||||
comment: pass field
|
comment: pass field
|
||||||
scope: constant.numeric
|
scope: constant.numeric
|
||||||
set: expected_eol
|
set: expected_eol
|
||||||
|
|||||||
+1
Submodule assets/syntaxes/02_Extra/GDScript-sublime added at 96f5dcf297
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/GLSL updated: 4cd4acfffc...59a5f8a312
+1
Submodule assets/syntaxes/02_Extra/Gomod added at e0200f024a
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/GraphQL updated: 59304d6c7b...9b6f6d0a86
Vendored
-1
Submodule assets/syntaxes/02_Extra/HTML (Twig) deleted from 77def406d7
+1
Submodule assets/syntaxes/02_Extra/HTML_(Twig) added at aedf955eba
-23
@@ -1,23 +0,0 @@
|
|||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
|
||||||
name: hosts
|
|
||||||
file_extensions:
|
|
||||||
- hosts
|
|
||||||
scope: source.hosts
|
|
||||||
|
|
||||||
contexts:
|
|
||||||
main:
|
|
||||||
- scope: comment.line.number-sign
|
|
||||||
match: \#.*
|
|
||||||
comment: comment
|
|
||||||
|
|
||||||
- match: ^\s*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|[0-9a-f:]+)
|
|
||||||
comment: ipaddress
|
|
||||||
scope: constant.numeric.ipaddress
|
|
||||||
|
|
||||||
|
|
||||||
- match: \s(localhost|ip6-loopback|ip6-localhost|ip6-localnet|ip6-mcastprefix|ip6-allnodes|ip6-allrouters|ip6-allhosts|broadcasthost)\b
|
|
||||||
scope: keyword.host.predefined}
|
|
||||||
comment: prefdfined
|
|
||||||
|
|
||||||
+5
-2
@@ -5,8 +5,8 @@ name: INI
|
|||||||
file_extensions:
|
file_extensions:
|
||||||
- ini
|
- ini
|
||||||
- INI
|
- INI
|
||||||
- inf
|
- "inf"
|
||||||
- INF
|
- "INF"
|
||||||
- reg
|
- reg
|
||||||
- REG
|
- REG
|
||||||
- lng
|
- lng
|
||||||
@@ -16,6 +16,9 @@ file_extensions:
|
|||||||
- url
|
- url
|
||||||
- URL
|
- URL
|
||||||
- .editorconfig
|
- .editorconfig
|
||||||
|
- .coveragerc
|
||||||
|
- .pylintrc
|
||||||
|
- .gitlint
|
||||||
- .hgrc
|
- .hgrc
|
||||||
- hgrc
|
- hgrc
|
||||||
scope: source.ini
|
scope: source.ini
|
||||||
|
|||||||
+1
Submodule assets/syntaxes/02_Extra/Idris2 added at 4d8eb35a38
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Jinja2 updated: 45355633d1...e572427f6a
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Jsonnet updated: e2c917ed7d...56ac0e6854
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Julia updated: 1e55f3211b...3366b10be9
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Kotlin updated: aeeed2780b...c353694169
-398
@@ -1,398 +0,0 @@
|
|||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
|
||||||
name: Kotlin
|
|
||||||
file_extensions:
|
|
||||||
- kt
|
|
||||||
- kts
|
|
||||||
scope: source.Kotlin
|
|
||||||
contexts:
|
|
||||||
main:
|
|
||||||
- include: comments
|
|
||||||
- match: '^\s*(package)\b(?:\s*([^ ;$]+)\s*)?'
|
|
||||||
captures:
|
|
||||||
1: keyword.other.kotlin
|
|
||||||
2: entity.name.package.kotlin
|
|
||||||
- include: imports
|
|
||||||
- include: statements
|
|
||||||
classes:
|
|
||||||
- match: (?<!::)(?=\b(?:companion|class|object|interface)\b)
|
|
||||||
push:
|
|
||||||
- match: '(?=$|\})'
|
|
||||||
pop: true
|
|
||||||
- include: comments
|
|
||||||
- match: \b(companion\s*)?(class|object|interface)\b
|
|
||||||
captures:
|
|
||||||
1: storage.modifier.kotlin
|
|
||||||
2: storage.modifier.kotlin
|
|
||||||
push:
|
|
||||||
- match: '(?=<|\{|\(|:|$)'
|
|
||||||
pop: true
|
|
||||||
- include: comments
|
|
||||||
- match: \w+
|
|
||||||
scope: entity.name.type.class.kotlin
|
|
||||||
- match: <
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: generics
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: parameters
|
|
||||||
- match: (:)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: "(?={|$)"
|
|
||||||
pop: true
|
|
||||||
- match: \w+
|
|
||||||
scope: entity.other.inherited-class.kotlin
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '\}'
|
|
||||||
pop: true
|
|
||||||
- include: statements
|
|
||||||
comments:
|
|
||||||
- match: /\*
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.comment.kotlin
|
|
||||||
push:
|
|
||||||
- meta_scope: comment.block.kotlin
|
|
||||||
- match: \*/
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.comment.kotlin
|
|
||||||
pop: true
|
|
||||||
- match: \s*((//).*$\n?)
|
|
||||||
captures:
|
|
||||||
1: comment.line.double-slash.kotlin
|
|
||||||
2: punctuation.definition.comment.kotlin
|
|
||||||
constants:
|
|
||||||
- match: \b(true|false|null|this|super)\b
|
|
||||||
scope: constant.language.kotlin
|
|
||||||
- match: '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)([LlFf])?\b'
|
|
||||||
scope: constant.numeric.kotlin
|
|
||||||
- match: '\b([A-Z][A-Z0-9_]+)\b'
|
|
||||||
scope: constant.other.kotlin
|
|
||||||
expressions:
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- include: types
|
|
||||||
- include: strings
|
|
||||||
- include: constants
|
|
||||||
- include: comments
|
|
||||||
- include: keywords
|
|
||||||
functions:
|
|
||||||
- match: (?=\s*\b(?:fun)\b)
|
|
||||||
push:
|
|
||||||
- match: '(?=$|\})'
|
|
||||||
pop: true
|
|
||||||
- match: \b(fun)\b
|
|
||||||
captures:
|
|
||||||
1: keyword.other.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=\()
|
|
||||||
pop: true
|
|
||||||
- match: <
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: generics
|
|
||||||
- match: '([\.<\?>\w]+\.)?(\w+)'
|
|
||||||
captures:
|
|
||||||
2: entity.name.function.kotlin
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: parameters
|
|
||||||
- match: (:)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: "(?={|=|$)"
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '(?=\})'
|
|
||||||
pop: true
|
|
||||||
- include: statements
|
|
||||||
- match: (=)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.assignment.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=$)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
generics:
|
|
||||||
- match: (:)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=,|>)
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- include: keywords
|
|
||||||
- match: \w+
|
|
||||||
scope: storage.type.generic.kotlin
|
|
||||||
getters-and-setters:
|
|
||||||
- match: \b(get)\b\s*\(\s*\)
|
|
||||||
captures:
|
|
||||||
1: entity.name.function.kotlin
|
|
||||||
push:
|
|
||||||
- match: '\}|(?=\bset\b)|$'
|
|
||||||
pop: true
|
|
||||||
- match: (=)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.assignment.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=$|\bset\b)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '\}'
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- match: \b(set)\b\s*(?=\()
|
|
||||||
captures:
|
|
||||||
1: entity.name.function.kotlin
|
|
||||||
push:
|
|
||||||
- match: '\}|(?=\bget\b)|$'
|
|
||||||
pop: true
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: parameters
|
|
||||||
- match: (=)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.assignment.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=$|\bset\b)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '\}'
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
imports:
|
|
||||||
- match: '^\s*(import)\s+[^ $]+\s+(as)?'
|
|
||||||
captures:
|
|
||||||
1: keyword.other.kotlin
|
|
||||||
2: keyword.other.kotlin
|
|
||||||
keywords:
|
|
||||||
- match: \b(var|val|public|private|protected|abstract|final|sealed|enum|open|attribute|annotation|override|inline|vararg|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof|reified|suspend)\b
|
|
||||||
scope: storage.modifier.kotlin
|
|
||||||
- match: \b(try|catch|finally|throw)\b
|
|
||||||
scope: keyword.control.catch-exception.kotlin
|
|
||||||
- match: \b(if|else|while|for|do|return|when|where|break|continue)\b
|
|
||||||
scope: keyword.control.kotlin
|
|
||||||
- match: \b(in|is|!in|!is|as|as\?|assert)\b
|
|
||||||
scope: keyword.operator.kotlin
|
|
||||||
- match: (==|!=|===|!==|<=|>=|<|>)
|
|
||||||
scope: keyword.operator.comparison.kotlin
|
|
||||||
- match: (=)
|
|
||||||
scope: keyword.operator.assignment.kotlin
|
|
||||||
- match: (::)
|
|
||||||
scope: keyword.operator.kotlin
|
|
||||||
- match: (:)
|
|
||||||
scope: keyword.operator.declaration.kotlin
|
|
||||||
- match: \b(by)\b
|
|
||||||
scope: keyword.other.by.kotlin
|
|
||||||
- match: (\?\.)
|
|
||||||
scope: keyword.operator.safenav.kotlin
|
|
||||||
- match: (\.)
|
|
||||||
scope: keyword.operator.dot.kotlin
|
|
||||||
- match: (\?:)
|
|
||||||
scope: keyword.operator.elvis.kotlin
|
|
||||||
- match: (\-\-|\+\+)
|
|
||||||
scope: keyword.operator.increment-decrement.kotlin
|
|
||||||
- match: (\+=|\-=|\*=|\/=)
|
|
||||||
scope: keyword.operator.arithmetic.assign.kotlin
|
|
||||||
- match: (\.\.)
|
|
||||||
scope: keyword.operator.range.kotlin
|
|
||||||
- match: (\-|\+|\*|\/|%)
|
|
||||||
scope: keyword.operator.arithmetic.kotlin
|
|
||||||
- match: (!|&&|\|\|)
|
|
||||||
scope: keyword.operator.logical.kotlin
|
|
||||||
- match: (;)
|
|
||||||
scope: punctuation.terminator.kotlin
|
|
||||||
namespaces:
|
|
||||||
- match: \b(namespace)\b
|
|
||||||
scope: keyword.other.kotlin
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '\}'
|
|
||||||
pop: true
|
|
||||||
- include: statements
|
|
||||||
parameters:
|
|
||||||
- match: (:)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=,|\)|=)
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- match: (=)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=,|\))
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- include: keywords
|
|
||||||
- match: \w+
|
|
||||||
scope: variable.parameter.function.kotlin
|
|
||||||
statements:
|
|
||||||
- include: namespaces
|
|
||||||
- include: typedefs
|
|
||||||
- include: classes
|
|
||||||
- include: functions
|
|
||||||
- include: variables
|
|
||||||
- include: getters-and-setters
|
|
||||||
- include: expressions
|
|
||||||
strings:
|
|
||||||
- match: '"""'
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.begin.kotlin
|
|
||||||
push:
|
|
||||||
- meta_scope: string.quoted.third.kotlin
|
|
||||||
- match: '"""'
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.kotlin
|
|
||||||
pop: true
|
|
||||||
- match: '(\$\w+|\$\{[^\}]+\})'
|
|
||||||
scope: variable.parameter.template.kotlin
|
|
||||||
- match: \\.
|
|
||||||
scope: constant.character.escape.kotlin
|
|
||||||
- match: '"'
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.begin.kotlin
|
|
||||||
push:
|
|
||||||
- meta_scope: string.quoted.double.kotlin
|
|
||||||
- match: '"'
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.kotlin
|
|
||||||
pop: true
|
|
||||||
- match: '(\$\w+|\$\{[^\}]+\})'
|
|
||||||
scope: variable.parameter.template.kotlin
|
|
||||||
- match: \\.
|
|
||||||
scope: constant.character.escape.kotlin
|
|
||||||
- match: "'"
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.begin.kotlin
|
|
||||||
push:
|
|
||||||
- meta_scope: string.quoted.single.kotlin
|
|
||||||
- match: "'"
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.kotlin
|
|
||||||
pop: true
|
|
||||||
- match: \\.
|
|
||||||
scope: constant.character.escape.kotlin
|
|
||||||
- match: "`"
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.begin.kotlin
|
|
||||||
push:
|
|
||||||
- meta_scope: string.quoted.single.kotlin
|
|
||||||
- match: "`"
|
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.kotlin
|
|
||||||
pop: true
|
|
||||||
typedefs:
|
|
||||||
- match: (?=\s*(?:type))
|
|
||||||
push:
|
|
||||||
- match: (?=$)
|
|
||||||
pop: true
|
|
||||||
- match: \b(type)\b
|
|
||||||
scope: keyword.other.kotlin
|
|
||||||
- match: <
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: generics
|
|
||||||
- include: expressions
|
|
||||||
types:
|
|
||||||
- match: \b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b
|
|
||||||
scope: storage.type.buildin.kotlin
|
|
||||||
- match: \b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\b
|
|
||||||
scope: storage.type.buildin.array.kotlin
|
|
||||||
- match: \b(Array|Collection|List|Map|Set|MutableList|MutableMap|MutableSet|Sequence)<\b
|
|
||||||
captures:
|
|
||||||
1: storage.type.buildin.collection.kotlin
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- include: keywords
|
|
||||||
- match: \w+<
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- include: keywords
|
|
||||||
- match: '\{'
|
|
||||||
push:
|
|
||||||
- match: '\}'
|
|
||||||
pop: true
|
|
||||||
- include: statements
|
|
||||||
- match: \(
|
|
||||||
push:
|
|
||||||
- match: \)
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- match: (->)
|
|
||||||
scope: keyword.operator.declaration.kotlin
|
|
||||||
variables:
|
|
||||||
- match: (?=\s*\b(?:var|val)\b)
|
|
||||||
push:
|
|
||||||
- match: (?=:|=|(\b(by)\b)|$)
|
|
||||||
pop: true
|
|
||||||
- match: \b(var|val)\b
|
|
||||||
captures:
|
|
||||||
1: keyword.other.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=:|=|(\b(by)\b)|$)
|
|
||||||
pop: true
|
|
||||||
- match: <
|
|
||||||
push:
|
|
||||||
- match: ">"
|
|
||||||
pop: true
|
|
||||||
- include: generics
|
|
||||||
- match: '([\.<\?>\w]+\.)?(\w+)'
|
|
||||||
captures:
|
|
||||||
2: entity.name.variable.kotlin
|
|
||||||
- match: (:)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.declaration.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?==|$)
|
|
||||||
pop: true
|
|
||||||
- include: types
|
|
||||||
- include: getters-and-setters
|
|
||||||
- match: \b(by)\b
|
|
||||||
captures:
|
|
||||||
1: keyword.other.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=$)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- match: (=)
|
|
||||||
captures:
|
|
||||||
1: keyword.operator.assignment.kotlin
|
|
||||||
push:
|
|
||||||
- match: (?=$)
|
|
||||||
pop: true
|
|
||||||
- include: expressions
|
|
||||||
- include: getters-and-setters
|
|
||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Lean updated: 29a03a8aba...514362b5c7
+75
-70
@@ -1,125 +1,130 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# http://www.sublimetext.com/docs/syntax.html
|
||||||
name: Lean
|
name: Lean 4
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- lean
|
- lean
|
||||||
scope: source.lean
|
scope: source.lean4
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
- include: comments
|
- include: comments
|
||||||
- match: '\b(?<!\.)(inductive|coinductive|structure|theorem|axiom|axioms|abbreviation|lemma|definition|def|instance|class|constant)\b\s+(\{[^}]*\})?'
|
- match: \b(Prop|Type|Sort)\b
|
||||||
|
scope: storage.type.lean4
|
||||||
|
- match: '\battribute\b\s*\[[^\]]*\]'
|
||||||
|
scope: storage.modifier.lean4
|
||||||
|
- match: '@\[[^\]]*\]'
|
||||||
|
scope: storage.modifier.lean4
|
||||||
|
- match: \b(?<!\.)(global|local|scoped|partial|unsafe|private|protected|noncomputable)(?!\.)\b
|
||||||
|
scope: storage.modifier.lean4
|
||||||
|
- match: \b(sorry|admit|stop)\b
|
||||||
|
scope: invalid.illegal.lean4
|
||||||
|
- match: '#(print|eval|reduce|check|check_failure)\b'
|
||||||
|
scope: keyword.other.lean4
|
||||||
|
- match: \bderiving\s+instance\b
|
||||||
|
scope: keyword.other.command.lean4
|
||||||
|
- match: '\b(?<!\.)(inductive|coinductive|structure|theorem|axiom|abbrev|lemma|def|instance|class|constant)\b\s+(\{[^}]*\})?'
|
||||||
captures:
|
captures:
|
||||||
1: keyword.other.definitioncommand.lean
|
1: keyword.other.definitioncommand.lean4
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.definitioncommand.lean
|
- meta_scope: meta.definitioncommand.lean4
|
||||||
- match: '(?=\bwith\b|\bextends\b|[:\|\(\[\{⦃<>])'
|
- match: '(?=\bwith\b|\bextends\b|\bwhere\b|[:\|\(\[\{⦃<>])'
|
||||||
pop: true
|
pop: true
|
||||||
- include: comments
|
- include: comments
|
||||||
- include: definitionName
|
- include: definitionName
|
||||||
- match: ","
|
- match: ','
|
||||||
- match: \b(Prop|Type|Sort)\b
|
- match: \b(?<!\.)(theorem|show|have|from|suffices|nomatch|def|class|structure|instance|set_option|initialize|builtin_initialize|example|inductive|coinductive|axiom|constant|universe|universes|variable|variables|import|open|export|theory|prelude|renaming|hiding|exposing|do|by|let|extends|mutual|mut|where|rec|syntax|macro_rules|macro|deriving|fun|section|namespace|end|infix|infixl|infixr|postfix|prefix|notation|abbrev|if|then|else|calc|match|with|for|in|unless|try|catch|finally|return|continue|break)(?!\.)\b
|
||||||
scope: storage.type.lean
|
scope: keyword.other.lean4
|
||||||
- match: '\battribute\b\s*\[[^\]]*\]'
|
|
||||||
scope: storage.modifier.lean
|
|
||||||
- match: '@\[[^\]]*\]'
|
|
||||||
scope: storage.modifier.lean
|
|
||||||
- match: \b(?<!\.)(private|meta|mutual|protected|noncomputable)\b
|
|
||||||
scope: keyword.control.definition.modifier.lean
|
|
||||||
- match: \b(sorry)\b
|
|
||||||
scope: invalid.illegal.lean
|
|
||||||
- match: '#print\s+(def|definition|inductive|instance|structure|axiom|axioms|class)\b'
|
|
||||||
scope: keyword.other.command.lean
|
|
||||||
- match: '#(print|eval|reduce|check|help|exit|find|where)\b'
|
|
||||||
scope: keyword.other.command.lean
|
|
||||||
- match: \b(?<!\.)(import|export|prelude|theory|definition|def|abbreviation|instance|renaming|hiding|exposing|parameter|parameters|begin|constant|constants|lemma|variable|variables|theorem|example|open|axiom|inductive|coinductive|with|structure|universe|universes|alias|precedence|reserve|postfix|prefix|infix|infixl|infixr|notation|end|using|namespace|section|local|set_option|extends|include|omit|class|classes|instances|raw|run_cmd|restate_axiom)(?!\.)\b
|
|
||||||
scope: keyword.other.lean
|
|
||||||
- match: \b(?<!\.)(calc|have|this|match|do|suffices|show|by|in|at|let|forall|fun|exists|assume|from|obtain|haveI|λ)(?!\.)\b
|
|
||||||
scope: keyword.other.lean
|
|
||||||
- match: «
|
- match: «
|
||||||
push:
|
push:
|
||||||
- meta_content_scope: entity.name.lean
|
- meta_content_scope: entity.name.lean4
|
||||||
- match: »
|
- match: »
|
||||||
pop: true
|
pop: true
|
||||||
- match: \b(?<!\.)(if|then|else)\b
|
- match: (s!)"
|
||||||
scope: keyword.control.lean
|
|
||||||
- match: '"'
|
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.string.begin.lean
|
1: keyword.other.lean4
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.quoted.double.lean
|
- meta_scope: string.interpolated.lean4
|
||||||
- match: '"'
|
- match: '"'
|
||||||
captures:
|
|
||||||
0: punctuation.definition.string.end.lean
|
|
||||||
pop: true
|
pop: true
|
||||||
- match: '\\[\\"nt'']'
|
- match: '(\{)'
|
||||||
scope: constant.character.escape.lean
|
captures:
|
||||||
|
1: keyword.other.lean4
|
||||||
|
push:
|
||||||
|
- match: '(\})'
|
||||||
|
captures:
|
||||||
|
1: keyword.other.lean4
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: '\\[\\"ntr'']'
|
||||||
|
scope: constant.character.escape.lean4
|
||||||
- match: '\\x[0-9A-Fa-f][0-9A-Fa-f]'
|
- match: '\\x[0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
scope: constant.character.escape.lean
|
scope: constant.character.escape.lean4
|
||||||
- match: '\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'
|
- match: '\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
scope: constant.character.escape.lean
|
scope: constant.character.escape.lean4
|
||||||
|
- match: '"'
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.double.lean4
|
||||||
|
- match: '"'
|
||||||
|
pop: true
|
||||||
|
- match: '\\[\\"ntr'']'
|
||||||
|
scope: constant.character.escape.lean4
|
||||||
|
- match: '\\x[0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
|
scope: constant.character.escape.lean4
|
||||||
|
- match: '\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
|
scope: constant.character.escape.lean4
|
||||||
|
- match: \b(true|false)\b
|
||||||
|
scope: constant.language.lean4
|
||||||
- match: '''[^\\'']'''
|
- match: '''[^\\'']'''
|
||||||
scope: string.quoted.single.lean
|
scope: string.quoted.single.lean4
|
||||||
- match: '''(\\(x..|u....|.))'''
|
- match: '''(\\(x[0-9A-Fa-f][0-9A-Fa-f]|u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]|.))'''
|
||||||
scope: string.quoted.single.lean
|
scope: string.quoted.single.lean4
|
||||||
captures:
|
captures:
|
||||||
1: constant.character.escape.lean
|
1: constant.character.escape.lean4
|
||||||
- match: '`+[^\[(]\S+'
|
- match: '`+[^\[(]\S+'
|
||||||
scope: entity.name.lean
|
scope: entity.name.lean4
|
||||||
- match: '\b([0-9]+|0([xX][0-9a-fA-F]+))\b'
|
- match: '\b([0-9]+|0([xX][0-9a-fA-F]+)|[-]?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?)\b'
|
||||||
scope: constant.numeric.lean
|
scope: constant.numeric.lean4
|
||||||
blockComment:
|
blockComment:
|
||||||
- match: /-
|
- match: /-
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.block.lean
|
- meta_scope: comment.block.lean4
|
||||||
- match: "-/"
|
- match: '-/'
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:source.lean.markdown
|
- include: scope:source.lean4.markdown
|
||||||
- include: blockComment
|
- include: blockComment
|
||||||
comments:
|
comments:
|
||||||
- include: dashComment
|
- include: dashComment
|
||||||
- include: docComment
|
- include: docComment
|
||||||
- include: stringBlock
|
|
||||||
- include: modDocComment
|
- include: modDocComment
|
||||||
- include: blockComment
|
- include: blockComment
|
||||||
dashComment:
|
dashComment:
|
||||||
- match: (--)
|
- match: '--'
|
||||||
captures:
|
|
||||||
0: punctuation.definition.comment.lean
|
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.line.double-dash.lean
|
- meta_scope: comment.line.double-dash.lean4
|
||||||
- match: $
|
- match: $
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:source.lean.markdown
|
- include: scope:source.lean4.markdown
|
||||||
definitionName:
|
definitionName:
|
||||||
- match: '\b[^:«»\(\)\{\}[:space:]=→λ∀?][^:«»\(\)\{\}[:space:]]*'
|
- match: '\b[^:«»\(\)\{\}[:space:]=→λ∀?][^:«»\(\)\{\}[:space:]]*'
|
||||||
scope: entity.name.function.lean
|
scope: entity.name.function.lean4
|
||||||
- match: «
|
- match: «
|
||||||
push:
|
push:
|
||||||
- meta_content_scope: entity.name.function.lean
|
- meta_content_scope: entity.name.function.lean4
|
||||||
- match: »
|
- match: »
|
||||||
pop: true
|
pop: true
|
||||||
docComment:
|
docComment:
|
||||||
- match: /--
|
- match: /--
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.block.documentation.lean
|
- meta_scope: comment.block.documentation.lean4
|
||||||
- match: "-/"
|
- match: '-/'
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:source.lean.markdown
|
- include: scope:source.lean4.markdown
|
||||||
- include: blockComment
|
- include: blockComment
|
||||||
modDocComment:
|
modDocComment:
|
||||||
- match: /-!
|
- match: /-!
|
||||||
push:
|
push:
|
||||||
- meta_scope: comment.block.documentation.lean
|
- meta_scope: comment.block.documentation.lean4
|
||||||
- match: "-/"
|
- match: '-/'
|
||||||
pop: true
|
pop: true
|
||||||
- include: scope:source.lean.markdown
|
- include: scope:source.lean4.markdown
|
||||||
- include: blockComment
|
|
||||||
stringBlock:
|
|
||||||
- match: /-"
|
|
||||||
push:
|
|
||||||
- meta_scope: comment.block.string.lean
|
|
||||||
- match: '"-/'
|
|
||||||
pop: true
|
|
||||||
- include: scope:source.lean.markdown
|
|
||||||
- include: blockComment
|
- include: blockComment
|
||||||
|
|||||||
Vendored
-1
Submodule assets/syntaxes/02_Extra/LiveScript deleted from 2575013851
+39
-4
@@ -9,6 +9,7 @@ scope: source.man
|
|||||||
variables:
|
variables:
|
||||||
section_heading: '^(?!#)\S.*$'
|
section_heading: '^(?!#)\S.*$'
|
||||||
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
|
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
|
||||||
|
ansi_escape_sequence: '\e\[[\?=]?(?:\d+;?)*[A-Za-z]'
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
prototype:
|
prototype:
|
||||||
@@ -53,13 +54,23 @@ contexts:
|
|||||||
embed: synopsis
|
embed: synopsis
|
||||||
escape: '(?={{section_heading}})'
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
|
- match: '^(?:COMMANDS)\b'
|
||||||
|
scope: markup.heading.commands.man
|
||||||
|
embed: commands-start
|
||||||
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
|
- match: '^(?:ENVIRONMENT\s+VARIABLES)'
|
||||||
|
scope: markup.heading.env.man
|
||||||
|
embed: environment-variables
|
||||||
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
- match: '{{section_heading}}'
|
- match: '{{section_heading}}'
|
||||||
scope: markup.heading.other.man
|
scope: markup.heading.other.man
|
||||||
embed: options # some man pages put command line options under the description heading
|
embed: options # some man pages put command line options under the description heading
|
||||||
escape: '(?={{section_heading}})'
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
function-call:
|
function-call:
|
||||||
- match: '\b([A-Za-z0-9_\-]+\.)?([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
- match: '(?<!\e\[)(?:\b|\s)(?:{{ansi_escape_sequence}})?([A-Za-z0-9_\-]+\.)?([A-Za-z0-9_\-]+)(?:{{ansi_escape_sequence}})?(\()([^)]*)(\))'
|
||||||
captures:
|
captures:
|
||||||
1: entity.name.function.man
|
1: entity.name.function.man
|
||||||
2: entity.name.function.man
|
2: entity.name.function.man
|
||||||
@@ -75,7 +86,10 @@ contexts:
|
|||||||
|
|
||||||
options:
|
options:
|
||||||
# command-line options like --option=value, --some-flag, or -x
|
# command-line options like --option=value, --some-flag, or -x
|
||||||
- match: '^[ ]{7}(?=-)'
|
- match: '^[ ]{7}(-)(?=\s)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.command-line-option.man
|
||||||
|
- match: '^[ ]{7}(?=-|\+)'
|
||||||
push: expect-command-line-option
|
push: expect-command-line-option
|
||||||
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
|
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
|
||||||
captures:
|
captures:
|
||||||
@@ -96,7 +110,7 @@ contexts:
|
|||||||
- include: env-var
|
- include: env-var
|
||||||
|
|
||||||
expect-command-line-option:
|
expect-command-line-option:
|
||||||
- match: '[A-Za-z0-9-]+'
|
- match: '[A-Za-z0-9-\.\?:#\$\+]+'
|
||||||
scope: entity.name.command-line-option.man
|
scope: entity.name.command-line-option.man
|
||||||
- match: '(\[)(=)'
|
- match: '(\[)(=)'
|
||||||
captures:
|
captures:
|
||||||
@@ -122,7 +136,7 @@ contexts:
|
|||||||
pop: true
|
pop: true
|
||||||
|
|
||||||
expect-parameter:
|
expect-parameter:
|
||||||
- match: '[A-Za-z0-9-]+'
|
- match: '[A-Za-z0-9-_]+'
|
||||||
scope: variable.parameter.man
|
scope: variable.parameter.man
|
||||||
- match: (?=\s+\|)
|
- match: (?=\s+\|)
|
||||||
pop: true
|
pop: true
|
||||||
@@ -135,6 +149,10 @@ contexts:
|
|||||||
scope: punctuation.section.brackets.end.man
|
scope: punctuation.section.brackets.end.man
|
||||||
pop: true
|
pop: true
|
||||||
- include: expect-parameter
|
- include: expect-parameter
|
||||||
|
- match: '<'
|
||||||
|
scope: punctuation.definition.generic.begin.man
|
||||||
|
- match: '>'
|
||||||
|
scope: punctuation.definition.generic.end.man
|
||||||
- match: '$|(?=[],]|{{command_line_option}})'
|
- match: '$|(?=[],]|{{command_line_option}})'
|
||||||
pop: true
|
pop: true
|
||||||
|
|
||||||
@@ -169,3 +187,20 @@ contexts:
|
|||||||
- match: \[
|
- match: \[
|
||||||
scope: punctuation.section.brackets.begin.man
|
scope: punctuation.section.brackets.begin.man
|
||||||
push: command-line-option-or-pipe
|
push: command-line-option-or-pipe
|
||||||
|
|
||||||
|
commands-start:
|
||||||
|
- match: (?=^[ ]{7}.*(?:[ ]<|[|]))
|
||||||
|
push: commands
|
||||||
|
|
||||||
|
commands:
|
||||||
|
- match: '^[ ]{7}([a-z_\-]+)(?=[ ]|$)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.command.man
|
||||||
|
push: expect-parameter
|
||||||
|
- match: '^[ ]{7}(?=[\[<]|\w+[|\]])'
|
||||||
|
push: expect-parameter
|
||||||
|
|
||||||
|
environment-variables:
|
||||||
|
- match: '^[ ]{7}([A-Z_]+)\b'
|
||||||
|
captures:
|
||||||
|
1: support.constant.environment-variable.man
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/MediaWiki updated: 81bf97cace...5dceaa9dd9
+1
Submodule assets/syntaxes/02_Extra/NSIS added at 619a65a04e
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Nginx updated: 15a1db1510...65f5a63c0d
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Nix updated: 9032bd6137...48c497c709
Vendored
-1
Submodule assets/syntaxes/02_Extra/Org mode deleted from 4976d8f84e
+1
Submodule assets/syntaxes/02_Extra/Org_mode added at bb6e5d8481
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/PowerShell updated: 742f0b5d4b...a08b55bf11
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Protobuf updated: 726e21d74d...1365331580
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/PureScript updated: 5acebc1850...1773f4fddb
@@ -0,0 +1,120 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/syntax.html
|
||||||
|
name: Requirements.txt
|
||||||
|
scope: source.requirements-txt
|
||||||
|
# https://pip.pypa.io/en/stable/reference/requirements-file-format/
|
||||||
|
# https://github.com/raimon49/requirements.txt.vim/blob/f246bd10155fbc3b1a9e2fff6c95b21521b09116/ftdetect/requirements.vim
|
||||||
|
file_extensions:
|
||||||
|
- requirements.txt
|
||||||
|
- requirements.in
|
||||||
|
- pip
|
||||||
|
# https://github.com/sublimehq/Packages/pull/2760/files
|
||||||
|
first_line_match: |-
|
||||||
|
(?xi:
|
||||||
|
^ \#! .* \bpip # shebang
|
||||||
|
| ^ \s* \# .*? -\*- .*? \bpip-requirements\b .*? -\*- # editorconfig
|
||||||
|
| ^ \s* \# (vim?|ex): .*? \brequirements\b # modeline
|
||||||
|
)
|
||||||
|
# pip install -r
|
||||||
|
# pip-compile
|
||||||
|
|
||||||
|
variables:
|
||||||
|
operator: '===?|<=?|>=?|~=|!='
|
||||||
|
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: '(?i)\d+[\da-z\-_\.\*]*'
|
||||||
|
scope: constant.other.version-control.requirements-txt
|
||||||
|
- match: '(?i)^\[?--?[\da-z\-]*\]?'
|
||||||
|
scope: entity.name.function.option.requirements-txt
|
||||||
|
- match: '{{operator}}'
|
||||||
|
scope: keyword.operator.logical.requirements-txt
|
||||||
|
- match: '(\[)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.section.braces.begin.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: variable.function.extra.requirements-txt
|
||||||
|
- match: ','
|
||||||
|
scope: punctuation.separator.requirements-txt
|
||||||
|
- match: '(\])'
|
||||||
|
captures:
|
||||||
|
1: punctuation.section.braces.end.requirements-txt
|
||||||
|
pop: true
|
||||||
|
- match: '(git\+?|hg\+|svn\+|bzr\+).*://.\S+'
|
||||||
|
scope: markup.underline.link.versioncontrols.requirements-txt
|
||||||
|
- match: '(@\s)?(https?|ftp|gopher)://?[^\s/$.?#].\S*'
|
||||||
|
scope: markup.underline.link.url.requirements-txt
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.keyword.requirements-txt
|
||||||
|
- match: '(?i)^[a-z\d_\-\.]*[a-z\d]'
|
||||||
|
scope: variable.parameter.package-name.requirements-txt
|
||||||
|
- match: '(;)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.annotation.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.annotation.requirements-txt
|
||||||
|
# https://pip.pypa.io/en/stable/reference/inspect-report/#example
|
||||||
|
- match: |-
|
||||||
|
(?x:
|
||||||
|
implementation_name
|
||||||
|
| implementation_version
|
||||||
|
| os_name
|
||||||
|
| platform_machine
|
||||||
|
| platform_release
|
||||||
|
| platform_system
|
||||||
|
| platform_version
|
||||||
|
| python_full_version
|
||||||
|
| platform_python_implementation
|
||||||
|
| python_version
|
||||||
|
| sys_platform
|
||||||
|
)
|
||||||
|
scope: variable.language.requirements-txt
|
||||||
|
- match: '{{operator}}'
|
||||||
|
scope: keyword.operator.logical.requirements-txt
|
||||||
|
# https://pip.pypa.io/en/stable/reference/requirement-specifiers/#examples
|
||||||
|
- match: '(")'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.double.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.double.requirements-txt
|
||||||
|
- match: '\\"'
|
||||||
|
scope: constant.character.escape.double.requirements-txt
|
||||||
|
- match: '(")'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.end.double.requirements-txt
|
||||||
|
pop: true
|
||||||
|
- match: "(')"
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.single.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.single.requirements-txt
|
||||||
|
- match: '\\'''
|
||||||
|
scope: constant.character.escape.single.requirements-txt
|
||||||
|
- match: "(')"
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.end.single.requirements-txt
|
||||||
|
pop: true
|
||||||
|
- match: '(.(?=#)|$)'
|
||||||
|
pop: true
|
||||||
|
- match: '(\$)(\{)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.keyword.requirements-txt
|
||||||
|
2: punctuation.definition.begin.parameter.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: variable.parameter.requirements-txt
|
||||||
|
- match: '(\})'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.end.parameter.requirements-txt
|
||||||
|
pop: true
|
||||||
|
- match: '(#)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.requirements-txt
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.line.requirements-txt
|
||||||
|
- match: '(-*-) coding: .* (-*-)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.begin.pep263.requirements-txt
|
||||||
|
2: punctuation.definition.end.pep263.requirements-txt
|
||||||
|
- match: '$'
|
||||||
|
pop: true
|
||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Slim updated: 3b1441f89f...cad02689b6
+1
Submodule assets/syntaxes/02_Extra/SmartVHDL added at b45507ddc8
+2
-2
@@ -197,7 +197,7 @@ contexts:
|
|||||||
scope: entity.other.attribute-name.stylus
|
scope: entity.other.attribute-name.stylus
|
||||||
- match: |-
|
- match: |-
|
||||||
(?x) # multi-line regex definition mode
|
(?x) # multi-line regex definition mode
|
||||||
(?<=^|;|{)\s* # starts after begining of line, '{' or ';''
|
(?<=^|;|{)\s* # starts after beginning of line, '{' or ';''
|
||||||
(?= # lookahead for
|
(?= # lookahead for
|
||||||
(
|
(
|
||||||
[a-zA-Z0-9_-] # then a letter
|
[a-zA-Z0-9_-] # then a letter
|
||||||
@@ -207,7 +207,7 @@ contexts:
|
|||||||
(/\*.*?\*/) # comment
|
(/\*.*?\*/) # comment
|
||||||
)+
|
)+
|
||||||
|
|
||||||
\s*[:\s]\s* # value is separted by colon or space
|
\s*[:\s]\s* # value is separated by colon or space
|
||||||
|
|
||||||
(?!(\s*\{)) # if there are only spaces afterwards
|
(?!(\s*\{)) # if there are only spaces afterwards
|
||||||
|
|
||||||
|
|||||||
+1
Submodule assets/syntaxes/02_Extra/SublimeJQ added at 84770c52bd
+1
-1
Submodule assets/syntaxes/02_Extra/SystemVerilog updated: 7eca705e87...b340f1c7f6
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/TOML updated: 6bfcc3c236...f5a57e8bff
+1
Submodule assets/syntaxes/02_Extra/TodoTxt added at 071a004217
@@ -4,6 +4,8 @@
|
|||||||
name: TypeScript
|
name: TypeScript
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- ts
|
- ts
|
||||||
|
- mts
|
||||||
|
- cts
|
||||||
scope: source.ts
|
scope: source.ts
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
|||||||
+104
@@ -0,0 +1,104 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/syntax.html
|
||||||
|
scope: source.vimhelp
|
||||||
|
file_extensions:
|
||||||
|
# shortname
|
||||||
|
- vimhelp
|
||||||
|
|
||||||
|
# $VIMRUNTIME/syntax/help.vim
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: '(?<=^\s*)(vim?|ex):\s*([a-z]+(=[^\s:]+)?(\s+|:))+'
|
||||||
|
scope: comment.line.modeline.vimhelp
|
||||||
|
- match: '^[-A-Z .][-A-Z0-9 .()_]*(?=\s+\*|$)'
|
||||||
|
scope: markup.heading.headline.vimhelp
|
||||||
|
- match: '^(===.*===)$'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.heading.1.setext.vimhelp
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.heading.1.setext.vimhelp
|
||||||
|
- match: '\t| '
|
||||||
|
pop: true
|
||||||
|
- match: '^(---.*---)$'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.heading.2.setext.vimhelp
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.heading.2.setext.vimhelp
|
||||||
|
- match: '\t| '
|
||||||
|
pop: true
|
||||||
|
- match: '(?:^| )(>)$'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.blockquote.begin.vimhelp
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.quote.vimhelp
|
||||||
|
- match: '^(<)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.blockquote.end.vimhelp
|
||||||
|
pop: true
|
||||||
|
- match: '^(?=\S)'
|
||||||
|
pop: true
|
||||||
|
- match: '(?<!\\)(\|)([#-)!+-~]+)(\|)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.link.begin.vimhelp
|
||||||
|
2: markup.underline.link.vimhelp
|
||||||
|
3: punctuation.definition.link.end.vimhelp
|
||||||
|
- match: '(\*)([#-)!+-~]+)(\*)(?:\s|$)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.constant.begin.vimhelp
|
||||||
|
2: entity.name.reference.link.vimhelp
|
||||||
|
3: punctuation.definition.constant.end.vimhelp
|
||||||
|
- match: '\bVim version [0-9][0-9.a-z]*'
|
||||||
|
scope: variable.language.vimhelp
|
||||||
|
- match: 'N?VIM REFERENCE.*'
|
||||||
|
scope: variable.language.vimhelp
|
||||||
|
- match: '('')([a-z]{2,}|t_..)('')'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.link.option.begin.vimhelp
|
||||||
|
2: markup.underline.link.option.vimhelp
|
||||||
|
3: punctuation.definition.link.option.end.vimhelp
|
||||||
|
- match: '(`)([^` \t]+)(`)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.link.command.begin.vimhelp
|
||||||
|
2: markup.underline.link.command.vimhelp
|
||||||
|
3: punctuation.definition.link.command.end.vimhelp
|
||||||
|
- match: '(?<=^|[^a-z"\[])(`)([^`]+)(`)(?=[^a-z\t."'']|$)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.link.command.begin.vimhelp
|
||||||
|
2: markup.underline.link.command.vimhelp
|
||||||
|
3: punctuation.definition.link.command.end.vimhelp
|
||||||
|
- match: '(?<=\s*)(.*?)(?=\s?)(~)$'
|
||||||
|
captures:
|
||||||
|
1: markup.heading.header.vimhelp
|
||||||
|
2: punctuation.definition.keyword.vimhelp
|
||||||
|
- match: '(.*) (?=`$)'
|
||||||
|
captures:
|
||||||
|
1: variable.other.graphic.vimhelp
|
||||||
|
2: punctuation.definition.keyword.vimhelp
|
||||||
|
- match: '\b(note:?|Note:?|NOTE:?|Notes:?)\b'
|
||||||
|
scope: constant.other.note.vimhelp
|
||||||
|
- match: '\b(WARNING:?|Warning:)\b'
|
||||||
|
scope: constant.other.warning.vimhelp
|
||||||
|
- match: '\b(DEPRECATED:?|Deprecated:)\b'
|
||||||
|
scope: constant.other.deprecated.vimhelp
|
||||||
|
- match: '(\{)([-_a-zA-Z0-9''"*+/:%#=\[\]<>.,]+)(\})'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.constant.begin.vimhelp
|
||||||
|
2: constant.numeric.vimhelp
|
||||||
|
3: punctuation.definition.constant.end.vimhelp
|
||||||
|
- match: '\[(range|line|count|offset|\+?cmd|(\+|-|)num|\+\+opt)\]'
|
||||||
|
scope: constant.numeric.vimhelp
|
||||||
|
- match: '\[(arg(uments)?|ident|addr|group)\]'
|
||||||
|
scope: constant.numeric.vimhelp
|
||||||
|
- match: '\[(readonly|fifo|socket|converted|crypted)\]'
|
||||||
|
scope: constant.numeric.vimhelp
|
||||||
|
- match: '<[-a-zA-Z0-9_]+>'
|
||||||
|
scope: markup.underline.link.key.vimhelp
|
||||||
|
- match: '<[SCM]-.>'
|
||||||
|
scope: markup.underline.link.key.vimhelp
|
||||||
|
- match: 'CTRL-((SHIFT-)?.|Break|PageUp|PageDown|Insert|Del|\{char\})'
|
||||||
|
scope: markup.underline.link.key.vimhelp
|
||||||
|
- match: '(META|ALT)-.'
|
||||||
|
scope: markup.underline.link.key.vimhelp
|
||||||
|
- match: '\b(((https?|ftp|gopher)://|(mailto|file|news):)[^'' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^'' <>"]+)[a-zA-Z0-9/]'
|
||||||
|
scope: markup.underline.link.url.vimhelp
|
||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/VimL updated: c91fe3ab02...fe5bf5ea70
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Zig updated: 87ecbcae6f...c16d871ccc
@@ -0,0 +1,42 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# See http://www.sublimetext.com/docs/syntax.html
|
||||||
|
name: debsources
|
||||||
|
file_extensions:
|
||||||
|
- sources.list
|
||||||
|
scope: text.apt-source-list
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- include: comments
|
||||||
|
- match: ^[\w-]+
|
||||||
|
scope: constant.language.apt-source-list
|
||||||
|
- match: \w+://\S+
|
||||||
|
scope: markup.underline.link.apt-source-list
|
||||||
|
push: distribution
|
||||||
|
- match: \bmain\b
|
||||||
|
scope: support.class.apt-source-list
|
||||||
|
- match: \buniverse\b
|
||||||
|
scope: support.constant.apt-source-list
|
||||||
|
- match: \brestricted\b
|
||||||
|
scope: storage.modifier.apt-source-list
|
||||||
|
- match: \bmultiverse\b
|
||||||
|
scope: keyword.other.apt-source-list
|
||||||
|
- match: '[\w-]+'
|
||||||
|
scope: constant.other.apt-source-list
|
||||||
|
|
||||||
|
comments:
|
||||||
|
- match: '#'
|
||||||
|
scope: punctuation.definition.comment.apt-source-list
|
||||||
|
push: line_comment
|
||||||
|
|
||||||
|
line_comment:
|
||||||
|
- meta_scope: comment.line.apt-source-list
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
|
||||||
|
distribution:
|
||||||
|
- match: \S+
|
||||||
|
scope: support.type.apt-source-list
|
||||||
|
pop: 1
|
||||||
|
- match: $
|
||||||
|
pop: 1
|
||||||
+1
Submodule assets/syntaxes/02_Extra/cmd-help added at 2757ac1681
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/hosts updated: 21250a7117...60ed92c472
+83
-15
@@ -6,8 +6,16 @@ file_extensions:
|
|||||||
scope: text.log
|
scope: text.log
|
||||||
variables:
|
variables:
|
||||||
ipv4_part: (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
|
ipv4_part: (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
|
||||||
|
hours_minutes_seconds: (?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)
|
||||||
|
error: \b(?i:fail(?:ure|ed)?|error|exception|fatal|critical)\b
|
||||||
|
warning: \b(?i:warn(?:ing)?)\b
|
||||||
|
info: \b(?i:info)\b
|
||||||
|
debug: \b(?i:debug)\b
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
- include: log_level_lines
|
||||||
|
- include: main_without_log_level_line
|
||||||
|
main_without_log_level_line:
|
||||||
- match: (\w+)(=)
|
- match: (\w+)(=)
|
||||||
captures:
|
captures:
|
||||||
1: variable.parameter.log
|
1: variable.parameter.log
|
||||||
@@ -17,31 +25,85 @@ contexts:
|
|||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.string.begin.log
|
1: punctuation.definition.string.begin.log
|
||||||
3: punctuation.definition.string.end.log
|
3: punctuation.definition.string.end.log
|
||||||
- match: (")([^"]*)(")
|
- match: \"
|
||||||
scope: string.quoted.double.log
|
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.string.begin.log
|
1: punctuation.definition.string.begin.log
|
||||||
3: punctuation.definition.string.end.log
|
push: double_quoted_string
|
||||||
- include: dates
|
- include: dates
|
||||||
- include: ip_addresses
|
- include: ip_addresses
|
||||||
- include: numbers
|
- include: numbers
|
||||||
- match: \b(?i:fail(?:ure|ed)?|error|exception)\b
|
- include: log_levels
|
||||||
scope: markup.error.log
|
|
||||||
- match: \b(?i:warn(?:ing)?)\b
|
|
||||||
scope: markup.warning.log
|
|
||||||
#- include: scope:text.html.markdown#autolink-inet
|
#- include: scope:text.html.markdown#autolink-inet
|
||||||
- match: \b\w+:/{2,3}
|
- match: \b\w+:/{2,3}
|
||||||
scope: markup.underline.link.scheme.log
|
scope: markup.underline.link.scheme.log
|
||||||
push: url-host
|
push: url-host
|
||||||
|
log_level_lines:
|
||||||
|
- match: (?=.*{{error}})
|
||||||
|
push:
|
||||||
|
- error_line_meta
|
||||||
|
- main_pop_at_eol
|
||||||
|
- match: (?=.*{{warning}})
|
||||||
|
push:
|
||||||
|
- warning_line_meta
|
||||||
|
- main_pop_at_eol
|
||||||
|
- match: (?=.*{{info}})
|
||||||
|
push:
|
||||||
|
- info_line_meta
|
||||||
|
- main_pop_at_eol
|
||||||
|
- match: (?=.*{{debug}})
|
||||||
|
push:
|
||||||
|
- debug_line_meta
|
||||||
|
- main_pop_at_eol
|
||||||
|
log_levels:
|
||||||
|
- match: '{{error}}'
|
||||||
|
scope: markup.error.log
|
||||||
|
- match: '{{warning}}'
|
||||||
|
scope: markup.warning.log
|
||||||
|
- match: '{{info}}'
|
||||||
|
scope: markup.info.log
|
||||||
|
- match: '{{debug}}'
|
||||||
|
scope: markup.info.log
|
||||||
|
error_line_meta:
|
||||||
|
- meta_scope: meta.annotation.error-line.log
|
||||||
|
- include: immediately_pop
|
||||||
|
warning_line_meta:
|
||||||
|
- meta_scope: meta.annotation.warning-line.log
|
||||||
|
- include: immediately_pop
|
||||||
|
info_line_meta:
|
||||||
|
- meta_scope: meta.annotation.info-line.log
|
||||||
|
- include: immediately_pop
|
||||||
|
debug_line_meta:
|
||||||
|
- meta_scope: meta.annotation.debug-line.log
|
||||||
|
- include: immediately_pop
|
||||||
|
immediately_pop:
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
pop_at_eol:
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
main_pop_at_eol:
|
||||||
|
- include: main_without_log_level_line
|
||||||
|
- include: pop_at_eol
|
||||||
dates:
|
dates:
|
||||||
- match: \b\d{4}-\d{2}-\d{2}\b
|
- match: \b\d{4}-\d{2}-\d{2}(?=\b|T)
|
||||||
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
- match: \b\d{4}/\d{2}/\d{2}\b
|
push: maybe_date_time_separator
|
||||||
|
- match: \b\d{4}/\d{2}/\d{2}(?=\b|T)
|
||||||
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
- match: \b(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)(?:(\.)\d{3})?\b
|
push: maybe_date_time_separator
|
||||||
|
- match: \b(?={{hours_minutes_seconds}})
|
||||||
|
push: time
|
||||||
|
time:
|
||||||
|
- match: (?:{{hours_minutes_seconds}})(?:(\.)\d{3})?\b
|
||||||
scope: meta.time.log meta.number.integer.decimal.log constant.numeric.value.log
|
scope: meta.time.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.separator.decimal.log
|
1: punctuation.separator.decimal.log
|
||||||
|
- include: immediately_pop
|
||||||
|
maybe_date_time_separator:
|
||||||
|
- match: T(?={{hours_minutes_seconds}})
|
||||||
|
scope: meta.date.log meta.time.log keyword.other.log
|
||||||
|
set: time
|
||||||
|
- include: immediately_pop
|
||||||
ip_addresses:
|
ip_addresses:
|
||||||
- match: \b(?=(?:{{ipv4_part}}\.){3}{{ipv4_part}}\b)
|
- match: \b(?=(?:{{ipv4_part}}\.){3}{{ipv4_part}}\b)
|
||||||
push:
|
push:
|
||||||
@@ -50,8 +112,7 @@ contexts:
|
|||||||
scope: constant.numeric.value.log
|
scope: constant.numeric.value.log
|
||||||
- match: \.
|
- match: \.
|
||||||
scope: punctuation.separator.sequence.log
|
scope: punctuation.separator.sequence.log
|
||||||
- match: ''
|
- include: immediately_pop
|
||||||
pop: true
|
|
||||||
- match: (?=(?:\h{0,4}:){2,6}\h{1,4}\b)
|
- match: (?=(?:\h{0,4}:){2,6}\h{1,4}\b)
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.ipaddress.v6.log meta.number.integer.hexadecimal.log
|
- meta_scope: meta.ipaddress.v6.log meta.number.integer.hexadecimal.log
|
||||||
@@ -59,8 +120,7 @@ contexts:
|
|||||||
scope: constant.numeric.value.log
|
scope: constant.numeric.value.log
|
||||||
- match: ':'
|
- match: ':'
|
||||||
scope: punctuation.separator.sequence.log
|
scope: punctuation.separator.sequence.log
|
||||||
- match: ''
|
- include: immediately_pop
|
||||||
pop: true
|
|
||||||
numbers:
|
numbers:
|
||||||
- match: \b(0x)(\h+)(?:(\.)(\h+))?\b
|
- match: \b(0x)(\h+)(?:(\.)(\h+))?\b
|
||||||
scope: meta.number.float.hexadecimal.log
|
scope: meta.number.float.hexadecimal.log
|
||||||
@@ -112,5 +172,13 @@ contexts:
|
|||||||
pop: true
|
pop: true
|
||||||
- match: '[^?!.,:*_~\s<&()%]+|\S'
|
- match: '[^?!.,:*_~\s<&()%]+|\S'
|
||||||
scope: markup.underline.link.path.log
|
scope: markup.underline.link.path.log
|
||||||
- match: ''
|
- include: immediately_pop
|
||||||
|
double_quoted_string:
|
||||||
|
- meta_scope: string.quoted.double.log
|
||||||
|
- match: \\"
|
||||||
|
scope: constant.character.escape.log
|
||||||
|
- match: \\n
|
||||||
|
scope: constant.character.escape.log
|
||||||
|
- match: \"
|
||||||
|
scope: punctuation.definition.string.end.log
|
||||||
pop: true
|
pop: true
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/ssh-config updated: e1012e9f13...bf49e9181c
+1
Submodule assets/syntaxes/02_Extra/sublime-odin added at 5d6a0ed41e
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user