mirror of
https://github.com/sharkdp/bat
synced 2026-08-03 18:51:44 +00:00
Compare commits
865 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3aea51455b | |||
| f827ed338b | |||
| 73dab51ad1 | |||
| 9328007d05 | |||
| 8d173cd960 | |||
| fb0f12a221 | |||
| 9866408b72 | |||
| aaac56d895 | |||
| 516da7719f | |||
| d4df0b4405 | |||
| bfa9c3bef6 | |||
| 2904f24ea8 | |||
| 91a347bf6d | |||
| e219c8fc03 | |||
| 9eb26b702c | |||
| c933be926d | |||
| fc88040b31 | |||
| 5db3c93057 | |||
| aa442b5795 | |||
| 09711cd6f9 | |||
| b16cacc758 | |||
| 51451a9636 | |||
| fbc03da997 | |||
| 1a610dbdd2 | |||
| a30e3c9066 | |||
| 613b41e357 | |||
| d405aa98d5 | |||
| 285b1556a9 | |||
| 8321cc661c | |||
| 848ceb6f10 | |||
| 3559079de0 | |||
| b3ab843954 | |||
| 867cf63dd9 | |||
| 0b44aa6f68 | |||
| aa09a9dc04 | |||
| 7c4edacb2b | |||
| 782ede5db5 | |||
| 1537733e6b | |||
| ba0d43672b | |||
| 4384d25c79 | |||
| b6e3786529 | |||
| 6fff01397d | |||
| 0cd52e5be1 | |||
| c14dd34dca | |||
| e04fbd1992 | |||
| d89fa3ebc2 | |||
| db57454f3f | |||
| 8f93844427 | |||
| 52f84b063c | |||
| 2e7f2b6c07 | |||
| 35347c2310 | |||
| b489fc75c9 | |||
| fc24cb2a77 | |||
| 2540311cdf | |||
| 3880888286 | |||
| 5a806c2149 | |||
| 8a926d511a | |||
| 8885285b10 | |||
| d1f0181947 | |||
| b147443c32 | |||
| b8a18d3ebb | |||
| 694b31909a | |||
| a98811b6d7 | |||
| cfc505e1e5 | |||
| 3af3549232 | |||
| 643f0bcbe3 | |||
| 9db9a38565 | |||
| ca60937c2e | |||
| 2aa3ed9da8 | |||
| 7768433d09 | |||
| c569774e1a | |||
| 0371f55541 | |||
| bc35592fd9 | |||
| f5d834407e | |||
| 557a748ac7 | |||
| 3f10f71ad2 | |||
| 7b6388b19f | |||
| b98ec4bbc5 | |||
| 94fd481f36 | |||
| 94496df3b0 | |||
| 0e5ea9c354 | |||
| 7eabb5e05a | |||
| 9ad401be87 | |||
| f874c8e4db | |||
| 025c5c061b | |||
| 573f34d757 | |||
| eac36dd3b5 | |||
| 70cf8a4ec5 | |||
| 37d0d8984c | |||
| 2e8c0a39db | |||
| deec2902e4 | |||
| e3343759b7 | |||
| fa72f86e17 | |||
| 6527126e50 | |||
| 4aec022065 | |||
| a26c5b8219 | |||
| d36b091fd7 | |||
| 3dcf02549e | |||
| e402011a73 | |||
| dc1620d1f0 | |||
| c48e779e8a | |||
| dd0d44bbb3 | |||
| 060b9981b5 | |||
| b25713938d | |||
| 5b09561114 | |||
| fcde4824d5 | |||
| b0e5828d3f | |||
| b7d499d1be | |||
| 1ae16fca90 | |||
| 0e2bef3b79 | |||
| 221c9815a5 | |||
| c5c683f67c | |||
| 149a0177cd | |||
| 252e5a6b13 | |||
| faa27ed6e3 | |||
| f3227c259e | |||
| 2cfeebab90 | |||
| 8dd67cca0c | |||
| eda72c31b2 | |||
| 7809008016 | |||
| c2c2b0211a | |||
| dd6f57e107 | |||
| dfe7a60140 | |||
| fc30277cfa | |||
| 02e6ff4183 | |||
| e3b1142364 | |||
| 8832ff3c6a | |||
| 505ff10dc6 | |||
| 9a3a5545e7 | |||
| 43919066ad | |||
| 7ada963ec2 | |||
| 4c523af1ab | |||
| c5c28eb05b | |||
| 22924532d0 | |||
| 7c227169a4 | |||
| 8e4b0b4377 | |||
| 6d27df3b77 | |||
| 73d14f4655 | |||
| 19b8c53c46 | |||
| cd7be018fe | |||
| 03a2710a08 | |||
| 09fbabb0b8 | |||
| de6cb75f4b | |||
| 83c9cb7907 | |||
| 7ffb04a17a | |||
| c38c186d26 | |||
| e22a9a69b1 | |||
| 59f9adc706 | |||
| fed30b1b36 | |||
| 411d68e839 | |||
| 77d42a17c6 | |||
| e7c55bffe9 | |||
| da10166625 | |||
| b6b7262962 | |||
| 3ed83913b2 | |||
| 63460f4bf9 | |||
| c67b439752 | |||
| 2b44940f81 | |||
| 26136be903 | |||
| 6a52f69b58 | |||
| 60406c7c2d | |||
| 2465438ec3 | |||
| 99a61580e1 | |||
| dec94b4111 | |||
| ebb97e94a9 | |||
| 5e1f9fadf4 | |||
| fe08de846d | |||
| 35e3c51b75 | |||
| 59c9105c25 | |||
| b458292a69 | |||
| 78aed2cb69 | |||
| 46487b201f | |||
| 939a6a5f4d | |||
| caf0743811 | |||
| 9ccb667653 | |||
| b600f62ab6 | |||
| ace655e164 | |||
| 21ae26cb17 | |||
| 478233f795 | |||
| e87c554ccd | |||
| df33ed05dd | |||
| c9efdd68ed | |||
| 8381945cb5 | |||
| 2046b47739 | |||
| 0c302f088a | |||
| a41db63907 | |||
| 3573c48e98 | |||
| e94980bfd0 | |||
| 5422982207 | |||
| 4fe5497d19 | |||
| 1b549ecc66 | |||
| b5bdba8b16 | |||
| 522c97f5ad | |||
| 7fbb3a5352 | |||
| b3f34529b5 | |||
| d388d07e9f | |||
| c76e27851c | |||
| 8c0dcf3b57 | |||
| 962b3a78c0 | |||
| aa5b941ed5 | |||
| af8a8035e8 | |||
| 037a66c57b | |||
| 1a04dcf10f | |||
| 2eae8b578e | |||
| 17189fce9b | |||
| a0225018e6 | |||
| 361b7aa0da | |||
| 334590932a | |||
| 3f4638204f | |||
| 5e7061b9f6 | |||
| 7a1cd5226f | |||
| 285ac75738 | |||
| 00ff54be4e | |||
| aab35e3faa | |||
| bfa5342331 | |||
| c0d945c0ac | |||
| 22bdc7c20f | |||
| 3ed0081f1f | |||
| 6d0e7650c3 | |||
| 552545fe5f | |||
| dcfe883f4b | |||
| f45fa5e187 | |||
| 05e9da390f | |||
| cc0f8ca813 | |||
| 9c16571347 | |||
| 2765c6ba3b | |||
| 28f3f3c9c9 | |||
| 73d9a95862 | |||
| 9c9a9ac452 | |||
| 29ea396c31 | |||
| 171d215f91 | |||
| cc6109a751 | |||
| 47bb4a9c0f | |||
| b149ea91dd | |||
| 6d1c7d5f57 | |||
| 07bd7503c5 | |||
| 1b5af89ddd | |||
| 3d07dec8fd | |||
| a63bb08eda | |||
| e0207f8167 | |||
| 3099f51ba7 | |||
| 19e7763f35 | |||
| 73cff42ec9 | |||
| b349155f2f | |||
| ab4c120ea5 | |||
| 947133d295 | |||
| bf96e6e642 | |||
| cffacad306 | |||
| cc7b89faf8 | |||
| c1e4746d50 | |||
| 8331eec7fc | |||
| 0547068ed0 | |||
| 18d8389785 | |||
| 165d25d941 | |||
| c4fb77b042 | |||
| 973ea984c8 | |||
| 3e9afe2974 | |||
| 73c16574e6 | |||
| 60e00d49a9 | |||
| 2d22c705ba | |||
| 68d525cd8b | |||
| c3fc1b88fe | |||
| 84b0702399 | |||
| f3489ffa29 | |||
| 8e6ba2a3e1 | |||
| 48e799e7a6 | |||
| bc01999f0d | |||
| b0fcb3065f | |||
| 94d8cd5100 | |||
| 5596c6133b | |||
| 304332e380 | |||
| fb989d8c94 | |||
| 026220b960 | |||
| 543a253bc1 | |||
| 8f8e44e87a | |||
| 2da11097f9 | |||
| d124ebeced | |||
| 986d0e9777 | |||
| f4202361b4 | |||
| 6d981498d8 | |||
| bd2e9917da | |||
| a6810e3353 | |||
| 591eba66a3 | |||
| a5a9ac83e5 | |||
| 15b122a448 | |||
| 44a905d135 | |||
| 8884104e82 | |||
| 277cc5fa21 | |||
| 0cbd7d583c | |||
| 3c3fc92863 | |||
| e69d650598 | |||
| 9385c81882 | |||
| 1b84f9f1ae | |||
| d879fbd8a1 | |||
| 1fbdef06aa | |||
| f5531cc7fa | |||
| 2ccff145ed | |||
| 43b2ee5e71 | |||
| 51463a4b41 | |||
| 4f0116bee7 | |||
| 31793cfa62 | |||
| 6d75540d4e | |||
| ba5cbe208f | |||
| 2b82203041 | |||
| 35da065445 | |||
| 12a1fe3ad4 | |||
| 91057f2a09 | |||
| 15060f00a5 | |||
| 1a82a03d5d | |||
| 4674105698 | |||
| ca3e9a385f | |||
| f05c222221 | |||
| 3dc5fc54df | |||
| bac84b4c8b | |||
| a5b9a80216 | |||
| 142d5e60ec | |||
| 61f947a580 | |||
| c4bbf28862 | |||
| 9befa81e36 | |||
| 414c7ac83d | |||
| 3a612f063e | |||
| 9daea73bba | |||
| 8e8131590c | |||
| 3acfe790b9 | |||
| 877d9120c9 | |||
| c15b88f250 | |||
| 2889e017cd | |||
| 47ea99090f | |||
| 1c1ba04c41 | |||
| 456216ab37 | |||
| 49d7bf8c39 | |||
| dade4cc6f3 | |||
| c747ac181d | |||
| 9837948c3a | |||
| 072fb380d8 | |||
| 85594956cf | |||
| 88eba56607 | |||
| cc6cf48256 | |||
| e571cb553b | |||
| bf9f6e872d | |||
| 8348c1b746 | |||
| 0a9744ac95 | |||
| 95954b7c57 | |||
| a707f81726 | |||
| dae6664555 | |||
| 9dd807344c | |||
| 2ecebf8ff2 | |||
| 6d3cb5f99f | |||
| ec8072d51f | |||
| 7a7bb80e23 | |||
| 99ac5c3045 | |||
| efab00a9de | |||
| 9ab0801ee1 | |||
| cfdb853ea6 | |||
| 41e857ea16 | |||
| 5b2da2b08d | |||
| 5e0a608ea6 | |||
| 3729aefb6f | |||
| 8a2122b4a4 | |||
| cc6f6fdb1d | |||
| 5ec4936a4f | |||
| be84682bcb | |||
| b07f3b4e74 | |||
| fc1f37d3df | |||
| a3f037773a | |||
| c71c8980cf | |||
| 6bf7b79f13 | |||
| 5d9adc14e7 | |||
| 575888d81b | |||
| 3539d3e72d | |||
| bb25111ca9 | |||
| 3c756a65a6 | |||
| 8d574826c9 | |||
| 7c7eebbe83 | |||
| 57ad85814b | |||
| 4b2b419400 | |||
| b83716f0eb | |||
| 6872a4dd7f | |||
| 4d6b2fec13 | |||
| 57c1a7fd69 | |||
| bf78b74db4 | |||
| f80fba4d24 | |||
| d075d2b453 | |||
| 5650624822 | |||
| bf07b0be58 | |||
| eeea53759b | |||
| a39f1e0f9b | |||
| 1614f80366 | |||
| e293c58bb0 | |||
| 3015ebfba1 | |||
| d7da4f5f2b | |||
| c1af6ff2e6 | |||
| aa4000cb0d | |||
| 33128d75f2 | |||
| bf87f37039 | |||
| 62e715ff5b | |||
| b3903175c8 | |||
| de47bd2323 | |||
| 19b55706ee | |||
| 6c68198d19 | |||
| f3c760c25f | |||
| 24fe946c06 | |||
| de6680bdf2 | |||
| 0a28da0cd0 | |||
| a838ff47b5 | |||
| 8bd078caeb | |||
| bce304a800 | |||
| 206d3e7b91 | |||
| 4be32cf746 | |||
| 4ec6075f81 | |||
| aa00e0a6b0 | |||
| bb7fae72c9 | |||
| 7bd19640a2 | |||
| b7271a2a6d | |||
| ecde418abb | |||
| 51036ced9d | |||
| b6c1ec3a24 | |||
| 46004001cb | |||
| f10c8ce25e | |||
| acc370d345 | |||
| 457ab84065 | |||
| 3bcb5452aa | |||
| 1f0e53a44d | |||
| 2d5cf1d3cf | |||
| a81254ed2a | |||
| fdef133d3d | |||
| fd01f0a0ee | |||
| 5b095ed6f3 | |||
| e7a3f34959 | |||
| 06d0c8f056 | |||
| 4064b8ff14 | |||
| 83ecc3d3ac | |||
| 6615eceb18 | |||
| 53f5a37f01 | |||
| bbef2f41ec | |||
| b6e729abeb | |||
| 5fe98689d4 | |||
| 8832a96e82 | |||
| 09631ed119 | |||
| 9257c7ce20 | |||
| b30f9a1677 | |||
| e6c3f96931 | |||
| 85ff81f238 | |||
| 5e0b7f013a | |||
| aa205c6a9f | |||
| 44bfad24a1 | |||
| 13e01841ca | |||
| a999975bc9 | |||
| edf30e1fa1 | |||
| f41bf2082a | |||
| 894d3f1722 | |||
| 83d96e2bbb | |||
| e26ec31463 | |||
| e3bc41dbe6 | |||
| 7a180e22ff | |||
| 3609700b5e | |||
| 389f64df57 | |||
| e85064e4cf | |||
| dd95f8b5cb | |||
| 975487f630 | |||
| 4ba7546c65 | |||
| c97aa55163 | |||
| 2e1e30705a | |||
| c92ac809a5 | |||
| ec842e8d51 | |||
| 6d6e3900c3 | |||
| 0516a0d7a6 | |||
| adbbe158db | |||
| 6d2be4a305 | |||
| 78c9a5d45b | |||
| 5fa1645165 | |||
| bbf6ec0458 | |||
| e58b20f68d | |||
| 0ce697daba | |||
| a2dfadc6c8 | |||
| 6df8b3fe72 | |||
| b623adc6df | |||
| 2f77da7813 | |||
| 9897c99190 | |||
| aebc30447f | |||
| d2bae54ed0 | |||
| 501c369f39 | |||
| db3468a815 | |||
| 3aabed44ce | |||
| 3af7a6b082 | |||
| 2e985198c6 | |||
| 74a2ef8138 | |||
| 88ea21b276 | |||
| 62397dbd0b | |||
| 317b086f66 | |||
| 12340c1d10 | |||
| e747199711 | |||
| df7ce883c7 | |||
| eb3e2dca24 | |||
| 2d9b936b0a | |||
| 66c7aca2f6 | |||
| 0c3344d0c4 | |||
| 0ac211140a | |||
| 5d490664ca | |||
| d170dd305d | |||
| b50bd58795 | |||
| 1da279a290 | |||
| 100b9a470b | |||
| 43c2b36eaa | |||
| 203d0bd8ae | |||
| 14092fbadb | |||
| 35ad76771d | |||
| 96151c44aa | |||
| 02dcb01120 | |||
| 51d25e5859 | |||
| b8535689d3 | |||
| 8ff890635f | |||
| 29b6ba0758 | |||
| ca5793dbea | |||
| 0fdaa8e745 | |||
| 5a71044d5a | |||
| 8d091051af | |||
| 34da1ef9d6 | |||
| e31e35c46b | |||
| 6258dda0f8 | |||
| e6565b2134 | |||
| 2f9ecf9044 | |||
| a74d35582e | |||
| 8886faa019 | |||
| 4bd1b157ae | |||
| 1ecb70e082 | |||
| 9eed16beb4 | |||
| c432a064a4 | |||
| 2d1a92b7cc | |||
| cb31127b32 | |||
| 2beec1f3ea | |||
| 8d531b6436 | |||
| 30993a8bfc | |||
| 2258fb2713 | |||
| a46191b8bf | |||
| 9c4c3e965b | |||
| 31acbe20d3 | |||
| fd52c01e78 | |||
| 6ca5543648 | |||
| 83afcdcf49 | |||
| 59ca0069a6 | |||
| 6d6184500e | |||
| 1c24ec16e2 | |||
| 5efc0033a1 | |||
| c9237cccab | |||
| 02cd68db37 | |||
| e4df5643dc | |||
| 89b62d579f | |||
| 436a16aba6 | |||
| 32d22f464d | |||
| 71b2089384 | |||
| 57aa88a13a | |||
| 5ef35a10cf | |||
| f84aceec3d | |||
| f18009e5d5 | |||
| 83c7750656 | |||
| c477e23fe9 | |||
| 31fb7087f1 | |||
| 6bc477e88f | |||
| 52d6701f8f | |||
| f97634011e | |||
| a4ffc9d5ed | |||
| a86f3e5b81 | |||
| d9e8bbcb10 | |||
| 8b0886ac32 | |||
| aa182dad76 | |||
| 41a1952928 | |||
| 9885d4ebf0 | |||
| 222e080ce7 | |||
| 046409d7c9 | |||
| 5df449bcf3 | |||
| 6017989c4c | |||
| d349974089 | |||
| ccdea6a429 | |||
| fdf11326ef | |||
| 565a80305c | |||
| 57a8122a6b | |||
| bc5517da78 | |||
| ad18f070ae | |||
| e305402212 | |||
| d62b99f543 | |||
| 4d8133eb34 | |||
| 5cba5b9989 | |||
| 31f23123ef | |||
| b9dac6ca5d | |||
| c3f85c8372 | |||
| 7f5d6d9791 | |||
| 96d4cdb7cb | |||
| 9f1f3ab5e3 | |||
| 6e90f17a15 | |||
| 5b654480f4 | |||
| 803447e2a1 | |||
| 99c04a8740 | |||
| e4370d8d3f | |||
| 883cc964ae | |||
| 1d4cee11b7 | |||
| 9f91a7d797 | |||
| 4a6b4fb632 | |||
| 7c730d11c3 | |||
| 21de52ebea | |||
| cab5ddf6ae | |||
| b3657aef2b | |||
| b0f8841217 | |||
| febe335831 | |||
| cbe68ba84c | |||
| 9110b00e2e | |||
| 4b012de7db | |||
| 49370e2175 | |||
| 02a89d8ee8 | |||
| a70efae79b | |||
| 78a681f027 | |||
| 3a85fd767b | |||
| 2ffbe08eb1 | |||
| f9d5e81f0e | |||
| 00d1267bdd | |||
| 001ee34d01 | |||
| db157567fd | |||
| 9e0fab16ff | |||
| a9af4f4ca1 | |||
| 96d682ca49 | |||
| 7056bea9e0 | |||
| 63e13d8e54 | |||
| 81587b3578 | |||
| 663c7cf1d7 | |||
| 8705d018fd | |||
| 8c33a32256 | |||
| 37a720be06 | |||
| aacbdcfc44 | |||
| 794f3d08f4 | |||
| 3147f0536a | |||
| 42de486e94 | |||
| 54c9d7cdb2 | |||
| c8e394f3f0 | |||
| 4b65e6e443 | |||
| 5a6c65c589 | |||
| 75246fb25b | |||
| 0cc1084819 | |||
| 21eedaf76e | |||
| 2656c503a4 | |||
| 2b3457e8d6 | |||
| f5d606c4fc | |||
| 0e38c1728e | |||
| 6faf61552e | |||
| fcf5ec2f77 | |||
| 99819087f1 | |||
| 3956e96e74 | |||
| a0b89a68d9 | |||
| 62014c1094 | |||
| 58dcabffe6 | |||
| c264f74771 | |||
| f53ea60ed4 | |||
| 05027b7c74 | |||
| 3a62e3d188 | |||
| 963d9ee584 | |||
| 12e4fd138b | |||
| 3c5ce9f86c | |||
| 2461d22212 | |||
| 611c6e9c74 | |||
| 38efdb5148 | |||
| 5fdeeabb44 | |||
| b0d19752c6 | |||
| a95a577622 | |||
| ca44a80a42 | |||
| bf841e63bd | |||
| d357227e57 | |||
| 993d703ba0 | |||
| b449b82191 | |||
| bfac6fd85c | |||
| 2575aae945 | |||
| b0191cdf2c | |||
| fc121f0c87 | |||
| fa10b48c71 | |||
| d4db1c6af3 | |||
| f651e2cfca | |||
| 9d9f99c2d1 | |||
| 9c8dda1f9d | |||
| 89521a5134 | |||
| d11355f985 | |||
| 7ccda6e6e9 | |||
| 1de423c78b | |||
| 3943857087 | |||
| 27bb5c5976 | |||
| 3f614cb274 | |||
| 1e407d972f | |||
| 52b3c5fce4 | |||
| 5d53273ef4 | |||
| bf9faa9c28 | |||
| 0356b7f2c3 | |||
| 19c8558152 | |||
| a137db86a4 | |||
| 2a28f04e09 | |||
| 8dfa69fde4 | |||
| 541f014d50 | |||
| 233d375983 | |||
| b09d245dea | |||
| 44deddbbfe | |||
| aa8a2b1769 | |||
| 4cdac180d8 | |||
| d079bf86b1 | |||
| 62b4452057 | |||
| c3ec92a13f | |||
| c3230a68bb | |||
| d9f163f466 | |||
| d0da5af810 | |||
| a2b2ec467a | |||
| 83b3009f0f | |||
| 4ea70f8409 | |||
| 0d2ef02c9e | |||
| 2d7796284b | |||
| 19aa878a08 | |||
| 9f52012443 | |||
| e57e9b6dbb | |||
| 74e8373e34 | |||
| ec2722d465 | |||
| 9e2ea5fdd4 | |||
| 48b4a6a906 | |||
| 92e93682c6 | |||
| 99226b745f | |||
| 4840c7cd78 | |||
| 71ab4a2058 | |||
| a2c09b41bc | |||
| 0ef792ac1e | |||
| 01af28b781 | |||
| 3a7743ffc5 | |||
| 9cc8e52512 | |||
| 698a6b5acf | |||
| 7a51c7fd30 | |||
| 7c3e9f81cb | |||
| 6e3e7dafca | |||
| fca83bf79a | |||
| b8ffb8d463 | |||
| 1dae5bbc95 | |||
| 1a1932b67a | |||
| 8be375e75b | |||
| e63e4232db | |||
| cef04665eb | |||
| 76569b9527 | |||
| 1d46eb8ea3 | |||
| 6b79ac995e | |||
| ee928b034e | |||
| fc5790eb4a | |||
| 5213ffee0e | |||
| 5ebf0215c5 | |||
| 9957da6b93 | |||
| 342cae2dc6 | |||
| d2b26a5f1f | |||
| 9d08c0102e | |||
| a3357547ea | |||
| 7a9decad70 | |||
| c4d0d068e4 | |||
| c03a027240 | |||
| a8d7141c4c | |||
| 3eb704e016 | |||
| 0f06d3b90d | |||
| 589c94aa93 | |||
| 798b742617 | |||
| 11a72ab765 | |||
| 0319149b4d | |||
| 2f823d59b0 | |||
| 981352992b | |||
| 384ea38bd9 | |||
| 268c0963b4 | |||
| 8b481dd41f | |||
| 6f88ba0e6f | |||
| 9e65ecd03e | |||
| 9cb43ef64d | |||
| bb18ece8a4 | |||
| 2ab6474761 | |||
| fe20328ab7 | |||
| d84ac09abd | |||
| 69e6cae0a7 | |||
| 302707f3ce | |||
| 2e2043971b | |||
| e54e218e3b | |||
| bd17fd571f | |||
| 3f6e88b4be | |||
| 28af18ba27 | |||
| 8f1babf346 | |||
| fa25695b74 | |||
| 943b1f82b6 | |||
| b7a09516e7 | |||
| c4031ad65c | |||
| 2eaced4d30 | |||
| bdea2fe94c | |||
| c96ff30876 | |||
| 4c100cffdb | |||
| d6abad908a | |||
| f1129189ea | |||
| 7e84477408 | |||
| 6b86ab5cd0 | |||
| 5074b96cd5 | |||
| 3094ac90b7 | |||
| 35b6067496 | |||
| 5aa20c090b | |||
| 9c371ed8a2 | |||
| f03ab11623 | |||
| 887e61a99d | |||
| 0aca8cab0b | |||
| d08d1f8c45 | |||
| 403ab6e443 | |||
| b8687bc969 | |||
| 9166c9dd35 | |||
| cc52f79e42 | |||
| 59140b458c | |||
| 82981c9663 | |||
| 157b8dd848 | |||
| 1fb669ae1a | |||
| 7d07aa395a | |||
| c2c7070712 | |||
| daf06bb026 | |||
| 5b11b1ba47 | |||
| ee287447c5 | |||
| 257f978ceb | |||
| 8e803bdb02 | |||
| a265242e6e | |||
| 3aa9b31bda | |||
| c692c4770a | |||
| 6ceba56288 | |||
| 4be66f8b88 | |||
| 54a85d98f1 | |||
| 491a5a17f3 | |||
| b3373398e8 | |||
| 0040fef215 | |||
| 1a6e8d297f | |||
| f39487fca9 | |||
| 2596bfe7a7 | |||
| 406bffa8c8 | |||
| 48441b99ef | |||
| ce4717144a | |||
| f59d00d4c7 | |||
| dcfdbf82dd | |||
| 0cb884d501 | |||
| 7bc4020a92 | |||
| 0792195156 | |||
| 83f24ffcfb | |||
| 74ec390770 | |||
| 9014ffcfd8 | |||
| 81af375289 | |||
| d707eab95c | |||
| d64c55ef11 | |||
| 2b1d53fb27 | |||
| bf696f58c8 | |||
| 296bad8ffd | |||
| 94310af30c | |||
| 38c096bf79 | |||
| 696d1b3ed3 | |||
| 17d98724a5 | |||
| 7d7ee1b594 | |||
| 682b4209f2 | |||
| 41ddcbd240 | |||
| 48a7ce3bf2 | |||
| 3bcc4d0d55 | |||
| 8821bca656 | |||
| 56111aa20d | |||
| 5fe8a8342b | |||
| 989109145a | |||
| 23afc8e90c | |||
| 8e18786556 | |||
| 81488adf8b | |||
| e37e9c1214 | |||
| a4828387c1 | |||
| abeac8b12e | |||
| 82e7786e74 | |||
| 0064321323 | |||
| 9e622a1a5f |
@@ -0,0 +1 @@
|
|||||||
|
comment: false
|
||||||
@@ -7,33 +7,41 @@ assignees: ''
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<!--
|
<!-- Hey there, thank you for creating an issue! -->
|
||||||
Hey there, thanks for creating an issue!
|
|
||||||
|
|
||||||
In order to reproduce your issue, we might need to know a little bit more about the environment
|
|
||||||
which you're running `bat` on.
|
|
||||||
|
|
||||||
If you're on Linux or MacOS:
|
|
||||||
Please run the script at https://github.com/sharkdp/bat/blob/master/diagnostics/info.sh and
|
|
||||||
paste the output at the bottom of the bug report.
|
|
||||||
|
|
||||||
If you're on Windows:
|
|
||||||
Please tell us about your Windows Version (e.g. "Windows 10 1908") at the
|
|
||||||
bottom of the bug report.
|
|
||||||
-->
|
|
||||||
|
|
||||||
**What version of `bat` are you using?**
|
|
||||||
[paste the output of `bat --version` here]
|
|
||||||
|
|
||||||
**Describe the bug you encountered:**
|
**Describe the bug you encountered:**
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
**Describe what you expected to happen?**
|
**What did you expect to happen instead?**
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
**How did you install `bat`?**
|
**How did you install `bat`?**
|
||||||
apt-get, homebrew, GitHub release, etc.
|
|
||||||
|
<!-- apt-get, homebrew, GitHub release, etc. -->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[paste the output of `info.sh` here]
|
**bat version and environment**
|
||||||
|
|
||||||
|
<!--
|
||||||
|
In order to reproduce your issue, please add some information about the environment
|
||||||
|
in which you're running bat. To do this, run the full `bat` command that demonstrates
|
||||||
|
the bug, and attach the `--diagnostic` option:
|
||||||
|
|
||||||
|
bat [other options and arguments…] --diagnostic
|
||||||
|
|
||||||
|
Finally, paste the Markdown output here. Please make sure that it does not reveal any
|
||||||
|
personal information.
|
||||||
|
|
||||||
|
|
||||||
|
If you are running bat 0.17.1 or older (where --diagnostic is not available), please
|
||||||
|
run the script at
|
||||||
|
|
||||||
|
https://github.com/sharkdp/bat/blob/master/diagnostics/info.sh
|
||||||
|
|
||||||
|
(click "Raw" to get the actual source code) and paste the Markdown output here. If you
|
||||||
|
are on Windows, please let us know your bat version and your Windows version.
|
||||||
|
-->
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: cargo
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: monthly
|
||||||
|
time: "04:00"
|
||||||
|
timezone: Europe/Berlin
|
||||||
|
ignore:
|
||||||
|
- dependency-name: git2
|
||||||
|
versions:
|
||||||
|
- 0.13.17
|
||||||
|
- package-ecosystem: gitsubmodule
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: monthly
|
||||||
|
time: "04:00"
|
||||||
|
timezone: Europe/Berlin
|
||||||
@@ -0,0 +1,421 @@
|
|||||||
|
name: CICD
|
||||||
|
|
||||||
|
env:
|
||||||
|
MIN_SUPPORTED_RUST_VERSION: "1.45.0"
|
||||||
|
CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
min_version:
|
||||||
|
name: Minimum supported rust version
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- name: Git checkout
|
||||||
|
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: --all-targets --all-features
|
||||||
|
- name: Run tests
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: test
|
||||||
|
|
||||||
|
test_with_new_syntaxes_and_themes:
|
||||||
|
name: Run tests with updated syntaxes and themes
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- name: Git checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: true # we need all syntax and theme submodules
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
default: true
|
||||||
|
profile: minimal
|
||||||
|
- name: Build and install bat
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: install
|
||||||
|
args: --locked --path .
|
||||||
|
- name: Rebuild binary assets (syntaxes and themes)
|
||||||
|
run: bash assets/create.sh
|
||||||
|
- name: Build and install bat with updated assets
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: install
|
||||||
|
args: --locked --path .
|
||||||
|
- name: Run unit tests with new syntaxes and themes
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: test
|
||||||
|
args: --release
|
||||||
|
- name: Run ignored-by-default unit tests with new syntaxes and themes
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: test
|
||||||
|
args: --release -- --ignored
|
||||||
|
- name: Syntax highlighting regression test
|
||||||
|
run: tests/syntax-tests/regression_test.sh
|
||||||
|
- name: List of languages
|
||||||
|
run: bat --list-languages
|
||||||
|
- name: List of themes
|
||||||
|
run: bat --list-themes
|
||||||
|
- name: Check documentation
|
||||||
|
env:
|
||||||
|
RUSTDOCFLAGS: -D warnings
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: doc
|
||||||
|
args: --no-deps --document-private-items --all-features
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: ${{ matrix.job.os }} (${{ matrix.job.target }})
|
||||||
|
runs-on: ${{ matrix.job.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
job:
|
||||||
|
- { os: ubuntu-18.04 , target: arm-unknown-linux-gnueabihf , use-cross: true }
|
||||||
|
- { os: ubuntu-18.04 , target: aarch64-unknown-linux-gnu , use-cross: true }
|
||||||
|
- { os: ubuntu-18.04 , target: i686-unknown-linux-gnu , use-cross: true }
|
||||||
|
- { os: ubuntu-18.04 , target: i686-unknown-linux-musl , use-cross: true }
|
||||||
|
- { os: ubuntu-18.04 , target: x86_64-unknown-linux-gnu }
|
||||||
|
- { os: ubuntu-18.04 , target: x86_64-unknown-linux-musl , use-cross: true }
|
||||||
|
- { os: macos-10.15 , target: x86_64-apple-darwin }
|
||||||
|
# - { os: windows-2019 , target: i686-pc-windows-gnu } ## disabled; error: linker `i686-w64-mingw32-gcc` not found
|
||||||
|
- { os: windows-2019 , target: i686-pc-windows-msvc }
|
||||||
|
- { os: windows-2019 , target: x86_64-pc-windows-gnu }
|
||||||
|
- { os: windows-2019 , target: x86_64-pc-windows-msvc }
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Install prerequisites
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
case ${{ matrix.job.target }} in
|
||||||
|
arm-unknown-linux-gnueabihf) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
|
||||||
|
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
- name: Extract crate information
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "PROJECT_NAME=$(sed -n 's/^name = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
||||||
|
echo "PROJECT_VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" >> $GITHUB_ENV
|
||||||
|
echo "PROJECT_MAINTAINER=$(sed -n 's/^authors = \["\(.*\)"\]/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
||||||
|
echo "PROJECT_HOMEPAGE=$(sed -n 's/^homepage = "\(.*\)"/\1/p' Cargo.toml)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
target: ${{ matrix.job.target }}
|
||||||
|
override: true
|
||||||
|
profile: minimal # minimal component installation (ie, no documentation)
|
||||||
|
|
||||||
|
- name: Show version information (Rust, cargo, GCC)
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
gcc --version || true
|
||||||
|
rustup -V
|
||||||
|
rustup toolchain list
|
||||||
|
rustup default
|
||||||
|
cargo -V
|
||||||
|
rustc -V
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: build
|
||||||
|
args: --release --target=${{ matrix.job.target }}
|
||||||
|
|
||||||
|
- name: Strip debug information from executable
|
||||||
|
id: strip
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# Figure out suffix of binary
|
||||||
|
EXE_suffix=""
|
||||||
|
case ${{ matrix.job.target }} in
|
||||||
|
*-pc-windows-*) EXE_suffix=".exe" ;;
|
||||||
|
esac;
|
||||||
|
|
||||||
|
# Figure out what strip tool to use if any
|
||||||
|
STRIP="strip"
|
||||||
|
case ${{ matrix.job.target }} in
|
||||||
|
arm-unknown-linux-gnueabihf) STRIP="arm-linux-gnueabihf-strip" ;;
|
||||||
|
aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;;
|
||||||
|
*-pc-windows-msvc) STRIP="" ;;
|
||||||
|
esac;
|
||||||
|
|
||||||
|
# Setup paths
|
||||||
|
BIN_DIR="${{ env.CICD_INTERMEDIATES_DIR }}/stripped-release-bin/"
|
||||||
|
mkdir -p "${BIN_DIR}"
|
||||||
|
BIN_NAME="${{ env.PROJECT_NAME }}${EXE_suffix}"
|
||||||
|
BIN_PATH="${BIN_DIR}/${BIN_NAME}"
|
||||||
|
|
||||||
|
# Copy the release build binary to the result location
|
||||||
|
cp "target/${{ matrix.job.target }}/release/${BIN_NAME}" "${BIN_DIR}"
|
||||||
|
|
||||||
|
# Also strip if possible
|
||||||
|
if [ -n "${STRIP}" ]; then
|
||||||
|
"${STRIP}" "${BIN_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Let subsequent steps know where to find the (stripped) bin
|
||||||
|
echo ::set-output name=BIN_PATH::${BIN_PATH}
|
||||||
|
echo ::set-output name=BIN_NAME::${BIN_NAME}
|
||||||
|
|
||||||
|
- name: Set testing options
|
||||||
|
id: test-options
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
# test only library unit tests and binary for arm-type targets
|
||||||
|
unset CARGO_TEST_OPTIONS
|
||||||
|
unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${PROJECT_NAME}" ;; esac;
|
||||||
|
echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: test
|
||||||
|
args: --target=${{ matrix.job.target }} ${{ steps.test-options.outputs.CARGO_TEST_OPTIONS}}
|
||||||
|
|
||||||
|
- name: Run bat
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: run
|
||||||
|
args: --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs
|
||||||
|
|
||||||
|
- name: Show diagnostics (bat --diagnostic)
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: run
|
||||||
|
args: --target=${{ matrix.job.target }} -- --paging=never --color=always --theme=ansi Cargo.toml src/config.rs --diagnostic
|
||||||
|
|
||||||
|
- name: "Feature check: regex-onig"
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: check
|
||||||
|
args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
|
||||||
|
|
||||||
|
- name: "Feature check: regex-onig,git"
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: check
|
||||||
|
args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
|
||||||
|
|
||||||
|
- name: "Feature check: regex-onig,paging"
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: check
|
||||||
|
args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
|
||||||
|
|
||||||
|
- name: "Feature check: regex-onig,git,paging"
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
use-cross: ${{ matrix.job.use-cross }}
|
||||||
|
command: check
|
||||||
|
args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
|
||||||
|
|
||||||
|
- name: Create tarball
|
||||||
|
id: package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
|
||||||
|
PKG_BASENAME=${PROJECT_NAME}-v${PROJECT_VERSION}-${{ matrix.job.target }}
|
||||||
|
PKG_NAME=${PKG_BASENAME}${PKG_suffix}
|
||||||
|
echo ::set-output name=PKG_NAME::${PKG_NAME}
|
||||||
|
|
||||||
|
PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
|
||||||
|
ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
|
||||||
|
mkdir -p "${ARCHIVE_DIR}"
|
||||||
|
mkdir -p "${ARCHIVE_DIR}/autocomplete"
|
||||||
|
|
||||||
|
# Binary
|
||||||
|
cp "${{ steps.strip.outputs.BIN_PATH }}" "$ARCHIVE_DIR"
|
||||||
|
|
||||||
|
# Man page
|
||||||
|
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
|
||||||
|
|
||||||
|
# README, LICENSE and CHANGELOG files
|
||||||
|
cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
|
||||||
|
|
||||||
|
# Autocompletion files
|
||||||
|
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
|
||||||
|
cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
|
||||||
|
|
||||||
|
# base compressed package
|
||||||
|
pushd "${PKG_STAGING}/" >/dev/null
|
||||||
|
case ${{ matrix.job.target }} in
|
||||||
|
*-pc-windows-*) 7z -y a "${PKG_NAME}" "${PKG_BASENAME}"/* | tail -2 ;;
|
||||||
|
*) tar czf "${PKG_NAME}" "${PKG_BASENAME}"/* ;;
|
||||||
|
esac;
|
||||||
|
popd >/dev/null
|
||||||
|
|
||||||
|
# Let subsequent steps know where to find the compressed package
|
||||||
|
echo ::set-output name=PKG_PATH::"${PKG_STAGING}/${PKG_NAME}"
|
||||||
|
|
||||||
|
- name: Create Debian package
|
||||||
|
id: debian-package
|
||||||
|
shell: bash
|
||||||
|
if: startsWith(matrix.job.os, 'ubuntu')
|
||||||
|
run: |
|
||||||
|
COPYRIGHT_YEARS="2018 - "$(date "+%Y")
|
||||||
|
DPKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/debian-package"
|
||||||
|
DPKG_DIR="${DPKG_STAGING}/dpkg"
|
||||||
|
mkdir -p "${DPKG_DIR}"
|
||||||
|
|
||||||
|
DPKG_BASENAME=${PROJECT_NAME}
|
||||||
|
DPKG_CONFLICTS=${PROJECT_NAME}-musl
|
||||||
|
case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${PROJECT_NAME}-musl ; DPKG_CONFLICTS=${PROJECT_NAME} ;; esac;
|
||||||
|
DPKG_VERSION=${PROJECT_VERSION}
|
||||||
|
|
||||||
|
unset DPKG_ARCH
|
||||||
|
case ${{ matrix.job.target }} in
|
||||||
|
aarch64-*-linux-*) DPKG_ARCH=arm64 ;;
|
||||||
|
arm-*-linux-*hf) DPKG_ARCH=armhf ;;
|
||||||
|
i686-*-linux-*) DPKG_ARCH=i686 ;;
|
||||||
|
x86_64-*-linux-*) DPKG_ARCH=amd64 ;;
|
||||||
|
*) DPKG_ARCH=notset ;;
|
||||||
|
esac;
|
||||||
|
|
||||||
|
DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb"
|
||||||
|
echo ::set-output name=DPKG_NAME::${DPKG_NAME}
|
||||||
|
|
||||||
|
# Binary
|
||||||
|
install -Dm755 "${{ steps.strip.outputs.BIN_PATH }}" "${DPKG_DIR}/usr/bin/${{ steps.strip.outputs.BIN_NAME }}"
|
||||||
|
|
||||||
|
# Man page
|
||||||
|
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
|
||||||
|
gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
|
||||||
|
|
||||||
|
# Autocompletion files
|
||||||
|
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
|
||||||
|
install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/vendor-completions/_${{ env.PROJECT_NAME }}"
|
||||||
|
|
||||||
|
# README and LICENSE
|
||||||
|
install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/README.md"
|
||||||
|
install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/LICENSE-MIT"
|
||||||
|
install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/LICENSE-APACHE"
|
||||||
|
install -Dm644 "CHANGELOG.md" "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/changelog"
|
||||||
|
gzip -n --best "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/changelog"
|
||||||
|
|
||||||
|
cat > "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright" <<EOF
|
||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: ${{ env.PROJECT_NAME }}
|
||||||
|
Source: ${{ env.PROJECT_HOMEPAGE }}
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: ${{ env.PROJECT_MAINTAINER }}
|
||||||
|
Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
|
||||||
|
License: Apache-2.0 or MIT
|
||||||
|
|
||||||
|
License: Apache-2.0
|
||||||
|
On Debian systems, the complete text of the Apache-2.0 can be found in the
|
||||||
|
file /usr/share/common-licenses/Apache-2.0.
|
||||||
|
|
||||||
|
License: MIT
|
||||||
|
Permission is hereby granted, free of charge, to any
|
||||||
|
person obtaining a copy of this software and associated
|
||||||
|
documentation files (the "Software"), to deal in the
|
||||||
|
Software without restriction, including without
|
||||||
|
limitation the rights to use, copy, modify, merge,
|
||||||
|
publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software
|
||||||
|
is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
.
|
||||||
|
The above copyright notice and this permission notice
|
||||||
|
shall be included in all copies or substantial portions
|
||||||
|
of the Software.
|
||||||
|
.
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||||
|
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
||||||
|
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
||||||
|
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
||||||
|
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
EOF
|
||||||
|
chmod 644 "${DPKG_DIR}/usr/share/doc/${DPKG_BASENAME}/copyright"
|
||||||
|
|
||||||
|
# control file
|
||||||
|
mkdir -p "${DPKG_DIR}/DEBIAN"
|
||||||
|
cat > "${DPKG_DIR}/DEBIAN/control" <<EOF
|
||||||
|
Package: ${DPKG_BASENAME}
|
||||||
|
Version: ${DPKG_VERSION}
|
||||||
|
Section: utils
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: ${{ env.PROJECT_MAINTAINER }}
|
||||||
|
Homepage: ${{ env.PROJECT_HOMEPAGE }}
|
||||||
|
Architecture: ${DPKG_ARCH}
|
||||||
|
Provides: ${{ env.PROJECT_NAME }}
|
||||||
|
Conflicts: ${DPKG_CONFLICTS}
|
||||||
|
Description: cat(1) clone with wings.
|
||||||
|
A cat(1) clone with syntax highlighting and Git integration.
|
||||||
|
EOF
|
||||||
|
|
||||||
|
DPKG_PATH="${DPKG_STAGING}/${DPKG_NAME}"
|
||||||
|
echo ::set-output name=DPKG_PATH::${DPKG_PATH}
|
||||||
|
|
||||||
|
# build dpkg
|
||||||
|
fakeroot dpkg-deb --build "${DPKG_DIR}" "${DPKG_PATH}"
|
||||||
|
|
||||||
|
- name: "Artifact upload: tarball"
|
||||||
|
uses: actions/upload-artifact@master
|
||||||
|
with:
|
||||||
|
name: ${{ steps.package.outputs.PKG_NAME }}
|
||||||
|
path: ${{ steps.package.outputs.PKG_PATH }}
|
||||||
|
|
||||||
|
- name: "Artifact upload: Debian package"
|
||||||
|
uses: actions/upload-artifact@master
|
||||||
|
if: steps.debian-package.outputs.DPKG_NAME
|
||||||
|
with:
|
||||||
|
name: ${{ steps.debian-package.outputs.DPKG_NAME }}
|
||||||
|
path: ${{ steps.debian-package.outputs.DPKG_PATH }}
|
||||||
|
|
||||||
|
- name: Check for release
|
||||||
|
id: is-release
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
|
||||||
|
echo ::set-output name=IS_RELEASE::${IS_RELEASE}
|
||||||
|
|
||||||
|
- name: Publish archives and packages
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
if: steps.is-release.outputs.IS_RELEASE
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
${{ steps.package.outputs.PKG_PATH }}
|
||||||
|
${{ steps.debian-package.outputs.DPKG_PATH }}
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
@@ -3,5 +3,6 @@
|
|||||||
|
|
||||||
# Generated files
|
# Generated files
|
||||||
/assets/completions/bat.fish
|
/assets/completions/bat.fish
|
||||||
|
/assets/completions/bat.zsh
|
||||||
/assets/manual/bat.1
|
/assets/manual/bat.1
|
||||||
/assets/metadata.yaml
|
/assets/metadata.yaml
|
||||||
|
|||||||
+55
-16
@@ -61,18 +61,12 @@
|
|||||||
[submodule "assets/syntaxes/Puppet"]
|
[submodule "assets/syntaxes/Puppet"]
|
||||||
path = assets/syntaxes/02_Extra/Puppet
|
path = assets/syntaxes/02_Extra/Puppet
|
||||||
url = https://github.com/russCloak/SublimePuppet
|
url = https://github.com/russCloak/SublimePuppet
|
||||||
[submodule "assets/syntaxes/CSV"]
|
|
||||||
path = assets/syntaxes/02_Extra/CSV
|
|
||||||
url = https://github.com/wadetb/Sublime-Text-Advanced-CSV
|
|
||||||
[submodule "assets/themes/onehalf"]
|
[submodule "assets/themes/onehalf"]
|
||||||
path = assets/themes/onehalf
|
path = assets/themes/onehalf
|
||||||
url = https://github.com/sonph/onehalf
|
url = https://github.com/sonph/onehalf
|
||||||
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
[submodule "assets/syntaxes/JavaScript (Babel)"]
|
||||||
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
path = assets/syntaxes/02_Extra/JavaScript (Babel)
|
||||||
url = https://github.com/babel/babel-sublime
|
url = https://github.com/babel/babel-sublime
|
||||||
[submodule "assets/syntaxes/Cabal"]
|
|
||||||
path = assets/syntaxes/02_Extra/Cabal
|
|
||||||
url = https://github.com/SublimeHaskell/SublimeHaskell
|
|
||||||
[submodule "assets/syntaxes/Dart"]
|
[submodule "assets/syntaxes/Dart"]
|
||||||
path = assets/syntaxes/02_Extra/Dart
|
path = assets/syntaxes/02_Extra/Dart
|
||||||
url = https://github.com/guillermooo/dart-sublime-bundle
|
url = https://github.com/guillermooo/dart-sublime-bundle
|
||||||
@@ -97,16 +91,9 @@
|
|||||||
[submodule "assets/themes/sublime-snazzy"]
|
[submodule "assets/themes/sublime-snazzy"]
|
||||||
path = assets/themes/sublime-snazzy
|
path = assets/themes/sublime-snazzy
|
||||||
url = https://github.com/greggb/sublime-snazzy
|
url = https://github.com/greggb/sublime-snazzy
|
||||||
[submodule "assets/syntaxes/AsciiDoc"]
|
|
||||||
path = assets/syntaxes/02_Extra/AsciiDoc
|
|
||||||
url = https://github.com/SublimeText/AsciiDoc.git
|
|
||||||
[submodule "assets/syntaxes/Assembly (ARM)"]
|
[submodule "assets/syntaxes/Assembly (ARM)"]
|
||||||
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
path = assets/syntaxes/02_Extra/Assembly (ARM)
|
||||||
url = https://github.com/tvi/Sublime-ARM-Assembly
|
url = https://github.com/tvi/Sublime-ARM-Assembly
|
||||||
[submodule "assets/syntaxes/syslog-syntax"]
|
|
||||||
path = assets/syntaxes/02_Extra/Syslog
|
|
||||||
url = https://github.com/caos21/syslog-syntax.git
|
|
||||||
branch = master
|
|
||||||
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
[submodule "assets/syntaxes/protobuf-syntax-highlighting"]
|
||||||
path = assets/syntaxes/02_Extra/Protobuf
|
path = assets/syntaxes/02_Extra/Protobuf
|
||||||
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
url = https://github.com/VcamX/protobuf-syntax-highlighting.git
|
||||||
@@ -166,9 +153,6 @@
|
|||||||
[submodule "assets/themes/Nord-sublime"]
|
[submodule "assets/themes/Nord-sublime"]
|
||||||
path = assets/themes/Nord-sublime
|
path = assets/themes/Nord-sublime
|
||||||
url = https://github.com/crabique/Nord-plist.git
|
url = https://github.com/crabique/Nord-plist.git
|
||||||
[submodule "assets/themes/solarized-sublime"]
|
|
||||||
path = assets/themes/solarized-sublime
|
|
||||||
url = https://github.com/paulcpederson/solarized-sublime.git
|
|
||||||
[submodule "assets/syntaxes/Vue"]
|
[submodule "assets/syntaxes/Vue"]
|
||||||
path = assets/syntaxes/02_Extra/Vue
|
path = assets/syntaxes/02_Extra/Vue
|
||||||
url = https://github.com/vuejs/vue-syntax-highlight.git
|
url = https://github.com/vuejs/vue-syntax-highlight.git
|
||||||
@@ -179,3 +163,58 @@
|
|||||||
[submodule "assets/syntaxes/02_Extra/Stylus"]
|
[submodule "assets/syntaxes/02_Extra/Stylus"]
|
||||||
path = assets/syntaxes/02_Extra/Stylus
|
path = assets/syntaxes/02_Extra/Stylus
|
||||||
url = https://github.com/billymoon/Stylus
|
url = https://github.com/billymoon/Stylus
|
||||||
|
[submodule "assets/themes/Solarized"]
|
||||||
|
path = assets/themes/Solarized
|
||||||
|
url = https://github.com/braver/Solarized
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Fortran"]
|
||||||
|
path = assets/syntaxes/02_Extra/Fortran
|
||||||
|
url = https://github.com/315234/SublimeFortran
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Email"]
|
||||||
|
path = assets/syntaxes/02_Extra/Email
|
||||||
|
url = https://github.com/mariozaizar/email.sublime-syntax.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/QML"]
|
||||||
|
path = assets/syntaxes/02_Extra/QML
|
||||||
|
url = https://github.com/skozlovf/Sublime-QML
|
||||||
|
[submodule "assets/syntaxes/02_Extra/AsciiDoc"]
|
||||||
|
path = assets/syntaxes/02_Extra/AsciiDoc
|
||||||
|
url = https://github.com/asciidoctor/sublimetext-asciidoc.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/GLSL"]
|
||||||
|
path = assets/syntaxes/02_Extra/GLSL
|
||||||
|
url = https://github.com/euler0/sublime-glsl
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Nginx"]
|
||||||
|
path = assets/syntaxes/02_Extra/Nginx
|
||||||
|
url = https://github.com/brandonwamboldt/sublime-nginx
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Apache"]
|
||||||
|
path = assets/syntaxes/02_Extra/Apache
|
||||||
|
url = https://github.com/colinta/ApacheConf.tmLanguage
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Ninja"]
|
||||||
|
path = assets/syntaxes/02_Extra/Ninja
|
||||||
|
url = https://github.com/pope/SublimeNinja.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Svelte"]
|
||||||
|
path = assets/syntaxes/02_Extra/Svelte
|
||||||
|
url = https://github.com/corneliusio/svelte-sublime
|
||||||
|
[submodule "assets/themes/Coldark"]
|
||||||
|
path = assets/themes/Coldark
|
||||||
|
url = https://github.com/ArmandPhilippot/coldark-bat.git
|
||||||
|
[submodule "assets/themes/gruvbox"]
|
||||||
|
path = assets/themes/gruvbox
|
||||||
|
url = https://github.com/subnut/gruvbox-tmTheme.git
|
||||||
|
branch = bat-source
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Lean"]
|
||||||
|
path = assets/syntaxes/02_Extra/Lean
|
||||||
|
url = https://github.com/leanprover/vscode-lean.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/Zig"]
|
||||||
|
path = assets/syntaxes/02_Extra/Zig
|
||||||
|
url = https://github.com/ziglang/sublime-zig-language.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/gnuplot"]
|
||||||
|
path = assets/syntaxes/02_Extra/gnuplot
|
||||||
|
url = https://github.com/hesstobi/sublime_gnuplot
|
||||||
|
[submodule "assets/syntaxes/02_Extra/SystemVerilog"]
|
||||||
|
path = assets/syntaxes/02_Extra/SystemVerilog
|
||||||
|
url = https://github.com/TheClams/SystemVerilog.git
|
||||||
|
[submodule "assets/themes/visual-studio-dark-plus"]
|
||||||
|
path = assets/themes/visual-studio-dark-plus
|
||||||
|
url = https://github.com/vidann1/visual-studio-dark-plus.git
|
||||||
|
[submodule "assets/syntaxes/02_Extra/SublimeEthereum"]
|
||||||
|
path = assets/syntaxes/02_Extra/SublimeEthereum
|
||||||
|
url = https://github.com/davidhq/SublimeEthereum.git
|
||||||
-106
@@ -1,106 +0,0 @@
|
|||||||
language: rust
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
# Stable channel.
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env: TARGET=x86_64-unknown-linux-gnu
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env:
|
|
||||||
- TARGET=x86_64-unknown-linux-musl
|
|
||||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env: TARGET=i686-unknown-linux-gnu
|
|
||||||
- os: osx
|
|
||||||
rust: stable
|
|
||||||
env: TARGET=x86_64-apple-darwin
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env:
|
|
||||||
- TARGET=arm-unknown-linux-gnueabihf
|
|
||||||
- CC_arm_unknown_linux_gnueabihf=/usr/bin/arm-linux-gnueabihf-gcc-4.8
|
|
||||||
- CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc-4.8
|
|
||||||
- os: linux
|
|
||||||
rust: stable
|
|
||||||
env:
|
|
||||||
- TARGET=aarch64-unknown-linux-gnu
|
|
||||||
- CC_aarch64-unknown-linux-gnu=/usr/bin/aarch64-linux-gnu-gcc-4.8
|
|
||||||
- CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc-4.8
|
|
||||||
|
|
||||||
# Minimum Rust supported channel.
|
|
||||||
- os: linux
|
|
||||||
rust: 1.37.0
|
|
||||||
env: TARGET=x86_64-unknown-linux-gnu
|
|
||||||
- os: linux
|
|
||||||
rust: 1.37.0
|
|
||||||
env:
|
|
||||||
- TARGET=x86_64-unknown-linux-musl
|
|
||||||
- CC_x86_64_unknown_linux_musl=/usr/bin/musl-gcc
|
|
||||||
- os: osx
|
|
||||||
rust: 1.37.0
|
|
||||||
env: TARGET=x86_64-apple-darwin
|
|
||||||
|
|
||||||
# Disable nightly for now
|
|
||||||
# # Code formatting check
|
|
||||||
# - os: linux
|
|
||||||
# rust: nightly
|
|
||||||
# # skip the global install step
|
|
||||||
# install:
|
|
||||||
# - cargo install --debug --force rustfmt-nightly
|
|
||||||
# script: cargo fmt -- --check
|
|
||||||
|
|
||||||
sudo: required
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- ci/before_install.bash
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
# Default target on travis-ci.
|
|
||||||
# Used as conditional check in the install stage
|
|
||||||
- HOST=x86_64-unknown-linux-gnu
|
|
||||||
# Used on the deployment script
|
|
||||||
- PROJECT_NAME=bat
|
|
||||||
|
|
||||||
install:
|
|
||||||
# prevent target re-add error from rustup
|
|
||||||
- if [[ $TRAVIS_OS_NAME = linux && $HOST != $TARGET ]]; then rustup target add $TARGET; fi
|
|
||||||
|
|
||||||
script:
|
|
||||||
- ci/script.bash
|
|
||||||
|
|
||||||
before_deploy:
|
|
||||||
- bash ci/before_deploy.bash
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
provider: releases
|
|
||||||
# NOTE updating the `api_key.secure`
|
|
||||||
# - go to: https://github.com/settings/tokens/new
|
|
||||||
# - generate new token using `public_repo` scope
|
|
||||||
# - encrypt it using: `travis encrypt API_KEY_HERE`
|
|
||||||
# - paste the output below
|
|
||||||
api_key:
|
|
||||||
secure: "GZL8nYk+/MZGEqejpP0UMMGVmwUEdxiF9CflFIGccu+/tznDyHnHOpyJmbH3M5IKWIxa7xFgqOE8pHuD4oQXt4mzyJGB0KMKKEFLW7ckbTYKya5bw0heKznaqGnS0Yz+vpfqYR25eiPFYCz7mDsGsCzH5QZqt3cdn9MDQGu1D0IaxPjuBNH3T9kBblR0ifBd3Diy0JYhiVcMSI3V1rkel18F1yBHO2GQ95hkWxVgjANQnefq5+zdzbx4ki539ewYENShA8N0w6ULJVY9LmWRWJIp90ggOD3JCH6Nz/fBpYBqwfABO6Dr7Csw7IRm7pM4IVkFZS1taiDYFX9thxZh3UTmI4YYtSTPxH9NGV47kxPipbf4vAXFwW+1VcHKMpBzz+5IVsHnk1Pfx9/GZsXbqXM3PUWCStec36Xtqh5vQapDKEg9khkEs4b1X7/E73gvpRuQl9gbnyufSVWgDsXIWqM+0aDbqQz1FpLmVxz6eij0cB9vR+8kbNoe/CEPHPO9ZllvAHseukOeHPzSBd8rILORXaaGmQausXz2wWgSsffUSYz4705P8joI0zFCfmkHjL+kA1ZUx5SxLCc1ID7CFFZChhAxHoPL7xc21snswwr8QeheERdwvuzKNaerBGZEw8dmMMx98YkjftIj65DDySr2mRZuufBQeQpmMhFyIT4="
|
|
||||||
# for uploading multiple files
|
|
||||||
file_glob: true
|
|
||||||
# NOTE explanation on each env variable
|
|
||||||
# - PROJECT_NAME: name of the project, set on the `env.global` above
|
|
||||||
# - TRAVIS_TAG: tag name that the build is being deployed for, usually the version number
|
|
||||||
# - TARGET: target triple of the build
|
|
||||||
file:
|
|
||||||
- $PROJECT_NAME-$TRAVIS_TAG-$TARGET.*
|
|
||||||
- $PROJECT_NAME*.deb
|
|
||||||
# don't delete artifacts from previous stage
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
# deploy only if we push a tag
|
|
||||||
tags: true
|
|
||||||
# deploy only on stable channel that has TARGET env variable sets
|
|
||||||
condition: $TRAVIS_RUST_VERSION = stable && $TARGET != ""
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email:
|
|
||||||
on_success: never
|
|
||||||
+252
-11
@@ -1,15 +1,256 @@
|
|||||||
# Upcoming release
|
# unreleased
|
||||||
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
## `bat` as a library
|
|
||||||
## New syntaxes
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
|
||||||
## New themes
|
## New themes
|
||||||
|
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Mouse support and screen clearing broken for `less` versions with minor version number (581.2), see #1629 and #1639 (@aswild)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- `Input::ordinary_file` and `Input::with_name` now accept `Path` rather than `OsStr` see #1571 (@matklad)
|
||||||
|
- The `LESS` environment variable is now included in `bat --diagnostic`, see #1589 (@Enselic)
|
||||||
|
- Increased min. required Rust version to 1.45
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Improved the Syslog syntax highlighting, see #1606 (@keith-hall)
|
||||||
|
- Replaced "Advanced CSV" with a custom CSV syntax definition written especially for `bat`; see #1574 (@keith-hall)
|
||||||
|
- Added SystemVerilog file syntax, see #1580 (@SeanMcLoughlin)
|
||||||
|
- Added Solidity and Vyper syntax, see #1602 (@Ersikan)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Dark+ VS Code theme, see #1588 and #1598 (@PatriotRossii)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# v0.18.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Use a pager when `bat --list-languages` is called, see #1394 (@stku1985)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- If the last line doesn't end with a newline character, don't add it if `--style=plain`, see #1438 (@Enselic)
|
||||||
|
- Only print themes hint in interactive mode (`bat --list-themes`), see #1439 (@rsteube)
|
||||||
|
- Make ./tests/syntax-tests/regression_test.sh work on recent versions of macOS, see #1443 (@Enselic)
|
||||||
|
- VimL syntax highlighting fix, see #1450 (@esensar)
|
||||||
|
- Print an 'Invalid syntax theme settings' error message if a custom theme is broken, see #614 (@Enselic)
|
||||||
|
- If plain mode is set and wrap is not explicitly opted in, long lines will no be truncated, see #1426
|
||||||
|
- If `PAGER` (but not `BAT_PAGER` or `--pager`) is `more` or `most`, silently use `less` instead to ensure support for colors, see #1063 (@Enselic)
|
||||||
|
- If `PAGER` is `bat`, silently use `less` to prevent recursion. For `BAT_PAGER` or `--pager`, exit with error, see #1413 (@Enselic)
|
||||||
|
- Manpage highlighting fix, see #1511 (@keith-hall)
|
||||||
|
- `BAT_CONFIG_PATH` ignored by `bat` if non-existent, see #1550 (@sharkdp)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Performance improvements, see #1421 (@LovecraftianHorror)
|
||||||
|
- Added a new `--diagnostic` option to collect information for bug reports, see #1459 (@sharkdp)
|
||||||
|
- Modified default theme colors to differentiate between a JSON key and a string value, see #1400 (@keith-hall)
|
||||||
|
- Upped min required Rust version to 1.42
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Added Zig syntax, see #1470 (@paulsmith)
|
||||||
|
- Added Lean syntax, see #1446 (@Julian)
|
||||||
|
- Added `.resource` extension for Robot Framework files, see #1386
|
||||||
|
- Added `gnuplot` syntax, see #1431 (@sharkdp)
|
||||||
|
- Highlight *.pac (Proxy auto-config) files as JavaScript, see #1515 (@sharkdp)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- `ansi` replaces `ansi-dark` and `ansi-light`, see #1104 and #1412 (@mk12). **Breaking change:** users that were previously using one of the `ansi-*` themes should switch to `ansi`.
|
||||||
|
- The Gruvbox theme has been updated, see #1291 (@j0hnmeow). **Breaking change:** users that were previously using `gruvbox` or `gruvbox-white` should update and use `gruvbox-dark`/`gruvbox-light` instead.
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- The following `PrettyPrinter` methods have been removed (they were previously deprecated):
|
||||||
|
- `input_stdin_with_name`
|
||||||
|
- `input_from_bytes_with_name`
|
||||||
|
- `input_from_reader_with_name`
|
||||||
|
- `vcs_modification_markers` (if the `git` feature is not enabled)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.17.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Running `bat` without arguments fails ("output file is also an input"), see #1396
|
||||||
|
|
||||||
|
|
||||||
|
# v0.17.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Added a new `--style` value, `rule`, which adds a simple horizontal ruled line between files, see #1276 (@tommilligan)
|
||||||
|
- Pass `-S` ("chop long lines") to `less` if `--wrap=never` is set in `bat`, see #1255 (@gahag)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Detect infinite loop when input and output are the same, see #1193 and #1197 (@niklasmohrin)
|
||||||
|
- Throw an error when `bat` is being used as `pager`, see #1343 (@adrian-rivera)
|
||||||
|
- Bash syntax highlighting not selected for `*.ebuild` and `*.eclass` files, see #1292 (@sharkdp)
|
||||||
|
- Fix `zsh` completion when using `-p`, see #1320 (@xzfc)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add note to refer to see detailed help with `--help` (and vice versa with `-h`), see #1215 (@henil)
|
||||||
|
- Add a `Contributors` section to `README`, see #1348 (@adrian-rivera)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Manpage syntax highlighting has been improved, see #1315 (@keith-hall)
|
||||||
|
- Add Svelte file syntax, see #1285 (@kjmph)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Coldark, see #1329 (@armandphilippot)
|
||||||
|
|
||||||
|
|
||||||
|
# v0.16.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Added support for the `NO_COLOR` environment variable, see #1021 and #1031 (@eth-p)
|
||||||
|
- Added `-P` short flag to disable paging, see #1075 and #1082 (@LordFlashmeow)
|
||||||
|
- Added `--force-colorization`/`-f` flag to provide an alias for forced color and decoration output, see #1141 (@alexanderkarlis)
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fixed non-printable characters display for redirected output, see #1061 (@gsomix)
|
||||||
|
- Handle file extension conflicts in `--list-languages`, see #1076 and #1135 (@Kienyew)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Switched to "·" (U+00B7) Middle Dot from "•" (U+2022) Bullet for non-printing spaces, see #1056 and #1100 (@LordFlashmeow)
|
||||||
|
- Added zsh shell completion script, see #1136 (@Kienyew)
|
||||||
|
- Improved `--help` text (@sharkdp)
|
||||||
|
- Added custom languages/themes sections to manpage (@eth-p)
|
||||||
|
|
||||||
|
## Syntaxes
|
||||||
|
|
||||||
|
- Update AsciiDoc syntax, see #1034 (@rxt1077)
|
||||||
|
- GLSL (@caioalonso)
|
||||||
|
- Add Nginx and Apache config file syntax, see #1137 (@kjmph, @niklasmohrin)
|
||||||
|
- Use `fstab` syntax for `crypttab` files, see #1073 (@sharkdp)
|
||||||
|
- Support syntax highlighting for files in `$XDG_CONFIG_HOME/git/`, see #1191 (@ahmedelgabri)
|
||||||
|
|
||||||
|
## New themes
|
||||||
|
|
||||||
|
- Gruvbox, see #1069 (@kyleondy)
|
||||||
|
- base16-256 for [base16-shell](https://github.com/chriskempson/base16-shell) users, see #1111 (@mk12)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- Add APIs to provide `Input` descriptions with `InputDescription` (@eth-p)
|
||||||
|
- Add function to directly provide `Input`s to `PrettyPrinter` (@eth-p)
|
||||||
|
- **Breaking:** `Input::theme_preview_file` is no longer available. (@eth-p)
|
||||||
|
|
||||||
## Packaging
|
## Packaging
|
||||||
|
|
||||||
|
- Removed build dependency on `liquid` (@sharkdp).
|
||||||
|
|
||||||
|
# v0.15.4
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Added missing Solarized themes, see #1027
|
||||||
|
- Fixed highlighting bug in Haskell source files, see #1026
|
||||||
|
|
||||||
|
# v0.15.3
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Cannot run `bat` with relative paths, see #1022
|
||||||
|
- bat mishighlights Users that start with digits in SSH config, see #984
|
||||||
|
|
||||||
|
## New syntaxes
|
||||||
|
|
||||||
|
- SML, see #1005 (@kopecs)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Some syntaxes and themes have been updated to the latest version
|
||||||
|
|
||||||
|
# v0.15.2
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix syntax detection for files called 'rails', see #1008
|
||||||
|
- Fix potential errors with syntax detection for symlinked files, see #1001
|
||||||
|
- `--map-syntax` doesn't work with names provided through `--file-name` (@eth-p)
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
- Add padding above headers when not using a grid, see #968 and #981 (@pt2121)
|
||||||
|
- bat now prints an error if an invalid syntax is specified via `-l` or `--map-syntax`, see #1004 (@eth-p)
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- `PrettyPrinter::vcs_modification_markers` has been marked deprecated when building without the `git` feature, see #997 and #1020 (@eth-p, @sharkdp)
|
||||||
|
|
||||||
|
## Packaging
|
||||||
|
|
||||||
|
- Compilation problems with `onig_sys` on various platforms have been resolved by upgrading to `syntect 4.2`, which includes a new `onig` version that allows to build `onig_sys` without the `bindgen` dependency. This removes the need for `libclang(-dev)` to be installed to compile `bat`. Package maintainers might want to remove `clang` as a build dependency. See #650 for more details.
|
||||||
|
|
||||||
|
# v0.15.1
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fix highlighting of Markdown files, see #963 and #977
|
||||||
|
- Fix `base16` theme (was broken since in v0.14), see #972, #934 and #979 (@mk12).
|
||||||
|
Users suffering from #865 ("no color for bat in ssh from a Windows client") can use the `ansi-dark` and `ansi-light` themes from now on.
|
||||||
|
|
||||||
|
## New syntaxes
|
||||||
|
|
||||||
|
- Fortran, see #957
|
||||||
|
- Email (@mariozaizar)
|
||||||
|
- QML, see #962 (@pylipp)
|
||||||
|
|
||||||
|
# v0.15.0
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Add a new `--diff`/`-d` option that can be used to only show lines surrounding
|
||||||
|
Git changes, i.e. added, removed or modified lines. The amount of additional
|
||||||
|
context can be controlled with `--diff-context=N`. See #23 and #940
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Error message printed in the middle of the output for another file, see #946
|
||||||
|
- Performance improvements when using custom caches (via `bat cache --build`): the `bat` startup time should now be twice as fast (@lzutao).
|
||||||
|
|
||||||
|
## Themes
|
||||||
|
|
||||||
|
- Updated version of the Solarized dark/light themes, see #941
|
||||||
|
|
||||||
|
## `bat` as a library
|
||||||
|
|
||||||
|
- There are a few changes in the "low level" API (the `Config` struct has changed and
|
||||||
|
the error handler needs a new `&mut dyn Write` argument). The high-level API is not
|
||||||
|
affected.
|
||||||
|
|
||||||
# v0.14.0
|
# v0.14.0
|
||||||
|
|
||||||
@@ -414,7 +655,7 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
- Bat Panics on Haskell Source Code, see #314
|
- Bat Panics on Haskell Source Code, see #314
|
||||||
- Disable wrapping when `--style=plain`/`-p` is used, see #289
|
- Disable wrapping when `--style=plain`/`-p` is used, see #289
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
|
||||||
@@ -469,7 +710,7 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
- Fixed panic when running `bat --list-languages | head`, see #232 (@mchlrhw)
|
- Fixed panic when running `bat --list-languages | head`, see #232 (@mchlrhw)
|
||||||
- Respect `--color` settings for `--list-themes` and `--list-languages`, see #233
|
- Respect `--color` settings for `--list-themes` and `--list-languages`, see #233
|
||||||
- Git modifications now work on Windows
|
- Git modifications now work on Windows
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
@@ -499,7 +740,7 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
## Other
|
## Other
|
||||||
|
|
||||||
* Extended and cleaned-up `--help` text.
|
* Extended and cleaned-up `--help` text.
|
||||||
* Added initial version of a man page, see #52
|
* Added initial version of a man page, see #52
|
||||||
* New README sections: *Development* and *Troubleshooting*, see #220
|
* New README sections: *Development* and *Troubleshooting*, see #220
|
||||||
|
|
||||||
# v0.5.0
|
# v0.5.0
|
||||||
@@ -514,18 +755,18 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
|
|
||||||
## Changes
|
## Changes
|
||||||
|
|
||||||
- The customization of syntax sets and theme sets is now separated. Syntax definitions are now loaded *in addition* to the ones that are stored in the `bat` binary by default. Please refer to these new sections in the README: [Adding new syntaxes](https://github.com/sharkdp/bat#adding-new-syntaxes--language-definitions), [Adding new themes](https://github.com/sharkdp/bat#adding-new-themes), also see #172
|
- The customization of syntax sets and theme sets is now separated. Syntax definitions are now loaded *in addition* to the ones that are stored in the `bat` binary by default. Please refer to these new sections in the README: [Adding new syntaxes](https://github.com/sharkdp/bat#adding-new-syntaxes--language-definitions), [Adding new themes](https://github.com/sharkdp/bat#adding-new-themes), also see #172
|
||||||
- The color for the filename is now the default foreground color. The colors for the grid and the line numbers is now determined from the syntax highlighting theme, which now also works for light backgrounds, see #178.
|
- The color for the filename is now the default foreground color. The colors for the grid and the line numbers is now determined from the syntax highlighting theme, which now also works for light backgrounds, see #178.
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
- Escape Sequences get partially stripped, see #182 (@eth-p)
|
- Escape Sequences get partially stripped, see #182 (@eth-p)
|
||||||
- Use separate Git repository for snapshot testing, see #165 and #161
|
- Use separate Git repository for snapshot testing, see #165 and #161
|
||||||
- Markdown breaking on JavaScript, see #183
|
- Markdown breaking on JavaScript, see #183
|
||||||
|
|
||||||
## Other
|
## Other
|
||||||
|
|
||||||
- Binaries for armv7 are now provided, see #196
|
- Binaries for armv7 are now provided, see #196
|
||||||
- `bat` is now in the official [Arch package repositories](https://www.archlinux.org/packages/community/x86_64/bat/).
|
- `bat` is now in the official [Arch package repositories](https://www.archlinux.org/packages/community/x86_64/bat/).
|
||||||
- Optimizations in the RGB => 8-bit conversion (@mina86)
|
- Optimizations in the RGB => 8-bit conversion (@mina86)
|
||||||
|
|
||||||
@@ -535,7 +776,7 @@ You can see the API documentation here: https://docs.rs/bat/
|
|||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
- Fix problem with `cargo test` when `bat` is not checked out in a Git repository, see #161
|
- Fix problem with `cargo test` when `bat` is not checked out in a Git repository, see #161
|
||||||
|
|
||||||
# v0.4.0
|
# v0.4.0
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
Thank you for considering to contribute to `bat`!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Add an entry to the changelog
|
||||||
|
|
||||||
|
If your contribution changes the behavior of `bat` (as opposed to a typo-fix
|
||||||
|
in the documentation), please update the [`CHANGELOG.md`](CHANGELOG.md) file
|
||||||
|
and describe your changes. This makes the release process much easier and
|
||||||
|
therefore helps to get your changes into a new `bat` release faster.
|
||||||
|
|
||||||
|
The top of the `CHANGELOG` contains a *"unreleased"* section with a few
|
||||||
|
subsections (Features, Bugfixes, …). Please add your entry to the subsection
|
||||||
|
that best describes your change.
|
||||||
|
|
||||||
|
Entries follow this format:
|
||||||
|
```
|
||||||
|
- Short description of what has been changed, see #123 (@user)
|
||||||
|
```
|
||||||
|
Here, `#123` is the number of the original issue and/or your pull request.
|
||||||
|
Please replace `@user` by your GitHub username.
|
||||||
|
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Please check out the [Development](https://github.com/sharkdp/bat#development)
|
||||||
|
section in the README.
|
||||||
|
|
||||||
|
|
||||||
|
## Adding a new feature
|
||||||
|
|
||||||
|
Please consider opening a
|
||||||
|
[feature request ticket](https://github.com/sharkdp/bat/issues/new?assignees=&labels=feature-request&template=feature_request.md)
|
||||||
|
first in order to give us a chance to discuss the feature first.
|
||||||
|
|
||||||
|
|
||||||
|
## Adding new syntaxes/languages or themes
|
||||||
|
|
||||||
|
Before you make a pull request that adds a new syntax or theme, please read
|
||||||
|
the [Customization](https://github.com/sharkdp/bat#customization) section
|
||||||
|
in the README first.
|
||||||
|
|
||||||
|
If you really think that a particular syntax or theme should be added for all
|
||||||
|
users, please read the corresponding
|
||||||
|
[documentation](https://github.com/sharkdp/bat/blob/master/doc/assets.md)
|
||||||
|
first.
|
||||||
Generated
+621
-967
File diff suppressed because it is too large
Load Diff
+24
-19
@@ -1,17 +1,13 @@
|
|||||||
[package]
|
[package]
|
||||||
authors = ["David Peter <mail@david-peter.de>"]
|
authors = ["David Peter <mail@david-peter.de>"]
|
||||||
categories = ["command-line-utilities"]
|
categories = ["command-line-utilities"]
|
||||||
description="A cat(1) clone with wings."
|
description = "A cat(1) clone with wings."
|
||||||
homepage = "https://github.com/sharkdp/bat"
|
homepage = "https://github.com/sharkdp/bat"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
name = "bat"
|
name = "bat"
|
||||||
readme = "README.md"
|
|
||||||
repository = "https://github.com/sharkdp/bat"
|
repository = "https://github.com/sharkdp/bat"
|
||||||
version = "0.14.0"
|
version = "0.18.1"
|
||||||
exclude = [
|
exclude = ["assets/syntaxes/*", "assets/themes/*"]
|
||||||
"assets/syntaxes/*",
|
|
||||||
"assets/themes/*",
|
|
||||||
]
|
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
edition = '2018'
|
edition = '2018'
|
||||||
|
|
||||||
@@ -22,16 +18,17 @@ default = ["application"]
|
|||||||
application = [
|
application = [
|
||||||
"atty",
|
"atty",
|
||||||
"clap",
|
"clap",
|
||||||
"dirs",
|
"dirs-next",
|
||||||
"git",
|
"git",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"liquid",
|
|
||||||
"paging",
|
"paging",
|
||||||
"wild",
|
"wild",
|
||||||
"regex-onig",
|
"regex-onig",
|
||||||
]
|
]
|
||||||
git = ["git2"] # Support indicating git modifications
|
git = ["git2"] # Support indicating git modifications
|
||||||
paging = ["shell-words"] # Support applying a pager on the output
|
paging = ["shell-words"] # Support applying a pager on the output
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
@@ -39,18 +36,21 @@ regex-fancy = ["syntect/regex-fancy"] # Use the rust-only "fancy-regex" engine
|
|||||||
atty = { version = "0.2.14", optional = true }
|
atty = { version = "0.2.14", optional = true }
|
||||||
ansi_term = "^0.12.1"
|
ansi_term = "^0.12.1"
|
||||||
ansi_colours = "^1.0"
|
ansi_colours = "^1.0"
|
||||||
console = "0.10"
|
console = "0.14.1"
|
||||||
dirs = { version = "2.0", optional = true }
|
|
||||||
lazy_static = { version = "1.4", optional = true }
|
lazy_static = { version = "1.4", optional = true }
|
||||||
wild = { version = "2.0", optional = true }
|
wild = { version = "2.0", optional = true }
|
||||||
content_inspector = "0.2.4"
|
content_inspector = "0.2.4"
|
||||||
encoding = "0.2"
|
encoding = "0.2"
|
||||||
shell-words = { version = "0.1.0", optional = true }
|
shell-words = { version = "1.0.0", optional = true }
|
||||||
unicode-width = "0.1.7"
|
unicode-width = "0.1.8"
|
||||||
globset = "0.4"
|
globset = "0.4"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_yaml = "0.8"
|
serde_yaml = "0.8"
|
||||||
semver = "0.9"
|
semver = "0.11"
|
||||||
|
path_abs = { version = "0.5", default-features = false }
|
||||||
|
clircle = "0.3"
|
||||||
|
bugreport = "0.4"
|
||||||
|
dirs-next = { version = "2.0.0", optional = true }
|
||||||
|
|
||||||
[dependencies.git2]
|
[dependencies.git2]
|
||||||
version = "0.13"
|
version = "0.13"
|
||||||
@@ -58,7 +58,7 @@ optional = true
|
|||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
[dependencies.syntect]
|
[dependencies.syntect]
|
||||||
version = "4.1.0"
|
version = "4.5.0"
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["parsing", "yaml-load", "dump-load", "dump-create"]
|
features = ["parsing", "yaml-load", "dump-load", "dump-create"]
|
||||||
|
|
||||||
@@ -73,13 +73,18 @@ version = "0.12"
|
|||||||
default-features = false
|
default-features = false
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
tempdir = "0.3"
|
assert_cmd = "1.0.2"
|
||||||
assert_cmd = "1.0.1"
|
serial_test = "0.5.1"
|
||||||
|
predicates = "1.0.7"
|
||||||
|
wait-timeout = "0.2.0"
|
||||||
|
tempfile = "3.2.0"
|
||||||
|
|
||||||
|
[target.'cfg(unix)'.dev-dependencies]
|
||||||
|
nix = "0.20.0"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
clap = { version = "2.33", optional = true }
|
clap = { version = "2.33", optional = true }
|
||||||
liquid = { version = "0.20", optional = true }
|
|
||||||
lazy_static = { version = "1.4", optional = true }
|
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = true
|
lto = true
|
||||||
|
codegen-units = 1
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2018-2020 bat-developers (https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 bat-developers (https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
||||||
<a href="https://travis-ci.org/sharkdp/bat"><img src="https://travis-ci.org/sharkdp/bat.svg?branch=master" alt="Build Status"></a>
|
<a href="https://github.com/sharkdp/bat/actions?query=workflow%3ACICD"><img src="https://github.com/sharkdp/bat/workflows/CICD/badge.svg" alt="Build Status"></a>
|
||||||
<a href="https://ci.appveyor.com/project/sharkdp/bat"><img src="https://ci.appveyor.com/api/projects/status/cptsmtbiwbnr2vhf/branch/master?svg=true"></a>
|
|
||||||
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
||||||
<a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
|
<a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
|
||||||
A <i>cat(1)</i> clone with syntax highlighting and Git integration.
|
A <i>cat(1)</i> clone with syntax highlighting and Git integration.
|
||||||
@@ -12,8 +11,8 @@
|
|||||||
<a href="#how-to-use">How To Use</a> •
|
<a href="#how-to-use">How To Use</a> •
|
||||||
<a href="#installation">Installation</a> •
|
<a href="#installation">Installation</a> •
|
||||||
<a href="#customization">Customization</a> •
|
<a href="#customization">Customization</a> •
|
||||||
<a href="#project-goals-and-alternatives">Project goals, alternatives</a> •
|
<a href="#project-goals-and-alternatives">Project goals, alternatives</a><br>
|
||||||
Translation [<a href="https://github.com/chinanf-boy/bat-zh">中文</a>][<a href="doc/README-ja.md">日本語</a>][<a href="doc/README-ko.md">한국어</a>]
|
[<a href="https://github.com/chinanf-boy/bat-zh">中文</a>] [<a href="doc/README-ja.md">日本語</a>] [<a href="doc/README-ko.md">한국어</a>] [<a href="doc/README-ru.md">Русский</a>]
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
### Syntax highlighting
|
### Syntax highlighting
|
||||||
@@ -39,14 +38,14 @@ characters:
|
|||||||
|
|
||||||
### Automatic paging
|
### Automatic paging
|
||||||
|
|
||||||
`bat` can pipe its own output to `less` if the output is too large for one screen.
|
By default, `bat` pipes its own output to a pager (e.g `less`) if the output is too large for one screen.
|
||||||
|
If you would rather `bat` work like `cat` all the time (never page output), you can set `--paging=never` as an option, either on the command line or in your configuration file.
|
||||||
|
If you intend to alias `cat` to `bat` in your shell configuration, you can use `alias cat='bat --paging=never'` to preserve the default behavior.
|
||||||
|
|
||||||
### File concatenation
|
#### File concatenation
|
||||||
|
|
||||||
Oh.. you can also use it to concatenate files :wink:. Whenever
|
Even with a pager set, you can still use `bat` to concatenate files :wink:.
|
||||||
`bat` detects a non-interactive terminal (i.e. when you pipe into another process
|
Whenever `bat` detects a non-interactive terminal (i.e. when you pipe into another process or into a file), `bat` will act as a drop-in replacement for `cat` and fall back to printing the plain file contents, regardless of the `--pager` option's value.
|
||||||
or into a file), `bat` will act as a drop-in replacement for `cat` and
|
|
||||||
fall back to printing the plain file contents.
|
|
||||||
|
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
@@ -62,7 +61,9 @@ Display multiple files at once
|
|||||||
> bat src/*.rs
|
> bat src/*.rs
|
||||||
```
|
```
|
||||||
|
|
||||||
Read from stdin, determine the syntax automatically
|
Read from stdin, determine the syntax automatically (note, highlighting will
|
||||||
|
only work if the syntax can be determined from the first line of the file,
|
||||||
|
usually through a shebang such as `#!/bin/sh`)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> curl -s https://sh.rustup.rs | bat
|
> curl -s https://sh.rustup.rs | bat
|
||||||
@@ -93,6 +94,16 @@ bat f - g # output 'f', then stdin, then 'g'.
|
|||||||
|
|
||||||
### Integration with other tools
|
### Integration with other tools
|
||||||
|
|
||||||
|
#### `fzf`
|
||||||
|
|
||||||
|
You can use `bat` as a previewer for [`fzf`](https://github.com/junegunn/fzf). To do this,
|
||||||
|
use `bat`s `--color=always` option to force colorized output. You can also use `--line-range`
|
||||||
|
option to restrict the load times for long files:
|
||||||
|
```bash
|
||||||
|
fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
|
||||||
|
```
|
||||||
|
For more information, see [`fzf`s `README`](https://github.com/junegunn/fzf#preview-window).
|
||||||
|
|
||||||
#### `find` or `fd`
|
#### `find` or `fd`
|
||||||
|
|
||||||
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
You can use the `-exec` option of `find` to preview all search results with `bat`:
|
||||||
@@ -130,7 +141,18 @@ highlighting:
|
|||||||
git show v0.6.0:src/main.rs | bat -l rs
|
git show v0.6.0:src/main.rs | bat -l rs
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that syntax highlighting within diffs is currently not supported. If you are looking for this, check out [`delta`](https://github.com/dandavison/delta).
|
#### `git diff`
|
||||||
|
|
||||||
|
You can combine `bat` with `git diff` to view lines around code changes with proper syntax
|
||||||
|
highlighting:
|
||||||
|
```bash
|
||||||
|
batdiff() {
|
||||||
|
git diff --name-only --diff-filter=d | xargs bat --diff
|
||||||
|
}
|
||||||
|
```
|
||||||
|
If you prefer to use this as a separate tool, check out `batdiff` in [`bat-extras`](https://github.com/eth-p/bat-extras).
|
||||||
|
|
||||||
|
If you are looking for more support for git and diff operations, check out [`delta`](https://github.com/dandavison/delta).
|
||||||
|
|
||||||
#### `xclip`
|
#### `xclip`
|
||||||
|
|
||||||
@@ -151,6 +173,7 @@ bat main.cpp | xclip
|
|||||||
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||||
man 2 select
|
man 2 select
|
||||||
```
|
```
|
||||||
|
(replace `bat` by `batcat` if you are on Debian or Ubuntu)
|
||||||
|
|
||||||
It might also be necessary to set `MANROFFOPT="-c"` if you experience
|
It might also be necessary to set `MANROFFOPT="-c"` if you experience
|
||||||
formatting problems.
|
formatting problems.
|
||||||
@@ -159,6 +182,8 @@ If you prefer to have this bundled in a new command, you can also use [`batman`]
|
|||||||
|
|
||||||
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
Note that the [Manpage syntax](assets/syntaxes/02_Extra/Manpage.sublime-syntax) is developed in this repository and still needs some work.
|
||||||
|
|
||||||
|
Also, note that this will [not work](https://github.com/sharkdp/bat/issues/1145) with Mandocs `man` implementation.
|
||||||
|
|
||||||
#### `prettier` / `shfmt` / `rustfmt`
|
#### `prettier` / `shfmt` / `rustfmt`
|
||||||
|
|
||||||
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
|
The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) script is a wrapper that will format code and print it with `bat`.
|
||||||
@@ -166,9 +191,9 @@ The [`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
[](https://repology.org/project/bat/versions)
|
[](https://repology.org/project/bat-cat/versions)
|
||||||
|
|
||||||
### On Ubuntu
|
### On Ubuntu (using `apt`)
|
||||||
*... and other Debian-based Linux distributions.*
|
*... and other Debian-based Linux distributions.*
|
||||||
|
|
||||||
`bat` is making its way through the [Ubuntu](https://packages.ubuntu.com/eoan/bat) and
|
`bat` is making its way through the [Ubuntu](https://packages.ubuntu.com/eoan/bat) and
|
||||||
@@ -182,12 +207,22 @@ If your Ubuntu/Debian installation is new enough you can simply run:
|
|||||||
apt install bat
|
apt install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Important**: If you install `bat` this way, please note that the executable may be installed as `batcat` instead of `bat` (due to [a name
|
||||||
|
clash with another package](https://github.com/sharkdp/bat/issues/982)). You can set up a `bat -> batcat` symlink or alias to prevent any issues that may come up because of this and to be consistent with other distributions:
|
||||||
|
``` bash
|
||||||
|
mkdir -p ~/.local/bin
|
||||||
|
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### On Ubuntu (using most recent `.deb` packages)
|
||||||
|
*... and other Debian-based Linux distributions.*
|
||||||
|
|
||||||
If the package has not yet been promoted to your Ubuntu/Debian installation, or you want
|
If the package has not yet been promoted to your Ubuntu/Debian installation, or you want
|
||||||
the most recent release of `bat`, download the latest `.deb` package from the
|
the most recent release of `bat`, download the latest `.deb` package from the
|
||||||
[release page](https://github.com/sharkdp/bat/releases) and install it via:
|
[release page](https://github.com/sharkdp/bat/releases) and install it via:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i bat_0.13.0_amd64.deb # adapt version number and architecture
|
sudo dpkg -i bat_0.18.1_amd64.deb # adapt version number and architecture
|
||||||
```
|
```
|
||||||
|
|
||||||
### On Alpine Linux
|
### On Alpine Linux
|
||||||
@@ -232,6 +267,13 @@ You can install `bat` via xbps-install:
|
|||||||
xbps-install -S bat
|
xbps-install -S bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### On Termux
|
||||||
|
|
||||||
|
You can install `bat` via pkg:
|
||||||
|
```bash
|
||||||
|
pkg install bat
|
||||||
|
```
|
||||||
|
|
||||||
### On FreeBSD
|
### On FreeBSD
|
||||||
|
|
||||||
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
You can install a precompiled [`bat` package](https://www.freshports.org/textproc/bat) with pkg:
|
||||||
@@ -263,14 +305,21 @@ You can install `bat` with zypper:
|
|||||||
zypper install bat
|
zypper install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
### On macOS
|
### Via snap package
|
||||||
|
|
||||||
You can install `bat` with [Homebrew](http://braumeister.org/formula/bat):
|
There is currently no recommended snap package available.
|
||||||
|
Existing packages may be available, but are not officially supported and may contain [issues](https://github.com/sharkdp/bat/issues/1519).
|
||||||
|
|
||||||
|
### On macOS (or Linux) via Homebrew
|
||||||
|
|
||||||
|
You can install `bat` with [Homebrew on MacOS](https://formulae.brew.sh/formula/bat) or [Homebrew on Linux](https://formulae.brew.sh/formula-linux/bat):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
brew install bat
|
brew install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### On macOS via MacPorts
|
||||||
|
|
||||||
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
Or install `bat` with [MacPorts](https://ports.macports.org/port/bat/summary):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -282,6 +331,10 @@ port install bat
|
|||||||
There are a few options to install `bat` on Windows. Once you have installed `bat`,
|
There are a few options to install `bat` on Windows. Once you have installed `bat`,
|
||||||
take a look at the ["Using `bat` on Windows"](#using-bat-on-windows) section.
|
take a look at the ["Using `bat` on Windows"](#using-bat-on-windows) section.
|
||||||
|
|
||||||
|
#### Prerequisites
|
||||||
|
|
||||||
|
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||||
|
|
||||||
#### With Chocolatey
|
#### With Chocolatey
|
||||||
|
|
||||||
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
You can install `bat` via [Chocolatey](https://chocolatey.org/packages/Bat):
|
||||||
@@ -296,50 +349,12 @@ You can install `bat` via [scoop](https://scoop.sh/):
|
|||||||
scoop install bat
|
scoop install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
|
||||||
|
|
||||||
#### From prebuilt binaries:
|
#### From prebuilt binaries:
|
||||||
|
|
||||||
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
You can download prebuilt binaries from the [Release page](https://github.com/sharkdp/bat/releases),
|
||||||
|
|
||||||
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||||
|
|
||||||
### Via Docker
|
|
||||||
|
|
||||||
There is a [Docker image](https://hub.docker.com/r/danlynn/bat/) that you can use to run `bat` in a container:
|
|
||||||
```bash
|
|
||||||
docker pull danlynn/bat
|
|
||||||
alias bat='docker run -it --rm -e BAT_THEME -e BAT_STYLE -e BAT_TABS -v "$(pwd):/myapp" danlynn/bat'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Via Ansible
|
|
||||||
|
|
||||||
You can install `bat` with [Ansible](https://www.ansible.com/):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Install role on local machine
|
|
||||||
ansible-galaxy install aeimer.install_bat
|
|
||||||
```
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
# Playbook to install bat
|
|
||||||
- host: all
|
|
||||||
roles:
|
|
||||||
- aeimer.install_bat
|
|
||||||
```
|
|
||||||
|
|
||||||
- [Ansible Galaxy](https://galaxy.ansible.com/aeimer/install_bat)
|
|
||||||
- [GitHub](https://github.com/aeimer/ansible-install-bat)
|
|
||||||
|
|
||||||
This should work with the following distributions:
|
|
||||||
- Debian/Ubuntu
|
|
||||||
- ARM (eg. Raspberry PI)
|
|
||||||
- Arch Linux
|
|
||||||
- Void Linux
|
|
||||||
- FreeBSD
|
|
||||||
- MacOS
|
|
||||||
|
|
||||||
### From binaries
|
### From binaries
|
||||||
|
|
||||||
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
Check out the [Release page](https://github.com/sharkdp/bat/releases) for
|
||||||
@@ -348,14 +363,15 @@ 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.37 or
|
If you want to build `bat` from source, you need Rust 1.45 or
|
||||||
higher. You can then use `cargo` to build everything:
|
higher. You can then use `cargo` to build everything:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo install bat
|
cargo install --locked bat
|
||||||
```
|
```
|
||||||
|
|
||||||
On some platforms, you might need to install `llvm` and/or `libclang-dev`.
|
Note that additional files like the man page or shell completion
|
||||||
|
files can not be installed in this way. They will be generated by `cargo` and should be available in the cargo target folder (under `build`).
|
||||||
|
|
||||||
## Customization
|
## Customization
|
||||||
|
|
||||||
@@ -379,6 +395,25 @@ light background, some themes like `GitHub` or `OneHalfLight` will work better f
|
|||||||
You can also use a custom theme by following the
|
You can also use a custom theme by following the
|
||||||
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
['Adding new themes' section below](https://github.com/sharkdp/bat#adding-new-themes).
|
||||||
|
|
||||||
|
### 8-bit themes
|
||||||
|
|
||||||
|
`bat` has three themes that always use [8-bit colors](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors),
|
||||||
|
even when truecolor support is available:
|
||||||
|
|
||||||
|
- `ansi` looks decent on any terminal. It uses 3-bit colors: black, red, green,
|
||||||
|
yellow, blue, magenta, cyan, and white.
|
||||||
|
- `base16` is designed for [base16](https://github.com/chriskempson/base16) terminal themes. It uses
|
||||||
|
4-bit colors (3-bit colors plus bright variants) in accordance with the
|
||||||
|
[base16 styling guidelines](https://github.com/chriskempson/base16/blob/master/styling.md).
|
||||||
|
- `base16-256` is designed for [base16-shell](https://github.com/chriskempson/base16-shell).
|
||||||
|
It replaces certain bright colors with 8-bit colors from 16 to 21. **Do not** use this simply
|
||||||
|
because you have a 256-color terminal but are not using base16-shell.
|
||||||
|
|
||||||
|
Although these themes are more restricted, they have two advantages over truecolor themes:
|
||||||
|
|
||||||
|
- They harmonize better with other terminal software using 3-bit or 4-bit colors.
|
||||||
|
- When you change your terminal theme, `bat` output already on the screen will update to match.
|
||||||
|
|
||||||
### 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.
|
||||||
@@ -389,35 +424,45 @@ variable to make these changes permanent or use `bat`s
|
|||||||
|
|
||||||
### Adding new syntaxes / language definitions
|
### Adding new syntaxes / language definitions
|
||||||
|
|
||||||
|
Should you find that a particular syntax is not available within `bat`, you can follow these
|
||||||
|
instructions to easily add new syntaxes to your current `bat` installation.
|
||||||
|
|
||||||
`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/)
|
`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/)
|
||||||
library for syntax highlighting. `syntect` can read any
|
library for syntax highlighting. `syntect` can read any
|
||||||
[Sublime Text `.sublime-syntax` file](https://www.sublimetext.com/docs/3/syntax.html)
|
[Sublime Text `.sublime-syntax` file](https://www.sublimetext.com/docs/3/syntax.html)
|
||||||
and theme. To add new syntax definitions, do the following.
|
and theme.
|
||||||
|
|
||||||
Create a folder with syntax definition files:
|
A good resource for finding Sublime Syntax packages is [Package Control](https://packagecontrol.io/). Once you found a
|
||||||
|
syntax:
|
||||||
|
|
||||||
```bash
|
1. Create a folder with syntax definition files:
|
||||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
|
||||||
cd "$(bat --config-dir)/syntaxes"
|
|
||||||
|
|
||||||
# Put new '.sublime-syntax' language definition files
|
```bash
|
||||||
# in this folder (or its subdirectories), for example:
|
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||||
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
cd "$(bat --config-dir)/syntaxes"
|
||||||
```
|
|
||||||
|
|
||||||
Now use the following command to parse these files into a binary cache:
|
# Put new '.sublime-syntax' language definition files
|
||||||
|
# in this folder (or its subdirectories), for example:
|
||||||
|
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||||
|
```
|
||||||
|
|
||||||
```bash
|
2. Now use the following command to parse these files into a binary cache:
|
||||||
bat cache --build
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, use `bat --list-languages` to check if the new languages are available.
|
```bash
|
||||||
|
bat cache --build
|
||||||
|
```
|
||||||
|
|
||||||
If you ever want to go back to the default settings, call:
|
3. Finally, use `bat --list-languages` to check if the new languages are available.
|
||||||
|
|
||||||
```bash
|
If you ever want to go back to the default settings, call:
|
||||||
bat cache --clear
|
|
||||||
```
|
```bash
|
||||||
|
bat cache --clear
|
||||||
|
```
|
||||||
|
|
||||||
|
4. If you think that a specific syntax should be included in `bat` by default, please
|
||||||
|
consider opening a "syntax request" ticket after reading the policies and
|
||||||
|
instructions [here](doc/assets.md): [Open Syntax Request](https://github.com/sharkdp/bat/issues/new?labels=syntax-request&template=syntax_request.md).
|
||||||
|
|
||||||
### Adding new themes
|
### Adding new themes
|
||||||
|
|
||||||
@@ -437,6 +482,33 @@ bat cache --build
|
|||||||
|
|
||||||
Finally, use `bat --list-themes` to check if the new themes are available.
|
Finally, use `bat --list-themes` to check if the new themes are available.
|
||||||
|
|
||||||
|
### Adding or changing file type associations
|
||||||
|
|
||||||
|
You can add new (or change existing) file name patterns using the `--map-syntax`
|
||||||
|
command line option. The option takes an argument of the form `pattern:syntax` where
|
||||||
|
`pattern` is a glob pattern that is matched against the file name and
|
||||||
|
the absolute file path. The `syntax` part is the full name of a supported language
|
||||||
|
(use `bat --list-languages` for an overview).
|
||||||
|
|
||||||
|
Note: You probably want to use this option as an entry in `bat`s configuration file instead
|
||||||
|
of passing it on the command line (see below).
|
||||||
|
|
||||||
|
Example: To use "INI" syntax highlighting for all files with a `.conf` file extension, use
|
||||||
|
```bash
|
||||||
|
--map-syntax='*.conf:INI'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example: To open all files called `.ignore` (exact match) with the "Git Ignore" syntax, use:
|
||||||
|
```bash
|
||||||
|
--map-syntax='.ignore:Git Ignore'
|
||||||
|
```
|
||||||
|
|
||||||
|
Example: To open all `.conf` files in subfolders of `/etc/apache2` with the "Apache Conf"
|
||||||
|
syntax, use (this mapping is already built in):
|
||||||
|
```bash
|
||||||
|
--map-syntax='/etc/apache2/**/*.conf:Apache Conf'
|
||||||
|
```
|
||||||
|
|
||||||
### Using a different pager
|
### Using a different pager
|
||||||
|
|
||||||
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
`bat` uses the pager that is specified in the `PAGER` environment variable. If this variable is not
|
||||||
@@ -468,6 +540,16 @@ If you want to enable mouse-wheel scrolling on older versions of `less`, you can
|
|||||||
in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer,
|
in the example above, this will disable the quit-if-one-screen feature). For less 530 or newer,
|
||||||
it should work out of the box.
|
it should work out of the box.
|
||||||
|
|
||||||
|
### Indentation
|
||||||
|
|
||||||
|
`bat` expands tabs to 4 spaces by itself, not relying on the pager. To change this, simply add the
|
||||||
|
`--tabs` argument with the number of spaces you want to be displayed.
|
||||||
|
|
||||||
|
**Note**: Defining tab stops for the pager (via the `--pager` argument by `bat`, or via the `LESS`
|
||||||
|
environment variable for `less`) won't be taken into account because the pager will already get
|
||||||
|
expanded spaces instead of tabs. This behaviour is added to avoid indentation issues caused by the
|
||||||
|
sidebar. Calling `bat` with `--tabs=0` will override it and let tabs be consumed by the pager.
|
||||||
|
|
||||||
### Dark mode
|
### Dark mode
|
||||||
|
|
||||||
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
If you make use of the dark mode feature in macOS, you might want to configure `bat` to use a different
|
||||||
@@ -478,6 +560,7 @@ and the `GitHub` theme when in the _light mode_.
|
|||||||
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Configuration file
|
## Configuration file
|
||||||
|
|
||||||
`bat` can also be customized with a configuration file. The location of the file is dependent
|
`bat` can also be customized with a configuration file. The location of the file is dependent
|
||||||
@@ -514,15 +597,16 @@ Example configuration file:
|
|||||||
|
|
||||||
# Use C++ syntax for .ino files
|
# Use C++ syntax for .ino files
|
||||||
--map-syntax "*.ino:C++"
|
--map-syntax "*.ino:C++"
|
||||||
|
|
||||||
# Use ".gitignore"-style highlighting for ".ignore" files
|
|
||||||
--map-syntax ".ignore:Git Ignore"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using `bat` on Windows
|
## Using `bat` on Windows
|
||||||
|
|
||||||
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
`bat` mostly works out-of-the-box on Windows, but a few features may need extra configuration.
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
You will need to install the [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) package.
|
||||||
|
|
||||||
### Paging
|
### Paging
|
||||||
|
|
||||||
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
Windows only includes a very limited pager in the form of `more`. You can download a Windows binary
|
||||||
@@ -565,9 +649,10 @@ bat() {
|
|||||||
|
|
||||||
### Terminals & colors
|
### Terminals & colors
|
||||||
|
|
||||||
`bat` handles terminals *with* and *without* truecolor support. However, the colors in the syntax
|
`bat` handles terminals *with* and *without* truecolor support. However, the colors in most syntax
|
||||||
highlighting themes are not optimized for 8-bit colors and it is therefore strongly recommended
|
highlighting themes are not optimized for 8-bit colors. It is therefore strongly recommended
|
||||||
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...).
|
that you use a terminal with 24-bit truecolor support (`terminator`, `konsole`, `iTerm2`, ...),
|
||||||
|
or use one of the basic [8-bit themes](#8-bit-themes) designed for a restricted set of colors.
|
||||||
See [this article](https://gist.github.com/XVilka/8346728) for more details and a full list of
|
See [this article](https://gist.github.com/XVilka/8346728) for more details and a full list of
|
||||||
terminals with truecolor support.
|
terminals with truecolor support.
|
||||||
|
|
||||||
@@ -606,17 +691,28 @@ cargo build --bins
|
|||||||
cargo test
|
cargo test
|
||||||
|
|
||||||
# Install (release version)
|
# Install (release version)
|
||||||
cargo install
|
cargo install --path . --locked
|
||||||
|
|
||||||
# Build a bat binary with modified syntaxes and themes
|
# Build a bat binary with modified syntaxes and themes
|
||||||
bash assets/create.sh
|
bash assets/create.sh
|
||||||
cargo install -f
|
cargo install --path . --locked --force
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you want to build an application that uses `bat`s pretty-printing
|
||||||
|
features as a library, check out the [the API documentation](https://docs.rs/bat/).
|
||||||
|
Note that you have to use either `regex-onig` or `regex-fancy` as a feature
|
||||||
|
when you depend on `bat` as a library.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Take a look at the [`CONTRIBUTING.md`](CONTRIBUTING.md) guide.
|
||||||
|
|
||||||
## Maintainers
|
## Maintainers
|
||||||
|
|
||||||
- [sharkdp](https://github.com/sharkdp)
|
- [sharkdp](https://github.com/sharkdp)
|
||||||
- [eth-p](https://github.com/eth-p)
|
- [eth-p](https://github.com/eth-p)
|
||||||
|
- [keith-hall](https://github.com/keith-hall)
|
||||||
|
- [Enselic](https://github.com/Enselic)
|
||||||
|
|
||||||
## Project goals and alternatives
|
## Project goals and alternatives
|
||||||
|
|
||||||
@@ -631,8 +727,8 @@ There are a lot of alternatives, if you are looking for similar programs. See
|
|||||||
[this document](doc/alternatives.md) for a comparison.
|
[this document](doc/alternatives.md) for a comparison.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
Copyright (c) 2018-2020 [bat-developers](https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
`bat` is distributed under the terms of both the MIT License and the Apache License 2.0.
|
`bat` is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
|
||||||
|
|
||||||
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.
|
See the [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) files for license details.
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
environment:
|
|
||||||
global:
|
|
||||||
TARGET: x86_64-pc-windows-msvc
|
|
||||||
RUST_VERSION: stable
|
|
||||||
CRATE_NAME: bat
|
|
||||||
CARGO_HOME: "c:\\cargo"
|
|
||||||
RUSTUP_HOME: "c:\\rustup"
|
|
||||||
|
|
||||||
install:
|
|
||||||
- appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
|
|
||||||
- rustup-init.exe -y --default-host %TARGET%
|
|
||||||
- set PATH=%PATH%;C:\cargo\bin
|
|
||||||
- rustc -Vv
|
|
||||||
- cargo -V
|
|
||||||
|
|
||||||
build: false
|
|
||||||
test_script:
|
|
||||||
- cargo test --target %TARGET% --verbose
|
|
||||||
- cargo run --target %TARGET% -- src/bin/bat/main.rs README.md --paging=never
|
|
||||||
|
|
||||||
before_deploy:
|
|
||||||
# Generate artifacts for release
|
|
||||||
- cargo build --bins --release --verbose
|
|
||||||
- ps: ci\before_deploy.ps1
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
description: 'Automatically deployed release'
|
|
||||||
artifact: /.*\.zip/
|
|
||||||
# Here's how:
|
|
||||||
# - Go to 'https://github.com/settings/tokens/new' and generate a Token with only the
|
|
||||||
# `public_repo` scope enabled
|
|
||||||
# - Then go to 'https://ci.appveyor.com/tools/encrypt' and enter the newly generated token.
|
|
||||||
# - Enter the "encrypted value" below
|
|
||||||
auth_token:
|
|
||||||
secure: oO4/J+hcFXgXcEqEc8gzlQNqLG0IxU78s4EyH+uczGdsyWajb3yipxPR6nXUvmoj
|
|
||||||
provider: GitHub
|
|
||||||
on:
|
|
||||||
RUST_VERSION: stable
|
|
||||||
appveyor_repo_tag: true
|
|
||||||
|
|
||||||
cache:
|
|
||||||
- C:\Users\appveyor\.cargo\registry
|
|
||||||
- target
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
- provider: Email
|
|
||||||
on_build_success: false
|
|
||||||
on_build_failure: false
|
|
||||||
on_build_status_changed: false
|
|
||||||
Vendored
-44
@@ -1,44 +0,0 @@
|
|||||||
## Syntax Highlighting in bat
|
|
||||||
|
|
||||||
`bat` uses the [syntect](https://github.com/trishume/syntect) library to highlight source
|
|
||||||
code. As a basis, syntect uses [Sublime Text](https://www.sublimetext.com/) syntax definitions
|
|
||||||
in the `.sublime-syntax` format.
|
|
||||||
|
|
||||||
In order to add new syntaxes to `bat`, follow these steps:
|
|
||||||
|
|
||||||
1. Find a Sublime Text syntax for the given language, preferably in a separate Git repository
|
|
||||||
which can be included as a submodule (under `assets/syntaxes`).
|
|
||||||
|
|
||||||
2. If the Sublime Text syntax is only available as a `.tmLanguage` file, open the file in
|
|
||||||
Sublime Text and convert it to a `.sublime-syntax` file via *Tools* -> *Developer* ->
|
|
||||||
*New Syntax from XXX.tmLanguage...*. Save the new file in the `assets/syntaxes` folder.
|
|
||||||
|
|
||||||
3. Run the `create.sh` script. It calls `bat cache --build` to parse all available
|
|
||||||
`.sublime-syntax` files and serialize them to a `syntaxes.bin` file (in this folder).
|
|
||||||
|
|
||||||
4. Re-compile `bat`. At compilation time, the `syntaxes.bin` file will be stored inside the
|
|
||||||
`bat` binary.
|
|
||||||
|
|
||||||
5. If you send a pull request with your changes, please do *not* include the changed `syntaxes.bin`
|
|
||||||
file. A new binary cache file will be created once before every new release of `bat`.
|
|
||||||
|
|
||||||
### Troubleshooting
|
|
||||||
|
|
||||||
Make sure that the local cache does not interfere with the internally stored syntaxes and
|
|
||||||
themes (`bat cache --clear`).
|
|
||||||
|
|
||||||
### Manual modifications
|
|
||||||
|
|
||||||
The following files have been manually modified after converting from a `.tmLanguage` file:
|
|
||||||
|
|
||||||
* `Dart.sublime-syntax` => removed `#regex.dart` include.
|
|
||||||
* `INI.sublime-syntax` => added `.hgrc`, `hgrc`, and `desktop` file types.
|
|
||||||
* `Org mode.sublime-syntax` => removed `task` file type.
|
|
||||||
|
|
||||||
### Non-submodule additions
|
|
||||||
|
|
||||||
* `Assembly (x86_64)` has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due to `git clone` recursion problems
|
|
||||||
* `Nim.sublime-syntax` has been added manually from https://github.com/getzola/zola/blob/master/sublime_syntaxes/Nim.sublime-syntax as there was no suitable Git repository for it. The original syntax seems to originate from https://github.com/Varriount/NimLime
|
|
||||||
* `Rego.sublime-syntax` has been added manually from https://github.com/open-policy-agent/opa/blob/master/misc/syntax/sublime/rego.sublime-syntax
|
|
||||||
as it is not kept in a standalone repository. The file is generated from
|
|
||||||
https://github.com/open-policy-agent/opa/blob/master/misc/syntax/textmate/Rego.tmLanguage
|
|
||||||
Vendored
+2
@@ -52,6 +52,8 @@ complete -c {{PROJECT_EXECUTABLE}} -l paging -xka "auto never always" -d "Specif
|
|||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s p -l plain -d "Only show plain style, no decorations. Alias for '--style=plain'" -n "not __fish_seen_subcommand_from cache"
|
complete -c {{PROJECT_EXECUTABLE}} -s p -l plain -d "Only show plain style, no decorations. Alias for '--style=plain'" -n "not __fish_seen_subcommand_from cache"
|
||||||
|
|
||||||
|
complete -c {{PROJECT_EXECUTABLE}} -s P -d "Disable paging. Alias for '--paging=never'" -n "not __fish_seen_subcommand_from cache"
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"
|
complete -c {{PROJECT_EXECUTABLE}} -s A -l show-all -d "Show non-printable characters like space/tab/newline" -n "not __fish_seen_subcommand_from cache"
|
||||||
|
|
||||||
complete -c {{PROJECT_EXECUTABLE}} -l style -xka "auto full plain changes header grid numbers" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"
|
complete -c {{PROJECT_EXECUTABLE}} -l style -xka "auto full plain changes header grid numbers" -d "Comma-separated list of style elements or presets to display with file contents" -n "not __fish_seen_subcommand_from cache"
|
||||||
|
|||||||
Vendored
+93
@@ -0,0 +1,93 @@
|
|||||||
|
#compdef {{PROJECT_EXECUTABLE}}
|
||||||
|
|
||||||
|
local context state state_descr line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
(( $+functions[_{{PROJECT_EXECUTABLE}}_cache_subcommand] )) ||
|
||||||
|
_{{PROJECT_EXECUTABLE}}_cache_subcommand() {
|
||||||
|
local -a args
|
||||||
|
args=(
|
||||||
|
'(-b --build -c --clear)'{-b,--build}'[Initialize or update the syntax/theme cache]'
|
||||||
|
'(-b --build -c --clear)'{-c,--clear}'[Remove the cached syntax definitions and themes]'
|
||||||
|
'(--source)'--source='[Use a different directory to load syntaxes and themes from]:directory:_files -/'
|
||||||
|
'(--target)'--target='[Use a different directory to store the cached syntax and theme set]:directory:_files -/'
|
||||||
|
'(--blank)'--blank'[Create completely new syntax and theme sets]'
|
||||||
|
'(: -)'{-h,--help}'[Prints help information]'
|
||||||
|
'*: :'
|
||||||
|
)
|
||||||
|
|
||||||
|
_arguments -S -s $args
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_{{PROJECT_EXECUTABLE}}_main] )) ||
|
||||||
|
_{{PROJECT_EXECUTABLE}}_main() {
|
||||||
|
local -a args
|
||||||
|
args=(
|
||||||
|
'(-A --show-all)'{-A,--show-all}'[Show non-printable characters (space, tab, newline, ..)]'
|
||||||
|
'*'{-p,--plain}'[Show plain style (alias for `--style=plain`), repeat twice to disable disable automatic paging (alias for `--paging=never`)]'
|
||||||
|
'(-l --language)'{-l+,--language=}'[Set the language for syntax highlighting]:<language>:->language'
|
||||||
|
'(-H --highlight-line)'{-H,--highlight-line}'[Highlight lines N through M]:<N\:M>...'
|
||||||
|
'(--file-name)'--file-name'[Specify the name to display for a file]:<name>...:_files'
|
||||||
|
'(-d --diff)'--diff'[Only show lines that have been added/removed/modified]'
|
||||||
|
'(--diff-context)'--diff-context'[Include N lines of context around added/removed/modified lines when using `--diff`]:<N> (lines):()'
|
||||||
|
'(--tabs)'--tabs'[Set the tab width to T spaces]:<T> (tab width):()'
|
||||||
|
'(--wrap)'--wrap='[Specify the text-wrapping mode]:<when>:(auto never character)'
|
||||||
|
'(--terminal-width)'--terminal-width'[Explicitly set the width of the terminal instead of determining it automatically]:<width>'
|
||||||
|
'(-n --number)'{-n,--number}'[Show line numbers]'
|
||||||
|
'(--color)'--color='[When to use colors]:<when>:(auto never always)'
|
||||||
|
'(--italic-text)'--italic-text='[Use italics in output]:<when>:(always never)'
|
||||||
|
'(--decorations)'--decorations='[When to show the decorations]:<when>:(auto never always)'
|
||||||
|
'(--paging)'--paging='[Specify when to use the pager]:<when>:(auto never always)'
|
||||||
|
'(-m --map-syntax)'{-m+,--map-syntax=}'[Use the specified syntax for files matching the glob pattern]:<glob\:syntax>...'
|
||||||
|
'(--theme)'--theme='[Set the color theme for syntax highlighting]:<theme>:->theme'
|
||||||
|
'(: --list-themes --list-languages -L)'--list-themes'[Display all supported highlighting themes]'
|
||||||
|
'(--style)'--style='[Comma-separated list of style elements to display]:<components>:->style'
|
||||||
|
'(-r --line-range)'{-r+,--line-range=}'[Only print the lines from N to M]:<N\:M>...'
|
||||||
|
'(: --list-themes --list-languages -L)'{-L,--list-languages}'[Display all supported languages]'
|
||||||
|
'(: -)'{-h,--help}'[Print this help message]'
|
||||||
|
'(: -)'{-V,--version}'[Show version information]'
|
||||||
|
'*: :_files'
|
||||||
|
)
|
||||||
|
|
||||||
|
_arguments -S -s $args
|
||||||
|
|
||||||
|
case "$state" in
|
||||||
|
language)
|
||||||
|
local IFS=$'\n'
|
||||||
|
local -a languages
|
||||||
|
languages=( $({{PROJECT_EXECUTABLE}} --list-languages | awk -F':|,' '{ for (i = 1; i <= NF; ++i) printf("%s:%s\n", $i, $1) }') )
|
||||||
|
|
||||||
|
_describe 'language' languages
|
||||||
|
;;
|
||||||
|
|
||||||
|
theme)
|
||||||
|
local IFS=$'\n'
|
||||||
|
local -a themes
|
||||||
|
themes=( $({{PROJECT_EXECUTABLE}} --list-themes | sort) )
|
||||||
|
|
||||||
|
_values 'theme' $themes
|
||||||
|
;;
|
||||||
|
|
||||||
|
style)
|
||||||
|
_values -s , 'style' auto full plain changes header grid numbers snip
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# first positional argument
|
||||||
|
if (( ${#words} == 2 )); then
|
||||||
|
local -a subcommands
|
||||||
|
subcommands=('cache:Modify the syntax-definition and theme cache')
|
||||||
|
_describe subcommand subcommands
|
||||||
|
_{{PROJECT_EXECUTABLE}}_main
|
||||||
|
else
|
||||||
|
case $words[2] in
|
||||||
|
cache)
|
||||||
|
_{{PROJECT_EXECUTABLE}}_cache_subcommand
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_{{PROJECT_EXECUTABLE}}_main
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
ASSET_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|||||||
Vendored
+64
-10
@@ -1,4 +1,4 @@
|
|||||||
.TH {{PROJECT_EXECUTABLE | upcase}} "1"
|
.TH {{PROJECT_EXECUTABLE_UPPERCASE}} "1"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
{{PROJECT_EXECUTABLE}} \- a cat(1) clone with syntax highlighting and Git integration.
|
||||||
.SH "USAGE"
|
.SH "USAGE"
|
||||||
@@ -40,7 +40,7 @@ language names and file extensions.
|
|||||||
.HP
|
.HP
|
||||||
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
\fB\-H\fR, \fB\-\-highlight\-line\fR <N:M>...
|
||||||
.IP
|
.IP
|
||||||
Highlight the specified line ranges with a different background color For example:
|
Highlight the specified line ranges with a different background color. For example:
|
||||||
.RS
|
.RS
|
||||||
.IP "\-\-highlight\-line 40"
|
.IP "\-\-highlight\-line 40"
|
||||||
highlights line 40
|
highlights line 40
|
||||||
@@ -52,6 +52,18 @@ highlights lines 1 to 40
|
|||||||
highlights lines 40 to the end of the file
|
highlights lines 40 to the end of the file
|
||||||
.RE
|
.RE
|
||||||
.HP
|
.HP
|
||||||
|
\fB\-\-file\-name\fR <name>...
|
||||||
|
.IP
|
||||||
|
Specify the name to display for a file. Useful when piping data to {{PROJECT_EXECUTABLE}} from STDIN when {{PROJECT_EXECUTABLE}} does not otherwise know the filename. Note that the provided file name is also used for syntax detection.
|
||||||
|
.HP
|
||||||
|
\fB\-d\fR, \fB\-\-diff\fR
|
||||||
|
.IP
|
||||||
|
Only show lines that have been added/removed/modified with respect to the Git index. Use '\-\-diff\-context=N' to control how much context you want to see.
|
||||||
|
.HP
|
||||||
|
\fB\-\-diff\-context\fR <N>...
|
||||||
|
.IP
|
||||||
|
Include N lines of context around added/removed/modified lines when using '\-\-diff'.
|
||||||
|
.HP
|
||||||
\fB\-\-tabs\fR <T>
|
\fB\-\-tabs\fR <T>
|
||||||
.IP
|
.IP
|
||||||
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
||||||
@@ -87,17 +99,22 @@ Specify when to use the decorations that have been specified via '\-\-style'. Th
|
|||||||
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
automatic mode only enables decorations if an interactive terminal is detected. Possible
|
||||||
values: *auto*, never, always.
|
values: *auto*, never, always.
|
||||||
.HP
|
.HP
|
||||||
|
\fB\-f\fR, \fB\-\-force\-colorization\fR
|
||||||
|
.IP
|
||||||
|
Alias for '--decorations=always --color=always'. This is useful \
|
||||||
|
if the output of {{PROJECT_EXECUTABLE}} is piped to another program, but you want \
|
||||||
|
to keep the colorization/decorations.
|
||||||
|
.HP
|
||||||
\fB\-\-paging\fR <when>
|
\fB\-\-paging\fR <when>
|
||||||
.IP
|
.IP
|
||||||
Specify when to use the pager. To control which pager is used, set the PAGER or
|
Specify when to use the pager. To disable the pager, use \&'\-\-paging=never' or its alias,
|
||||||
BAT_PAGER environment variables (the latter takes precedence) or use the '\-\-pager'
|
\fB-P\fR. To disable the pager permanently, set BAT_PAGER to an empty string. To control
|
||||||
option. To disable the pager permanently, set BAT_PAGER to an empty string or set
|
which pager is used, see the '\-\-pager' option. Possible values: *auto*, never, always.
|
||||||
\&'\-\-paging=never' in the configuration file. Possible values: *auto*, never, always.
|
|
||||||
.HP
|
.HP
|
||||||
\fB\-\-pager\fR <command>
|
\fB\-\-pager\fR <command>
|
||||||
.IP
|
.IP
|
||||||
Determine which pager is used. This option will overwrite the PAGER and BAT_PAGER
|
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
||||||
environment variables. The default pager is 'less'. To disable the pager completely, use
|
environment variables. The default pager is 'less'. To control when the pager is used, see
|
||||||
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
the '\-\-paging' option. Example: '\-\-pager "less \fB\-RF\fR"'.
|
||||||
.HP
|
.HP
|
||||||
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
\fB\-m\fR, \fB\-\-map\-syntax\fR <glob-pattern:syntax-name>...
|
||||||
@@ -106,6 +123,7 @@ Map a glob pattern to an existing syntax name. The glob pattern is matched on th
|
|||||||
path and the filename. For example, to highlight *.build files with the Python syntax,
|
path and the filename. For example, to highlight *.build files with the Python syntax,
|
||||||
use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore
|
use -m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore
|
||||||
syntax, use -m '.myignore:Git Ignore'.
|
syntax, use -m '.myignore:Git Ignore'.
|
||||||
|
Note that the right-hand side is the *name* of the syntax, not a file extension.
|
||||||
.HP
|
.HP
|
||||||
\fB\-\-theme\fR <theme>
|
\fB\-\-theme\fR <theme>
|
||||||
.IP
|
.IP
|
||||||
@@ -124,7 +142,7 @@ Configure which elements (line numbers, file headers, grid borders, Git modifica
|
|||||||
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
of components to display (e.g. 'numbers,changes,grid') or a pre\-defined style ('full').
|
||||||
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
To set a default style, add the '\-\-style=".."' option to the configuration file or
|
||||||
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
export the BAT_STYLE environment variable (e.g.: export BAT_STYLE=".."). Possible
|
||||||
values: *auto*, full, plain, changes, header, grid, numbers, snip.
|
values: *auto*, full, plain, changes, header, grid, rule, numbers, snip.
|
||||||
.HP
|
.HP
|
||||||
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
\fB\-r\fR, \fB\-\-line\-range\fR <N:M>...
|
||||||
.IP
|
.IP
|
||||||
@@ -169,5 +187,41 @@ is dependent on your operating system. To get the default path for your system,
|
|||||||
|
|
||||||
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
\fB{{PROJECT_EXECUTABLE}} --config-file\fR
|
||||||
|
|
||||||
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point bat to a non-default
|
Alternatively, you can use the BAT_CONFIG_PATH environment variable to point {{PROJECT_EXECUTABLE}} to a non-default
|
||||||
location of the configuration file.
|
location of the configuration file.
|
||||||
|
.SH "ADDING CUSTOM LANGUAGES"
|
||||||
|
{{PROJECT_EXECUTABLE}} supports Sublime Text \fB.sublime-syntax\fR language files, and can be
|
||||||
|
customized to add additional languages to your local installation. To do this, add the \fB.sublime-syntax\fR language
|
||||||
|
files to `\fB$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes\fR` and run `\fB{{PROJECT_EXECUTABLE}} cache --build\fR`.
|
||||||
|
|
||||||
|
\fBExample:\fR
|
||||||
|
|
||||||
|
.RS 0.5i
|
||||||
|
mkdir -p "$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes"
|
||||||
|
.br
|
||||||
|
cd "$({{PROJECT_EXECUTABLE}} --config-dir)/syntaxes"
|
||||||
|
|
||||||
|
# Put new '.sublime-syntax' language definition files
|
||||||
|
.br
|
||||||
|
# in this folder (or its subdirectories), for example:
|
||||||
|
.br
|
||||||
|
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||||
|
|
||||||
|
# And then build the cache.
|
||||||
|
.br
|
||||||
|
{{PROJECT_EXECUTABLE}} cache --build
|
||||||
|
.RE
|
||||||
|
|
||||||
|
Once the cache is built, the new language will be visible in `\fB{{PROJECT_EXECUTABLE}} --list-languages\fR`.
|
||||||
|
.br
|
||||||
|
If you ever want to remove the custom languages, you can clear the cache with `\fB{{PROJECT_EXECUTABLE}} cache --clear\fR`.
|
||||||
|
|
||||||
|
.SH "ADDING CUSTOM THEMES"
|
||||||
|
Similarly to custom languages, {{PROJECT_EXECUTABLE}} supports Sublime Text \fB.tmTheme\fR themes.
|
||||||
|
These can be installed to `\fB$({{PROJECT_EXECUTABLE}} --config-dir)/themes\fR`, and are added to the cache with
|
||||||
|
`\fB{{PROJECT_EXECUTABLE}} cache --build`.
|
||||||
|
.SH "MORE INFORMATION"
|
||||||
|
|
||||||
|
For more information and up-to-date documentation, visit the {{PROJECT_EXECUTABLE}} repo:
|
||||||
|
.br
|
||||||
|
\fBhttps://github.com/sharkdp/bat\fR
|
||||||
|
|||||||
+168
@@ -0,0 +1,168 @@
|
|||||||
|
diff --git syntaxes/01_Packages/Markdown/Markdown.sublime-syntax syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
|
index 19dc685d..6afd87ae 100644
|
||||||
|
--- syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
|
+++ syntaxes/01_Packages/Markdown/Markdown.sublime-syntax
|
||||||
|
@@ -24,7 +24,6 @@ variables:
|
||||||
|
)
|
||||||
|
[ \t]*$ # followed by any number of tabs or spaces, followed by the end of the line
|
||||||
|
)
|
||||||
|
- setext_escape: ^(?=\s{0,3}(?:---+|===+)\s*$)
|
||||||
|
block_quote: (?:[ ]{,3}>(?:.|$)) # between 0 and 3 spaces, followed by a greater than sign, followed by any character or the end of the line
|
||||||
|
atx_heading: (?:[#]{1,6}\s*) # between 1 and 6 hashes, followed by any amount of whitespace
|
||||||
|
indented_code_block: (?:[ ]{4}|\t) # 4 spaces or a tab
|
||||||
|
@@ -277,69 +276,40 @@ contexts:
|
||||||
|
8: markup.underline.link.markdown
|
||||||
|
push: [link-ref-def, after-link-title, link-title]
|
||||||
|
- match: '^(?=\S)(?![=-]{3,}\s*$)'
|
||||||
|
- branch_point: heading2-branch
|
||||||
|
- branch:
|
||||||
|
- - not-heading2
|
||||||
|
- - heading2
|
||||||
|
-
|
||||||
|
- not-paragraph:
|
||||||
|
- - match: |-
|
||||||
|
- (?x) # pop out of this context when one of the following conditions are met:
|
||||||
|
- ^(?:
|
||||||
|
- \s*$ # the line is blank (or only contains whitespace)
|
||||||
|
- | (?=
|
||||||
|
- {{block_quote}} # a block quote begins the line
|
||||||
|
- | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||||
|
- | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||||
|
- | \# # an ATX heading begins the line
|
||||||
|
- | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||||
|
- {{html_tag_block_end_at_close_tag}} # 1
|
||||||
|
- | !-- # 2
|
||||||
|
- | \? # 3
|
||||||
|
- | ![A-Z] # 4
|
||||||
|
- | !\[CDATA\[ # 5
|
||||||
|
- | {{html_tag_block_end_at_blank_line}} # 6
|
||||||
|
+ push:
|
||||||
|
+ - meta_scope: meta.paragraph.markdown
|
||||||
|
+ - match: |-
|
||||||
|
+ (?x) # pop out of this context when one of the following conditions are met:
|
||||||
|
+ ^(?:
|
||||||
|
+ \s*$ # the line is blank (or only contains whitespace)
|
||||||
|
+ | (?=
|
||||||
|
+ {{block_quote}} # a block quote begins the line
|
||||||
|
+ | [ ]{,3}[*+-][ ] # an unordered list item begins the line
|
||||||
|
+ | [ ]{,3}1[.][ ] # an ordered list item with number "1" begins the line
|
||||||
|
+ | \# # an ATX heading begins the line
|
||||||
|
+ | [ ]{,3}<( # all types of HTML blocks except type 7 may interrupt a paragraph
|
||||||
|
+ {{html_tag_block_end_at_close_tag}} # 1
|
||||||
|
+ | !-- # 2
|
||||||
|
+ | \? # 3
|
||||||
|
+ | ![A-Z] # 4
|
||||||
|
+ | !\[CDATA\[ # 5
|
||||||
|
+ | {{html_tag_block_end_at_blank_line}} # 6
|
||||||
|
+ )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
- )
|
||||||
|
- pop: true
|
||||||
|
-
|
||||||
|
- not-heading2:
|
||||||
|
- - include: not-paragraph
|
||||||
|
- - match: (?=\S)
|
||||||
|
- branch_point: heading1-branch
|
||||||
|
- branch:
|
||||||
|
- - paragraph
|
||||||
|
- - heading1
|
||||||
|
- - match: ''
|
||||||
|
- pop: true
|
||||||
|
-
|
||||||
|
- paragraph:
|
||||||
|
- - meta_scope: meta.paragraph.markdown
|
||||||
|
- - match: ^\s{0,3}===+\s*$
|
||||||
|
- fail: heading1-branch
|
||||||
|
- - match: ^\s{0,3}---+\s*$
|
||||||
|
- fail: heading2-branch
|
||||||
|
- - include: not-paragraph
|
||||||
|
- - include: inline-bold-italic-linebreak
|
||||||
|
- - include: scope:text.html.basic
|
||||||
|
-
|
||||||
|
- heading1:
|
||||||
|
- - meta_scope: markup.heading.1.markdown
|
||||||
|
- - include: inline-bold-italic-linebreak
|
||||||
|
- - match: '^[ \t]{0,3}(={3,})(?=[ \t]*$)'
|
||||||
|
- captures:
|
||||||
|
- 1: markup.heading.1.setext.markdown punctuation.definition.heading.setext.markdown
|
||||||
|
- pop: true
|
||||||
|
-
|
||||||
|
- heading2:
|
||||||
|
- - meta_scope: markup.heading.2.markdown
|
||||||
|
- - include: inline-bold-italic-linebreak
|
||||||
|
- - match: '^[ \t]{0,3}(-{3,})(?=[ \t]*$)'
|
||||||
|
- captures:
|
||||||
|
- 1: markup.heading.2.setext.markdown punctuation.definition.heading.setext.markdown
|
||||||
|
- pop: true
|
||||||
|
-
|
||||||
|
+ pop: true
|
||||||
|
+ - include: inline-bold-italic-linebreak
|
||||||
|
+ - include: scope:text.html.basic
|
||||||
|
+ - match: '^(={3,})(?=[ \t]*$)'
|
||||||
|
+ scope: markup.heading.1.setext.markdown
|
||||||
|
+ captures:
|
||||||
|
+ 1: punctuation.definition.heading.setext.markdown
|
||||||
|
+ pop: true
|
||||||
|
+ - match: '^(-{3,})(?=[ \t]*$)'
|
||||||
|
+ scope: markup.heading.2.setext.markdown
|
||||||
|
+ captures:
|
||||||
|
+ 1: punctuation.definition.heading.setext.markdown
|
||||||
|
+ pop: true
|
||||||
|
link-ref-def:
|
||||||
|
- meta_scope: meta.link.reference.def.markdown
|
||||||
|
- match: ''
|
||||||
|
@@ -430,8 +400,6 @@ contexts:
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.bold.markdown
|
||||||
|
- meta_content_scope: markup.italic.markdown
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||||
|
@@ -446,8 +414,6 @@ contexts:
|
||||||
|
scope: punctuation.definition.bold.end.markdown
|
||||||
|
set:
|
||||||
|
- meta_content_scope: markup.italic.markdown
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||||
|
@@ -463,8 +429,6 @@ contexts:
|
||||||
|
scope: punctuation.definition.italic.end.markdown
|
||||||
|
set:
|
||||||
|
- meta_content_scope: markup.bold.markdown
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
[ \t]*\*{3,} # if there are more than 3 its not applicable to be bold or italic
|
||||||
|
@@ -727,8 +691,6 @@ contexts:
|
||||||
|
scope: punctuation.definition.italic.begin.markdown
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.italic.markdown
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
[ \t]*\*{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||||
|
@@ -745,8 +707,6 @@ contexts:
|
||||||
|
scope: punctuation.definition.italic.begin.markdown
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.italic.markdown
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: |-
|
||||||
|
(?x)
|
||||||
|
[ \t]*_{4,} # if there are more than 3 its not applicable to be bold or italic
|
||||||
|
@@ -773,8 +733,6 @@ contexts:
|
||||||
|
- include: bold-italic-trailing
|
||||||
|
bold-italic-trailing:
|
||||||
|
- include: scope:text.html.basic
|
||||||
|
- - match: '{{setext_escape}}'
|
||||||
|
- pop: true
|
||||||
|
- match: ^\s*$\n?
|
||||||
|
scope: invalid.illegal.non-terminated.bold-italic.markdown
|
||||||
|
pop: true
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
diff --git themes/sublime-monokai-extended/Monokai\ Extended.tmTheme themes/sublime-monokai-extended/Monokai\ Extended.tmTheme
|
||||||
|
index 9c2aa3e..180cbbf 100644
|
||||||
|
--- themes/sublime-monokai-extended/Monokai Extended.tmTheme
|
||||||
|
+++ themes/sublime-monokai-extended/Monokai Extended.tmTheme
|
||||||
|
@@ -810,11 +810,11 @@
|
||||||
|
<key>name</key>
|
||||||
|
<string>JSON String</string>
|
||||||
|
<key>scope</key>
|
||||||
|
- <string>meta.structure.dictionary.json string.quoted.double.json</string>
|
||||||
|
+ <string>meta.mapping.key.json string.quoted.double.json, punctuation.separator.sequence.csv</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>foreground</key>
|
||||||
|
- <string>#cfcfc2</string>
|
||||||
|
+ <string>#fd971f</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
@@ -1027,7 +1027,7 @@
|
||||||
|
<key>name</key>
|
||||||
|
<string>Invalid</string>
|
||||||
|
<key>scope</key>
|
||||||
|
- <string>invalid</string>
|
||||||
|
+ <string>invalid, markup.error</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>background</key>
|
||||||
|
@@ -1042,7 +1042,7 @@
|
||||||
|
<key>name</key>
|
||||||
|
<string>Invalid deprecated</string>
|
||||||
|
<key>scope</key>
|
||||||
|
- <string>invalid.deprecated</string>
|
||||||
|
+ <string>invalid.deprecated, markup.warning</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>background</key>
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
diff --git syntaxes/01_Packages/ShellScript/Bash.sublime-syntax syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||||
|
index e973e319..a703cef8 100644
|
||||||
|
--- syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||||
|
+++ syntaxes/01_Packages/ShellScript/Bash.sublime-syntax
|
||||||
|
@@ -30,8 +30,8 @@ file_extensions:
|
||||||
|
- .zshenv
|
||||||
|
- .zshrc
|
||||||
|
- PKGBUILD # https://jlk.fjfi.cvut.cz/arch/manpages/man/PKGBUILD.5
|
||||||
|
- - .ebuild
|
||||||
|
- - .eclass
|
||||||
|
+ - ebuild
|
||||||
|
+ - eclass
|
||||||
|
|
||||||
|
first_line_match: |
|
||||||
|
(?x)
|
||||||
Vendored
BIN
Binary file not shown.
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/AWK updated: 1ce5f90d44...e23926eca1
+1
Submodule assets/syntaxes/02_Extra/Apache added at 163bc03ae8
+221
@@ -0,0 +1,221 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: Apache Conf
|
||||||
|
file_extensions:
|
||||||
|
- envvars
|
||||||
|
- htaccess
|
||||||
|
- HTACCESS
|
||||||
|
- htgroups
|
||||||
|
- HTGROUPS
|
||||||
|
- htpasswd
|
||||||
|
- HTPASSWD
|
||||||
|
- .htaccess
|
||||||
|
- .HTACCESS
|
||||||
|
- .htgroups
|
||||||
|
- .HTGROUPS
|
||||||
|
- .htpasswd
|
||||||
|
- .HTPASSWD
|
||||||
|
scope: source.apacheconf
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: ^(\s)*(#).*$\n?
|
||||||
|
scope: comment.line.hash.ini
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.apacheconf
|
||||||
|
- match: (<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\s(.+?))?(>)
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.tag.apacheconf
|
||||||
|
2: entity.tag.apacheconf
|
||||||
|
4: string.value.apacheconf
|
||||||
|
5: punctuation.definition.tag.apacheconf
|
||||||
|
- match: (</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.tag.apacheconf
|
||||||
|
2: entity.tag.apacheconf
|
||||||
|
3: punctuation.definition.tag.apacheconf
|
||||||
|
- match: (?<=(Rewrite(Rule|Cond)))\s+(.+?)\s+(.+?)($|\s)
|
||||||
|
captures:
|
||||||
|
3: string.regexp.apacheconf
|
||||||
|
4: string.replacement.apacheconf
|
||||||
|
- match: (?<=RedirectMatch)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||||
|
captures:
|
||||||
|
2: entity.status.apacheconf
|
||||||
|
3: string.regexp.apacheconf
|
||||||
|
5: string.path.apacheconf
|
||||||
|
- match: (?<=Redirect)(\s+(\d\d\d|permanent|temp|seeother|gone))?\s+(.+?)\s+((.+?)($|\s))?
|
||||||
|
captures:
|
||||||
|
2: entity.status.apacheconf
|
||||||
|
3: string.path.apacheconf
|
||||||
|
5: string.path.apacheconf
|
||||||
|
- match: (?<=ScriptAliasMatch|AliasMatch)\s+(.+?)\s+((.+?)\s)?
|
||||||
|
captures:
|
||||||
|
1: string.regexp.apacheconf
|
||||||
|
3: string.path.apacheconf
|
||||||
|
- match: (?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\s+(.+?)\s+((.+?)($|\s))?
|
||||||
|
captures:
|
||||||
|
1: string.path.apacheconf
|
||||||
|
3: string.path.apacheconf
|
||||||
|
- match: \b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\w+|MaxRanges)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.core.apacheconf
|
||||||
|
- match: \b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.mpm.apacheconf
|
||||||
|
- match: \b(Allow|Deny|Order)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.access.apacheconf
|
||||||
|
- match: \b(Action|Script)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.actions.apacheconf
|
||||||
|
- match: \b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.alias.apacheconf
|
||||||
|
- match: \b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.auth.apacheconf
|
||||||
|
- match: \b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.auth_anon.apacheconf
|
||||||
|
- match: \b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.auth_dbm.apacheconf
|
||||||
|
- match: \b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.auth_digest.apacheconf
|
||||||
|
- match: \b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.auth_ldap.apacheconf
|
||||||
|
- match: \b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.autoindex.apacheconf
|
||||||
|
- match: \b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.filter.apacheconf
|
||||||
|
- match: \b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.cache.apacheconf
|
||||||
|
- match: \b(MetaDir|MetaFiles|MetaSuffix)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.cern_meta.apacheconf
|
||||||
|
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.cgi.apacheconf
|
||||||
|
- match: \b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.cgid.apacheconf
|
||||||
|
- match: \b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.charset_lite.apacheconf
|
||||||
|
- match: \b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.dav.apacheconf
|
||||||
|
- match: \b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.deflate.apacheconf
|
||||||
|
- match: \b(DirectoryIndex|DirectorySlash|FallbackResource)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.dir.apacheconf
|
||||||
|
- match: \b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.disk_cache.apacheconf
|
||||||
|
- match: \b(DumpIOInput|DumpIOOutput)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.dumpio.apacheconf
|
||||||
|
- match: \b(PassEnv|SetEnv|UnsetEnv)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.env.apacheconf
|
||||||
|
- match: \b(ExpiresActive|ExpiresByType|ExpiresDefault)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.expires.apacheconf
|
||||||
|
- match: \b(ExtFilterDefine|ExtFilterOptions)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.ext_filter.apacheconf
|
||||||
|
- match: \b(CacheFile|MMapFile)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.file_cache.apacheconf
|
||||||
|
- match: \b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.filter.apacheconf
|
||||||
|
- match: \b(Header|RequestHeader)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.headers.apacheconf
|
||||||
|
- match: \b(ImapBase|ImapDefault|ImapMenu)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.imap.apacheconf
|
||||||
|
- match: \b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.include.apacheconf
|
||||||
|
- match: \b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.isapi.apacheconf
|
||||||
|
- match: \b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.ldap.apacheconf
|
||||||
|
- match: \b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.log.apacheconf
|
||||||
|
- match: \b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.mem_cache.apacheconf
|
||||||
|
- match: \b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.mime.apacheconf
|
||||||
|
- match: \b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.misc.apacheconf
|
||||||
|
- match: \b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.negotiation.apacheconf
|
||||||
|
- match: \b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.nw_ssl.apacheconf
|
||||||
|
- match: \b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.proxy.apacheconf
|
||||||
|
- match: \b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.rewrite.apacheconf
|
||||||
|
- match: \b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.setenvif.apacheconf
|
||||||
|
- match: \b(LoadFile|LoadModule)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.so.apacheconf
|
||||||
|
- match: \b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.ssl.apacheconf
|
||||||
|
- match: \b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.substitute.apacheconf
|
||||||
|
- match: \b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.usertrack.apacheconf
|
||||||
|
- match: \b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.vhost_alias.apacheconf
|
||||||
|
- match: \b(php_value|php_flag|php_admin_value|php_admin_flag)\b(\s+(.+?)(\s+(".+?"|.+?))?)?\s
|
||||||
|
captures:
|
||||||
|
1: keyword.php.apacheconf
|
||||||
|
3: entity.property.apacheconf
|
||||||
|
5: string.value.apacheconf
|
||||||
|
- match: '(%\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\})'
|
||||||
|
captures:
|
||||||
|
1: punctuation.variable.apacheconf
|
||||||
|
3: variable.env.apacheconf
|
||||||
|
4: variable.misc.apacheconf
|
||||||
|
5: punctuation.variable.apacheconf
|
||||||
|
- match: \b((text|image|application|video|audio)/.+?)\s
|
||||||
|
captures:
|
||||||
|
1: entity.mime-type.apacheconf
|
||||||
|
- match: \b(?i)(export|from|unset|set|on|off)\b
|
||||||
|
captures:
|
||||||
|
1: entity.helper.apacheconf
|
||||||
|
- match: \b(\d+)\b
|
||||||
|
captures:
|
||||||
|
1: constant.numeric.integer.decimal.apacheconf
|
||||||
|
- match: '\s(\[)(.*?)(\])\s'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.flag.apacheconf
|
||||||
|
2: string.flag.apacheconf
|
||||||
|
3: punctuation.definition.flag.apacheconf
|
||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/AsciiDoc updated: d0089991e5...e316a0a85c
+967
-253
File diff suppressed because it is too large
Load Diff
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/CMake updated: aba96a0862...7d6231c934
Vendored
-1
Submodule assets/syntaxes/02_Extra/CSV deleted from 4786d037a7
+71
-39
@@ -1,46 +1,78 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||||
name: Advanced CSV
|
name: Comma Separated Values
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- csv
|
- csv
|
||||||
- tsv
|
- tsv
|
||||||
scope: text.advanced_csv
|
scope: text.csv
|
||||||
|
variables:
|
||||||
|
field_separator: (?:[,;\t])
|
||||||
|
record_separator: (?:$\n?)
|
||||||
contexts:
|
contexts:
|
||||||
|
prototype:
|
||||||
|
- match: (?={{record_separator}})
|
||||||
|
pop: true
|
||||||
|
fields:
|
||||||
|
- match: ''
|
||||||
|
push:
|
||||||
|
- field_or_record_separator
|
||||||
|
- field4
|
||||||
|
- field_or_record_separator
|
||||||
|
- field3
|
||||||
|
- field_or_record_separator
|
||||||
|
- field2
|
||||||
|
- field_or_record_separator
|
||||||
|
- field1
|
||||||
main:
|
main:
|
||||||
- match: (\")
|
- meta_include_prototype: false
|
||||||
captures:
|
- match: '^'
|
||||||
1: string.quoted.double.advanced_csv
|
set: fields
|
||||||
push:
|
|
||||||
- meta_scope: meta.quoted.advanced_csv
|
field_or_record_separator:
|
||||||
- match: (\")
|
- meta_include_prototype: false
|
||||||
captures:
|
- match: '{{record_separator}}'
|
||||||
1: string.quoted.double.advanced_csv
|
scope: punctuation.terminator.record.csv
|
||||||
pop: true
|
pop: true
|
||||||
- include: main
|
- match: '{{field_separator}}'
|
||||||
- match: '(\[([+-]?\d*)(\:)?([+-]?\d*)(\,)?([+-]?\d*)(\:)?([+-]?\d*)\])?\s*([<>v^])?\s*(=)'
|
scope: punctuation.separator.sequence.csv
|
||||||
captures:
|
pop: true
|
||||||
1: keyword.operator.advanced_csv
|
|
||||||
2: constant.numeric.formula.advanced_csv
|
field_contents:
|
||||||
4: constant.numeric.formula.advanced_csv
|
- match: '"'
|
||||||
6: constant.numeric.formula.advanced_csv
|
scope: punctuation.definition.string.begin.csv
|
||||||
8: constant.numeric.formula.advanced_csv
|
push: double_quoted_string
|
||||||
9: keyword.operator.advanced_csv
|
|
||||||
10: keyword.operator.advanced_csv
|
- match: (?={{field_separator}}|{{record_separator}})
|
||||||
push:
|
pop: true
|
||||||
- meta_scope: meta.range.advanced_csv
|
|
||||||
- match: (?=(\")|$)
|
double_quoted_string:
|
||||||
pop: true
|
- meta_include_prototype: false
|
||||||
- include: scope:source.python
|
- meta_scope: string.quoted.double.csv
|
||||||
- match: '(?<=^|,|\s|\")([0-9.eE+-]+)(?=$|,|\s|\")'
|
- match: '""'
|
||||||
scope: meta.number.advanced_csv
|
scope: constant.character.escape.csv
|
||||||
captures:
|
- match: '"'
|
||||||
1: constant.numeric.advanced_csv
|
scope: punctuation.definition.string.end.csv
|
||||||
- match: '(?<=^|,|\s|\")([^, \t\"]+)(?=$|,|\s|\")'
|
pop: true
|
||||||
scope: meta.nonnumber.advanced_csv
|
|
||||||
captures:
|
field1:
|
||||||
1: storage.type.advanced_csv
|
- match: ''
|
||||||
- match: (\,)
|
set:
|
||||||
scope: meta.delimiter.advanced_csv
|
- meta_content_scope: meta.field-1.csv support.type
|
||||||
captures:
|
- include: field_contents
|
||||||
1: keyword.operator.advanced_csv
|
field2:
|
||||||
|
- match: ''
|
||||||
|
set:
|
||||||
|
- meta_content_scope: meta.field-2.csv support.function
|
||||||
|
- include: field_contents
|
||||||
|
field3:
|
||||||
|
- match: ''
|
||||||
|
set:
|
||||||
|
- meta_content_scope: meta.field-3.csv constant.numeric
|
||||||
|
- include: field_contents
|
||||||
|
field4:
|
||||||
|
- match: ''
|
||||||
|
set:
|
||||||
|
- meta_content_scope: meta.field-4.csv keyword.operator
|
||||||
|
- include: field_contents
|
||||||
|
|
||||||
|
|||||||
Vendored
-1
Submodule assets/syntaxes/02_Extra/Cabal deleted from 2d98cb79eb
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Crystal updated: 2ee9d667ae...eb63666f35
+4
-3
@@ -108,7 +108,7 @@ contexts:
|
|||||||
- match: (?<!\.)\belse(\s)+if\b
|
- match: (?<!\.)\belse(\s)+if\b
|
||||||
comment: else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.
|
comment: else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.
|
||||||
scope: invalid.deprecated.crystal
|
scope: invalid.deprecated.crystal
|
||||||
- match: '(?<!\.)\b(BEGIN|alias|as|begin|case|select|abstract|class|END|ensure|for|fun|if|ifdef|in|lib|module|of|out|private|protected|rescue|struct|with|union|enum|macro|then|type|unless|until|while)\b(?![?!])'
|
- match: '(?<!\.)\b(BEGIN|alias|as|begin|case|select|abstract|class|END|ensure|for|fun|if|ifdef|in|lib|module|of|out|private|protected|rescue|struct|with|union|enum|macro|then|unless|until|while)\b(?![?!])|(?<!\.)\btype\b\s*(?=[A-Z])'
|
||||||
comment: everything being a reserved word, not a value and needing a 'end' is a..
|
comment: everything being a reserved word, not a value and needing a 'end' is a..
|
||||||
scope: keyword.control.primary.crystal
|
scope: keyword.control.primary.crystal
|
||||||
- match: '(?<!\.)\b(when|else|elsif)\b(?![?!])'
|
- match: '(?<!\.)\b(when|else|elsif)\b(?![?!])'
|
||||||
@@ -131,7 +131,7 @@ contexts:
|
|||||||
scope: keyword.control.pseudo-method.crystal
|
scope: keyword.control.pseudo-method.crystal
|
||||||
- match: '\b(nil|true|false)\b(?![?!])'
|
- match: '\b(nil|true|false)\b(?![?!])'
|
||||||
scope: constant.language.crystal
|
scope: constant.language.crystal
|
||||||
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])'
|
- match: '\b(__(DIR|FILE|LINE|END_LINE)__|self)\b(?![?!])|self[?]'
|
||||||
scope: variable.language.crystal
|
scope: variable.language.crystal
|
||||||
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
|
- match: '\b(initialize|new|loop|include|extend|raise|getter|setter|property|class_getter|class_setter|class_property|describe|context|it|with|delegate|def_hash|def_equals|def_equals_and_hash|forward_missing_to|record|assert_responds_to|spawn|annotation|verbatim)\b[!?]?'
|
||||||
comment: everything being a method but having a special function is a..
|
comment: everything being a method but having a special function is a..
|
||||||
@@ -190,7 +190,7 @@ contexts:
|
|||||||
push:
|
push:
|
||||||
- meta_scope: meta.function.method.with-arguments.crystal
|
- meta_scope: meta.function.method.with-arguments.crystal
|
||||||
- meta_content_scope: variable.parameter.function.crystal
|
- meta_content_scope: variable.parameter.function.crystal
|
||||||
- match: \)\s*$|\)\s*:|\)\s*;
|
- match: \)
|
||||||
captures:
|
captures:
|
||||||
0: punctuation.definition.parameters.crystal
|
0: punctuation.definition.parameters.crystal
|
||||||
pop: true
|
pop: true
|
||||||
@@ -705,6 +705,7 @@ contexts:
|
|||||||
0: punctuation.definition.string.end.crystal
|
0: punctuation.definition.string.end.crystal
|
||||||
pop: true
|
pop: true
|
||||||
- include: heredoc
|
- include: heredoc
|
||||||
|
- include: scope:text.html.basic
|
||||||
- include: scope:source.js
|
- include: scope:source.js
|
||||||
- include: interpolated_crystal
|
- include: interpolated_crystal
|
||||||
- include: escaped_char
|
- include: escaped_char
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Elixir updated: 89b3bada32...4fb01891dd
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Elm updated: dfbb8bdc9a...e266d279c8
+1
Submodule assets/syntaxes/02_Extra/Email added at e89d09d440
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/FSharp updated: c18616d6bd...9e4645c608
+1
Submodule assets/syntaxes/02_Extra/Fortran added at dcf4f24f1c
@@ -4,6 +4,7 @@
|
|||||||
name: fstab
|
name: fstab
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- fstab
|
- fstab
|
||||||
|
- crypttab
|
||||||
scope: source.fstab
|
scope: source.fstab
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
|
|||||||
+1
Submodule assets/syntaxes/02_Extra/GLSL added at 4cd4acfffc
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/GraphQL updated: c9d84587eb...59304d6c7b
+2
-1
@@ -25,12 +25,13 @@ contexts:
|
|||||||
scope: comment.line.semicolon.ini
|
scope: comment.line.semicolon.ini
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.comment.ini
|
1: punctuation.definition.comment.ini
|
||||||
- match: '^\s*(\[)(.*?)(\])'
|
- match: '^\s*(\[)(.*?)(\])\s*(;.*)?$\n?'
|
||||||
scope: meta.tag.section.ini
|
scope: meta.tag.section.ini
|
||||||
captures:
|
captures:
|
||||||
1: punctuation.definition.section.ini
|
1: punctuation.definition.section.ini
|
||||||
2: entity.section.ini
|
2: entity.section.ini
|
||||||
3: punctuation.definition.section.ini
|
3: punctuation.definition.section.ini
|
||||||
|
4: comment.definition.section.ini
|
||||||
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
- match: '^(\s*(["'']?)(.+?)(\2)\s*(=))?\s*((["'']?)(.*?)(\7))\s*(;.*)?$\n?'
|
||||||
scope: meta.declaration.ini
|
scope: meta.declaration.ini
|
||||||
captures:
|
captures:
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Julia updated: 0ca4cc2990...cc13e7d4ef
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/LESS updated: 3020993658...a2eae0453e
+1
Submodule assets/syntaxes/02_Extra/Lean added at 29a03a8aba
+125
@@ -0,0 +1,125 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: Lean
|
||||||
|
file_extensions:
|
||||||
|
- lean
|
||||||
|
scope: source.lean
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- include: comments
|
||||||
|
- match: '\b(?<!\.)(inductive|coinductive|structure|theorem|axiom|axioms|abbreviation|lemma|definition|def|instance|class|constant)\b\s+(\{[^}]*\})?'
|
||||||
|
captures:
|
||||||
|
1: keyword.other.definitioncommand.lean
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.definitioncommand.lean
|
||||||
|
- match: '(?=\bwith\b|\bextends\b|[:\|\(\[\{⦃<>])'
|
||||||
|
pop: true
|
||||||
|
- include: comments
|
||||||
|
- include: definitionName
|
||||||
|
- match: ","
|
||||||
|
- match: \b(Prop|Type|Sort)\b
|
||||||
|
scope: storage.type.lean
|
||||||
|
- match: '\battribute\b\s*\[[^\]]*\]'
|
||||||
|
scope: storage.modifier.lean
|
||||||
|
- match: '@\[[^\]]*\]'
|
||||||
|
scope: storage.modifier.lean
|
||||||
|
- match: \b(?<!\.)(private|meta|mutual|protected|noncomputable)\b
|
||||||
|
scope: keyword.control.definition.modifier.lean
|
||||||
|
- match: \b(sorry)\b
|
||||||
|
scope: invalid.illegal.lean
|
||||||
|
- match: '#print\s+(def|definition|inductive|instance|structure|axiom|axioms|class)\b'
|
||||||
|
scope: keyword.other.command.lean
|
||||||
|
- match: '#(print|eval|reduce|check|help|exit|find|where)\b'
|
||||||
|
scope: keyword.other.command.lean
|
||||||
|
- match: \b(?<!\.)(import|export|prelude|theory|definition|def|abbreviation|instance|renaming|hiding|exposing|parameter|parameters|begin|constant|constants|lemma|variable|variables|theorem|example|open|axiom|inductive|coinductive|with|structure|universe|universes|alias|precedence|reserve|postfix|prefix|infix|infixl|infixr|notation|end|using|namespace|section|local|set_option|extends|include|omit|class|classes|instances|raw|run_cmd|restate_axiom)(?!\.)\b
|
||||||
|
scope: keyword.other.lean
|
||||||
|
- match: \b(?<!\.)(calc|have|this|match|do|suffices|show|by|in|at|let|forall|fun|exists|assume|from|obtain|haveI|λ)(?!\.)\b
|
||||||
|
scope: keyword.other.lean
|
||||||
|
- match: «
|
||||||
|
push:
|
||||||
|
- meta_content_scope: entity.name.lean
|
||||||
|
- match: »
|
||||||
|
pop: true
|
||||||
|
- match: \b(?<!\.)(if|then|else)\b
|
||||||
|
scope: keyword.control.lean
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.begin.lean
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.double.lean
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.lean
|
||||||
|
pop: true
|
||||||
|
- match: '\\[\\"nt'']'
|
||||||
|
scope: constant.character.escape.lean
|
||||||
|
- match: '\\x[0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
|
scope: constant.character.escape.lean
|
||||||
|
- match: '\\u[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]'
|
||||||
|
scope: constant.character.escape.lean
|
||||||
|
- match: '''[^\\'']'''
|
||||||
|
scope: string.quoted.single.lean
|
||||||
|
- match: '''(\\(x..|u....|.))'''
|
||||||
|
scope: string.quoted.single.lean
|
||||||
|
captures:
|
||||||
|
1: constant.character.escape.lean
|
||||||
|
- match: '`+[^\[(]\S+'
|
||||||
|
scope: entity.name.lean
|
||||||
|
- match: '\b([0-9]+|0([xX][0-9a-fA-F]+))\b'
|
||||||
|
scope: constant.numeric.lean
|
||||||
|
blockComment:
|
||||||
|
- match: /-
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.lean
|
||||||
|
- match: "-/"
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.lean.markdown
|
||||||
|
- include: blockComment
|
||||||
|
comments:
|
||||||
|
- include: dashComment
|
||||||
|
- include: docComment
|
||||||
|
- include: stringBlock
|
||||||
|
- include: modDocComment
|
||||||
|
- include: blockComment
|
||||||
|
dashComment:
|
||||||
|
- match: (--)
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.comment.lean
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.line.double-dash.lean
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.lean.markdown
|
||||||
|
definitionName:
|
||||||
|
- match: '\b[^:«»\(\)\{\}[:space:]=→λ∀?][^:«»\(\)\{\}[:space:]]*'
|
||||||
|
scope: entity.name.function.lean
|
||||||
|
- match: «
|
||||||
|
push:
|
||||||
|
- meta_content_scope: entity.name.function.lean
|
||||||
|
- match: »
|
||||||
|
pop: true
|
||||||
|
docComment:
|
||||||
|
- match: /--
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.documentation.lean
|
||||||
|
- match: "-/"
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.lean.markdown
|
||||||
|
- include: blockComment
|
||||||
|
modDocComment:
|
||||||
|
- match: /-!
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.documentation.lean
|
||||||
|
- match: "-/"
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.lean.markdown
|
||||||
|
- include: blockComment
|
||||||
|
stringBlock:
|
||||||
|
- match: /-"
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.string.lean
|
||||||
|
- match: '"-/'
|
||||||
|
pop: true
|
||||||
|
- include: scope:source.lean.markdown
|
||||||
|
- include: blockComment
|
||||||
+147
-29
@@ -7,47 +7,165 @@ file_extensions:
|
|||||||
scope: source.man
|
scope: source.man
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
section_heading: '^\S.*$'
|
section_heading: '^(?!#)\S.*$'
|
||||||
|
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
|
prototype:
|
||||||
|
# ignore syntax test lines
|
||||||
|
- match: '^#'
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.syntax-test.man
|
||||||
|
- match: $\n?
|
||||||
|
pop: true
|
||||||
main:
|
main:
|
||||||
- match: ^
|
- match: ^
|
||||||
push: first_line
|
push: first_line
|
||||||
|
|
||||||
first_line:
|
first_line:
|
||||||
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))'
|
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))\s*'
|
||||||
captures:
|
captures:
|
||||||
1: meta.preprocessor
|
1: meta.preprocessor.man
|
||||||
2: keyword.operator
|
2: keyword.operator.man
|
||||||
3: string.quoted.other
|
3: string.quoted.other.man
|
||||||
4: keyword.operator
|
4: keyword.operator.man
|
||||||
|
push:
|
||||||
- match: '$'
|
- match: (?:[\w'-]+|\s(?!\s))
|
||||||
push: body
|
scope: markup.heading.title.man
|
||||||
|
- match: \s\s
|
||||||
body:
|
pop: true
|
||||||
- match: '^(SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
|
- match: '(?=\S|$)'
|
||||||
push: Packages/C/C.sublime-syntax
|
|
||||||
scope: markup.heading
|
|
||||||
with_prototype:
|
|
||||||
- match: '(?={{section_heading}})'
|
|
||||||
pop: true
|
pop: true
|
||||||
|
|
||||||
- match: '^\S.*$'
|
- match: '$'
|
||||||
scope: markup.heading
|
set: body
|
||||||
|
|
||||||
- match: '\b([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
body:
|
||||||
|
# English, ..., ..., ..., Russian, ...
|
||||||
|
|
||||||
|
- match: '^(?:SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
|
||||||
|
scope: markup.heading.synopsis.man
|
||||||
|
embed: synopsis
|
||||||
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
|
- match: '^(?:USAGE)'
|
||||||
|
scope: markup.heading.synopsis.man
|
||||||
|
embed: synopsis
|
||||||
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
|
- match: '{{section_heading}}'
|
||||||
|
scope: markup.heading.other.man
|
||||||
|
embed: options # some man pages put command line options under the description heading
|
||||||
|
escape: '(?={{section_heading}})'
|
||||||
|
|
||||||
|
function-call:
|
||||||
|
- match: '\b([A-Za-z0-9_\-]+\.)?([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
||||||
captures:
|
captures:
|
||||||
1: entity.name.function
|
1: entity.name.function.man
|
||||||
2: keyword.operator
|
2: entity.name.function.man
|
||||||
3: constant.numeric
|
3: keyword.operator.man
|
||||||
4: keyword.operator
|
4: constant.numeric.man
|
||||||
|
5: keyword.operator.man
|
||||||
|
|
||||||
|
env-var:
|
||||||
|
- match: '(\$)(?!\d)(\w+)\b'
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.variable.man
|
||||||
|
2: constant.other.man
|
||||||
|
|
||||||
|
options:
|
||||||
# command-line options like --option=value, --some-flag, or -x
|
# command-line options like --option=value, --some-flag, or -x
|
||||||
- match: '(?:[^a-zA-Z0-9_-]|^|\s)(--?[A-Za-z0-9][A-Za-z0-9-]*)(?:(=)?("?)([A-Za-z0-9]+)("?))?'
|
- match: '^[ ]{7}(?=-)'
|
||||||
|
push: expect-command-line-option
|
||||||
|
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
|
||||||
captures:
|
captures:
|
||||||
1: entity.name
|
1: entity.name.command-line-option
|
||||||
2: keyword.operator
|
push:
|
||||||
3: punctuation.definition.string.begin
|
- match: '='
|
||||||
4: variable.parameter
|
scope: keyword.operator.man
|
||||||
3: punctuation.definition.string.end
|
set:
|
||||||
|
- match: '[^],.() ]+'
|
||||||
|
scope: variable.parameter.man
|
||||||
|
pop: true
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
- include: function-call
|
||||||
|
- include: c-code
|
||||||
|
- include: env-var
|
||||||
|
|
||||||
|
expect-command-line-option:
|
||||||
|
- match: '[A-Za-z0-9-]+'
|
||||||
|
scope: entity.name.command-line-option.man
|
||||||
|
- match: '(\[)(=)'
|
||||||
|
captures:
|
||||||
|
1: punctuation.section.brackets.begin.man
|
||||||
|
2: keyword.operator.man
|
||||||
|
push: [command-line-option-or-pipe, expect-parameter]
|
||||||
|
- match: '\['
|
||||||
|
push:
|
||||||
|
- meta_scope: entity.name.command-line-option.man
|
||||||
|
- match: '\]'
|
||||||
|
pop: true
|
||||||
|
- match: '='
|
||||||
|
scope: keyword.operator.man
|
||||||
|
push: expect-parameter
|
||||||
|
- match: (?=.*\.)
|
||||||
|
pop: true
|
||||||
|
- match: '\s'
|
||||||
|
push: expect-parameter
|
||||||
|
- match: '(,)\s*'
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.man
|
||||||
|
- match: $|(?=\])
|
||||||
|
pop: true
|
||||||
|
|
||||||
|
expect-parameter:
|
||||||
|
- match: '[A-Za-z0-9-]+'
|
||||||
|
scope: variable.parameter.man
|
||||||
|
- match: (?=\s+\|)
|
||||||
|
pop: true
|
||||||
|
- match: \|
|
||||||
|
scope: keyword.operator.logical.man
|
||||||
|
- match: '\['
|
||||||
|
scope: punctuation.section.brackets.begin.man
|
||||||
|
push:
|
||||||
|
- match: '\]'
|
||||||
|
scope: punctuation.section.brackets.end.man
|
||||||
|
pop: true
|
||||||
|
- include: expect-parameter
|
||||||
|
- match: '$|(?=[],]|{{command_line_option}})'
|
||||||
|
pop: true
|
||||||
|
|
||||||
|
c-code:
|
||||||
|
- match: '^(?=\s+(?:#include\b|#define\b|/\*|struct\s+(\w+\s*)?\{))'
|
||||||
|
embed: scope:source.c
|
||||||
|
#embed_scope: source.c.embedded.man
|
||||||
|
#escape: ^(?!#|\1|\s*(?:$|/\*|#include\b|#define\b))
|
||||||
|
escape: ^(?=\s*(?:\(.*\.\)\s*$|[A-Z](?![A-Z])))
|
||||||
|
|
||||||
|
synopsis:
|
||||||
|
- include: c-code
|
||||||
|
- match: \[
|
||||||
|
scope: punctuation.section.brackets.begin.man
|
||||||
|
push: command-line-option-or-pipe
|
||||||
|
- include: options
|
||||||
|
|
||||||
|
command-line-option-or-pipe:
|
||||||
|
- match: (\|)\s*
|
||||||
|
captures:
|
||||||
|
1: keyword.operator.logical.man
|
||||||
|
#- match: (?={{command_line_option}})
|
||||||
|
- match: \w+-\w+
|
||||||
|
- match: (?=-)
|
||||||
|
push:
|
||||||
|
- match: (?=\s*\|)
|
||||||
|
pop: true
|
||||||
|
- include: expect-command-line-option
|
||||||
|
- match: \]
|
||||||
|
scope: punctuation.section.brackets.end.man
|
||||||
|
pop: true
|
||||||
|
- match: \[
|
||||||
|
scope: punctuation.section.brackets.begin.man
|
||||||
|
push: command-line-option-or-pipe
|
||||||
|
|||||||
+1
Submodule assets/syntaxes/02_Extra/Nginx added at 15a1db1510
+1
Submodule assets/syntaxes/02_Extra/Ninja added at 25830aaec9
+52
@@ -0,0 +1,52 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: Ninja
|
||||||
|
file_extensions:
|
||||||
|
- ninja
|
||||||
|
scope: source.ninja
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: (#).*$\n?
|
||||||
|
comment: Comment line.
|
||||||
|
scope: comment.line.number-sign.ninja
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.ninja
|
||||||
|
- match: ^(rule)\b
|
||||||
|
comment: Rule keyword and keywords for a rule.
|
||||||
|
captures:
|
||||||
|
1: keyword.other.ninja
|
||||||
|
push:
|
||||||
|
- match: ^(?=\S)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(?:command|deps|depfile|description|generator|pool|restat|rspfile|rspfile_content)\b
|
||||||
|
scope: keyword.other.ninja
|
||||||
|
- match: ^(pool)\b
|
||||||
|
comment: Pool keyword and keywords for a pool.
|
||||||
|
captures:
|
||||||
|
1: keyword.other.ninja
|
||||||
|
push:
|
||||||
|
- match: ^(?=\S)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(?:depth)\b
|
||||||
|
scope: keyword.other.ninja
|
||||||
|
- match: ^(?:build|rule|default|include|subninja)\b
|
||||||
|
comment: Other Keywords.
|
||||||
|
scope: keyword.other.ninja
|
||||||
|
- match: '(?:[=:]|\|{1,2})(?=\s)'
|
||||||
|
comment: Operators for variable assignment (=), rule definition (:), implicit (|) and order only (||) dependencies.
|
||||||
|
scope: keyword.operator.ninja
|
||||||
|
- match: \$$
|
||||||
|
comment: Line wrap.
|
||||||
|
scope: keyword.operator.ninja
|
||||||
|
- match: \$\$
|
||||||
|
comment: Dollar literal.
|
||||||
|
scope: keyword.operator.ninja
|
||||||
|
- match: '\$[[:alnum:]_-]+'
|
||||||
|
comment: Simple variables, e.g. $var.
|
||||||
|
scope: variable.other.ninja
|
||||||
|
- match: '\${[[:alnum:]_.-]+}'
|
||||||
|
comment: "Variables, e.g. ${some.var.name}."
|
||||||
|
scope: variable.other.ninja
|
||||||
+1
Submodule assets/syntaxes/02_Extra/QML added at e3e058a21f
+103
@@ -0,0 +1,103 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: QML
|
||||||
|
file_extensions:
|
||||||
|
- qml
|
||||||
|
- qmlproject
|
||||||
|
scope: source.qml
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: /\*(?!/)
|
||||||
|
comment: Block comment.
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.block.documentation.qml
|
||||||
|
- match: \*/
|
||||||
|
pop: true
|
||||||
|
- match: //.*$
|
||||||
|
comment: Line comment.
|
||||||
|
scope: comment.line.double-slash.qml
|
||||||
|
- match: \b(import)\s+
|
||||||
|
comment: import statement.
|
||||||
|
captures:
|
||||||
|
1: keyword.other.import.qml
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.import.qml
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- match: '([\w\d\.]+)\s+(\d+\.\d+)(?:\s+(as)\s+([A-Z][\w\d]*))?'
|
||||||
|
comment: "import Namespace VersionMajor.VersionMinor [as SingletonTypeIdentifier]"
|
||||||
|
scope: meta.import.namespace.qml
|
||||||
|
captures:
|
||||||
|
1: entity.name.class.qml
|
||||||
|
2: constant.numeric.qml
|
||||||
|
3: keyword.other.import.qml
|
||||||
|
4: entity.name.class.qml
|
||||||
|
- match: '(\"[^\"]+\")(?:\s+(as)\s+([A-Z][\w\d]*))?'
|
||||||
|
comment: "import <string> [as Script]"
|
||||||
|
scope: meta.import.dirjs.qml
|
||||||
|
captures:
|
||||||
|
1: string.quoted.double.qml
|
||||||
|
2: keyword.other.import.qml
|
||||||
|
3: entity.name.class.qml
|
||||||
|
- match: '\b[A-Z]\w*\b'
|
||||||
|
comment: Capitalized word (class or enum).
|
||||||
|
scope: support.class.qml
|
||||||
|
- match: '(((^|\{)\s*)|\b)on[A-Z]\w*\b'
|
||||||
|
comment: onSomething - handler.
|
||||||
|
scope: support.class.qml
|
||||||
|
- match: '(?:^|\{)\s*(id)\s*\:\s*([^;\s]+)\b'
|
||||||
|
comment: "id: <something>"
|
||||||
|
scope: meta.id.qml
|
||||||
|
captures:
|
||||||
|
1: keyword.other.qml
|
||||||
|
2: storage.modifier.qml
|
||||||
|
- match: '^\s*(?:(default|readonly)\s+)?(property)\s+(?:(alias)|([\w\<\>]+))\s+(\w+)'
|
||||||
|
comment: property definition.
|
||||||
|
scope: meta.propertydef.qml
|
||||||
|
captures:
|
||||||
|
1: keyword.other.qml
|
||||||
|
2: keyword.other.qml
|
||||||
|
3: keyword.other.qml
|
||||||
|
4: storage.type.qml
|
||||||
|
5: entity.other.attribute-name.qml
|
||||||
|
- match: \b(signal)\s+(\w+)\s*
|
||||||
|
comment: "signal <signalName>[([<type> <parameter>[, ...]])]"
|
||||||
|
captures:
|
||||||
|
1: keyword.other.qml
|
||||||
|
2: support.function.qml
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.signal.qml
|
||||||
|
- match: ;|(?=/)|$
|
||||||
|
pop: true
|
||||||
|
- match: (\w+)\s+(\w+)
|
||||||
|
scope: meta.signal.parameters.qml
|
||||||
|
captures:
|
||||||
|
1: storage.type.qml
|
||||||
|
2: variable.parameter.qml
|
||||||
|
- match: (?:\b|\s+)(?:(true|false|null|undefined)|(var|void)|(on|as|enum|connect|break|case|catch|continue|debugger|default|delete|do|else|finally|for|if|in|instanceof|new|return|switch|this|throw|try|typeof|while|with))\b
|
||||||
|
comment: js keywords.
|
||||||
|
scope: meta.keyword.qml
|
||||||
|
captures:
|
||||||
|
1: constant.language.qml
|
||||||
|
2: storage.type.qml
|
||||||
|
3: keyword.control.qml
|
||||||
|
- match: '\b(function)\s+([\w_]+)\s*(?=\()'
|
||||||
|
comment: function definition.
|
||||||
|
scope: meta.function.qml
|
||||||
|
captures:
|
||||||
|
1: storage.type.qml
|
||||||
|
2: entity.name.function.untitled
|
||||||
|
- match: '\b[\w_]+\s*(?=\()'
|
||||||
|
comment: function call.
|
||||||
|
scope: support.function.qml
|
||||||
|
- match: '(?:^|\{|;)\s*[a-z][\w\.]*\s*(?=\:)'
|
||||||
|
comment: "property (property: <something>)."
|
||||||
|
scope: entity.other.attribute-name.qml
|
||||||
|
- match: (?<=\.)\b\w*
|
||||||
|
comment: property of the variable (name.property).
|
||||||
|
scope: entity.other.attribute-name.qml
|
||||||
|
- match: '\b([a-z_]\w*)\b'
|
||||||
|
comment: All non colored words are assumed to be variables.
|
||||||
|
scope: variable.parameter
|
||||||
|
- include: scope:source.js
|
||||||
+2
-1
@@ -1,9 +1,10 @@
|
|||||||
%YAML 1.2
|
%YAML 1.2
|
||||||
---
|
---
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
name: Robot Framework syntax highlighting.
|
name: Robot Framework
|
||||||
file_extensions:
|
file_extensions:
|
||||||
- robot
|
- robot
|
||||||
|
- resource
|
||||||
scope: source.robot
|
scope: source.robot
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/SCSS_Sass updated: b98a3f3ccf...63819a1ab6
+33
@@ -0,0 +1,33 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: SML
|
||||||
|
file_extensions:
|
||||||
|
- sml
|
||||||
|
- cm
|
||||||
|
- sig
|
||||||
|
scope: source.sml
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: \b(EQUAL|GREATER|LESS|NONE|SOME|abstraction|abstype|and|andalso|array|as|before|bool|case|char|datatype|do|else|end|eqtype|exception|exn|false|fn|fun|functor|handle|if|in|include|infix|infixr|int|let|list|local|nil|nonfix|not|o|of|op|open|option|orelse|overload|print|raise|real|rec|ref|sharing|sig|signature|string|struct|structure|substring|then|true|type|unit|val|vector|where|while|with|withtype|word)\b
|
||||||
|
comment: SML keywords
|
||||||
|
scope: keyword.source.sml
|
||||||
|
- match: '\b[0-9]+\b'
|
||||||
|
comment: Numeric constants
|
||||||
|
scope: constant.numeric.sml
|
||||||
|
- match: '\b[A-Z]([A-z0-9]*)\b'
|
||||||
|
comment: Built in types
|
||||||
|
scope: support.type.sml
|
||||||
|
- match: '"(\\"|[^"])*"'
|
||||||
|
comment: String constant
|
||||||
|
scope: string.sml
|
||||||
|
- match: \(\*
|
||||||
|
comment: Comment
|
||||||
|
push:
|
||||||
|
- meta_scope: comment.sml
|
||||||
|
- match: \*\)
|
||||||
|
pop: true
|
||||||
|
- match: '(\(\)|=>|::|\[\]|->|:>)'
|
||||||
|
comment: Character
|
||||||
|
scope: constant.character.sml
|
||||||
|
|
||||||
+1
Submodule assets/syntaxes/02_Extra/SublimeEthereum added at b60e0a3e00
+1
Submodule assets/syntaxes/02_Extra/Svelte added at c71f1290b0
Vendored
-1
Submodule assets/syntaxes/02_Extra/Syslog deleted from 7628d4e0b8
+1
Submodule assets/syntaxes/02_Extra/SystemVerilog added at 7eca705e87
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/Terraform updated: 64208ea816...54d8350c3c
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/TypeScript updated: 9cd994af73...a607ddfec9
+63
-35
@@ -9,10 +9,7 @@ contexts:
|
|||||||
main:
|
main:
|
||||||
- include: directives
|
- include: directives
|
||||||
- include: statements
|
- include: statements
|
||||||
- match: \A(#!).*(?=$)
|
- include: shebang
|
||||||
scope: comment.line.shebang.ts
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.ts
|
|
||||||
comment:
|
comment:
|
||||||
- match: /\*\*(?!/)
|
- match: /\*\*(?!/)
|
||||||
captures:
|
captures:
|
||||||
@@ -120,7 +117,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -815,7 +812,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -856,7 +853,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -918,7 +915,7 @@ contexts:
|
|||||||
captures:
|
captures:
|
||||||
1: keyword.control.as.ts
|
1: keyword.control.as.ts
|
||||||
push:
|
push:
|
||||||
- match: '(?=$|^|[;,:})\]]|\|\||\&\&|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(as)\s+)|(\s+\<))'
|
- match: '(?=^|[;),}\]:?\-\+\>]|\|\||\&\&|\!\=\=|$|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(as)\s+)|(\s+\<))'
|
||||||
pop: true
|
pop: true
|
||||||
- include: type
|
- include: type
|
||||||
- match: \.\.\.
|
- match: \.\.\.
|
||||||
@@ -933,7 +930,7 @@ contexts:
|
|||||||
scope: keyword.operator.comparison.ts
|
scope: keyword.operator.comparison.ts
|
||||||
- match: <=|>=|<>|<|>
|
- match: <=|>=|<>|<|>
|
||||||
scope: keyword.operator.relational.ts
|
scope: keyword.operator.relational.ts
|
||||||
- match: '(\!)\s*(/)(?![/*])'
|
- match: '(?<=[_$[:alnum:]])(\!)\s*(/)(?![/*])'
|
||||||
captures:
|
captures:
|
||||||
1: keyword.operator.logical.ts
|
1: keyword.operator.logical.ts
|
||||||
2: keyword.operator.arithmetic.ts
|
2: keyword.operator.arithmetic.ts
|
||||||
@@ -1038,7 +1035,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -1079,7 +1076,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -1125,25 +1122,42 @@ contexts:
|
|||||||
- match: \*
|
- match: \*
|
||||||
scope: keyword.generator.asterisk.ts
|
scope: keyword.generator.asterisk.ts
|
||||||
function-call:
|
function-call:
|
||||||
- match: '(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))\s*(?:(\?\.\s*)|(\!))?(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\()'
|
- match: '(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))\s*(?:(\?\.\s*)|(\!))?((<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\())'
|
||||||
push:
|
push:
|
||||||
- match: '(?<=\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))\s*(?:(\?\.\s*)|(\!))?(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\()'
|
- match: '(?<=\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))\s*(?:(\?\.\s*)|(\!))?((<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\())'
|
||||||
pop: true
|
pop: true
|
||||||
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))'
|
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))'
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.function-call.ts
|
- meta_scope: meta.function-call.ts
|
||||||
- match: '(?=\s*(?:(\?\.\s*)|(\!))?(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\()'
|
- match: '(?=\s*(?:(\?\.\s*)|(\!))?((<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?\())'
|
||||||
pop: true
|
pop: true
|
||||||
- include: support-function-call-identifiers
|
- include: function-call-target
|
||||||
- match: '(\#?[_$[:alpha:]][_$[:alnum:]]*)'
|
|
||||||
scope: entity.name.function.ts
|
|
||||||
- include: comment
|
- include: comment
|
||||||
- match: \?\.
|
- include: function-call-optionals
|
||||||
scope: meta.function-call.ts punctuation.accessor.optional.ts
|
|
||||||
- match: \!
|
|
||||||
scope: meta.function-call.ts keyword.operator.definiteassignment.ts
|
|
||||||
- include: type-arguments
|
- include: type-arguments
|
||||||
- include: paren-expression
|
- include: paren-expression
|
||||||
|
- match: '(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))(<\s*[\{\[\(]\s*$))'
|
||||||
|
push:
|
||||||
|
- match: '(?<=\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\)]))(<\s*[\{\[\(]\s*$))'
|
||||||
|
pop: true
|
||||||
|
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*)(\s*\??\.\s*(\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\??\.\s*\#?[_$[:alpha:]][_$[:alnum:]]*))'
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.function-call.ts
|
||||||
|
- match: '(?=(<\s*[\{\[\(]\s*$))'
|
||||||
|
pop: true
|
||||||
|
- include: function-call-target
|
||||||
|
- include: comment
|
||||||
|
- include: function-call-optionals
|
||||||
|
- include: type-arguments
|
||||||
|
function-call-optionals:
|
||||||
|
- match: \?\.
|
||||||
|
scope: meta.function-call.ts punctuation.accessor.optional.ts
|
||||||
|
- match: \!
|
||||||
|
scope: meta.function-call.ts keyword.operator.definiteassignment.ts
|
||||||
|
function-call-target:
|
||||||
|
- include: support-function-call-identifiers
|
||||||
|
- match: '(\#?[_$[:alpha:]][_$[:alnum:]]*)'
|
||||||
|
scope: entity.name.function.ts
|
||||||
function-declaration:
|
function-declaration:
|
||||||
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(?:(\bexport)\s+)?(?:(\bdeclare)\s+)?(?:(async)\s+)?(function\b)(?:\s*(\*))?(?:(?:\s+|(?<=\*))([_$[:alpha:]][_$[:alnum:]]*))?\s*'
|
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(?:(\bexport)\s+)?(?:(\bdeclare)\s+)?(?:(async)\s+)?(function\b)(?:\s*(\*))?(?:(?:\s+|(?<=\*))([_$[:alpha:]][_$[:alnum:]]*))?\s*'
|
||||||
captures:
|
captures:
|
||||||
@@ -1221,7 +1235,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -1431,7 +1445,7 @@ contexts:
|
|||||||
captures:
|
captures:
|
||||||
1: keyword.operator.expression.instanceof.ts
|
1: keyword.operator.expression.instanceof.ts
|
||||||
push:
|
push:
|
||||||
- match: '(?<=\))|(?=[;),}\]:?]|\|\||\&\&|$|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))'
|
- match: '(?<=\))|(?=[;),}\]:?\-\+\>]|\|\||\&\&|\!\=\=|$|(([\&\~\^\|]\s*)?[_$[:alpha:]][_$[:alnum:]]*\s+instanceof(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))'
|
||||||
pop: true
|
pop: true
|
||||||
- include: type
|
- include: type
|
||||||
interface-declaration:
|
interface-declaration:
|
||||||
@@ -1582,7 +1596,7 @@ contexts:
|
|||||||
1: keyword.operator.new.ts
|
1: keyword.operator.new.ts
|
||||||
push:
|
push:
|
||||||
- meta_scope: new.expr.ts
|
- meta_scope: new.expr.ts
|
||||||
- match: '(?<=\))|(?=[;),}\]:\-\+]|\|\||\&\&|$|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))new(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))'
|
- match: '(?<=\))|(?=[;),}\]:?\-\+\>]|\|\||\&\&|\!\=\=|$|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))new(?![_$[:alnum:]])(?:(?=\.\.\.)|(?!\.)))|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))function((\s+[_$[:alpha:]][_$[:alnum:]]*)|(\s*[\(]))))'
|
||||||
pop: true
|
pop: true
|
||||||
- include: paren-expression
|
- include: paren-expression
|
||||||
- include: class-declaration
|
- include: class-declaration
|
||||||
@@ -1864,7 +1878,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -1900,7 +1914,7 @@ contexts:
|
|||||||
1: keyword.control.as.ts
|
1: keyword.control.as.ts
|
||||||
push:
|
push:
|
||||||
- meta_scope: meta.object.member.ts
|
- meta_scope: meta.object.member.ts
|
||||||
- match: '(?=$|^|[,}]|\|\||\&\&|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(as)\s+))'
|
- match: '(?=[;),}\]:?\-\+\>]|\|\||\&\&|\!\=\=|$|^|((?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))(as)\s+))'
|
||||||
pop: true
|
pop: true
|
||||||
- include: type
|
- include: type
|
||||||
- match: '(?=[_$[:alpha:]][_$[:alnum:]]*\s*=)'
|
- match: '(?=[_$[:alpha:]][_$[:alnum:]]*\s*=)'
|
||||||
@@ -2010,7 +2024,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -2051,7 +2065,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -2313,6 +2327,11 @@ contexts:
|
|||||||
- include: type-object
|
- include: type-object
|
||||||
- include: type-predicate-operator
|
- include: type-predicate-operator
|
||||||
- include: type
|
- include: type
|
||||||
|
shebang:
|
||||||
|
- match: \A(#!).*(?=$)
|
||||||
|
scope: comment.line.shebang.ts
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.ts
|
||||||
single-line-comment-consuming-line-ending:
|
single-line-comment-consuming-line-ending:
|
||||||
- match: '(^[ \t]+)?((//)(?:\s*((@)internal)(?=\s|$))?)'
|
- match: '(^[ \t]+)?((//)(?:\s*((@)internal)(?=\s|$))?)'
|
||||||
captures:
|
captures:
|
||||||
@@ -2684,20 +2703,20 @@ contexts:
|
|||||||
0: case-clause.expr.ts punctuation.definition.section.case-statement.ts
|
0: case-clause.expr.ts punctuation.definition.section.case-statement.ts
|
||||||
- include: statements
|
- include: statements
|
||||||
template:
|
template:
|
||||||
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\??\.\s*)*|(\??\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?`)'
|
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\??\.\s*)*|(\??\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?`)'
|
||||||
push:
|
push:
|
||||||
- meta_scope: string.template.ts
|
- meta_scope: string.template.ts
|
||||||
- match: (?=`)
|
- match: (?=`)
|
||||||
pop: true
|
pop: true
|
||||||
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\??\.\s*)*|(\??\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*))'
|
- match: '(?=(([_$[:alpha:]][_$[:alnum:]]*\s*\??\.\s*)*|(\??\.\s*)?)([_$[:alpha:]][_$[:alnum:]]*))'
|
||||||
push:
|
push:
|
||||||
- match: '(?=(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?`)'
|
- match: '(?=(<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)?`)'
|
||||||
pop: true
|
pop: true
|
||||||
- include: support-function-call-identifiers
|
- include: support-function-call-identifiers
|
||||||
- match: "([_$[:alpha:]][_$[:alnum:]]*)"
|
- match: "([_$[:alpha:]][_$[:alnum:]]*)"
|
||||||
scope: entity.name.function.tagged-template.ts
|
scope: entity.name.function.tagged-template.ts
|
||||||
- include: type-arguments
|
- include: type-arguments
|
||||||
- match: '([_$[:alpha:]][_$[:alnum:]]*)\s*(?=(<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''[^\'']*\'')|(\"[^\"]*\")|(\`[^\`]*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)`)'
|
- match: '([_$[:alpha:]][_$[:alnum:]]*)\s*(?=(<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))(([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>|\<\s*(((keyof|infer|awaited|typeof|readonly)\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\''([^\''\\]|\\.)*\'')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))(?=\s*([\<\>\,\.\[]|=>|&(?!&)|\|(?!\|)))))([^<>\(]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(?<==)\>)*(?<!=)\>))*(?<!=)\>)*(?<!=)>\s*)`)'
|
||||||
captures:
|
captures:
|
||||||
1: entity.name.function.tagged-template.ts
|
1: entity.name.function.tagged-template.ts
|
||||||
push:
|
push:
|
||||||
@@ -2974,6 +2993,8 @@ contexts:
|
|||||||
scope: keyword.operator.ternary.ts
|
scope: keyword.operator.ternary.ts
|
||||||
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))infer(?=\s+[_$[:alpha:]])'
|
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))infer(?=\s+[_$[:alpha:]])'
|
||||||
scope: keyword.operator.expression.infer.ts
|
scope: keyword.operator.expression.infer.ts
|
||||||
|
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))awaited(?=\s+[_$[:alpha:]])'
|
||||||
|
scope: keyword.operator.expression.awaited.ts
|
||||||
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))import(?=\s*\()'
|
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))import(?=\s*\()'
|
||||||
scope: keyword.operator.expression.import.ts
|
scope: keyword.operator.expression.import.ts
|
||||||
type-parameters:
|
type-parameters:
|
||||||
@@ -3063,6 +3084,13 @@ contexts:
|
|||||||
captures:
|
captures:
|
||||||
0: meta.brace.square.ts
|
0: meta.brace.square.ts
|
||||||
pop: true
|
pop: true
|
||||||
|
- match: \.\.\.
|
||||||
|
scope: keyword.operator.rest.ts
|
||||||
|
- match: '(?<![_$[:alnum:]])(?:(?<=\.\.\.)|(?<!\.))([_$[:alpha:]][_$[:alnum:]]*)\s*(\?)?\s*(:)'
|
||||||
|
captures:
|
||||||
|
1: entity.name.label.ts
|
||||||
|
2: keyword.operator.optional.ts
|
||||||
|
3: punctuation.separator.label.ts
|
||||||
- include: type
|
- include: type
|
||||||
- include: punctuation-comma
|
- include: punctuation-comma
|
||||||
typeof-operator:
|
typeof-operator:
|
||||||
@@ -3159,7 +3187,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -3200,7 +3228,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -3246,7 +3274,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
@@ -3287,7 +3315,7 @@ contexts:
|
|||||||
# arrow function possible to detect only with => on same line
|
# arrow function possible to detect only with => on same line
|
||||||
(
|
(
|
||||||
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
(<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<]|\<\s*([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\[([^\[\]]|(\[[^\[\]]*\]))*\]))([^=<>]|=[^<])*\>)*\>)*>\s*)? # typeparameters
|
||||||
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()]|(\(([^\(\)]|(\([^\(\)]*\)))*\)))*)?\) # parameters
|
\(\s*(\/\*([^\*]|(\*[^\/]))*\*\/\s*)*(([_$[:alpha:]]|(\{([^\{\}]|(\{[^\{\}]*\}))*\})|(\[([^\[\]]|(\[[^\[\]]*\]))*\])|(\.\.\.\s*[_$[:alpha:]]))([^()\'\"\`]|(\(([^\(\)]|(\([^\(\)]*\)))*\))|(\'([^\'\\]|\\.)*\')|(\"([^\"\\]|\\.)*\")|(\`([^\`\\]|\\.)*\`))*)?\) # parameters
|
||||||
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
(\s*:\s*([^<>\(\)\{\}]|\<([^<>]|\<[^<>]+\>)+\>|\([^\(\)]+\)|\{[^\{\}]+\})+)? # return type
|
||||||
\s*=> # arrow operator
|
\s*=> # arrow operator
|
||||||
)
|
)
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/VimL updated: ed40c3bc81...7ebcaa1d98
-91
@@ -1,91 +0,0 @@
|
|||||||
%YAML 1.2
|
|
||||||
---
|
|
||||||
# http://www.sublimetext.com/docs/3/syntax.html
|
|
||||||
name: VimL
|
|
||||||
file_extensions:
|
|
||||||
- vim
|
|
||||||
- .vimrc
|
|
||||||
scope: source.viml
|
|
||||||
contexts:
|
|
||||||
main:
|
|
||||||
- include: comment
|
|
||||||
- include: string_quoted_double
|
|
||||||
- include: string_quoted_single
|
|
||||||
- include: string_regex
|
|
||||||
- include: inline_comment
|
|
||||||
- include: number_int
|
|
||||||
- include: number_hex
|
|
||||||
- include: keyword
|
|
||||||
- include: support_function
|
|
||||||
- include: support_variable
|
|
||||||
- include: support_type
|
|
||||||
- include: function_params
|
|
||||||
- include: function_definition
|
|
||||||
- include: function_call
|
|
||||||
- include: function
|
|
||||||
- include: variable
|
|
||||||
- include: expr
|
|
||||||
comment:
|
|
||||||
- match: ^\s*".*$
|
|
||||||
scope: comment.line.quotes.viml
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.vim
|
|
||||||
expr:
|
|
||||||
- match: (\|\||&&|==(\?|#)?|(!|>|<)=(#|\?)?|(=|!)~(#|\?)?|(>|<)(#|\?)is|isnot|\.|\*|\\|%)
|
|
||||||
scope: storage.function.viml
|
|
||||||
function:
|
|
||||||
- match: \b(fu(n|nction)?|end(f|fu|fun|function)?)\b
|
|
||||||
scope: storage.function.viml
|
|
||||||
function_call:
|
|
||||||
- match: '(([sgbwtl]|)?:?[0-9a-zA-Z_#]+)(?=\()'
|
|
||||||
scope: support.function.any-method
|
|
||||||
function_definition:
|
|
||||||
- match: '^\s*(function)\s*!?\s+(?=(s:)?[0-9a-zA-Z_#]+\s*\()'
|
|
||||||
captures:
|
|
||||||
1: storage.function.viml
|
|
||||||
push:
|
|
||||||
- meta_scope: meta.function.viml
|
|
||||||
- match: (\()
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.parameters.begin.viml
|
|
||||||
pop: true
|
|
||||||
- match: "(s:)?[0-9a-zA-Z_#]+"
|
|
||||||
scope: entity.name.function.viml
|
|
||||||
function_params:
|
|
||||||
- match: '-\w+='
|
|
||||||
scope: support.type.viml
|
|
||||||
inline_comment:
|
|
||||||
- match: '(?!\$)(")(?!\{).*$\n?'
|
|
||||||
scope: comment.line.quotes.viml
|
|
||||||
captures:
|
|
||||||
1: punctuation.definition.comment.vim
|
|
||||||
keyword:
|
|
||||||
- match: \b(if|while|for|try|return|throw|end(if|for|while|try)?|au(g|group)|else(if|)?|do|in|catch|finally|:)\b
|
|
||||||
scope: keyword.control.viml
|
|
||||||
number_hex:
|
|
||||||
- match: "0x[0-9a-f]+"
|
|
||||||
scope: constant.numeric.hex
|
|
||||||
number_int:
|
|
||||||
- match: '-?\d+'
|
|
||||||
scope: constant.numeric.integer
|
|
||||||
string_quoted_double:
|
|
||||||
- match: '"(\\\\|\\"|\n[^\S\n]*\\|[^\n"])*"'
|
|
||||||
scope: string.quoted.double.viml
|
|
||||||
string_quoted_single:
|
|
||||||
- match: '''(''''|\n[^\S\n]*\\|[^\n''])*'''
|
|
||||||
scope: string.quoted.single.viml
|
|
||||||
string_regex:
|
|
||||||
- match: '/(\\\\|\\/|\n[^\S\n]*\\|[^\n/])*/'
|
|
||||||
scope: string.regexp.viml
|
|
||||||
support_function:
|
|
||||||
- match: \b(set(local|global)?|let|command|filetype|colorscheme|\w*map|\w*a(b|brev)?|syn|exe(c|cute)?|ec(ho|)?|au(tocmd|)?)\b
|
|
||||||
scope: support.function.viml
|
|
||||||
support_type:
|
|
||||||
- match: <.*?>
|
|
||||||
scope: support.type.viml
|
|
||||||
support_variable:
|
|
||||||
- match: '\b(am(enu|)?|(hl|inc)?search|[Bb]uf([Nn]ew[Ff]ile|[Rr]ead)?|[Ff]ile[Tt]ype)\b'
|
|
||||||
scope: support.variable.viml
|
|
||||||
variable:
|
|
||||||
- match: '([sSgGbBwWlLaAvV]:|@|$|&(?!&))\w*'
|
|
||||||
scope: variable.other.viml
|
|
||||||
+1
Submodule assets/syntaxes/02_Extra/Zig added at 87ecbcae6f
+1
Submodule assets/syntaxes/02_Extra/gnuplot added at 04743470ff
+182
@@ -0,0 +1,182 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: gnuplot
|
||||||
|
file_extensions:
|
||||||
|
- gp
|
||||||
|
- gpl
|
||||||
|
- gnuplot
|
||||||
|
- gnu
|
||||||
|
- plot
|
||||||
|
- plt
|
||||||
|
scope: source.gnuplot
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- include: number
|
||||||
|
- include: string_single
|
||||||
|
- include: string_double
|
||||||
|
- match: '\b(for)\b\s*(\[)'
|
||||||
|
comment: |
|
||||||
|
gnuplot iteration statement.
|
||||||
|
There are two forms:
|
||||||
|
numeric [n = 1:2{:inc}]
|
||||||
|
string based [str in "x y z"]
|
||||||
|
but both can also iterate over lists etc, so this is kept loose.
|
||||||
|
captures:
|
||||||
|
1: keyword.other.iteration.gnuplot
|
||||||
|
2: punctuation.definition.range.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.structure.iteration.gnuplot
|
||||||
|
- match: '\]'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- include: number
|
||||||
|
- include: operator
|
||||||
|
- include: string_double
|
||||||
|
- include: string_single
|
||||||
|
- match: ":"
|
||||||
|
scope: punctuation.separator.range.gnuplot
|
||||||
|
- match: '\b([a-zA-Z]\w*)\b\s*(=|in)'
|
||||||
|
scope: variable-assignment.range.gnuplot
|
||||||
|
- match: '(?i:[^\s(pi|e)\]])'
|
||||||
|
scope: invalid.illegal.expected-range-separator.gnuplot
|
||||||
|
- match: '\['
|
||||||
|
comment: "gnuplot range statement [a:b]. Lots of things are legal, still more make no sense!"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.structure.range.gnuplot
|
||||||
|
- match: '\]'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.range.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- include: number
|
||||||
|
- include: operator
|
||||||
|
- match: ":"
|
||||||
|
scope: punctuation.separator.range.gnuplot
|
||||||
|
- match: '(?i:[^\s(pi|e)\]])'
|
||||||
|
scope: invalid.illegal.expected-range-separator.gnuplot
|
||||||
|
- match: \\.
|
||||||
|
scope: constant.character.escape.gnuplot
|
||||||
|
- match: '(?<!\$)(#)(?!\{).*$\n?'
|
||||||
|
scope: comment.line.number-sign.gnuplot
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.comment.gnuplot
|
||||||
|
- match: for
|
||||||
|
comment: introduce in gnuplot 4.3.
|
||||||
|
scope: keyword.other.iteration.gnuplot
|
||||||
|
- match: \b(angles|arrow|autoscale|bars|border|boxwidth|clabel|clip|cntrparam|colorbox|contour|decimalsign|dgrid3d|dummy|encoding|fit|format|grid|hidden3d|historysize|isosamples|key|label|locale|logscale|macros|bmargin|lmargin|rmargin|tmargin|mapping|mouse|multiplot|offsets|origin|output|palette|parametric|pm3d|pointsize|polar|print|rrange|trange|urange|vrange|samples|size|style|surface|tics|ticscale|ticslevel|timestamp|timefmt|title|view|xyplane|x2data|xdata|y2data|ydata|z2data|zdata|x2label|xlabel|y2label|ylabel|z2label|zlabel|x2range|xrange|y2range|yrange|z2range|zrange|mx2tics|mxtics|my2tics|mytics|mz2tics|mztics|nomx2tics|nomxtics|nomy2tics|nomytics|nomz2tics|nomztics|nox2tics|noxtics|noy2tics|noytics|noz2tics|noztics|x2tics|xtics|y2tics|ytics|z2tics|ztics|x2dtics|x2mtics|xdtics|xmtics|y2dtics|y2mtics|ydtics|ymtics|z2dtics|z2mtics|zdtics|zmtics|x2zeroaxis|xzeroaxis|y2zeroaxis|yzeroaxis|z2zeroaxis|zeroaxis|zzeroaxis|zero|)\b
|
||||||
|
scope: keyword.other.setting.gnuplot
|
||||||
|
- match: \b(cd|call|clear|exit|plot|splot|help|load|pause|quit|fit|replot|if|FIT_LIMIT|FIT_MAXITER|FIT_START_LAMBDA|FIT_LAMBDA_FACTOR|FIT_LOG|FIT_SCRIPT|print|pwd|reread|reset|save|show|test|!|functions|var)\b
|
||||||
|
comment: missuse of scopes alert! Just for pretty colours
|
||||||
|
scope: keyword.other.command.gnuplot
|
||||||
|
- match: \b(abs|acos|acosh|arg|asin|asinh|atan|atan2|atanh|besj0|besj1|besy0|besy1|ceil|cos|cosh|erf|erfc|exp|floor|gamma|ibeta|igamma|imag|int|inverf|invnorm|lambertw|lgamma|log|log10|norm|rand|real|sgn|sin|sinh|sqrt|tan|tanh)\b
|
||||||
|
scope: support.function.gnuplot
|
||||||
|
- match: \b(gprintf|sprintf|strlen|strstrt|substr|system|word|words)\b
|
||||||
|
scope: support.function.string.gnuplot
|
||||||
|
- match: \b(on|off|default|inside|outside|lmargin|rmargin|tmargin|bmargin|at|left|right|center|top|bottom|center|vertical|horizontal|Left|Right|noreverse|noinvert|samplen|spacing|width|height|noautotitle|columnheader|title|noenhanced|nobox|linestyle|ls|linetype|lt|linewidth|lw)\b
|
||||||
|
scope: constant.other.type.gnuplot
|
||||||
|
- match: \b(aed512|aed767|aifm|aqua|bitgraph|cgm|corel|dumb|dxf|eepic|emf|emtex|epslatex|epson_180dpi|epson_60dpi|epson_lx800|fig|gif|gpic|hp2623A|hp2648|hp500c|hpdj|hpgl|hpljii|hppj|imagen|jpeg|kc_tek40xx|km_tek40xx|latex|mf|mif|mp|nec_cp6|okidata|pbm|pcl5|pdf|png|postscript|pslatex|pstex|pstricks|qms|regis|selanar|starc|svg|tandy_60dpi|tek40xx|tek410x|texdraw|tgif|tkcanvas|tpic|unknown|vttek)\b
|
||||||
|
scope: constant.other.terminal.gnuplot
|
||||||
|
- match: \b(u(sing)?|t(it(le)?)?|notit(le)?|w(i(th)?)?|steps|fs(teps)?|notitle|l(i(nes)?)?|linespoints|via)\b
|
||||||
|
scope: keyword.modifier.gnuplot
|
||||||
|
- match: |-
|
||||||
|
(?x:
|
||||||
|
\b # Start with a word boundary
|
||||||
|
(?=\b[\w$]*(\(|.*=)) # Look-ahead for a bracket or equals
|
||||||
|
(?![^(]*\)) # negative look ahead for a closing bracket without an opening one. This stops a from matching in f(a)
|
||||||
|
( # Group variable name
|
||||||
|
[A-Za-z] # A letter
|
||||||
|
[\w$]* # Any word chars or $
|
||||||
|
) # That is it for the name.
|
||||||
|
)
|
||||||
|
comment: user defined function / variable
|
||||||
|
scope: variable.other.gnuplot
|
||||||
|
- match: \b(if)\b
|
||||||
|
scope: keyword.control.gnuplot
|
||||||
|
- match: \b(show)\b
|
||||||
|
captures:
|
||||||
|
0: keyword.other.command.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.show.gnuplot
|
||||||
|
- meta_content_scope: keyword.line.show.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set)\b\s*\b(terminal|term)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.terminal.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set)\b\s*\b(key)\b
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.key.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
- match: \b(set|unset)\b\s*(?!\b(terminal|key|for)\b)
|
||||||
|
captures:
|
||||||
|
1: keyword.other.command.gnuplot
|
||||||
|
2: keyword.other.setting.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: keyword.line.set.gnuplot
|
||||||
|
- meta_content_scope: keyword.line.set.gnuplot
|
||||||
|
- match: (?!\#)($\n?)
|
||||||
|
pop: true
|
||||||
|
- include: main
|
||||||
|
number:
|
||||||
|
- match: |-
|
||||||
|
(?x: # turn on extended mode
|
||||||
|
-? # an optional minus
|
||||||
|
(?:
|
||||||
|
0 # a zero
|
||||||
|
| # ...or...
|
||||||
|
[1-9] # a 1-9 character
|
||||||
|
\d* # followed by zero or more digits
|
||||||
|
)
|
||||||
|
(?:
|
||||||
|
\. # a period
|
||||||
|
\d+ # followed by one or more digits
|
||||||
|
(?:
|
||||||
|
[eE] # an e character
|
||||||
|
[+-]? # followed by an option +/-
|
||||||
|
\d+ # followed by one or more digits
|
||||||
|
)? # make exponent optional
|
||||||
|
)? # make decimal portion optional
|
||||||
|
)
|
||||||
|
comment: borrowed from textmate book
|
||||||
|
scope: constant.numeric.gnuplot
|
||||||
|
operator:
|
||||||
|
- match: \s*(==|~=|>|>=|<|<=|&|&&|:|\||\|\||\+|-|\*|\.\*|/|\./|\\|\.\\|\^|\.\^)\s*
|
||||||
|
comment: Operator symbols
|
||||||
|
scope: keyword.operator.symbols.matlab
|
||||||
|
string_double:
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.double.gnuplot
|
||||||
|
- match: '"'
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.gnuplot
|
||||||
|
pop: true
|
||||||
|
- match: '\\[\$`"\\\n]'
|
||||||
|
scope: constant.character.escape.gnuplot
|
||||||
|
string_single:
|
||||||
|
- match: "'"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.begin.gnuplot
|
||||||
|
push:
|
||||||
|
- meta_scope: string.quoted.single.gnuplot
|
||||||
|
- match: "'"
|
||||||
|
captures:
|
||||||
|
0: punctuation.definition.string.end.gnuplot
|
||||||
|
pop: true
|
||||||
+116
@@ -0,0 +1,116 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# See http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
file_extensions:
|
||||||
|
- log
|
||||||
|
scope: text.log
|
||||||
|
variables:
|
||||||
|
ipv4_part: (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: (\w+)(=)
|
||||||
|
captures:
|
||||||
|
1: variable.parameter.log
|
||||||
|
2: keyword.operator.assignment.log
|
||||||
|
- match: (')([^']*)(')
|
||||||
|
scope: string.quoted.single.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.log
|
||||||
|
3: punctuation.definition.string.end.log
|
||||||
|
- match: (")([^"]*)(")
|
||||||
|
scope: string.quoted.double.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.string.begin.log
|
||||||
|
3: punctuation.definition.string.end.log
|
||||||
|
- include: dates
|
||||||
|
- include: ip_addresses
|
||||||
|
- include: numbers
|
||||||
|
- match: \b(?i:fail(?:ure|ed)?|error|exception)\b
|
||||||
|
scope: markup.error.log
|
||||||
|
- match: \b(?i:warn(?:ing)?)\b
|
||||||
|
scope: markup.warning.log
|
||||||
|
#- include: scope:text.html.markdown#autolink-inet
|
||||||
|
- match: \b\w+:/{2,3}
|
||||||
|
scope: markup.underline.link.scheme.log
|
||||||
|
push: url-host
|
||||||
|
dates:
|
||||||
|
- match: \b\d{4}-\d{2}-\d{2}\b
|
||||||
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
- match: \b\d{4}/\d{2}/\d{2}\b
|
||||||
|
scope: meta.date.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
- match: \b(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)(?:(\.)\d{3})?\b
|
||||||
|
scope: meta.time.log meta.number.integer.decimal.log constant.numeric.value.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.decimal.log
|
||||||
|
ip_addresses:
|
||||||
|
- match: \b(?=(?:{{ipv4_part}}\.){3}{{ipv4_part}}\b)
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.ipaddress.v4.log meta.number.integer.decimal.log
|
||||||
|
- match: \d+
|
||||||
|
scope: constant.numeric.value.log
|
||||||
|
- match: \.
|
||||||
|
scope: punctuation.separator.sequence.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
- match: (?=(?:\h{0,4}:){2,6}\h{1,4}\b)
|
||||||
|
push:
|
||||||
|
- meta_scope: meta.ipaddress.v6.log meta.number.integer.hexadecimal.log
|
||||||
|
- match: \h{1,4}
|
||||||
|
scope: constant.numeric.value.log
|
||||||
|
- match: ':'
|
||||||
|
scope: punctuation.separator.sequence.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
|
numbers:
|
||||||
|
- match: \b(0x)(\h+)(?:(\.)(\h+))?\b
|
||||||
|
scope: meta.number.float.hexadecimal.log
|
||||||
|
captures:
|
||||||
|
1: constant.numeric.base.log
|
||||||
|
2: constant.numeric.value.log
|
||||||
|
3: constant.numeric.value.log punctuation.separator.decimal.log
|
||||||
|
4: constant.numeric.value.log
|
||||||
|
- match: \b\d+(\.)\d+\b
|
||||||
|
scope: meta.number.float.log constant.numeric.value.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.decimal.log
|
||||||
|
- match: \b\d+\b
|
||||||
|
scope: meta.number.integer.log constant.numeric.value.log
|
||||||
|
url-host:
|
||||||
|
- meta_content_scope: markup.underline.link.host.log
|
||||||
|
- match: \[
|
||||||
|
scope: punctuation.section.brackets.begin.log
|
||||||
|
push:
|
||||||
|
- match: \]
|
||||||
|
scope: punctuation.section.brackets.end.log
|
||||||
|
pop: true
|
||||||
|
- include: ip_addresses
|
||||||
|
- match: '[^:/\s]+'
|
||||||
|
- match: ''
|
||||||
|
set: url-after-host
|
||||||
|
url-after-host:
|
||||||
|
- match: (:)(\d+)
|
||||||
|
scope: markup.underline.link.port.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.separator.mapping.port.log
|
||||||
|
2: constant.numeric.value.log
|
||||||
|
#- include: scope:text.html.markdown#url-escaped-chars
|
||||||
|
- match: (%)\h{2}
|
||||||
|
scope: markup.underline.link.path.log constant.character.escape.url.log
|
||||||
|
captures:
|
||||||
|
1: punctuation.definition.escape.log
|
||||||
|
# After a valid domain, zero or more non-space non-< characters may follow
|
||||||
|
- match: (?=[?!.,:*_~]*[\s<]) # Trailing punctuation (specifically, ?, !, ., ,, :, *, _, and ~) will not be considered part of the autolink, though they may be included in the interior of the link
|
||||||
|
pop: true
|
||||||
|
- match: \( # When an autolink ends in ), we scan the entire autolink for the total number of parentheses. If there is a greater number of closing parentheses than opening ones, we don’t consider the last character part of the autolink, in order to facilitate including an autolink inside a parenthesis
|
||||||
|
push:
|
||||||
|
- meta_scope: markup.underline.link.path.log
|
||||||
|
- match: (?=[?!.,:*_~]*[\s<])
|
||||||
|
pop: true
|
||||||
|
- match: \)
|
||||||
|
pop: true
|
||||||
|
- match: (?=\)[?!.,:*_~]*[\s<])
|
||||||
|
pop: true
|
||||||
|
- match: '[^?!.,:*_~\s<&()%]+|\S'
|
||||||
|
scope: markup.underline.link.path.log
|
||||||
|
- match: ''
|
||||||
|
pop: true
|
||||||
@@ -7,7 +7,7 @@ file_extensions:
|
|||||||
scope: whitespace
|
scope: whitespace
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
- match: "•"
|
- match: "·"
|
||||||
scope: support.function.show-nonprintable.space
|
scope: support.function.show-nonprintable.space
|
||||||
- match: "├─*┤"
|
- match: "├─*┤"
|
||||||
scope: constant.character.escape.show-nonprintable.tab
|
scope: constant.character.escape.show-nonprintable.tab
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/syntaxes/02_Extra/ssh-config updated: 16e19d5da4...201816b609
+60
@@ -0,0 +1,60 @@
|
|||||||
|
# SYNTAX TEST "CSV.sublime-syntax"
|
||||||
|
Forename,Surname,House No.,Street,City,Postcode
|
||||||
|
#^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
John,Doe,87,Logon Road,Citiville,TU43 6GH
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Jane,Doe,22,"""Fun"" Street","The City, County",FA90 1XA
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^^^^^^^^^^ meta.field-1 string.quoted.double
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Fred,Bloggs,"19","Street
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-3 string.quoted.double
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
Spanning Multiple ""
|
||||||
|
#^^^^^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
Lines",Citee,P0stc0d3
|
||||||
|
#^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Can't render this file because it contains an unexpected character in line 1 and column 15.
|
+162
@@ -0,0 +1,162 @@
|
|||||||
|
# SYNTAX TEST "Manpage.sublime-syntax"
|
||||||
|
SOMETHING(8) System Manager's Manual SOMETHING(8)
|
||||||
|
# ^^^^^ meta.preprocessor
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^^ markup.heading.title
|
||||||
|
# ^^^^^^^ meta.preprocessor
|
||||||
|
|
||||||
|
NAME
|
||||||
|
#^^^ markup.heading.other
|
||||||
|
example - do something useful
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
example [options] [--home DIR] [--shell SHELL] [--no-create-home]
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^^^^^ entity.name.command-line-option
|
||||||
|
# ^^^ variable.parameter
|
||||||
|
# ^ punctuation.section.brackets.end
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^^^^^ variable.parameter
|
||||||
|
# ^ punctuation.section.brackets.end
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^^^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.section.brackets.end
|
||||||
|
[-u | --set-upstream] [-o <string> | --push-option=<string>]
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^ entity.name.command-line-option
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.section.brackets.end
|
||||||
|
# ^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
[--force-with-lease[=<refname>[:<expect>]]]
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^^^^^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^ keyword.operator
|
||||||
|
# ^^^^^^^ variable.parameter
|
||||||
|
# ^ punctuation.section.brackets.begin
|
||||||
|
# ^^^^^^ variable.parameter
|
||||||
|
# ^^^ punctuation.section.brackets.end
|
||||||
|
|
||||||
|
example --system [options]
|
||||||
|
# ^^^^^^^^ entity.name
|
||||||
|
|
||||||
|
COMMON OPTIONS
|
||||||
|
[--quiet] [--debug] [--help|-h] [--version] [--conf FILE]
|
||||||
|
|
||||||
|
/* According to POSIX.1-2001, POSIX.1-2008 */
|
||||||
|
# ^^ source.c comment.block punctuation.definition.comment
|
||||||
|
#include <sys/select.h>
|
||||||
|
# ^^^^^^^^ source.c meta.preprocessor.include keyword.control.import.include
|
||||||
|
struct timeval {
|
||||||
|
# ^^^^^^ source.c storage.type
|
||||||
|
|
||||||
|
time_t tv_sec; /* seconds */
|
||||||
|
suseconds_t tv_usec; /* microseconds */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
example does something useful in relation to the command line options
|
||||||
|
and configuration information in /etc/example.conf.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
--conf FILE
|
||||||
|
# ^^^^^^ entity.name.command-line-option
|
||||||
|
#^^^^^^ - variable - entity - markup
|
||||||
|
# ^^^^ variable.parameter
|
||||||
|
Use FILE instead of /etc/example.conf.
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable - entity
|
||||||
|
|
||||||
|
--disabled-login
|
||||||
|
Do not run passwd to set the password. The user won't be able
|
||||||
|
to use her account until the password is set.
|
||||||
|
|
||||||
|
--disabled-password
|
||||||
|
Like --disabled-login, but logins are still possible (for exam-
|
||||||
|
# ^^^^^^^^^^^^^^^^ entity.name
|
||||||
|
#^^^^^^^^^^^^^^^^^^ - entity - variable - markup
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - entity - variable - markup
|
||||||
|
ple using SSH RSA keys) but not using password authentication.
|
||||||
|
|
||||||
|
--help Display brief instructions.
|
||||||
|
# ^^^^^^ entity.name.command-line-option
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable.parameter
|
||||||
|
|
||||||
|
--home DIR
|
||||||
|
# ^^^^^^ entity.name.command-line-option
|
||||||
|
# ^^^ variable.parameter
|
||||||
|
# ^ - variable - entity - markup
|
||||||
|
Use DIR as the user's home directory, rather than the default
|
||||||
|
specified by the configuration file. If the directory does not
|
||||||
|
exist, it is created and skeleton files are copied.
|
||||||
|
|
||||||
|
--[no-]signed, --signed=(true|false|if-asked)
|
||||||
|
# ^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.separator
|
||||||
|
# ^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ keyword.operator
|
||||||
|
# ^ - variable
|
||||||
|
# ^^^^ variable.parameter
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^^^^ variable.parameter
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^^^^^^^ variable.parameter
|
||||||
|
# ^ - variable
|
||||||
|
--no-recurse-submodules, --recurse-submodules=check|on-demand|only|no
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.separator
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^ keyword.operator
|
||||||
|
# ^^^^^ variable.parameter
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^^^^^^^^ variable.parameter
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^^^ variable.parameter
|
||||||
|
# ^ keyword.operator.logical
|
||||||
|
# ^^ variable.parameter
|
||||||
|
May be used to make sure all submodule commits used by the
|
||||||
|
|
||||||
|
-c, -C NUM, --context[=NUM]
|
||||||
|
# ^^ entity.name.command-line-option
|
||||||
|
# ^ punctuation.separator
|
||||||
|
# ^^ entity.name.command-line-option
|
||||||
|
# ^^^ variable.parameter
|
||||||
|
# ^ punctuation.separator
|
||||||
|
# ^^^^^^^^^ entity.name.command-line-option
|
||||||
|
# ^^^^^^^ - entity.name
|
||||||
|
# ^ keyword.operator
|
||||||
|
# ^^^ variable.parameter
|
||||||
|
# ^^ - variable
|
||||||
|
output NUM (default 3) lines of copied context
|
||||||
|
|
||||||
|
EXAMPLE
|
||||||
|
#include <stdio.h>
|
||||||
|
# ^^^^^^^^ source.c meta.preprocessor.include keyword.control.import.include
|
||||||
|
|
||||||
|
(This is not C code.)
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^^^^ - source.c
|
||||||
|
|
||||||
|
struct timeval {
|
||||||
|
time_t tv_sec; /* seconds */
|
||||||
|
suseconds_t tv_usec; /* microseconds */
|
||||||
|
};
|
||||||
|
# ^ source.c punctuation.terminator
|
||||||
|
|
||||||
|
The corresponding argument for pselect() has the following type:
|
||||||
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - source.c
|
||||||
|
#define POLLIN_SET (EPOLLRDNORM | EPOLLRDBAND | EPOLLIN |
|
||||||
|
EPOLLHUP | EPOLLERR)
|
||||||
|
# ^ source.c meta.preprocessor.macro meta.group punctuation.section.group.end
|
||||||
|
|
||||||
|
ENVIRONMENT
|
||||||
|
$SYSTEMD_LOG_LEVEL
|
||||||
|
# ^ punctuation.definition.variable
|
||||||
|
# ^^^^^^^^^^^^^^^^^ constant.other
|
||||||
|
systemd reads the log level from this environment variable. This
|
||||||
|
can be overridden with --log-level=.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
The systemd Homepage[11], systemd-system.conf(5), locale.conf(5)
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^ entity.name.function
|
||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
# SYNTAX TEST "CSV.sublime-syntax"
|
||||||
|
Forename Surname House No. Street City Postcode
|
||||||
|
#^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
John Doe 87 Logon Road Citiville TU43 6GH
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^ meta.field-4
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Jane Doe 22 """Fun"" Street" "The City County" FA90 1XA
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^ meta.field-3
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^^^^^^^^^^ meta.field-1 string.quoted.double
|
||||||
|
# ^ meta.field-1 string.quoted.double punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Fred Bloggs "19" "Street
|
||||||
|
#^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^ meta.field-2
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^ meta.field-3 string.quoted.double
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.begin
|
||||||
|
# ^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
Spanning Multiple ""
|
||||||
|
#^^^^^^^^^^^^^^^^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^^ constant.character.escape
|
||||||
|
Lines" Citee P0stc0d3
|
||||||
|
#^^^^^ meta.field-4 string.quoted.double
|
||||||
|
# ^ meta.field-4 punctuation.definition.string.end
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^ meta.field-1
|
||||||
|
# ^ punctuation.separator.sequence
|
||||||
|
# ^^^^^^^^ meta.field-2
|
||||||
|
Can't render this file because it contains an unexpected character in line 1 and column 15.
|
+63
@@ -0,0 +1,63 @@
|
|||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||||||
|
name: syslog
|
||||||
|
file_extensions:
|
||||||
|
- syslog
|
||||||
|
scope: text.log.syslog
|
||||||
|
contexts:
|
||||||
|
main:
|
||||||
|
- match: ^(\w+\s+\d+)\s+(\d{2}:\d{2}:\d{2})
|
||||||
|
scope: meta.datetime.syslog constant.numeric.syslog
|
||||||
|
captures:
|
||||||
|
1: meta.date.syslog
|
||||||
|
2: meta.time.syslog
|
||||||
|
push: loghost
|
||||||
|
- match: ^
|
||||||
|
push: text
|
||||||
|
loghost:
|
||||||
|
- match: '[\w-]+'
|
||||||
|
scope: entity.other.attribute-name.loghost.syslog
|
||||||
|
set: process
|
||||||
|
process:
|
||||||
|
- match: ([\w-]+)(?:(\[)(\d+)(\]))?(:)
|
||||||
|
captures:
|
||||||
|
1: support.function.process.syslog
|
||||||
|
2: punctuation.separator.pid.begin.syslog
|
||||||
|
3: meta.pid.syslog meta.number.integer.syslog constant.numeric.value.syslog
|
||||||
|
4: punctuation.separator.pid.end.syslog
|
||||||
|
5: punctuation.separator.mapping.syslog
|
||||||
|
set: structured-data
|
||||||
|
structured-data:
|
||||||
|
- match: '\['
|
||||||
|
scope: punctuation.section.mapping.begin.syslog
|
||||||
|
push:
|
||||||
|
- match: \]
|
||||||
|
scope: punctuation.section.mapping.end.syslog
|
||||||
|
pop: true
|
||||||
|
- match: \w+
|
||||||
|
scope: variable.parameter.syslog
|
||||||
|
- match: =
|
||||||
|
scope: keyword.operator.assignment.syslog
|
||||||
|
push:
|
||||||
|
- match: '[^\s\]]+'
|
||||||
|
scope: constant.other.syslog
|
||||||
|
pop: true
|
||||||
|
- match: (?=\])
|
||||||
|
pop: true
|
||||||
|
- match: (?=\S)
|
||||||
|
set: text
|
||||||
|
text:
|
||||||
|
- match: $
|
||||||
|
pop: true
|
||||||
|
- match: '<\w+>'
|
||||||
|
scope: constant.language.syslog
|
||||||
|
- match: \b(CMD)\b\s+(\()
|
||||||
|
captures:
|
||||||
|
1: entity.name.label.syslog
|
||||||
|
2: punctuation.section.block.begin.syslog
|
||||||
|
embed: scope:source.shell.bash
|
||||||
|
escape: \)$
|
||||||
|
escape_captures:
|
||||||
|
0: punctuation.section.block.end.syslog
|
||||||
|
- include: scope:text.log
|
||||||
Vendored
BIN
Binary file not shown.
+1
Submodule assets/themes/Coldark added at e44750b2a9
+1
Submodule assets/themes/Solarized added at 87e01090cf
+12
-86
@@ -3,14 +3,14 @@
|
|||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<!--
|
<!--
|
||||||
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
The colors in this theme are encoded as #RRGGBBAA where:
|
||||||
palette number from 00 to 0f, and AA is the special value 00 to indicate
|
* If AA is 00, then RR is an ANSI palette number from 00 to 07.
|
||||||
that this encoding is being used.
|
* If AA is 01, the terminal's default fg/bg color is used.
|
||||||
-->
|
-->
|
||||||
<key>author</key>
|
<key>author</key>
|
||||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||||
<key>name</key>
|
<key>name</key>
|
||||||
<string>ANSI Light</string>
|
<string>ANSI</string>
|
||||||
<key>colorSpaceName</key>
|
<key>colorSpaceName</key>
|
||||||
<string>sRGB</string>
|
<string>sRGB</string>
|
||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
@@ -19,32 +19,17 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#07000000</string>
|
<string>#00000001</string>
|
||||||
<key>caret</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#00000000</string>
|
<string>#00000001</string>
|
||||||
<key>invisibles</key>
|
<!--
|
||||||
<string>#00000000</string>
|
Explicitly set the gutter color since bat falls back to a
|
||||||
<key>lineHighlight</key>
|
hardcoded DEFAULT_GUTTER_COLOR otherwise.
|
||||||
<string>#00000000</string>
|
-->
|
||||||
<key>selection</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
<key>gutter</key>
|
<key>gutter</key>
|
||||||
<string>#07000000</string>
|
<string>#00000001</string>
|
||||||
<key>gutterForeground</key>
|
<key>gutterForeground</key>
|
||||||
<string>#00000000</string>
|
<string>#00000001</string>
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Text</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>variable.parameter.function</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -58,39 +43,6 @@
|
|||||||
<string>#02000000</string>
|
<string>#02000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Punctuation</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>punctuation.definition.string, punctuation.definition.variable, punctuation.definition.string, punctuation.definition.parameters, punctuation.definition.string, punctuation.definition.array</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Delimiters</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>none</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Operators</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>keyword.operator</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>name</key>
|
<key>name</key>
|
||||||
<string>Keywords</string>
|
<string>Keywords</string>
|
||||||
@@ -102,17 +54,6 @@
|
|||||||
<string>#05000000</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Variables</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>variable</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>name</key>
|
<key>name</key>
|
||||||
<string>Functions</string>
|
<string>Functions</string>
|
||||||
@@ -146,17 +87,6 @@
|
|||||||
<string>#03000000</string>
|
<string>#03000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
|
||||||
<key>name</key>
|
|
||||||
<string>Classes</string>
|
|
||||||
<key>scope</key>
|
|
||||||
<string>meta.class</string>
|
|
||||||
<key>settings</key>
|
|
||||||
<dict>
|
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>name</key>
|
<key>name</key>
|
||||||
<string>Methods</string>
|
<string>Methods</string>
|
||||||
@@ -480,8 +410,6 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#01000000</string>
|
<string>#01000000</string>
|
||||||
<key>foreground</key>
|
|
||||||
<string>#00000000</string>
|
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -493,8 +421,6 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#03000000</string>
|
<string>#03000000</string>
|
||||||
<key>foreground</key>
|
|
||||||
<string>#07000000</string>
|
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
@@ -3,14 +3,22 @@
|
|||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<!--
|
<!--
|
||||||
|
Most base16 users should use the base16 theme. This theme, base16-256,
|
||||||
|
is for users who configure their terminal with a 256-color variant of a
|
||||||
|
base16 theme, and who use base16-shell. DO NOT use this theme simply
|
||||||
|
because your terminal supports 256 colors.
|
||||||
|
|
||||||
|
base16: https://github.com/chriskempson/base16
|
||||||
|
base16-shell: https://github.com/chriskempson/base16-shell
|
||||||
|
|
||||||
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
||||||
palette number from 00 to 0f, and AA is the special value 00 to indicate
|
palette number from 00 to ff (the 256 terminal colors), and AA is the
|
||||||
that this encoding is being used.
|
special value 00 to indicate this encoding is being used.
|
||||||
-->
|
-->
|
||||||
<key>author</key>
|
<key>author</key>
|
||||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||||
<key>name</key>
|
<key>name</key>
|
||||||
<string>ANSI Dark</string>
|
<string>Base16 256</string>
|
||||||
<key>colorSpaceName</key>
|
<key>colorSpaceName</key>
|
||||||
<string>sRGB</string>
|
<string>sRGB</string>
|
||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
@@ -25,15 +33,15 @@
|
|||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#07000000</string>
|
<string>#07000000</string>
|
||||||
<key>invisibles</key>
|
<key>invisibles</key>
|
||||||
<string>#07000000</string>
|
<string>#08000000</string>
|
||||||
<key>lineHighlight</key>
|
<key>lineHighlight</key>
|
||||||
<string>#07000000</string>
|
<string>#08000000</string>
|
||||||
<key>selection</key>
|
<key>selection</key>
|
||||||
<string>#07000000</string>
|
<string>#13000000</string>
|
||||||
<key>gutter</key>
|
<key>gutter</key>
|
||||||
<string>#00000000</string>
|
<string>#12000000</string>
|
||||||
<key>gutterForeground</key>
|
<key>gutterForeground</key>
|
||||||
<string>#07000000</string>
|
<string>#08000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -55,7 +63,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#02000000</string>
|
<string>#08000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -132,7 +140,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#06000000</string>
|
<string>#11000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -154,7 +162,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#07000000</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -209,7 +217,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -220,7 +228,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -231,7 +239,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -242,7 +250,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -264,7 +272,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -297,7 +305,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -321,7 +329,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -380,7 +388,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -391,7 +399,20 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Separator</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>meta.separator</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>background</key>
|
||||||
|
<string>#13000000</string>
|
||||||
|
<key>foreground</key>
|
||||||
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -481,7 +502,7 @@
|
|||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#01000000</string>
|
<string>#01000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#07000000</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -492,11 +513,37 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#03000000</string>
|
<string>#10000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#00000000</string>
|
<string>#00000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Deprecated</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>invalid.deprecated</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>background</key>
|
||||||
|
<string>#11000000</string>
|
||||||
|
<key>foreground</key>
|
||||||
|
<string>#0f000000</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Unimplemented</string>
|
||||||
|
<key>scope</key>
|
||||||
|
<string>invalid.unimplemented</string>
|
||||||
|
<key>settings</key>
|
||||||
|
<dict>
|
||||||
|
<key>background</key>
|
||||||
|
<string>#08000000</string>
|
||||||
|
<key>foreground</key>
|
||||||
|
<string>#0f000000</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>uuid</key>
|
<key>uuid</key>
|
||||||
<string>uuid</string>
|
<string>uuid</string>
|
||||||
Vendored
+67
-60
@@ -3,9 +3,16 @@
|
|||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<!--
|
<!--
|
||||||
The colors in this theme are encoded as #RRGGBBAA where RR is an base16
|
This theme is meant for users who configure their terminal with a base16
|
||||||
color number from 00 to 0f, and AA is the special value 0f to indicate
|
color theme. If you use a 256-color variant along with base16-shell, use
|
||||||
that this encoding is being used.
|
the bat theme base16-256 instead.
|
||||||
|
|
||||||
|
base16: https://github.com/chriskempson/base16
|
||||||
|
base16-shell: https://github.com/chriskempson/base16-shell
|
||||||
|
|
||||||
|
The colors in this theme are encoded as #RRGGBBAA where RR is an ANSI
|
||||||
|
palette number from 00 to 0f (the 8 colors and their bright versions),
|
||||||
|
and AA is the special value 00 to indicate this encoding is being used.
|
||||||
-->
|
-->
|
||||||
<key>author</key>
|
<key>author</key>
|
||||||
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
<string>Template: Chris Kempson, Scheme: Mitchell Kember</string>
|
||||||
@@ -19,21 +26,21 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0000000f</string>
|
<string>#00000000</string>
|
||||||
<key>caret</key>
|
<key>caret</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
<key>invisibles</key>
|
<key>invisibles</key>
|
||||||
<string>#0800000f</string>
|
<string>#08000000</string>
|
||||||
<key>lineHighlight</key>
|
<key>lineHighlight</key>
|
||||||
<string>#0800000f</string>
|
<string>#08000000</string>
|
||||||
<key>selection</key>
|
<key>selection</key>
|
||||||
<string>#0b00000f</string>
|
<string>#0b000000</string>
|
||||||
<key>gutter</key>
|
<key>gutter</key>
|
||||||
<string>#0a00000f</string>
|
<string>#0a000000</string>
|
||||||
<key>gutterForeground</key>
|
<key>gutterForeground</key>
|
||||||
<string>#0800000f</string>
|
<string>#08000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -44,7 +51,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -55,7 +62,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0800000f</string>
|
<string>#08000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -66,7 +73,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -77,7 +84,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -88,7 +95,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -99,7 +106,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -110,7 +117,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -121,7 +128,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0400000f</string>
|
<string>#04000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -132,7 +139,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0e00000f</string>
|
<string>#0e000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -143,7 +150,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0300000f</string>
|
<string>#03000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -154,7 +161,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0f00000f</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -165,7 +172,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0400000f</string>
|
<string>#04000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -176,7 +183,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -187,7 +194,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0600000f</string>
|
<string>#06000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -198,7 +205,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0200000f</string>
|
<string>#02000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -209,7 +216,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -220,7 +227,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -231,7 +238,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -242,7 +249,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -253,7 +260,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0100000f</string>
|
<string>#01000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -264,7 +271,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -275,7 +282,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0400000f</string>
|
<string>#04000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -286,7 +293,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -297,7 +304,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -310,7 +317,7 @@
|
|||||||
<key>fontStyle</key>
|
<key>fontStyle</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0400000f</string>
|
<string>#04000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -321,7 +328,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -334,7 +341,7 @@
|
|||||||
<key>fontStyle</key>
|
<key>fontStyle</key>
|
||||||
<string>bold</string>
|
<string>bold</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0300000f</string>
|
<string>#03000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -347,7 +354,7 @@
|
|||||||
<key>fontStyle</key>
|
<key>fontStyle</key>
|
||||||
<string>italic</string>
|
<string>italic</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -358,7 +365,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0200000f</string>
|
<string>#02000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -369,7 +376,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0100000f</string>
|
<string>#01000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -380,7 +387,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -391,7 +398,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -402,9 +409,9 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0b00000f</string>
|
<string>#0b000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0700000f</string>
|
<string>#07000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -415,7 +422,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0200000f</string>
|
<string>#02000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -426,7 +433,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0100000f</string>
|
<string>#01000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -437,7 +444,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -448,7 +455,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0600000f</string>
|
<string>#06000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -459,7 +466,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0600000f</string>
|
<string>#06000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -470,7 +477,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0600000f</string>
|
<string>#06000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -481,7 +488,7 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0500000f</string>
|
<string>#05000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -492,9 +499,9 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0100000f</string>
|
<string>#01000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0f00000f</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -505,9 +512,9 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0900000f</string>
|
<string>#09000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0000000f</string>
|
<string>#00000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -518,9 +525,9 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0e00000f</string>
|
<string>#0e000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0f00000f</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -531,9 +538,9 @@
|
|||||||
<key>settings</key>
|
<key>settings</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>background</key>
|
<key>background</key>
|
||||||
<string>#0800000f</string>
|
<string>#08000000</string>
|
||||||
<key>foreground</key>
|
<key>foreground</key>
|
||||||
<string>#0f00000f</string>
|
<string>#0f000000</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
|||||||
Vendored
+1
-1
Submodule assets/themes/dracula-sublime updated: 811a634420...c2de0acf5a
+1
Submodule assets/themes/gruvbox added at 64c47250e5
Vendored
+1
-1
Submodule assets/themes/onehalf updated: fdcbffe317...141c775ace
Vendored
-1
Submodule assets/themes/solarized-sublime deleted from 1394cf0f5f
+1
Submodule assets/themes/visual-studio-dark-plus added at 01ee1e8e0d
Vendored
+1
-1
Submodule assets/themes/zenburn updated: cb746f6962...702023d80d
@@ -8,46 +8,46 @@ fn main() {}
|
|||||||
|
|
||||||
#[cfg(feature = "application")]
|
#[cfg(feature = "application")]
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use lazy_static::lazy_static;
|
|
||||||
|
|
||||||
// Read environment variables.
|
// Read environment variables.
|
||||||
lazy_static! {
|
let project_name = option_env!("PROJECT_NAME").unwrap_or("bat");
|
||||||
static ref PROJECT_NAME: &'static str = option_env!("PROJECT_NAME").unwrap_or("bat");
|
let executable_name = option_env!("PROJECT_EXECUTABLE").unwrap_or(project_name);
|
||||||
static ref PROJECT_VERSION: &'static str = option_env!("CARGO_PKG_VERSION").unwrap();
|
let executable_name_uppercase = executable_name.to_uppercase();
|
||||||
static ref EXECUTABLE_NAME: &'static str = option_env!("PROJECT_EXECUTABLE")
|
static PROJECT_VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
.or(option_env!("PROJECT_NAME"))
|
|
||||||
.unwrap_or("bat");
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Generates a file from a liquid template.
|
/// Generates a file from a template.
|
||||||
fn template(
|
fn template(
|
||||||
variables: &liquid::Object,
|
variables: &HashMap<&str, &str>,
|
||||||
in_file: &str,
|
in_file: &str,
|
||||||
out_file: impl AsRef<Path>,
|
out_file: impl AsRef<Path>,
|
||||||
) -> Result<(), Box<dyn Error>> {
|
) -> Result<(), Box<dyn Error>> {
|
||||||
let template = liquid::ParserBuilder::with_stdlib()
|
let mut content = fs::read_to_string(in_file)?;
|
||||||
.build()?
|
|
||||||
.parse(&fs::read_to_string(in_file)?)?;
|
|
||||||
|
|
||||||
fs::write(out_file, template.render(variables)?)?;
|
for (variable_name, value) in variables {
|
||||||
|
// Replace {{variable_name}} by the value
|
||||||
|
let pattern = format!("{{{{{variable_name}}}}}", variable_name = variable_name);
|
||||||
|
content = content.replace(&pattern, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
fs::write(out_file, content)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
let variables = liquid::object!({
|
let mut variables = HashMap::new();
|
||||||
"PROJECT_NAME": PROJECT_NAME.to_owned(),
|
variables.insert("PROJECT_NAME", project_name);
|
||||||
"PROJECT_EXECUTABLE": EXECUTABLE_NAME.to_owned(),
|
variables.insert("PROJECT_EXECUTABLE", executable_name);
|
||||||
"PROJECT_VERSION": PROJECT_VERSION.to_owned(),
|
variables.insert("PROJECT_EXECUTABLE_UPPERCASE", &executable_name_uppercase);
|
||||||
});
|
variables.insert("PROJECT_VERSION", PROJECT_VERSION);
|
||||||
|
|
||||||
let out_dir_env = std::env::var_os("OUT_DIR").expect("OUT_DIR to be set in build.rs");
|
let out_dir_env = std::env::var_os("OUT_DIR").expect("OUT_DIR to be set in build.rs");
|
||||||
let out_dir = Path::new(&out_dir_env);
|
let out_dir = Path::new(&out_dir_env);
|
||||||
|
|
||||||
std::fs::create_dir_all(out_dir.join("assets/manual")).unwrap();
|
fs::create_dir_all(out_dir.join("assets/manual")).unwrap();
|
||||||
std::fs::create_dir_all(out_dir.join("assets/completions")).unwrap();
|
fs::create_dir_all(out_dir.join("assets/completions")).unwrap();
|
||||||
|
|
||||||
template(
|
template(
|
||||||
&variables,
|
&variables,
|
||||||
@@ -59,6 +59,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
"assets/completions/bat.fish.in",
|
"assets/completions/bat.fish.in",
|
||||||
out_dir.join("assets/completions/bat.fish"),
|
out_dir.join("assets/completions/bat.fish"),
|
||||||
)?;
|
)?;
|
||||||
|
template(
|
||||||
|
&variables,
|
||||||
|
"assets/completions/bat.zsh.in",
|
||||||
|
out_dir.join("assets/completions/bat.zsh"),
|
||||||
|
)?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,188 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Building and packaging for release
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Ensure environment variables exist.
|
|
||||||
if [[ -z "$PROJECT_NAME" ]]; then
|
|
||||||
export PROJECT_NAME="bat"
|
|
||||||
fi
|
|
||||||
|
|
||||||
build() {
|
|
||||||
cargo build --bins --target "$TARGET" --release --verbose
|
|
||||||
}
|
|
||||||
|
|
||||||
pack() {
|
|
||||||
local tempdir
|
|
||||||
local out_dir
|
|
||||||
local package_name
|
|
||||||
local gcc_prefix
|
|
||||||
|
|
||||||
tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t tmp)
|
|
||||||
out_dir=$(pwd)
|
|
||||||
package_name="$PROJECT_NAME-$TRAVIS_TAG-$TARGET"
|
|
||||||
|
|
||||||
if [[ $TARGET == "arm-unknown-linux-gnueabihf" ]]; then
|
|
||||||
gcc_prefix="arm-linux-gnueabihf-"
|
|
||||||
elif [[ $TARGET == "aarch64-unknown-linux-gnu" ]]; then
|
|
||||||
gcc_prefix="aarch64-linux-gnu-"
|
|
||||||
else
|
|
||||||
gcc_prefix=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# create a "staging" directory
|
|
||||||
mkdir "$tempdir/$package_name"
|
|
||||||
mkdir "$tempdir/$package_name/autocomplete"
|
|
||||||
|
|
||||||
# copying the main binary
|
|
||||||
cp "target/$TARGET/release/$PROJECT_NAME" "$tempdir/$package_name/"
|
|
||||||
"${gcc_prefix}"strip "$tempdir/$package_name/$PROJECT_NAME"
|
|
||||||
|
|
||||||
# manpage, readme and license
|
|
||||||
cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/assets/manual/bat.1 "$tempdir/$package_name/$PROJECT_NAME.1"
|
|
||||||
cp README.md "$tempdir/$package_name"
|
|
||||||
cp LICENSE-MIT "$tempdir/$package_name"
|
|
||||||
cp LICENSE-APACHE "$tempdir/$package_name"
|
|
||||||
|
|
||||||
# various autocomplete
|
|
||||||
# TODO: disabled for now, see issue #372
|
|
||||||
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".bash "$tempdir/$package_name/autocomplete/${PROJECT_NAME}.bash-completion"
|
|
||||||
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/"$PROJECT_NAME".fish "$tempdir/$package_name/autocomplete"
|
|
||||||
cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/assets/completions/bat.fish "$tempdir/$package_name/autocomplete/$PROJECT_NAME.fish"
|
|
||||||
# cp target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/_"$PROJECT_NAME" "$tempdir/$package_name/autocomplete"
|
|
||||||
|
|
||||||
# archiving
|
|
||||||
pushd "$tempdir"
|
|
||||||
tar czf "$out_dir/$package_name.tar.gz" "$package_name"/*
|
|
||||||
popd
|
|
||||||
rm -r "$tempdir"
|
|
||||||
}
|
|
||||||
|
|
||||||
make_deb() {
|
|
||||||
local tempdir
|
|
||||||
local architecture
|
|
||||||
local version
|
|
||||||
local dpkgname
|
|
||||||
local conflictname
|
|
||||||
local gcc_prefix
|
|
||||||
local homepage
|
|
||||||
local maintainer
|
|
||||||
|
|
||||||
homepage="https://github.com/sharkdp/bat"
|
|
||||||
maintainer="David Peter <mail@david-peter.de>"
|
|
||||||
|
|
||||||
case $TARGET in
|
|
||||||
x86_64*)
|
|
||||||
architecture=amd64
|
|
||||||
gcc_prefix=""
|
|
||||||
;;
|
|
||||||
i686*)
|
|
||||||
architecture=i386
|
|
||||||
gcc_prefix=""
|
|
||||||
;;
|
|
||||||
aarch64*)
|
|
||||||
architecture=arm64
|
|
||||||
gcc_prefix="aarch64-linux-gnu-"
|
|
||||||
;;
|
|
||||||
arm*hf)
|
|
||||||
architecture=armhf
|
|
||||||
gcc_prefix="arm-linux-gnueabihf-"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "make_deb: skipping target '${TARGET}'" >&2
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
version=${TRAVIS_TAG#v}
|
|
||||||
if [[ $TARGET = *musl* ]]; then
|
|
||||||
dpkgname=$PROJECT_NAME-musl
|
|
||||||
conflictname=$PROJECT_NAME
|
|
||||||
else
|
|
||||||
dpkgname=$PROJECT_NAME
|
|
||||||
conflictname=$PROJECT_NAME-musl
|
|
||||||
fi
|
|
||||||
|
|
||||||
tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t tmp)
|
|
||||||
|
|
||||||
# copy the main binary
|
|
||||||
install -Dm755 "target/$TARGET/release/$PROJECT_NAME" "$tempdir/usr/bin/$PROJECT_NAME"
|
|
||||||
"${gcc_prefix}"strip "$tempdir/usr/bin/$PROJECT_NAME"
|
|
||||||
|
|
||||||
# manpage
|
|
||||||
install -Dm644 target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/assets/manual/bat.1 "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
|
|
||||||
gzip --best "$tempdir/usr/share/man/man1/$PROJECT_NAME.1"
|
|
||||||
|
|
||||||
# completions
|
|
||||||
install -Dm644 target/"$TARGET"/release/build/"$PROJECT_NAME"-*/out/assets/completions/bat.fish "$tempdir/usr/share/fish/vendor_completions.d/$PROJECT_NAME.fish"
|
|
||||||
|
|
||||||
# readme and license
|
|
||||||
install -Dm644 README.md "$tempdir/usr/share/doc/$PROJECT_NAME/README.md"
|
|
||||||
install -Dm644 LICENSE-MIT "$tempdir/usr/share/doc/$PROJECT_NAME/LICENSE-MIT"
|
|
||||||
install -Dm644 LICENSE-APACHE "$tempdir/usr/share/doc/$PROJECT_NAME/LICENSE-APACHE"
|
|
||||||
cat > "$tempdir/usr/share/doc/$PROJECT_NAME/copyright" <<EOF
|
|
||||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
|
||||||
Upstream-Name: $PROJECT_NAME
|
|
||||||
Source: $homepage
|
|
||||||
|
|
||||||
Files: *
|
|
||||||
Copyright: $maintainer
|
|
||||||
License: Apache-2.0 or MIT
|
|
||||||
|
|
||||||
License: Apache-2.0
|
|
||||||
On Debian systems, the complete text of the Apache-2.0 can be found in the
|
|
||||||
file /usr/share/common-licenses/Apache-2.0.
|
|
||||||
|
|
||||||
License: MIT
|
|
||||||
Permission is hereby granted, free of charge, to any
|
|
||||||
person obtaining a copy of this software and associated
|
|
||||||
documentation files (the "Software"), to deal in the
|
|
||||||
Software without restriction, including without
|
|
||||||
limitation the rights to use, copy, modify, merge,
|
|
||||||
publish, distribute, sublicense, and/or sell copies of
|
|
||||||
the Software, and to permit persons to whom the Software
|
|
||||||
is furnished to do so, subject to the following
|
|
||||||
conditions:
|
|
||||||
.
|
|
||||||
The above copyright notice and this permission notice
|
|
||||||
shall be included in all copies or substantial portions
|
|
||||||
of the Software.
|
|
||||||
.
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
||||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
||||||
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
||||||
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
||||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
|
|
||||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Control file
|
|
||||||
mkdir "$tempdir/DEBIAN"
|
|
||||||
cat > "$tempdir/DEBIAN/control" <<EOF
|
|
||||||
Package: $dpkgname
|
|
||||||
Version: $version
|
|
||||||
Section: utils
|
|
||||||
Priority: optional
|
|
||||||
Maintainer: $maintainer
|
|
||||||
Homepage: $homepage
|
|
||||||
Architecture: $architecture
|
|
||||||
Provides: $PROJECT_NAME
|
|
||||||
Conflicts: $conflictname
|
|
||||||
Description: A cat(1) clone with wings.
|
|
||||||
A cat(1) clone with syntax highlighting and Git integration.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
fakeroot dpkg-deb --build "$tempdir" "${dpkgname}_${version}_${architecture}.deb"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
main() {
|
|
||||||
build
|
|
||||||
pack
|
|
||||||
if [[ $TARGET = *linux* ]]; then
|
|
||||||
make_deb
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# This script takes care of packaging the build artifacts that will go in the
|
|
||||||
# release zipfile
|
|
||||||
|
|
||||||
$SRC_DIR = $PWD.Path
|
|
||||||
$STAGE = [System.Guid]::NewGuid().ToString()
|
|
||||||
|
|
||||||
Set-Location $ENV:Temp
|
|
||||||
New-Item -Type Directory -Name $STAGE
|
|
||||||
Set-Location $STAGE
|
|
||||||
|
|
||||||
$ZIP = "$SRC_DIR\$($Env:CRATE_NAME)-$($Env:APPVEYOR_REPO_TAG_NAME)-$($Env:TARGET).zip"
|
|
||||||
|
|
||||||
Copy-Item "$SRC_DIR\target\release\bat.exe" '.\'
|
|
||||||
# TODO: disabled for now, see issue #372
|
|
||||||
# Copy-Item $SRC_DIR\target\release\build\bat-*\out\_bat.ps1 '.\'
|
|
||||||
|
|
||||||
# readme and license
|
|
||||||
Copy-Item $SRC_DIR\README.md '.\'
|
|
||||||
Copy-Item $SRC_DIR\LICENSE-MIT '.\'
|
|
||||||
Copy-Item $SRC_DIR\LICENSE-APACHE '.\'
|
|
||||||
|
|
||||||
7z a "$ZIP" *
|
|
||||||
|
|
||||||
Push-AppveyorArtifact "$ZIP"
|
|
||||||
|
|
||||||
Set-Location ..
|
|
||||||
Remove-Item $STAGE -Force -Recurse
|
|
||||||
Set-Location $SRC_DIR
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" != linux ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
# needed for musl targets
|
|
||||||
sudo apt-get install -y musl-tools
|
|
||||||
|
|
||||||
# needed to build deb packages
|
|
||||||
sudo apt-get install -y fakeroot
|
|
||||||
|
|
||||||
# needed for i686 linux gnu target
|
|
||||||
if [[ $TARGET == i686-unknown-linux-gnu ]]; then
|
|
||||||
sudo apt-get install -y gcc-multilib
|
|
||||||
fi
|
|
||||||
|
|
||||||
# needed for cross-compiling for arm
|
|
||||||
if [[ $TARGET == arm-unknown-linux-gnueabihf ]]; then
|
|
||||||
sudo apt-get install -y \
|
|
||||||
gcc-4.8-arm-linux-gnueabihf \
|
|
||||||
binutils-arm-linux-gnueabihf \
|
|
||||||
libc6-armhf-cross \
|
|
||||||
libc6-dev-armhf-cross
|
|
||||||
fi
|
|
||||||
|
|
||||||
# needed for cross-compiling for arm64
|
|
||||||
if [[ $TARGET == aarch64-unknown-linux-gnu ]]; then
|
|
||||||
sudo apt-get install -y \
|
|
||||||
gcc-4.8-aarch64-linux-gnu \
|
|
||||||
binutils-aarch64-linux-gnu \
|
|
||||||
gcc-aarch64-linux-gnu \
|
|
||||||
libc6-dev-arm64-cross
|
|
||||||
fi
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
# Incorporate TARGET env var to the build and test process
|
|
||||||
cargo build --target "$TARGET" --verbose
|
|
||||||
|
|
||||||
# We cannot run arm executables on linux
|
|
||||||
if [[ $TARGET != arm-unknown-linux-gnueabihf ]] && [[ $TARGET != aarch64-unknown-linux-gnu ]]; then
|
|
||||||
cargo test --target "$TARGET" --verbose
|
|
||||||
|
|
||||||
# Run 'bat' on its own source code and the README
|
|
||||||
cargo run --target "$TARGET" -- src/bin/bat/main.rs README.md --paging=never
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check bat-as-a-library, which has a smaller set of dependencies
|
|
||||||
cargo check --target "$TARGET" --verbose --lib --no-default-features --features regex-onig
|
|
||||||
cargo check --target "$TARGET" --verbose --lib --no-default-features --features regex-onig,git
|
|
||||||
cargo check --target "$TARGET" --verbose --lib --no-default-features --features regex-onig,paging
|
|
||||||
cargo check --target "$TARGET" --verbose --lib --no-default-features --features regex-onig,git,paging
|
|
||||||
Vendored
+60
-16
@@ -7,6 +7,20 @@ set -o pipefail
|
|||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
export LANG=C
|
export LANG=C
|
||||||
|
|
||||||
|
BAT="bat"
|
||||||
|
if ! command -v bat &>/dev/null; then
|
||||||
|
if command -v batcat &> /dev/null; then
|
||||||
|
BAT="batcat"
|
||||||
|
else
|
||||||
|
tput setaf 1
|
||||||
|
printf "%s\n%s\n" \
|
||||||
|
"Unable to find a bat executable on your PATH." \
|
||||||
|
"Please ensure that 'bat' exists and is not named something else."
|
||||||
|
tput sgr0
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Modules:
|
# Modules:
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
@@ -41,33 +55,43 @@ _tool_:description() {
|
|||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
_bat_:run() {
|
_bat_:run() {
|
||||||
_out bat --version
|
_out "$BAT" --version
|
||||||
_out env | grep '^BAT_\|^PAGER='
|
_out env | grep '^BAT_\|^PAGER='
|
||||||
|
|
||||||
local cache_dir="$(bat --cache-dir)"
|
local cache_dir
|
||||||
|
cache_dir="$($BAT --cache-dir)"
|
||||||
if [[ -f "${cache_dir}/syntaxes.bin" ]]; then
|
if [[ -f "${cache_dir}/syntaxes.bin" ]]; then
|
||||||
_print_command "bat" "--list-languages"
|
_print_command "$BAT" "--list-languages"
|
||||||
echo "Found custom syntax set."
|
echo "Found custom syntax set."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f "${cache_dir}/themes.bin" ]]; then
|
if [[ -f "${cache_dir}/themes.bin" ]]; then
|
||||||
_print_command "bat" "--list-themes"
|
_print_command "$BAT" "--list-themes"
|
||||||
echo "Found custom theme set."
|
echo "Found custom theme set."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_bat_config_:run() {
|
_bat_config_:run() {
|
||||||
if [[ -f "$(bat --config-file)" ]]; then
|
if [[ -f "$("$BAT" --config-file)" ]]; then
|
||||||
_out_fence cat "$(bat --config-file)"
|
_out_fence cat "$("$BAT" --config-file)"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_bat_wrapper_:run() {
|
_bat_wrapper_:run() {
|
||||||
if file "$(which bat)" | grep "text executable" &> /dev/null; then
|
_bat_wrapper_:detect_wrapper() {
|
||||||
_out_fence cat "$(which bat)"
|
local bat="$1"
|
||||||
return
|
if file "$(command -v "${bat}")" | grep "text executable" &> /dev/null; then
|
||||||
|
_out_fence cat "$(command -v "${bat}")"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\nNo wrapper script for '%s'.\n" "${bat}"
|
||||||
|
}
|
||||||
|
|
||||||
|
_bat_wrapper_:detect_wrapper bat
|
||||||
|
if [[ "$BAT" != "bat" ]]; then
|
||||||
|
_bat_wrapper_:detect_wrapper "$BAT"
|
||||||
fi
|
fi
|
||||||
printf "\nNo wrapper script.\n"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_bat_wrapper_function_:run() {
|
_bat_wrapper_function_:run() {
|
||||||
@@ -75,17 +99,18 @@ _bat_wrapper_function_:run() {
|
|||||||
local command="$1"
|
local command="$1"
|
||||||
case "$("$SHELL" --version | head -n 1)" in
|
case "$("$SHELL" --version | head -n 1)" in
|
||||||
*fish*)
|
*fish*)
|
||||||
if "$SHELL" --login -i -c "type ${command}" 2>&1 | grep 'function' &>/dev/null; then
|
if "$SHELL" --login -i -c "type ${command}" 2>&1 | grep 'function' &> /dev/null; then
|
||||||
_out_fence "$SHELL" --login -i -c "functions ${command}"
|
_out_fence "$SHELL" --login -i -c "functions ${command}"
|
||||||
return
|
return
|
||||||
fi ;;
|
fi ;;
|
||||||
|
|
||||||
*bash*|*zsh*)
|
*bash* | *zsh*)
|
||||||
local type="$("$SHELL" --login -i -c "type ${command}" 2>&1)"
|
local type
|
||||||
if grep 'function' <<< "$type" &>/dev/null; then
|
type="$("$SHELL" --login -i -c "type ${command}" 2>&1)"
|
||||||
|
if grep 'function' <<< "$type" &> /dev/null; then
|
||||||
_out_fence "$SHELL" --login -i -c "declare -f ${command}"
|
_out_fence "$SHELL" --login -i -c "declare -f ${command}"
|
||||||
return
|
return
|
||||||
elif grep 'alias' <<< "$type" &>/dev/null; then
|
elif grep 'alias' <<< "$type" &> /dev/null; then
|
||||||
_out_fence "$SHELL" --login -i -c "type ${command}"
|
_out_fence "$SHELL" --login -i -c "type ${command}"
|
||||||
return
|
return
|
||||||
fi ;;
|
fi ;;
|
||||||
@@ -99,6 +124,9 @@ _bat_wrapper_function_:run() {
|
|||||||
|
|
||||||
_bat_wrapper_function_:detect_wrapper bat
|
_bat_wrapper_function_:detect_wrapper bat
|
||||||
_bat_wrapper_function_:detect_wrapper cat
|
_bat_wrapper_function_:detect_wrapper cat
|
||||||
|
if [[ "$BAT" != "bat" ]]; then
|
||||||
|
_bat_wrapper_function_:detect_wrapper "$BAT"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_system_:run() {
|
_system_:run() {
|
||||||
@@ -169,7 +197,8 @@ EOF
|
|||||||
declare -f "_$1_:run" \
|
declare -f "_$1_:run" \
|
||||||
| sed 's/^ *//; s/;$//' \
|
| sed 's/^ *//; s/;$//' \
|
||||||
| grep '^_out[^ ]* ' \
|
| grep '^_out[^ ]* ' \
|
||||||
| sed 's/^_out[^ ]* //' 1>&2
|
| sed 's/^_out[^ ]* //' \
|
||||||
|
| sed "s/\"\$BAT\"/$BAT/" 1>&2
|
||||||
|
|
||||||
# Prompt
|
# Prompt
|
||||||
printf "\n" 1>&2
|
printf "\n" 1>&2
|
||||||
@@ -196,6 +225,21 @@ _run_module() {
|
|||||||
# Functions:
|
# Functions:
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Tell the user if their executable isn't named "bat".
|
||||||
|
if [[ "$BAT" != "bat" ]] && [[ "$1" != '-y' ]]; then
|
||||||
|
trap '_tput rmcup; exit 1' INT
|
||||||
|
_tput smcup
|
||||||
|
_tput clear
|
||||||
|
_tput cup 0 0
|
||||||
|
_tput setaf 1
|
||||||
|
printf "The %s executable on your system is named '%s'.\n%s\n" "bat" "$BAT" \
|
||||||
|
"If your issue is related to installation, please check that this isn't the issue."
|
||||||
|
_tput sgr0
|
||||||
|
printf "Press any key to continue...\n"
|
||||||
|
read -rsn1
|
||||||
|
_tput rmcup
|
||||||
|
fi
|
||||||
|
|
||||||
# Ask for consent.
|
# Ask for consent.
|
||||||
if [[ "$1" == '-y' ]]; then
|
if [[ "$1" == '-y' ]]; then
|
||||||
_modules_consented=("${_modules[@]}")
|
_modules_consented=("${_modules[@]}")
|
||||||
|
|||||||
+40
-29
@@ -39,18 +39,18 @@
|
|||||||
|
|
||||||
### 自動ページング
|
### 自動ページング
|
||||||
|
|
||||||
出力が1つの画面に対して大きすぎる場合、`bat` は自身の出力を `less` にパイプで繋げることが可能です。
|
出力が1つの画面に対して大きすぎる場合、`bat` は自身の出力をページャー(例えば `less`) にパイプで繋げます。
|
||||||
|
|
||||||
### ファイルの連結
|
### ファイルの連結
|
||||||
|
|
||||||
あなたはさらにファイルを連結させるに使うことも可能です:wink:。
|
あなたはさらにファイルを連結させるために使うことも可能です:wink:。
|
||||||
`bat` は非対話型のターミナルを検出すると、
|
`bat` は非対話型のターミナルを検出すると(すなわち他のプロセスにパイプしたりファイル出力していると)、
|
||||||
いつでも `cat` の完全互換として振る舞い、
|
`bat` は `cat` の完全互換として振る舞い、
|
||||||
プレーンなファイルを表示します。
|
プレーンなファイルを表示します。
|
||||||
|
|
||||||
## 使い方
|
## 使い方
|
||||||
|
|
||||||
単一のファイルを表示させたい
|
単一のファイルを表示させたい場合
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> bat README.md
|
> bat README.md
|
||||||
@@ -62,7 +62,9 @@
|
|||||||
> bat src/*.rs
|
> bat src/*.rs
|
||||||
```
|
```
|
||||||
|
|
||||||
標準入力から自動的に構文を決定させたい場合
|
標準入力から自動的に構文を決定させたい場合(ハイライトされるのは、
|
||||||
|
たいていは `#!/bin/sh` のようなシバンを利用して、
|
||||||
|
ファイルの一行目から構文を決定できる場合のみです)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
> curl -s https://sh.rustup.rs | bat
|
> curl -s https://sh.rustup.rs | bat
|
||||||
@@ -119,8 +121,7 @@ batgrep needle src/
|
|||||||
```bash
|
```bash
|
||||||
tail -f /var/log/pacman.log | bat --paging=never -l log
|
tail -f /var/log/pacman.log | bat --paging=never -l log
|
||||||
```
|
```
|
||||||
Note that we have to switch off paging in order for this to work. We have also specified the syntax
|
注意事項:`tail -f`と組み合わせるには、ページングをオフにしなければなりません。また、この場合は構文が自動検出されないため、明示的に指定(`-l log`)しています。
|
||||||
explicitly (`-l log`), as it can not be auto-detected in this case.
|
|
||||||
|
|
||||||
#### `git`
|
#### `git`
|
||||||
|
|
||||||
@@ -153,7 +154,7 @@ man 2 select
|
|||||||
```
|
```
|
||||||
|
|
||||||
フォーマットの問題が発生した場合は
|
フォーマットの問題が発生した場合は
|
||||||
`MANROFFOPT = "-c"` を設定する必要もあります。
|
`MANROFFOPT="-c"` を設定する必要もあります。
|
||||||
|
|
||||||
これを新しいコマンドにバンドルしたい場合は [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md) も使用できます。
|
これを新しいコマンドにバンドルしたい場合は [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md) も使用できます。
|
||||||
|
|
||||||
@@ -168,19 +169,29 @@ man 2 select
|
|||||||
|
|
||||||
[](https://repology.org/project/bat/versions)
|
[](https://repology.org/project/bat/versions)
|
||||||
|
|
||||||
### On Ubuntu
|
### On Ubuntu (`apt` を使用)
|
||||||
*... や他のDebianベースのLinuxディストリビューション*
|
*... や他のDebianベースのLinuxディストリビューション*
|
||||||
|
|
||||||
Ubuntu Eoan 19.10 または Debian 不安定版 sid 以降の [the Ubuntu `bat` package](https://packages.ubuntu.com/eoan/bat) または [the Debian `bat` package](https://packages.debian.org/sid/bat) をインストールできます:
|
Ubuntu Eoan 19.10 または Debian 不安定版 sid 以降の [the Ubuntu `bat` package](https://packages.ubuntu.com/eoan/bat) または [the Debian `bat` package](https://packages.debian.org/sid/bat) からインストールできます:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt install bat
|
apt install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`apt` を使用して `bat` をインストールした場合、実行可能ファイルの名前が `bat` ではなく `batcat` になることがあります([他のパッケージとの名前衝突のため](https://github.com/sharkdp/bat/issues/982))。`bat -> batcat` のシンボリックリンクまたはエイリアスを設定することで、実行可能ファイル名が異なることによる問題の発生を防ぎ、他のディストリビューションと一貫性を保てます。
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
mkdir -p ~/.local/bin
|
||||||
|
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### On Ubuntu (最新の `.deb` パッケージを使用)
|
||||||
|
*... や他のDebianベースのLinuxディストリビューション
|
||||||
|
|
||||||
batの最新リリースを実行する場合、または Ubuntu/Debian の古いバージョンを使用している場合は、[release page](https://github.com/sharkdp/bat/releases) から最新の `.deb` パッケージをダウンロードし、
|
batの最新リリースを実行する場合、または Ubuntu/Debian の古いバージョンを使用している場合は、[release page](https://github.com/sharkdp/bat/releases) から最新の `.deb` パッケージをダウンロードし、
|
||||||
次の方法でインストールします:
|
次の方法でインストールします:
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i bat_0.13.0_amd64.deb # adapt version number and architecture
|
sudo dpkg -i bat_0.18.1_amd64.deb # adapt version number and architecture
|
||||||
```
|
```
|
||||||
|
|
||||||
### On Alpine Linux
|
### On Alpine Linux
|
||||||
@@ -220,7 +231,7 @@ emerge sys-apps/bat
|
|||||||
|
|
||||||
### On Void Linux
|
### On Void Linux
|
||||||
|
|
||||||
xbps-ininstall経由で `bat` をインストールできます。
|
xbps-install経由で `bat` をインストールできます。
|
||||||
```
|
```
|
||||||
xbps-install -S bat
|
xbps-install -S bat
|
||||||
```
|
```
|
||||||
@@ -233,7 +244,7 @@ pkg を使用してプリコンパイルされた [`bat` package](https://www.fr
|
|||||||
pkg install bat
|
pkg install bat
|
||||||
```
|
```
|
||||||
|
|
||||||
または FreeBSD ポートから自分でビルドする:
|
または FreeBSD ポートから自分でビルドすることもできます:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /usr/ports/textproc/bat
|
cd /usr/ports/textproc/bat
|
||||||
@@ -336,16 +347,16 @@ ansible-galaxy install aeimer.install_bat
|
|||||||
### From binaries
|
### From binaries
|
||||||
|
|
||||||
|
|
||||||
多くの異なるアーキテクチャのためのプレビルドバージョンを[リリースページ](https://github.com/sharkdp/bat/releases)からチェックしてみてください。静的にリンクされている多くのバイナリも利用できます: ファイル名に `musl` を含むアーカイブを探します。
|
多くの異なるアーキテクチャのためのプレビルドバージョンを[リリースページ](https://github.com/sharkdp/bat/releases)からチェックしてみてください。静的にリンクされている多くのバイナリも利用できます: ファイル名に `musl` を含むアーカイブを探してみてください。
|
||||||
|
|
||||||
### From source
|
### From source
|
||||||
|
|
||||||
|
|
||||||
`bat` をソースからビルドしたいならば、Rust 1.36 以上の環境が必要です。
|
`bat` をソースからビルドしたいならば、Rust 1.36 以上の環境が必要です。
|
||||||
そして `cargo` をビルドに対して使用します:
|
`cargo` を使用してビルドすることができます:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo install bat
|
cargo install --locked bat
|
||||||
```
|
```
|
||||||
|
|
||||||
一部のプラットフォームでは `llvm` および/または `libclang-dev` のインストールが必要になる場合があります。
|
一部のプラットフォームでは `llvm` および/または `libclang-dev` のインストールが必要になる場合があります。
|
||||||
@@ -387,7 +398,7 @@ bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"
|
|||||||
[Sublime Text の `.sublime-syntax` ファイル](https://www.sublimetext.com/docs/3/syntax.html)
|
[Sublime Text の `.sublime-syntax` ファイル](https://www.sublimetext.com/docs/3/syntax.html)
|
||||||
とテーマを読み取ることができます。新しい構文を定義するために以下の手順を行います。
|
とテーマを読み取ることができます。新しい構文を定義するために以下の手順を行います。
|
||||||
|
|
||||||
構文定義ファイルを入れておくためのフォルダを作る:
|
構文定義ファイルを入れておくためのフォルダを作ります:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir -p "$(bat --config-dir)/syntaxes"
|
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||||
@@ -428,13 +439,13 @@ git clone https://github.com/greggb/sublime-snazzy
|
|||||||
bat cache --build
|
bat cache --build
|
||||||
```
|
```
|
||||||
|
|
||||||
最後に、 `bat --list-themes` で新しいテーマが利用可能がチェックします
|
最後に、 `bat --list-themes` で新しいテーマが利用可能かチェックします
|
||||||
|
|
||||||
### 異なるページャーの使用
|
### 異なるページャーの使用
|
||||||
|
|
||||||
`bat` は環境変数 `PAGER` に使用するページャーを明記します。
|
`bat` は環境変数 `PAGER` に使用するページャーを明記します。
|
||||||
この環境変数が定義されていない場合、デフォルトで `less` が使用されます。
|
この環境変数が定義されていない場合、デフォルトで `less` が使用されます。
|
||||||
もし、異なるページャーが使用したい場合は、`PAGER` を修正してください。
|
もし、異なるページャーを使用したい場合は、`PAGER` を修正してください。
|
||||||
または、`PAGER` を上書きする環境変数として `BAT_PAGER` を定義することも可能です。
|
または、`PAGER` を上書きする環境変数として `BAT_PAGER` を定義することも可能です。
|
||||||
|
|
||||||
もし、ページャーにコマンドライン引数を渡したい場合は、
|
もし、ページャーにコマンドライン引数を渡したい場合は、
|
||||||
@@ -526,14 +537,14 @@ Windows 10では、`conhost.exe` (コマンドプロンプト)と
|
|||||||
[ConEmu](https://conemu.github.io/) を含む [Cmder](http://cmder.net/) を使用できます。
|
[ConEmu](https://conemu.github.io/) を含む [Cmder](http://cmder.net/) を使用できます。
|
||||||
|
|
||||||
**注意:** Git と MSYS の `less` はWindows上で色を正しく解釈しません。
|
**注意:** Git と MSYS の `less` はWindows上で色を正しく解釈しません。
|
||||||
もし、あなたが他のページャーをインストールしていないのであれば、 `--paging=never` オプションを付け加える
|
もし、あなたが他のページャーをインストールしていないのであれば、 `--paging=never` オプションを付け加えるか
|
||||||
または `BAT_PAGER` に空文字を設定することでページングを完全に無効にできます。
|
`BAT_PAGER` に空文字を設定することでページングを完全に無効にできます。
|
||||||
|
|
||||||
### Cygwin
|
### Cygwin
|
||||||
|
|
||||||
Windows上の `bat` は Cygwin のunix風のpath(`/cygdrive/*`)をネイティブサポートしていません。絶対的なcygwinパスを引数として受けたときに、 `bat` は以下のエラーを返すでしょう: `The system cannot find the path specified. (os error 3)`
|
Windows上の `bat` は Cygwin のunix風のpath(`/cygdrive/*`)をネイティブサポートしていません。絶対的なcygwinパスを引数として受けたときに、 `bat` は以下のエラーを返すでしょう: `The system cannot find the path specified. (os error 3)`
|
||||||
|
|
||||||
wrapperを作成するまたは以下の関数を `.bash_profile` に追記することでこの問題を解決することができます:
|
wrapperを作成するか、以下の関数を `.bash_profile` に追記することで、この問題を解決することができます:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bat() {
|
bat() {
|
||||||
@@ -553,7 +564,7 @@ bat() {
|
|||||||
|
|
||||||
### ターミナルと色
|
### ターミナルと色
|
||||||
|
|
||||||
`bat` はターミナルがトゥルーカラーをサポートしている/していない関係なくサポートします。
|
`bat` はターミナルがトゥルーカラーをサポートしている/していないに関係なくサポートします。
|
||||||
しかし、シンタックスハイライトのテーマの色が8-bitカラーに最適化されていない場合、
|
しかし、シンタックスハイライトのテーマの色が8-bitカラーに最適化されていない場合、
|
||||||
24-bitであるトゥルーカラーをサポートしているターミナルを使用することを強く推奨します(`terminator`, `konsole`, `iTerm2`, ...)。
|
24-bitであるトゥルーカラーをサポートしているターミナルを使用することを強く推奨します(`terminator`, `konsole`, `iTerm2`, ...)。
|
||||||
この [記事](https://gist.github.com/XVilka/8346728) には
|
この [記事](https://gist.github.com/XVilka/8346728) には
|
||||||
@@ -594,11 +605,11 @@ cargo build --bins
|
|||||||
cargo test
|
cargo test
|
||||||
|
|
||||||
# Install (release version)
|
# Install (release version)
|
||||||
cargo install
|
cargo install --locked
|
||||||
|
|
||||||
# Build a bat binary with modified syntaxes and themes
|
# Build a bat binary with modified syntaxes and themes
|
||||||
bash assets/create.sh
|
bash assets/create.sh
|
||||||
cargo install -f
|
cargo install --locked --force
|
||||||
```
|
```
|
||||||
|
|
||||||
## Maintainers
|
## Maintainers
|
||||||
@@ -610,16 +621,16 @@ cargo install -f
|
|||||||
|
|
||||||
`bat` は以下の目標を達成しようと試みています:
|
`bat` は以下の目標を達成しようと試みています:
|
||||||
|
|
||||||
- 美しい高度なシンタックスハイライトの提供
|
- 美しく高度なシンタックスハイライトの提供
|
||||||
- ファイルの差分を表示するためのGitとの連携
|
- ファイルの差分を表示するためのGitとの連携
|
||||||
- (POSIX) `cat` との完全互換
|
- (POSIX) `cat` との完全互換
|
||||||
- ユーザーフレンドリーがコマンドラインインターフェースの提供
|
- ユーザーフレンドリーなコマンドラインインターフェースの提供
|
||||||
|
|
||||||
あなたが同様のプログラムを探しているなら、多くの選択肢があります。
|
あなたが同様のプログラムを探しているなら、多くの選択肢があります。
|
||||||
比較については [このドキュメント](alternatives.md) を参照してください。
|
比較については [このドキュメント](alternatives.md) を参照してください。
|
||||||
|
|
||||||
## ライセンス
|
## ライセンス
|
||||||
Copyright (c) 2018-2020 [bat-developers](https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
`bat` は MIT License 及び Apache License 2.0 の両方の条件の下で配布されています。
|
`bat` は MIT License 及び Apache License 2.0 の両方の条件の下で配布されています。
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -170,7 +170,7 @@ apt install bat
|
|||||||
만약 최근 릴리즈된 bat을 사용을 원하거나 buntu/Debian 예전 버전을 사용하는 경우, [릴리즈 페이지](https://github.com/sharkdp/bat/releases)에서 다음과 같이 `.deb` 패키지를 받아 설치 할 수도 있습니다:
|
만약 최근 릴리즈된 bat을 사용을 원하거나 buntu/Debian 예전 버전을 사용하는 경우, [릴리즈 페이지](https://github.com/sharkdp/bat/releases)에서 다음과 같이 `.deb` 패키지를 받아 설치 할 수도 있습니다:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo dpkg -i bat_0.13.0_amd64.deb # adapt version number and architecture
|
sudo dpkg -i bat_0.18.1_amd64.deb # adapt version number and architecture
|
||||||
```
|
```
|
||||||
|
|
||||||
### On Alpine Linux
|
### On Alpine Linux
|
||||||
@@ -327,7 +327,7 @@ ansible-galaxy install aeimer.install_bat
|
|||||||
`bat`의 소스를 직접 빌드하기 위해서는, Rust 1.36 이상이 필요하며 `cargo`를 이용해 빌드할 수 있습니다.
|
`bat`의 소스를 직접 빌드하기 위해서는, Rust 1.36 이상이 필요하며 `cargo`를 이용해 빌드할 수 있습니다.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo install bat
|
cargo install --locked bat
|
||||||
```
|
```
|
||||||
|
|
||||||
일부 플랫폼에서는 `llvm` 그리고/또는 `libclang-dev` 설치가 필요할 수도 있습니다.
|
일부 플랫폼에서는 `llvm` 그리고/또는 `libclang-dev` 설치가 필요할 수도 있습니다.
|
||||||
@@ -528,11 +528,11 @@ cargo build --bins
|
|||||||
cargo test
|
cargo test
|
||||||
|
|
||||||
# Install (release version)
|
# Install (release version)
|
||||||
cargo install
|
cargo install --locked
|
||||||
|
|
||||||
# Build a bat binary with modified syntaxes and themes
|
# Build a bat binary with modified syntaxes and themes
|
||||||
bash assets/create.sh
|
bash assets/create.sh
|
||||||
cargo install -f
|
cargo install --locked --force
|
||||||
```
|
```
|
||||||
|
|
||||||
## 메인테이너들
|
## 메인테이너들
|
||||||
@@ -553,7 +553,7 @@ cargo install -f
|
|||||||
비슷한 프로그램들을 찾고 있다면, 많은 대안들이 있습니다. 비교는 [이 문서]((doc/alternatives.md))를 참조해주세요.
|
비슷한 프로그램들을 찾고 있다면, 많은 대안들이 있습니다. 비교는 [이 문서]((doc/alternatives.md))를 참조해주세요.
|
||||||
|
|
||||||
## 라이센스
|
## 라이센스
|
||||||
Copyright (c) 2018-2020 [bat-developers](https://github.com/sharkdp/bat).
|
Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
`bat`는 MIT 라이센스 및 Apache 라이센스 2.0의 조건에 따라 배포됩니다.
|
`bat`는 MIT 라이센스 및 Apache 라이센스 2.0의 조건에 따라 배포됩니다.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,594 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="doc/logo-header.svg" alt="bat - a cat clone with wings"><br>
|
||||||
|
<a href="https://travis-ci.org/sharkdp/bat"><img src="https://travis-ci.org/sharkdp/bat.svg?branch=master" alt="Build Status"></a>
|
||||||
|
<a href="https://ci.appveyor.com/project/sharkdp/bat"><img src="https://ci.appveyor.com/api/projects/status/cptsmtbiwbnr2vhf/branch/master?svg=true"></a>
|
||||||
|
<img src="https://img.shields.io/crates/l/bat.svg" alt="license">
|
||||||
|
<a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
|
||||||
|
Клон утилиты <i>cat(1)</i> с поддержкой выделения синтаксиса и Git
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="#выделение-синтаксиса">Ключевые возможности</a> •
|
||||||
|
<a href="#как-использовать">Использование</a> •
|
||||||
|
<a href="#установка">Установка</a> •
|
||||||
|
<a href="#кастомизация">Кастомизация</a> •
|
||||||
|
<a href="#цели-и-альтернативы">Цели и альтернативы </a> •
|
||||||
|
Перевод [<a href="https://github.com/chinanf-boy/bat-zh">中文</a>][<a href="doc/README-ja.md">日本語</a>][<a href="doc/README-ko.md">한국어</a>][<a href="doc/README-ru.md">Русский</a>]
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### Выделение синтаксиса
|
||||||
|
|
||||||
|
`bat` поддерживает выделение синтаксиса для огромного количества языков программирования и разметки:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Интеграция с Git
|
||||||
|
`bat` использует `git`, чтобы показать изменения в коде
|
||||||
|
(смотрите на левый сайдбар):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Показать непечатаемые символы
|
||||||
|
|
||||||
|
Вы можете использовать `-A` / `--show-all` флаг, чтобы показать символы, которые невозможно напечатать:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Автоматическое разделение текста
|
||||||
|
|
||||||
|
`bat` умеет перенаправлять вывод в `less`, если вывод не помещается на экране полностью.
|
||||||
|
|
||||||
|
### Объединение файлов
|
||||||
|
|
||||||
|
О... Вы также можете объединять файлы :wink:. Когда
|
||||||
|
`bat` обнаружит неинтерактивный терминал (например, когда вы перенаправляете вывод в файл или процесс), он будет работать как утилита `cat` и выведет содержимое файлов как обычный текст (без подсветки синтаксиса).
|
||||||
|
|
||||||
|
## Как использовать
|
||||||
|
|
||||||
|
Вывести единственный файл в терминале
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> bat README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Отобразить сразу несколько файлов в терминале
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> bat src/*.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
Читаем из stdin и определяем синтаксис автоматически (внимание: это делается по заглавной строке файла, например, `#!/bin/sh`)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> curl -s https://sh.rustup.rs | bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Прочитать из stdin с явным указанием языка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
> yaml2json .travis.yml | json_pp | bat -l json
|
||||||
|
```
|
||||||
|
|
||||||
|
Вывести и выделить неотображаемые символы
|
||||||
|
```bash
|
||||||
|
> bat -A /etc/hosts
|
||||||
|
```
|
||||||
|
|
||||||
|
Использование в качестве замены `cat`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bat > note.md # мгновенно создаем новый файл
|
||||||
|
|
||||||
|
bat header.md content.md footer.md > document.md
|
||||||
|
|
||||||
|
bat -n main.rs # показываем только количество строк
|
||||||
|
|
||||||
|
bat f - g # выводит 'f' в stdin, а потом 'g'.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Интеграция с другими утилитами
|
||||||
|
|
||||||
|
#### `find` или `fd`
|
||||||
|
|
||||||
|
Вы можете использовать флаг `-exec` в `find`, чтобы посмотреть превью всех файлов в `bat`
|
||||||
|
```bash
|
||||||
|
find … -exec bat {} +
|
||||||
|
```
|
||||||
|
|
||||||
|
Если вы используете [`fd`](https://github.com/sharkdp/fd), применяйте для этого флаг `-X`/`--exec-batch`:
|
||||||
|
```bash
|
||||||
|
fd … -X bat
|
||||||
|
```
|
||||||
|
|
||||||
|
#### `ripgrep`
|
||||||
|
|
||||||
|
С помощью [`batgrep`](https://github.com/eth-p/bat-extras/blob/master/doc/batgrep.md), `bat` может быть использован для вывода результата запроса [`ripgrep`](https://github.com/BurntSushi/ripgrep)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
batgrep needle src/
|
||||||
|
```
|
||||||
|
|
||||||
|
#### `tail -f`
|
||||||
|
|
||||||
|
`bat` может быть использован вместе с `tail -f`, чтобы выводить содержимое файла с подсветкой синтаксиса в реальном времени.
|
||||||
|
```bash
|
||||||
|
tail -f /var/log/pacman.log | bat --paging=never -l log
|
||||||
|
```
|
||||||
|
Заметьте, что мы должны отключить пэйджинг, чтобы это заработало. Мы также явно указали синтаксис (`-l log`), так как он не может быть автоматически определен в данном случае.
|
||||||
|
|
||||||
|
#### `git`
|
||||||
|
|
||||||
|
Вы можете использовать `bat` с `git show`, чтобы просмотреть старую версию файла с выделением синтаксиса:
|
||||||
|
```bash
|
||||||
|
git show v0.6.0:src/main.rs | bat -l rs
|
||||||
|
```
|
||||||
|
|
||||||
|
Обратите внимание, что выделение синтаксиса не работает в `git diff` на данный момент. Если вам это нужно, посмотрите [`delta`](https://github.com/dandavison/delta).
|
||||||
|
|
||||||
|
#### `xclip`
|
||||||
|
|
||||||
|
Нумерация стро и отображение изменений затрудняет копирование содержимого файлов в буфер обмена.
|
||||||
|
Чтобы спроваиться с этим, используйте флаг `-p`/`--plain` или просто перенаправьте стандартный вывод в `xclip`:
|
||||||
|
```bash
|
||||||
|
bat main.cpp | xclip
|
||||||
|
```
|
||||||
|
`bat` обнаружит перенаправление вывода и выведет обычный текст без выделения синтаксиса.
|
||||||
|
|
||||||
|
#### `man`
|
||||||
|
|
||||||
|
`bat` может быть использован в виде выделения цвета для `man`, для этого установите переменную окружения
|
||||||
|
`MANPAGER`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
||||||
|
man 2 select
|
||||||
|
```
|
||||||
|
|
||||||
|
Возможно вам понадобится также установить `MANROFFOPT="-c"`, если у вас есть проблемы с форматированием.
|
||||||
|
|
||||||
|
Если вы хотите сделать этой одной командой, вы можете использовать [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md).
|
||||||
|
|
||||||
|
Обратите внимание, что [синтаксис manpage](assets/syntaxes/02_Extra/Manpage.sublime-syntax) разрабатывается в этом репозитории и все еще находится в разработке.
|
||||||
|
|
||||||
|
#### `prettier` / `shfmt` / `rustfmt`
|
||||||
|
|
||||||
|
[`Prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) — скрипт, который форматирует код и выводит его с помощью `bat`.
|
||||||
|
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
[](https://repology.org/project/bat/versions)
|
||||||
|
|
||||||
|
### Ubuntu (с помощью `apt`)
|
||||||
|
*... и другие дистрибутивы основанные на Debian.*
|
||||||
|
|
||||||
|
`bat` есть в репозиториях [Ubuntu](https://packages.ubuntu.com/eoan/bat) и
|
||||||
|
[Debian](https://packages.debian.org/sid/bat) и доступен начиная с Ubuntu Eoan 19.10. На Debian `bat` пока что доступен только с нестабильной веткой "Sid".
|
||||||
|
|
||||||
|
Если ваша версия Ubuntu/Debian достаточно новая, вы можете установить `bat` так:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Если вы установили `bat` таким образом, то бинарный файл может быть установлен как `batcat` вместо `bat` (из-за [конфликта имени с другим пакетом](https://github.com/sharkdp/bat/issues/982)). Вы можете сделать симлинк или алиас `bat -> batcat`, чтобы предотвратить подобные проблемы и в других дистрибутивах.
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
mkdir -p ~/.local/bin
|
||||||
|
ln -s /usr/bin/batcat ~/.local/bin/bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ubuntu (С помощью самого нового `.deb` пакета)
|
||||||
|
*... и другие дистрибутивы Linux основанные на Debian*
|
||||||
|
|
||||||
|
Если пакет еще недоступен в вашем Ubuntu/Debian дистрибутиве или вы хотите установить самую последнюю версию `bat`, то вы можете скачать самый последний `deb`-пакет отсюда:
|
||||||
|
[release page](https://github.com/sharkdp/bat/releases) и установить так:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dpkg -i bat_0.18.1_amd64.deb # измените архитектуру и версию
|
||||||
|
```
|
||||||
|
|
||||||
|
### Alpine Linux
|
||||||
|
|
||||||
|
Вы можете установить [`bat`](https://pkgs.alpinelinux.org/packages?name=bat) из официальных источников:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apk add bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arch Linux
|
||||||
|
|
||||||
|
Вы можете установить [`bat`](https://www.archlinux.org/packages/community/x86_64/bat/) из официального источника:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pacman -S bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fedora
|
||||||
|
|
||||||
|
Вы можете установить [`bat`](https://koji.fedoraproject.org/koji/packageinfo?packageID=27506) из официального репозитория [Fedora Modular](https://docs.fedoraproject.org/en-US/modularity/using-modules/).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dnf install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gentoo Linux
|
||||||
|
|
||||||
|
Вы можете установить [`bat`](https://packages.gentoo.org/packages/sys-apps/bat) из официальных источников:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
emerge sys-apps/bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Void Linux
|
||||||
|
|
||||||
|
Вы можете установить `bat` с помощью `xbps-install`:
|
||||||
|
```bash
|
||||||
|
xbps-install -S bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### FreeBSD
|
||||||
|
|
||||||
|
Вы можете установить [`bat`](https://www.freshports.org/textproc/bat) с помощью `pkg`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pkg install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
или самому скомпилировать его:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /usr/ports/textproc/bat
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
### С помощью nix
|
||||||
|
|
||||||
|
Вы можете установить `bat`, используя [nix package manager](https://nixos.org/nix):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix-env -i bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### openSUSE
|
||||||
|
|
||||||
|
Вы можете установить `bat` с помощью `zypper`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
zypper install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
Вы можете установить `bat` с помощью [Homebrew](http://braumeister.org/formula/bat):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
brew install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Или же установить его с помощью [MacPorts](https://ports.macports.org/port/bat/summary):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
port install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Есть несколько способов установить `bat`. Как только вы установили его, посмотрите на секцию ["Использование `bat` в Windows"](#using-bat-on-windows).
|
||||||
|
|
||||||
|
#### С помощью Chocolatey
|
||||||
|
|
||||||
|
Вы можете установить `bat` с помощью [Chocolatey](https://chocolatey.org/packages/Bat):
|
||||||
|
```bash
|
||||||
|
choco install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
#### С помощью Scoop
|
||||||
|
|
||||||
|
Вы можете установить `bat` с помощью [scoop](https://scoop.sh/):
|
||||||
|
```bash
|
||||||
|
scoop install bat
|
||||||
|
```
|
||||||
|
|
||||||
|
Для этого у вас должен быть установлен [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads).
|
||||||
|
|
||||||
|
#### Из заранее скомпилированных файлов:
|
||||||
|
|
||||||
|
Их вы можете скачать на [странице релизов](https://github.com/sharkdp/bat/releases).
|
||||||
|
|
||||||
|
Для этого у вас должен быть установлен [Visual C++ Redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads).
|
||||||
|
|
||||||
|
### С помощью Docker
|
||||||
|
|
||||||
|
Вы можете использовать [Docker image](https://hub.docker.com/r/danlynn/bat/), чтобы запустить `bat` в контейнере:
|
||||||
|
```bash
|
||||||
|
docker pull danlynn/bat
|
||||||
|
alias bat='docker run -it --rm -e BAT_THEME -e BAT_STYLE -e BAT_TABS -v "$(pwd):/myapp" danlynn/bat'
|
||||||
|
```
|
||||||
|
|
||||||
|
### С помощью Ansible
|
||||||
|
|
||||||
|
Вы можете установить `bat` с [Ansible](https://www.ansible.com/):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Устанавливаем роль на устройстве
|
||||||
|
ansible-galaxy install aeimer.install_bat
|
||||||
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
# Playbook для установки bat
|
||||||
|
- host: all
|
||||||
|
roles:
|
||||||
|
- aeimer.install_bat
|
||||||
|
```
|
||||||
|
|
||||||
|
- [Ansible Galaxy](https://galaxy.ansible.com/aeimer/install_bat)
|
||||||
|
- [GitHub](https://github.com/aeimer/ansible-install-bat)
|
||||||
|
|
||||||
|
Этот способ должен сработать со следующими дистрибутивами:
|
||||||
|
- Debian/Ubuntu
|
||||||
|
- ARM (например Raspberry PI)
|
||||||
|
- Arch Linux
|
||||||
|
- Void Linux
|
||||||
|
- FreeBSD
|
||||||
|
- macOS
|
||||||
|
|
||||||
|
### Из скомпилированных файлов
|
||||||
|
|
||||||
|
Перейдите на [страницу релизов](https://github.com/sharkdp/bat/releases) для
|
||||||
|
скомпилированных файлов `bat` для различных платформ. Бинарные файлы со статической связкой так же доступны: выбирайте архив с `musl` в имени.
|
||||||
|
|
||||||
|
### Из исходников
|
||||||
|
|
||||||
|
Если вы желаете установить `bat` из исходников, вам понадобится Rust 1.45 или выше. После этого используйте `cargo`, чтобы все скомпилировать:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo install --locked bat
|
||||||
|
```
|
||||||
|
|
||||||
|
## Кастомизация
|
||||||
|
|
||||||
|
### Темы для выделения текста
|
||||||
|
|
||||||
|
Используйте `bat --list-themes`, чтобы вывести список всех доступных тем. Для выбора темы `TwoDark` используйте `bat` с флагом
|
||||||
|
`--theme=TwoDark` или выставьте переменную окружения `BAT_THEME` в `TwoDark`. Используйте `export BAT_THEME="TwoDark"` в конфигурационном файле вашей оболочки, чтобы изменить ее навсегда. Или же используйте [конфигурационный файл](https://github.com/sharkdp/bat#configuration-file) `bat`.
|
||||||
|
|
||||||
|
Если вы хотите просто просмотреть темы, используйте следующую команду (для этого вам понадобится [`fzf`](https://github.com/junegunn/fzf)):
|
||||||
|
```bash
|
||||||
|
bat --list-themes | fzf --preview="bat --theme={} --color=always /путь/к/файлу"
|
||||||
|
```
|
||||||
|
|
||||||
|
`bat` отлично смотрится на темном фоне. Однако если ваш терминал использует светлую тему, то такие темы как `GitHub` или `OneHalfLight` будут смотреться куда лучше!
|
||||||
|
Вы также можете использовать новую тему, для этого перейдите [в раздел добавления тем](https://github.com/sharkdp/bat#добавление-новых-тем).
|
||||||
|
|
||||||
|
### Изменение внешнего вывода
|
||||||
|
|
||||||
|
Вы можете использовать флаг `--style`, чтобы изменять внешний вид вывода в `bat`.
|
||||||
|
Например, вы можете использовать `--style=numbers,changes`, чтобы показать только количество строк и изменений в Git. Установите переменную окружения `BAT_STYLE` чтобы изменить это навсегда, или используйте [конфиг файл](https://github.com/sharkdp/bat#configuration-file) `bat`.
|
||||||
|
|
||||||
|
### Добавление новых синтаксисов
|
||||||
|
|
||||||
|
`bat` использует [`syntect`](https://github.com/trishume/syntect/) для выделения синтаксиса. `syntect` может читать
|
||||||
|
[файл `.sublime-syntax`](https://www.sublimetext.com/docs/3/syntax.html)
|
||||||
|
и темы. Чтобы добавить новый синтаксис, сделайте следующее:
|
||||||
|
|
||||||
|
Создайте каталог с синтаксисом:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p "$(bat --config-dir)/syntaxes"
|
||||||
|
cd "$(bat --config-dir)/syntaxes"
|
||||||
|
|
||||||
|
# Разместите файлы '.sublime-syntax'
|
||||||
|
# в каталоге (или субкаталогах), например:
|
||||||
|
git clone https://github.com/tellnobody1/sublime-purescript-syntax
|
||||||
|
```
|
||||||
|
|
||||||
|
Теперь используйте следующую команду, чтобы превратить эти файлы в бинарный кеш:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bat cache --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Теперь вы можете использовать `bat --list-languages`, чтобы проверить, доступны ли новые языки.
|
||||||
|
|
||||||
|
Если когда-нибудь вы заходите вернуться к настройкам по умолчанию, введите
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bat cache --clear
|
||||||
|
```
|
||||||
|
|
||||||
|
### Добавление новых тем
|
||||||
|
|
||||||
|
Это работает похожим образом, так же как и добавление новых тем выделения синтаксиса
|
||||||
|
|
||||||
|
Во-первых, создайте каталог с новыми темами для синтаксиса:
|
||||||
|
```bash
|
||||||
|
mkdir -p "$(bat --config-dir)/themes"
|
||||||
|
cd "$(bat --config-dir)/themes"
|
||||||
|
|
||||||
|
# Загрузите тему в формате '.tmTheme':
|
||||||
|
git clone https://github.com/greggb/sublime-snazzy
|
||||||
|
|
||||||
|
# Обновите кеш
|
||||||
|
bat cache --build
|
||||||
|
```
|
||||||
|
|
||||||
|
Теперь используйте `bat --list-themes`, чтобы проверить доступность новых тем.
|
||||||
|
|
||||||
|
### Использование другого пейджера.
|
||||||
|
|
||||||
|
`bat` использует пейджер, указанный в переменной окружения `PAGER`. Если она не задана, то используется `less`.
|
||||||
|
Если вы желаете использовать другой пейджер, вы можете либо изменить переменную `PAGER`, либо `BAT_PAGER` чтобы перезаписать то, что указано в `PAGER`.
|
||||||
|
|
||||||
|
Чтобы передать дополнительные аргументы вашему пейджеру, перечислите их в этой переменной:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
export BAT_PAGER="less -RF"
|
||||||
|
```
|
||||||
|
|
||||||
|
Так же вы можете использовать [файл конфигурации](https://github.com/sharkdp/bat#configuration-file) `bat` (флаг `--pager`).
|
||||||
|
|
||||||
|
**Внимание**: По умолчанию пейджером является`less` (без каких-либо аргументов),
|
||||||
|
`bat` задаст следующие флаги для пейджера:
|
||||||
|
`-R`/`--RAW-CONTROL-CHARS`,
|
||||||
|
`-F`/`--quit-if-one-screen` и `-X`/`--no-init`. Последний флаг(`-X`) используется только для `less`, чья версия раньше 530.
|
||||||
|
|
||||||
|
Флаг `-R` нужен чтобы корректно воспроизвести ANSI цвета. Второй флаг (`-F`) говорит
|
||||||
|
`less` чтобы тот сразу же завершился, если размер вывода меньше чем вертикальный размер терминала.
|
||||||
|
Это удобно для небольших файлов, так как вам не надо каждый раз нажимать `q`, чтобы выйти из пейджера. Третий флаг (`-X`) нужен для того, чтобы исправить баг с `--quit-if-one-screen` в старых версиях `less`. К сожалению, это блокирует возможность использования колеса мышки.
|
||||||
|
|
||||||
|
Если вы хотите все же его включить, вы можете добавить флаг `-R`.
|
||||||
|
Для `less` новее чем 530 оно должно работать из коробки.
|
||||||
|
|
||||||
|
### Темная тема
|
||||||
|
|
||||||
|
Если вы используете темный режим в macOS, возможно вы захотите чтобы `bat` использовал другую тему, основанную на теме вашей ОС. Следующий сниппет использует тему `default`, когда у вас включен темный режим, и тему `GitHub`, когда включен светлый.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Файл конфигурации
|
||||||
|
|
||||||
|
`bat` также может быть кастомизирован с помощью файла конфигурации. Его местоположение зависит от вашей ОС: чтобы посмотреть его путь, введите
|
||||||
|
```
|
||||||
|
bat --config-file
|
||||||
|
```
|
||||||
|
|
||||||
|
Также вы можете установить переменную окружения `BAT_CONFIG_PATH`, чтобы изменить путь к файлу конфигурации.
|
||||||
|
```bash
|
||||||
|
export BAT_CONFIG_PATH="/path/to/bat.conf"
|
||||||
|
```
|
||||||
|
|
||||||
|
Файл конфигурации «по умолчанию» может быть создан с помощью флага `--generate-config-file`.
|
||||||
|
```bash
|
||||||
|
bat --generate-config-file
|
||||||
|
```
|
||||||
|
|
||||||
|
### Формат
|
||||||
|
|
||||||
|
Файл конфигурации - это всего лишь набор аргументов. Введите `bat --help`, чтобы просмотреть список всех возможных флагов и аргументов. Также вы можете закомментировать строку с помощью `#`.
|
||||||
|
|
||||||
|
Пример файла конфигурации:
|
||||||
|
```bash
|
||||||
|
# Установить тему "TwoDark"
|
||||||
|
--theme="TwoDark"
|
||||||
|
|
||||||
|
# Показывать количество строк, изменений в Git и заголовок файла
|
||||||
|
--style="numbers,changes,header"
|
||||||
|
|
||||||
|
# Использовать курсив (поддерживается не всеми терминалами)
|
||||||
|
--italic-text=always
|
||||||
|
|
||||||
|
# Использовать синтаксис C++ для всех .ino файлов
|
||||||
|
--map-syntax "*.ino:C++"
|
||||||
|
|
||||||
|
# Использовать синтаксик Git Ignore для всех файлов .ignore
|
||||||
|
--map-syntax ".ignore:Git Ignore"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Использование `bat` в Windows
|
||||||
|
|
||||||
|
`bat` полностью работоспособен "из коробки", но для некоторых возможностей могут понадобиться дополнительные настройки.
|
||||||
|
|
||||||
|
### Пейджинг
|
||||||
|
|
||||||
|
Windows поддерживает только очень простой пейджер `more`. Вы можете скачать установщик для `less` [с его сайта](http://www.greenwoodsoftware.com/less/download.html) или [через Chocolatey](https://chocolatey.org/packages/Less). Чтобы его использовать, скопируйте исполняемый файл в ваш `PATH` или [используйте переменную окружения](#Использование-другого-пейджера). [Пакет из Chocolatey](#windows) установит все автоматически.
|
||||||
|
|
||||||
|
### Цвета
|
||||||
|
|
||||||
|
Windows 10 поддерживает цвета и в `conhost.exe` (Command Prompt), и в PowerShell начиная с версии Windows
|
||||||
|
[v1511](https://ru.wikipedia.org/wiki/Windows_10#Обновления и поддержка), так же как и в bash. На ранних версиях Windows вы можете использовать
|
||||||
|
[Cmder](http://cmder.net/), в котором есть [ConEmu](https://conemu.github.io/).
|
||||||
|
|
||||||
|
**Внимание:** Версия `less` в Git и MSYS2 воспроизводит цвета некорректно. Если у вас нет других пейджеров, мы можете отключить использование пейджеров с помощью флага `--paging=never`
|
||||||
|
или установить `BAT_PAGER` равным пустой строке.
|
||||||
|
|
||||||
|
### Cygwin
|
||||||
|
|
||||||
|
Из коробки `bat` не поддерживает пути в стиле Unix (`/cygdrive/*`). Когда указан абсолютный путь cygwin, `bat` выдаст следующую ошибку: `The system cannot find the path specified. (os error 3)`
|
||||||
|
|
||||||
|
Она может быть решена добавлением следующей функции в `.bash_profile`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bat() {
|
||||||
|
local index
|
||||||
|
local args=("$@")
|
||||||
|
for index in $(seq 0 ${#args[@]}) ; do
|
||||||
|
case "${args[index]}" in
|
||||||
|
-*) continue;;
|
||||||
|
*) [ -e "${args[index]}" ] && args[index]="$(cygpath --windows "${args[index]}")";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
command bat "${args[@]}"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Проблемы и их решение
|
||||||
|
|
||||||
|
### Терминалы и цвета
|
||||||
|
|
||||||
|
`bat` поддерживает терминалы *с* и *без* поддержки truecolor. Однако подсветка синтаксиса не оптимизирована для терминалов с 8-битными цветами, и рекомендуется использовать терминалы с поддержкой 24-битных цветов (`terminator`, `konsole`, `iTerm2`, ...).
|
||||||
|
Смотрите [эту статью](https://gist.github.com/XVilka/8346728) для полного списка терминалов.
|
||||||
|
|
||||||
|
Удостовертесь, что переменная `COLORTERM` равна `truecolor` или
|
||||||
|
`24bit`. Иначе `bat` не сможет определить поддержку 24-битных цветов (и будет использовать 8-битные).
|
||||||
|
|
||||||
|
### Текст и номера строк плохо видны
|
||||||
|
|
||||||
|
Используйте другую тему (`bat --list-themes` выведет список всех установленных тем). Темы `OneHalfDark` и
|
||||||
|
`OneHalfLight` имеют более яркие номера строк и тексты.
|
||||||
|
|
||||||
|
### Кодировки файлов
|
||||||
|
|
||||||
|
`bat` поддерживает UTF-8 и UTF-16. Файлы в других кодировках, возможно, придётся перекодировать, так как кодировка может быть распознана неверно. Используйте `iconv`.
|
||||||
|
Пример: у вас есть PHP файл в кодировке Latin-1 (ISO-8859-1):
|
||||||
|
``` bash
|
||||||
|
iconv -f ISO-8859-1 -t UTF-8 my-file.php | bat
|
||||||
|
```
|
||||||
|
Внимание: вам может понадобится флаг `-l`/`--language`, если `bat` не сможет автоматически определить синтаксис.
|
||||||
|
|
||||||
|
## Разработка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Рекурсивно клонирует все модули
|
||||||
|
git clone --recursive https://github.com/sharkdp/bat
|
||||||
|
|
||||||
|
# Компиляции в режиме разработки
|
||||||
|
cd bat
|
||||||
|
cargo build --bins
|
||||||
|
|
||||||
|
# Запуск тестов
|
||||||
|
cargo test
|
||||||
|
|
||||||
|
# Установка (релизная версия)
|
||||||
|
cargo install --locked
|
||||||
|
|
||||||
|
# Компилирование исполняего файла bat с другим синтаксисом и темами
|
||||||
|
bash assets/create.sh
|
||||||
|
cargo install --locked --force
|
||||||
|
```
|
||||||
|
|
||||||
|
## Разработчики
|
||||||
|
|
||||||
|
- [sharkdp](https://github.com/sharkdp)
|
||||||
|
- [eth-p](https://github.com/eth-p)
|
||||||
|
|
||||||
|
## Цели и альтернативы
|
||||||
|
|
||||||
|
Цели проекта `bat`:
|
||||||
|
|
||||||
|
- Красивая и продвинутая подсветка синтаксиса.
|
||||||
|
- Интеграция с Git.
|
||||||
|
- Полноценная замена `cat`.
|
||||||
|
- Дружелюбный интерфейс и аргументы.
|
||||||
|
|
||||||
|
Есть очень много альтернатив `bat`. Смотрите [этот документ](doc/alternatives.md) для сравнения.
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
Copyright (c) 2018-2021 [Разработчики bat](https://github.com/sharkdp/bat).
|
||||||
|
|
||||||
|
`bat` распостраняется под лицензями MIT License и Apache License 2.0 (на выбор пользователя).
|
||||||
|
|
||||||
|
Смотрите [LICENSE-APACHE](LICENSE-APACHE) и [LICENSE-MIT](LICENSE-MIT) для более подробного ознакомления.
|
||||||
+1
-1
@@ -9,7 +9,7 @@ if you are not looking for a program like `bat`, this comparison might not be fo
|
|||||||
| Drop-in `cat` replacement | :heavy_check_mark: [*](https://github.com/sharkdp/bat/issues/134) | :x: | :x: | (:heavy_check_mark:) | :x: | :x: [*](https://github.com/rstacruz/hicat/issues/6) | :x: | :x: |
|
| Drop-in `cat` replacement | :heavy_check_mark: [*](https://github.com/sharkdp/bat/issues/134) | :x: | :x: | (:heavy_check_mark:) | :x: | :x: [*](https://github.com/rstacruz/hicat/issues/6) | :x: | :x: |
|
||||||
| Git integration | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
|
| Git integration | :heavy_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
|
||||||
| Automatic paging | :heavy_check_mark: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :x: | :x: |
|
| Automatic paging | :heavy_check_mark: | :x: | :x: | :x: | :x: | :heavy_check_mark: | :x: | :x: |
|
||||||
| Languages (circa) | 110 | 300 | 200 | 7 | 80 | 130 | 30 | 130 |
|
| Languages (circa) | 150 | 300 | 200 | 7 | 80 | 130 | 30 | 130 |
|
||||||
| Extensible (languages, themes) | :heavy_check_mark: | (:heavy_check_mark:) | (:heavy_check_mark:) | :x: | (:heavy_check_mark:) | :x: | :x: | :x: |
|
| Extensible (languages, themes) | :heavy_check_mark: | (:heavy_check_mark:) | (:heavy_check_mark:) | :x: | (:heavy_check_mark:) | :x: | :x: | :x: |
|
||||||
| Advanced highlighting (e.g. nested syntaxes) | :heavy_check_mark: | :heavy_check_mark: | (:heavy_check_mark:) ? | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
| Advanced highlighting (e.g. nested syntaxes) | :heavy_check_mark: | :heavy_check_mark: | (:heavy_check_mark:) ? | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
|
||||||
| Execution time [ms] (`jquery-3.3.1.js`) | 624 | 789 | 400 | 80 | 300 | 316 | 157 | 695 |
|
| Execution time [ms] (`jquery-3.3.1.js`) | 624 | 789 | 400 | 80 | 300 | 316 | 157 | 695 |
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
## Adding new builtin languages for syntax highlighting
|
||||||
|
|
||||||
|
Should you find that a particular syntax is not available within `bat` and think it should be included in `bat` by default, you can follow the instructions outlined below.
|
||||||
|
|
||||||
|
`bat` uses the excellent [syntect](https://github.com/trishume/syntect) library to highlight source
|
||||||
|
code. As a basis, syntect uses [Sublime Text](https://www.sublimetext.com/) syntax definitions
|
||||||
|
in the `.sublime-syntax` format.
|
||||||
|
|
||||||
|
**Important:** Before proceeding, verify that the syntax you wish to add meets the [criteria for inclusion](#Criteria-for-inclusion-of-new-syntaxes).
|
||||||
|
|
||||||
|
1. Find a Sublime Text syntax for the given language, preferably in a separate Git repository
|
||||||
|
which can be included as a submodule (under `assets/syntaxes`).
|
||||||
|
|
||||||
|
2. If the Sublime Text syntax is only available as a `.tmLanguage` file, open the file in
|
||||||
|
Sublime Text and convert it to a `.sublime-syntax` file via *Tools* -> *Developer* ->
|
||||||
|
*New Syntax from XXX.tmLanguage...*. Save the new file in the `assets/syntaxes` folder.
|
||||||
|
|
||||||
|
3. Run the `assets/create.sh` script. It calls `bat cache --build` to parse all available
|
||||||
|
`.sublime-syntax` files and serialize them to a `syntaxes.bin` file.
|
||||||
|
|
||||||
|
4. Re-compile `bat`. At compilation time, the `syntaxes.bin` file will be stored inside the
|
||||||
|
`bat` binary.
|
||||||
|
|
||||||
|
5. Use `bat --list-languages` to check if the new languages are available.
|
||||||
|
|
||||||
|
6. Add a syntax test for the new language. See [below](#Syntax-tests) for details.
|
||||||
|
|
||||||
|
7. If you send a pull request with your changes, please do *not* include the changed `syntaxes.bin`
|
||||||
|
file. A new binary cache file will be created once before every new release of `bat`.
|
||||||
|
|
||||||
|
### Syntax tests
|
||||||
|
|
||||||
|
`bat` has a set of syntax highlighting regression tests in `tests/syntax-tests`. The main idea is
|
||||||
|
make sure that we do not run into issues we had in the past where either (1) syntax highlighting
|
||||||
|
for some language is suddenly not working anymore or (2) `bat` suddenly crashes for some input (due
|
||||||
|
to `regex` incompatibilities between `syntect` and Sublime Text).
|
||||||
|
|
||||||
|
In order to add a new test file, please follow these steps (let's take "Ruby" as an example):
|
||||||
|
|
||||||
|
1. Make sure that you are running the **latest version of `bat`** and that `bat` is available on
|
||||||
|
the path. If you are creating a syntax test for a new builtin syntax (see above), make sure that
|
||||||
|
your version of `bat` already has the new syntax builtin.
|
||||||
|
2. Find an example Ruby source file or write one yourself. If possible, the file should aim to be
|
||||||
|
"comprehensive" (i.e. include a lot of the possible syntax), but this is not strictly necessary.
|
||||||
|
A simple file is better than none at all. Also, the files shouldn't be gigantic.
|
||||||
|
3. Save the file in `tests/syntax-tests/source/Ruby` (adapt for your language). The file name could
|
||||||
|
be `test.rb` (adapt extension) but can also be adapted if that is necessary in order for `bat` to
|
||||||
|
highlight it correctly (e.g. `Makefile`).
|
||||||
|
4. If you have copied the file from somewhere else, please make sure that the file *may* be copied
|
||||||
|
under the respective license and that the license is compatible with `bat`s license. If it
|
||||||
|
requires attribution, please add a `LICENSE.md` in the same folder with a text like this:
|
||||||
|
```
|
||||||
|
The `test.rb` file has been added from [enter source here] under the following license:
|
||||||
|
|
||||||
|
[add license text here]
|
||||||
|
```
|
||||||
|
5. Go to `tests/syntax-tests` and run the `update.sh` Bash script. A new file should be generated
|
||||||
|
in the `highlighted` folder (e.g. `highlighted/Ruby/test.rb`).
|
||||||
|
6. Use `cat` or `bat --language=txt` to display the content of this file and make sure that the
|
||||||
|
syntax highlighting looks correct.
|
||||||
|
7. `git add` the new files in the `source` folder as well as the autogenerated files in the
|
||||||
|
`highlighted` folder.
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
Make sure that the local cache does not interfere with the internally stored syntaxes and
|
||||||
|
themes (`bat cache --clear`).
|
||||||
|
|
||||||
|
## Criteria for inclusion of new syntaxes
|
||||||
|
|
||||||
|
* More than 10,000 downloads on packagecontrol.io/
|
||||||
|
|
||||||
|
### Manual modifications
|
||||||
|
|
||||||
|
The following files have been manually modified after converting from a `.tmLanguage` file:
|
||||||
|
|
||||||
|
* `Apache.sublime_syntax`=> removed `.conf` and `.CONF` file types.
|
||||||
|
* `Dart.sublime-syntax` => removed `#regex.dart` include.
|
||||||
|
* `INI.sublime-syntax` => added `.hgrc`, `hgrc`, and `desktop` file types and support for comments after section headers
|
||||||
|
* `Org mode.sublime-syntax` => removed `task` file type.
|
||||||
|
* `SML.sublime_syntax` => removed `ml` file type.
|
||||||
|
* `Robot.sublime_syntax` => changed name to "Robot Framework", added `.resource` extension
|
||||||
|
|
||||||
|
### Non-submodule additions
|
||||||
|
|
||||||
|
* `Assembly (x86_64)` has been manually added from https://github.com/13xforever/x86-assembly-textmate-bundle due to `git clone` recursion problems
|
||||||
|
* `Nim.sublime-syntax` has been added manually from https://github.com/getzola/zola/blob/master/sublime_syntaxes/Nim.sublime-syntax as there was no suitable Git repository for it. The original syntax seems to originate from https://github.com/Varriount/NimLime
|
||||||
|
* `Rego.sublime-syntax` has been added manually from https://github.com/open-policy-agent/opa/blob/master/misc/syntax/sublime/rego.sublime-syntax
|
||||||
|
as it is not kept in a standalone repository. The file is generated from
|
||||||
|
https://github.com/open-policy-agent/opa/blob/master/misc/syntax/textmate/Rego.tmLanguage
|
||||||
|
* `SML.sublime_syntax` has been added manually from
|
||||||
|
https://github.com/seanjames777/SML-Language-Definitiona as it is not
|
||||||
|
kept in a standalone repository. The file generated is from
|
||||||
|
https://github.com/seanjames777/SML-Language-Definition/blob/master/sml.tmLanguage
|
||||||
|
* `Cabal.sublime_syntax` has been added manually from
|
||||||
|
https://github.com/SublimeHaskell/SublimeHaskell/ - we don't want to include the whole submodule because it includes other syntaxes ("Haskell improved") as well.
|
||||||
|
* `Lean.sublime-syntax` has been added manually from https://github.com/leanprover/vscode-lean/blob/master/syntaxes/lean.json via conversion.
|
||||||
+1
-1
@@ -45,7 +45,7 @@
|
|||||||
showguides="true"
|
showguides="true"
|
||||||
inkscape:guide-bbox="true" />
|
inkscape:guide-bbox="true" />
|
||||||
<rect
|
<rect
|
||||||
style="opacity:1;fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.14294769px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
style="opacity:0.5;fill:#e5e5e5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.14294769px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||||
id="rect1929"
|
id="rect1929"
|
||||||
width="1000"
|
width="1000"
|
||||||
height="286.64285"
|
height="286.64285"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user