mirror of
https://github.com/vim-airline/vim-airline.git
synced 2025-12-06 12:14:24 +08:00
Compare commits
613 Commits
v0.11
...
eec6ea3875
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eec6ea3875 | ||
|
|
81eca99486 | ||
|
|
f706e7c486 | ||
|
|
d7edaf8fd0 | ||
|
|
3cb60641e7 | ||
|
|
d25c049e61 | ||
|
|
02894b6ef4 | ||
|
|
16c1638f93 | ||
|
|
6cc2c5c9e9 | ||
|
|
c3d1d13b72 | ||
|
|
ff0f9a45a5 | ||
|
|
d9f42cb467 | ||
|
|
20a49bd494 | ||
|
|
ff7352e4bf | ||
|
|
3b9e149e19 | ||
|
|
ec74913b94 | ||
|
|
3854429d99 | ||
|
|
0adefd0c42 | ||
|
|
4757756ae0 | ||
|
|
f1ba5a03db | ||
|
|
e6bb8427dc | ||
|
|
65e77b970d | ||
|
|
cead8efb48 | ||
|
|
f083d765d8 | ||
|
|
45b6334faf | ||
|
|
423fe9e2ac | ||
|
|
3776947590 | ||
|
|
5891a3f7be | ||
|
|
4eea2b7e3c | ||
|
|
515d4cbbec | ||
|
|
a532fed72a | ||
|
|
038e3a6ca5 | ||
|
|
1828172717 | ||
|
|
18b85395d3 | ||
|
|
c7460aa883 | ||
|
|
8fd91eaca9 | ||
|
|
31e01612f3 | ||
|
|
dc1b607f56 | ||
|
|
08cfcf9408 | ||
|
|
50a936608c | ||
|
|
9252c11d37 | ||
|
|
e4a57d0be4 | ||
|
|
1d9ae3f972 | ||
|
|
9eb4aa47a3 | ||
|
|
f46792ebcb | ||
|
|
04f95183e2 | ||
|
|
82aeea1276 | ||
|
|
1ecbc76682 | ||
|
|
1028c6ea12 | ||
|
|
4f5b641710 | ||
|
|
9007d19ab7 | ||
|
|
029797db1c | ||
|
|
0913c0a3b6 | ||
|
|
e9c09a2e66 | ||
|
|
785dbbe504 | ||
|
|
46f0a12bae | ||
|
|
9e2d021fc6 | ||
|
|
4e552414d4 | ||
|
|
6a4c82c950 | ||
|
|
46e517e8c2 | ||
|
|
994cfd80eb | ||
|
|
1cdb8824a0 | ||
|
|
13f3478b61 | ||
|
|
5f5e00faad | ||
|
|
2ae1475d0d | ||
|
|
62847a8cc9 | ||
|
|
25d53a80f4 | ||
|
|
3c9c2ba5d4 | ||
|
|
2654f838ae | ||
|
|
f65f27b9eb | ||
|
|
1e491727b2 | ||
|
|
a84ae5e069 | ||
|
|
29ef9e1f64 | ||
|
|
b86e5e09b2 | ||
|
|
d734be8cd3 | ||
|
|
364ffba120 | ||
|
|
009ba4e9d0 | ||
|
|
5c682e7bd3 | ||
|
|
d56f199405 | ||
|
|
92d3e90110 | ||
|
|
0ed7b8bb2e | ||
|
|
84823e5e7d | ||
|
|
8e989201c8 | ||
|
|
3fe71a6ce6 | ||
|
|
46dd872237 | ||
|
|
838c16a174 | ||
|
|
78abec3b83 | ||
|
|
dba64a910d | ||
|
|
a71f9a6417 | ||
|
|
e0056ae5b0 | ||
|
|
2cea8346cf | ||
|
|
90c6746311 | ||
|
|
f5a6597496 | ||
|
|
d1f2c13e4f | ||
|
|
9d20473e91 | ||
|
|
61042e3502 | ||
|
|
66a6e03a34 | ||
|
|
aee282c964 | ||
|
|
9c7790b030 | ||
|
|
b9318d7ac0 | ||
|
|
8e477c192b | ||
|
|
e581972997 | ||
|
|
4933ee0977 | ||
|
|
61dc750149 | ||
|
|
ebb89a0846 | ||
|
|
4a290d16fd | ||
|
|
39e49cbbe8 | ||
|
|
83d853adc7 | ||
|
|
fd56e87d00 | ||
|
|
b5f2eb418a | ||
|
|
e4f586b76b | ||
|
|
6105d0d74e | ||
|
|
91b67e3ca2 | ||
|
|
9bc66119a4 | ||
|
|
219c47ab9f | ||
|
|
1080056bca | ||
|
|
ee80fd85cd | ||
|
|
5b5d940f87 | ||
|
|
8cd5dd1f34 | ||
|
|
1a7d546448 | ||
|
|
9fad2c3fc4 | ||
|
|
8681d4d49e | ||
|
|
97a9aa4bdb | ||
|
|
ba50f598ee | ||
|
|
5d7e656081 | ||
|
|
c465570143 | ||
|
|
396116b059 | ||
|
|
13628d698d | ||
|
|
d421c35f94 | ||
|
|
0241bdb804 | ||
|
|
ce0e8d7e82 | ||
|
|
be5bda1f1d | ||
|
|
04bf4eabca | ||
|
|
904979339c | ||
|
|
98027a4680 | ||
|
|
35af3bf37f | ||
|
|
dc65eea5d9 | ||
|
|
927e142e94 | ||
|
|
a306a7abfd | ||
|
|
1b245800b5 | ||
|
|
0f237d8b6b | ||
|
|
1d486430cc | ||
|
|
e643f9fa7d | ||
|
|
2706bdc949 | ||
|
|
e2498d72dc | ||
|
|
24f2878080 | ||
|
|
031e6ee4b2 | ||
|
|
21cdbea7e6 | ||
|
|
d1f6514cef | ||
|
|
20d77c3220 | ||
|
|
64908db62a | ||
|
|
9a3568b815 | ||
|
|
bf5d785932 | ||
|
|
8e36c0a8ed | ||
|
|
de73a21903 | ||
|
|
841a355196 | ||
|
|
65a4d4dd43 | ||
|
|
8df0f3db4b | ||
|
|
2ed11e9536 | ||
|
|
f678b4c53d | ||
|
|
6716572b30 | ||
|
|
4b96f58902 | ||
|
|
ec761c2adf | ||
|
|
5841039679 | ||
|
|
646dd0a1c2 | ||
|
|
6e5439126f | ||
|
|
47bf6b1716 | ||
|
|
d134ae8c2f | ||
|
|
70904d7070 | ||
|
|
e542f5e9d0 | ||
|
|
69726073ca | ||
|
|
17f7dff748 | ||
|
|
f0ee8f193e | ||
|
|
0dd6f5e711 | ||
|
|
ddaf69804a | ||
|
|
86a8ac0f96 | ||
|
|
6800c9ea7f | ||
|
|
2b260aabfe | ||
|
|
c9820b0378 | ||
|
|
26f922753a | ||
|
|
0a7e1bc475 | ||
|
|
2e29ab9656 | ||
|
|
78cb6e6621 | ||
|
|
0de4c9df21 | ||
|
|
c39ec8ef35 | ||
|
|
2259e5c93e | ||
|
|
e519b53cab | ||
|
|
cc0d39b528 | ||
|
|
969c13c716 | ||
|
|
0cfd829c92 | ||
|
|
0f3feca572 | ||
|
|
b861f9d248 | ||
|
|
ec4bbabe4a | ||
|
|
4807a211cd | ||
|
|
84a04bbd5b | ||
|
|
a94d8034c3 | ||
|
|
9b113a02f5 | ||
|
|
49cdcb7b3e | ||
|
|
82b1b2e876 | ||
|
|
fdda58861b | ||
|
|
a8b3c254d0 | ||
|
|
3882146c41 | ||
|
|
b6f6cc9312 | ||
|
|
98aea41dc2 | ||
|
|
05bd105cab | ||
|
|
73025ea504 | ||
|
|
affe12b7e7 | ||
|
|
4a64fbfc4b | ||
|
|
ef232cfee1 | ||
|
|
03ec880101 | ||
|
|
51c79f61f4 | ||
|
|
1f94ec1556 | ||
|
|
ab4962b838 | ||
|
|
4c0c60bbf2 | ||
|
|
ecac148e19 | ||
|
|
e7eea7c6e8 | ||
|
|
a2f298ba8f | ||
|
|
7e295c859f | ||
|
|
19360bac63 | ||
|
|
7181950501 | ||
|
|
e608a0c016 | ||
|
|
725e881ac9 | ||
|
|
c0c6b0e216 | ||
|
|
390b243cf3 | ||
|
|
23e20bfada | ||
|
|
db78454a03 | ||
|
|
f7cbf8c429 | ||
|
|
76e42284e9 | ||
|
|
76c24d2126 | ||
|
|
2d650d2e83 | ||
|
|
7a87615cbe | ||
|
|
2e9df43962 | ||
|
|
06134df810 | ||
|
|
9e62ad962a | ||
|
|
8929bc72a1 | ||
|
|
38a90d8801 | ||
|
|
30f8ada1d6 | ||
|
|
4968c6bb18 | ||
|
|
c9eaf4c5d2 | ||
|
|
9b2c1e9915 | ||
|
|
2f6471a9e1 | ||
|
|
ef5a0b53ef | ||
|
|
0a87d08dbd | ||
|
|
07ab201a27 | ||
|
|
70b06be4b0 | ||
|
|
bc5945de65 | ||
|
|
ed60e1d369 | ||
|
|
2e421d3cd6 | ||
|
|
cba392dd7a | ||
|
|
75383ef2e7 | ||
|
|
3d7dfa8ef6 | ||
|
|
7d6adf9cc5 | ||
|
|
09dbd09ed3 | ||
|
|
a262ec6ce4 | ||
|
|
639a0038cf | ||
|
|
df956aa08b | ||
|
|
0a7c68afb2 | ||
|
|
fc639c0cf8 | ||
|
|
32d28421fe | ||
|
|
cb1bc19064 | ||
|
|
f107396118 | ||
|
|
c01977d027 | ||
|
|
82000c7cfc | ||
|
|
ecba959f28 | ||
|
|
a6dd1c3887 | ||
|
|
6def2f0a82 | ||
|
|
b9905f2445 | ||
|
|
50dfca52ed | ||
|
|
bffa7a4d23 | ||
|
|
c7a633ce8f | ||
|
|
74f1f0d990 | ||
|
|
0ca9576331 | ||
|
|
36f14c478a | ||
|
|
fdfc11f53a | ||
|
|
1651762e10 | ||
|
|
30bcbb07c3 | ||
|
|
c32215e94b | ||
|
|
0eb2ed4488 | ||
|
|
da6b076ee4 | ||
|
|
4d284a677c | ||
|
|
8a60582527 | ||
|
|
8a80369227 | ||
|
|
14c79dd2fe | ||
|
|
dad2c03cf5 | ||
|
|
0c8164b1b3 | ||
|
|
5601c0928e | ||
|
|
60083f35a8 | ||
|
|
17bf22e6fb | ||
|
|
505a7d75ca | ||
|
|
59b4826806 | ||
|
|
f39208f1a0 | ||
|
|
c0160d93a8 | ||
|
|
c074620bfd | ||
|
|
4858046e94 | ||
|
|
6d6afc527e | ||
|
|
9a3a11f966 | ||
|
|
2cea83eb88 | ||
|
|
9ce6f96f60 | ||
|
|
06117a61e1 | ||
|
|
79eac1558a | ||
|
|
157af8ad8b | ||
|
|
cbf0a8e69a | ||
|
|
a168ca7a28 | ||
|
|
a48f67657f | ||
|
|
332fff9206 | ||
|
|
c378a0aeb7 | ||
|
|
91a8ada0f9 | ||
|
|
beb20cb49f | ||
|
|
536667191d | ||
|
|
5eae08609e | ||
|
|
731bdb11d2 | ||
|
|
df096e16ae | ||
|
|
7091b8a6ff | ||
|
|
9267cef0f8 | ||
|
|
bb760710cc | ||
|
|
f6f8666533 | ||
|
|
bd5ae9c584 | ||
|
|
5f2421fa39 | ||
|
|
3f4b811510 | ||
|
|
1ed922265a | ||
|
|
83804f3c6d | ||
|
|
d64e5f8dd7 | ||
|
|
dcebc6d2aa | ||
|
|
193460137a | ||
|
|
44b7b72938 | ||
|
|
c8c0e7d9ff | ||
|
|
38c9f9ca3d | ||
|
|
42b31b966b | ||
|
|
8608270bd3 | ||
|
|
85c64a668d | ||
|
|
34968bf65c | ||
|
|
19ab70ee87 | ||
|
|
83bd08a97a | ||
|
|
14abb40287 | ||
|
|
4e03ac85f9 | ||
|
|
9c0a85de2f | ||
|
|
659693c250 | ||
|
|
2762f7e6e5 | ||
|
|
06747d11be | ||
|
|
7087c475be | ||
|
|
2ad2eeb9ca | ||
|
|
0a5753813c | ||
|
|
aa773f5cdf | ||
|
|
f117de553b | ||
|
|
958ffe059a | ||
|
|
9614105d09 | ||
|
|
3fc5ad231c | ||
|
|
3740312de0 | ||
|
|
d40e5f9a1d | ||
|
|
bf4bba4c5a | ||
|
|
3272a2d490 | ||
|
|
af556115de | ||
|
|
98683125f6 | ||
|
|
27b52acee7 | ||
|
|
47c9205127 | ||
|
|
aed3523ee3 | ||
|
|
30287992e2 | ||
|
|
f5693986c4 | ||
|
|
2a69254d21 | ||
|
|
51f599e2cf | ||
|
|
dd5a3c91a1 | ||
|
|
2daabc2cce | ||
|
|
7f91b54a44 | ||
|
|
c77d89046e | ||
|
|
0f5eedff74 | ||
|
|
5d3cfa4045 | ||
|
|
3a55368320 | ||
|
|
ef4666bd86 | ||
|
|
a738664dcc | ||
|
|
02c529efe4 | ||
|
|
c1134da741 | ||
|
|
f84683a8c2 | ||
|
|
ad80550252 | ||
|
|
c78c1fb870 | ||
|
|
5770e8befd | ||
|
|
0cebac6bb0 | ||
|
|
19d1990f86 | ||
|
|
8e0d5cd95d | ||
|
|
f4aaa7c76f | ||
|
|
12f1934d38 | ||
|
|
6a1c2a74e9 | ||
|
|
a294f0cb7e | ||
|
|
8037c373d0 | ||
|
|
21e47ca5b3 | ||
|
|
f26a01cd02 | ||
|
|
16935cc666 | ||
|
|
8cd824b4ac | ||
|
|
16f88fe363 | ||
|
|
0e2cc23d49 | ||
|
|
782774c0dc | ||
|
|
ffa44b8327 | ||
|
|
e4077b1725 | ||
|
|
a836e09e91 | ||
|
|
1ca2428f51 | ||
|
|
2a027e992d | ||
|
|
7ff5fdc349 | ||
|
|
b322ee6728 | ||
|
|
19fdf61efe | ||
|
|
13a92b1474 | ||
|
|
7bb3ec24ba | ||
|
|
7fc51f6952 | ||
|
|
72a19ed9ed | ||
|
|
b6d6485a90 | ||
|
|
a7716dec4d | ||
|
|
f655add4e9 | ||
|
|
767107070e | ||
|
|
c4ee72f2d9 | ||
|
|
768bd0f5c6 | ||
|
|
08bab60614 | ||
|
|
46c35b80a1 | ||
|
|
ee4afdeedb | ||
|
|
2fec415a5d | ||
|
|
416897c73d | ||
|
|
0a0d61af6c | ||
|
|
48d49075ec | ||
|
|
fab4a02838 | ||
|
|
b843321428 | ||
|
|
7cd12641c7 | ||
|
|
ba9b3e1839 | ||
|
|
cb03578a7c | ||
|
|
b96e02c649 | ||
|
|
2d9e88794d | ||
|
|
2c45d3c1aa | ||
|
|
d0aaa061c2 | ||
|
|
476bba726c | ||
|
|
8be6a2ecd5 | ||
|
|
bc8fdfe946 | ||
|
|
bcabad32cf | ||
|
|
e352adda69 | ||
|
|
5ce3e63658 | ||
|
|
e58c4a493c | ||
|
|
cc6d3a7df1 | ||
|
|
88894aa0ad | ||
|
|
ee85ed4c67 | ||
|
|
fab1ee3117 | ||
|
|
90f7210413 | ||
|
|
8177d63e07 | ||
|
|
d221dc5312 | ||
|
|
de76234a0e | ||
|
|
0de31196b6 | ||
|
|
6ddda74126 | ||
|
|
64c0374423 | ||
|
|
b929452f32 | ||
|
|
c744fb81b6 | ||
|
|
ba2c1b4e25 | ||
|
|
e0838c704a | ||
|
|
d232ec08b9 | ||
|
|
3fa0e0ce0c | ||
|
|
e23978fb68 | ||
|
|
a133605d01 | ||
|
|
f244ff9987 | ||
|
|
68024ec33d | ||
|
|
1e6f5c7705 | ||
|
|
aa46603214 | ||
|
|
ffdf52e38d | ||
|
|
1f1a71ae2b | ||
|
|
3b46a4d9a3 | ||
|
|
915c7cfcd7 | ||
|
|
0ac474fdc4 | ||
|
|
62e7fc6ab1 | ||
|
|
96d37d2fbe | ||
|
|
48064e24d5 | ||
|
|
e7f78bbc0f | ||
|
|
ad3132da33 | ||
|
|
ff3f66ed30 | ||
|
|
d2513b8460 | ||
|
|
eff4828b37 | ||
|
|
f00a9e6e7a | ||
|
|
76c1998753 | ||
|
|
379e0f5bc2 | ||
|
|
2eb95b2e09 | ||
|
|
cce6b55a27 | ||
|
|
c8fe296c52 | ||
|
|
0074044413 | ||
|
|
15a1a3ccc7 | ||
|
|
37273299f7 | ||
|
|
7c31850381 | ||
|
|
12aa326dae | ||
|
|
9840b26fa4 | ||
|
|
a100e89671 | ||
|
|
487d21e7ff | ||
|
|
5902a23e78 | ||
|
|
87d4648172 | ||
|
|
acd7e82d2b | ||
|
|
23374c491c | ||
|
|
576710f7a5 | ||
|
|
adf2afae7c | ||
|
|
29eec37c66 | ||
|
|
74ca43a9b6 | ||
|
|
5a490dd9ac | ||
|
|
c70f3da583 | ||
|
|
185bcc5e88 | ||
|
|
c05fff8504 | ||
|
|
a13bed2f51 | ||
|
|
02a0ab4b59 | ||
|
|
5b994f77b1 | ||
|
|
2f2003be52 | ||
|
|
8a7172e1c2 | ||
|
|
99c2dfd569 | ||
|
|
f8a3afa4a1 | ||
|
|
e671a68b48 | ||
|
|
0278e9095d | ||
|
|
16223d0bc3 | ||
|
|
119477060d | ||
|
|
352e6dd19d | ||
|
|
b36542d509 | ||
|
|
254d1a2d8d | ||
|
|
dd72442fee | ||
|
|
b2cd5baa24 | ||
|
|
4e2546a209 | ||
|
|
fe94d52c4c | ||
|
|
fdafa44b2f | ||
|
|
418fb24982 | ||
|
|
3b339fee98 | ||
|
|
0860036454 | ||
|
|
9e3a0626bf | ||
|
|
71a7e23f32 | ||
|
|
6115527e7e | ||
|
|
774cd8b08f | ||
|
|
bc19a18b3c | ||
|
|
256eb1b5a1 | ||
|
|
7e042e7b70 | ||
|
|
c2ff76829f | ||
|
|
0b26834648 | ||
|
|
d7692e1fe5 | ||
|
|
9bbeb75dd8 | ||
|
|
fc09bf751a | ||
|
|
7e00ee1107 | ||
|
|
3fdfdc9963 | ||
|
|
7cc49c9386 | ||
|
|
099dd92eeb | ||
|
|
0654fec1be | ||
|
|
985d15613e | ||
|
|
73502997ff | ||
|
|
3481cebe22 | ||
|
|
a6a3eab8d9 | ||
|
|
5e470bcf0b | ||
|
|
5c1f3b426b | ||
|
|
f659a98d50 | ||
|
|
e22f735f80 | ||
|
|
abf54b60a4 | ||
|
|
24900181f4 | ||
|
|
dd247a0f85 | ||
|
|
8fbb16f838 | ||
|
|
a201689e38 | ||
|
|
2e9d36e220 | ||
|
|
c3cda92272 | ||
|
|
eb916c0c57 | ||
|
|
f4795532c6 | ||
|
|
52175cec3d | ||
|
|
70c91d70c5 | ||
|
|
d4502d02a1 | ||
|
|
ce45960049 | ||
|
|
1240403ce5 | ||
|
|
a676af7c8a | ||
|
|
62976a21b0 | ||
|
|
4a4be9cd99 | ||
|
|
8d694cba9c | ||
|
|
f0317f6dd4 | ||
|
|
c1de3d3370 | ||
|
|
cf6dcf5e19 | ||
|
|
66f77d4a77 | ||
|
|
07e16116fd | ||
|
|
0755196c4d | ||
|
|
3d0f51152a | ||
|
|
48917f34a3 | ||
|
|
98f03df8e5 | ||
|
|
d199186df0 | ||
|
|
892c9ad6b5 | ||
|
|
5a87ca631a | ||
|
|
c6283b5185 | ||
|
|
dee74777db | ||
|
|
61bcec3b57 | ||
|
|
9779a7a340 | ||
|
|
bc0e2a3438 | ||
|
|
b93492b40b | ||
|
|
be85daa23f | ||
|
|
3b6b2474a2 | ||
|
|
6f440ff679 | ||
|
|
98326670b6 | ||
|
|
44b1e3df5d | ||
|
|
929cf2e21f | ||
|
|
aee2c7f91d | ||
|
|
e142bbd1bf | ||
|
|
d4e2bfe892 | ||
|
|
60aaed01ae | ||
|
|
f1c48e9820 | ||
|
|
72286b27cc | ||
|
|
f8e1f85fde | ||
|
|
9f00b402c5 | ||
|
|
5f9ae83f44 | ||
|
|
e395afed51 | ||
|
|
30725e6eb2 | ||
|
|
9c3f84fc67 | ||
|
|
758c83acbf | ||
|
|
58b9b3ec81 | ||
|
|
6ef37e4b3e | ||
|
|
c24f3c7c4d | ||
|
|
f472e1bafb | ||
|
|
b1ca153b72 | ||
|
|
2daef1bcb8 | ||
|
|
806f071348 | ||
|
|
ce932f3825 | ||
|
|
47be64d7f2 | ||
|
|
81fdc3b988 | ||
|
|
19c655b420 | ||
|
|
b9eb941201 | ||
|
|
6bc040a3a5 | ||
|
|
29549aa55a | ||
|
|
17ec87f503 | ||
|
|
e3e2b1af44 | ||
|
|
8a3eeddc80 | ||
|
|
e4e4ba3c7b |
@@ -8,7 +8,10 @@
|
||||
if you are using terminal:
|
||||
- terminal: ????
|
||||
- $TERM variable: ???
|
||||
- terminal columns size: ???
|
||||
- terminal line size: ???
|
||||
- color configuration (:set t_Co?):
|
||||
|
||||
if you are using Neovim:
|
||||
- does it happen in Vim: ???
|
||||
|
||||
@@ -19,3 +22,5 @@ if you are using Neovim:
|
||||
#### expected behavior
|
||||
|
||||
????
|
||||
|
||||
#### screen shot (if possible)
|
||||
45
.github/workflows/ci.yml
vendored
Normal file
45
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
vim:
|
||||
- v9.1.0000
|
||||
- v9.0.0000
|
||||
- v8.2.1000
|
||||
- v8.2.0000
|
||||
- v8.1.0000
|
||||
- v8.0.0000
|
||||
- v7.4
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@main
|
||||
|
||||
- name: Checkout vim-themis
|
||||
uses: actions/checkout@main
|
||||
with:
|
||||
repository: thinca/vim-themis
|
||||
path: vim-themis
|
||||
|
||||
- name: Setup Vim
|
||||
uses: rhysd/action-setup-vim@v1
|
||||
id: vim
|
||||
with:
|
||||
version: ${{ matrix.vim }}
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
THEMIS_VIM: ${{ steps.vim.outputs.executable }}
|
||||
run: ./vim-themis/bin/themis --reporter spec
|
||||
22
.github/workflows/reviewdog.yml
vendored
Normal file
22
.github/workflows/reviewdog.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: reviewdog
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
vint:
|
||||
name: runner / vint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@main
|
||||
- name: vint
|
||||
uses: reviewdog/action-vint@v1
|
||||
with:
|
||||
github_token: ${{ secrets.github_token }}
|
||||
level: error
|
||||
reporter: github-pr-check
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,8 @@
|
||||
.DS_Store
|
||||
doc/tags
|
||||
*.lock
|
||||
.vim-flavor
|
||||
*.swp
|
||||
.bundle
|
||||
vendor
|
||||
test/.deps
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
language: ruby
|
||||
before_install:
|
||||
- curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/simple.vim" -o autoload/airline/themes/simple.vim
|
||||
- curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/molokai.vim" -o autoload/airline/themes/molokai.vim
|
||||
- mkdir colors && curl -f -L 'https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim' -o colors/molokai.vim
|
||||
#rvm:
|
||||
# - 1.9.3
|
||||
script: rake ci
|
||||
34
CHANGELOG.md
34
CHANGELOG.md
@@ -3,6 +3,32 @@
|
||||
This is the Changelog for the vim-airline project.
|
||||
|
||||
## [0.12] - Unreleased
|
||||
- New features
|
||||
- Extensions:
|
||||
- [poetv](https://github.com/petobens/poet-v) support
|
||||
- [vim-lsp](https://github.com/prabirshrestha/vim-lsp) support
|
||||
- [zoomwintab](https://github.com/troydm/zoomwintab.vim) support
|
||||
- [Vaffle](https://github.com/cocopon/vaffle.vim) support
|
||||
- [vim-dirvish](https://github.com/justinmk/vim-dirvish) support
|
||||
- [fzf.vim](https://github.com/junegunn/fzf.vim) support
|
||||
- [OmniSharp](https://github.com/OmniSharp/omnisharp-vim) support
|
||||
- [searchcount](https://vim-jp.org/vimdoc-en/eval.html#searchcount()) support
|
||||
- [fern.vim](https://github.com/lambdalisue/fern.vim) support
|
||||
- [Vim-CMake](https://github.com/cdelledonne/vim-cmake) support
|
||||
- [battery.vim](https://github.com/lambdalisue/battery.vim) support
|
||||
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) support
|
||||
- [gen_tags.vim](https://github.com/jsfaint/gen_tags.vim) support
|
||||
- Ascii Scrollbar support
|
||||
- Improvements
|
||||
- git branch can also be displayed using [gina.vim](https://github.com/lambdalisue/gina.vim)
|
||||
- coc extensions can also show additional status messages as well as the current function
|
||||
- [coc-git](https://github.com/neoclide/coc-git) extension integrated into hunks extension
|
||||
- rewrote parts using Vim9 Script for performance improvements
|
||||
- Other
|
||||
- Changed CI from travis-ci.org to GitHub Actions
|
||||
- Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint)
|
||||
- Added multiple Vim versions to unit tests using Travis CI
|
||||
- Added option to show short paths in the status line
|
||||
|
||||
## [0.11] - 2019-11-10
|
||||
- New features
|
||||
@@ -23,9 +49,9 @@ This is the Changelog for the vim-airline project.
|
||||
- The branch extensions now also displays whether the repository is in a clean state
|
||||
(will append a ! or ⚡if the repository is considered dirty).
|
||||
- The whitespace extensions will also check for conflict markers
|
||||
- `:AirlineRefresh` command now takes an additional `!` attribute, that **skips**
|
||||
- `:AirlineRefresh` command now takes an additional `!` attribute, that **skips**
|
||||
recreating the highlighting groups (which might have a serious performance
|
||||
impact if done very often, as might be the case when the configuration variable
|
||||
impact if done very often, as might be the case when the configuration variable
|
||||
`airline_skip_empty_sections` is active).
|
||||
- airline can now also detect multiple cursor mode (issue [#1933](https://github.com/vim-airline/vim-airline/issues/1933))
|
||||
- expose hunks output using the function `airline#extensions#hunks#get_raw_hunks()` to the outside [#1877](https://github.com/vim-airline/vim-airline/pull/1877)
|
||||
@@ -123,7 +149,7 @@ This is the Changelog for the vim-airline project.
|
||||
- [taboo](https://github.com/gcmt/taboo.vim)
|
||||
- [vim-ctrlspace](https://github.com/szw/vim-ctrlspace)
|
||||
- [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim)
|
||||
- [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
|
||||
- [YouCompleteMe](https://github.com/ycm-core/YouCompleteMe)
|
||||
- [po.vim](http://www.vim.org/scripts/script.php?script_id=695)
|
||||
- [unicode.vim](https://github.com/chrisbra/unicode.vim)
|
||||
- wordcount
|
||||
@@ -212,7 +238,7 @@ This is the Changelog for the vim-airline project.
|
||||
- support for themes: 8 included
|
||||
|
||||
[0.12]: https://github.com/vim-airline/vim-airline/compare/v0.11...HEAD
|
||||
[0.11]: https://github.com/vim-airline/vim-airline/compare/v0.10...v.11
|
||||
[0.11]: https://github.com/vim-airline/vim-airline/compare/v0.10...v0.11
|
||||
[0.10]: https://github.com/vim-airline/vim-airline/compare/v0.9...v0.10
|
||||
[0.9]: https://github.com/vim-airline/vim-airline/compare/v0.8...v0.9
|
||||
[0.8]: https://github.com/vim-airline/vim-airline/compare/v0.7...v0.8
|
||||
|
||||
@@ -4,17 +4,32 @@ Contributions and pull requests are welcome. Please take note of the following
|
||||
|
||||
* Adhere to the existing style as much as possible; notably, 2 space indents and long-form keywords.
|
||||
* Keep the history clean! Squash your branches before you submit a pull request. `pull --rebase` is your friend.
|
||||
* Any changes to the core should be tested against Vim 7.2.
|
||||
* Any changes to the core should be tested against Vim 7.4.
|
||||
|
||||
# Testing
|
||||
|
||||
Contributors should install [thinca/vim-themis](https://github.com/thinca/vim-themis) to run tests before sending a PR if they applied some modification to the code. PRs which do not pass tests won't be accepted.
|
||||
|
||||
## 1. Installation
|
||||
|
||||
```
|
||||
$ cd /path/to/vim-airline
|
||||
$ git submodule add https://github.com/thinca/vim-themis ./.themis-bin
|
||||
```
|
||||
|
||||
## 2. Running tests
|
||||
|
||||
```
|
||||
$ ./path/to/themis-bin/bin/themis path/to/vim-airline/test --reporter spec
|
||||
```
|
||||
|
||||
# Bugs
|
||||
|
||||
Tracking down bugs can take a very long time due to different configurations, versions, and operating systems. To ensure a timely response, please help me out by doing the following:
|
||||
|
||||
* Reproduce it with this [minivimrc][7] repository to rule out any configuration conflicts. Even better, create a `gist` of your vimrc that is compatible with [pathogen][11].
|
||||
* And to make it easier to reproduce, please supply the following:
|
||||
* the `:version` of vim
|
||||
* the commit of vim-airline you're using
|
||||
* the OS that you're using, including terminal emulator, GUI vs non-GUI
|
||||
* the `:version` of vim
|
||||
* the commit of vim-airline you're using
|
||||
* the OS that you're using, including terminal emulator, GUI vs non-GUI
|
||||
|
||||
# Themes
|
||||
|
||||
@@ -26,7 +41,5 @@ Tracking down bugs can take a very long time due to different configurations, ve
|
||||
If you would like to take a more active role in improving vim-airline, please consider [becoming a maintainer][43].
|
||||
|
||||
|
||||
[7]: https://github.com/bling/minivimrc
|
||||
[11]: https://github.com/tpope/vim-pathogen
|
||||
[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots
|
||||
[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 2013-2019 Bailey Ling, Christian Brabandt, et al.
|
||||
Copyright (C) 2013-2021 Bailey Ling, Christian Brabandt, et al.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the "Software"),
|
||||
|
||||
93
README.md
93
README.md
@@ -1,11 +1,15 @@
|
||||
# vim-airline [](https://travis-ci.org/vim-airline/vim-airline)[](https://saythanks.io/to/chrisbra)
|
||||
# vim-airline
|
||||
|
||||
Lean & mean status/tabline for vim that's light as air.
|
||||
[](https://saythanks.io/to/chrisbra)
|
||||
[](https://github.com/vim-airline/vim-airline/actions?query=workflow%3Areviewdog+event%3Apush+branch%3Amaster)
|
||||
[](https://github.com/vim-airline/vim-airline/actions?query=workflow%3ACI)
|
||||
|
||||
Lean & mean status/tabline for vim that's light as air.
|
||||
|
||||

|
||||
|
||||
When the plugin is correctly loaded, Vim will draw a nice statusline at the
|
||||
bottom of each window.
|
||||
When the plugin is correctly loaded, there will be a nice statusline at the
|
||||
bottom of each vim window.
|
||||
|
||||
That line consists of several sections, each one displaying some piece of
|
||||
information. By default (without configuration) this line will look like this:
|
||||
@@ -16,7 +20,7 @@ information. By default (without configuration) this line will look like this:
|
||||
|~ |
|
||||
|~ VIM - Vi IMproved |
|
||||
|~ |
|
||||
|~ version 8.0 |
|
||||
|~ version 8.2 |
|
||||
|~ by Bram Moolenaar et al. |
|
||||
|~ Vim is open source and freely distributable |
|
||||
|~ |
|
||||
@@ -36,7 +40,7 @@ The statusline is the colored line at the bottom, which contains the sections
|
||||
section|meaning (example)
|
||||
-------|------------------
|
||||
A | displays the mode + additional flags like crypt/spell/paste (INSERT)
|
||||
B | VCS information (branch, hunk summary) (master)
|
||||
B | Environment status (VCS information - branch, hunk summary (master), [battery][61] level)
|
||||
C | filename + read-only flag (~/.vim/vimrc RO)
|
||||
X | filetype (vim)
|
||||
Y | file encoding[fileformat] (utf-8[unix])
|
||||
@@ -62,19 +66,36 @@ For a better look, those sections can be colored differently, depending on vario
|
||||
|
||||
* Tiny core written with extensibility in mind ([open/closed principle][8]).
|
||||
* Integrates with a variety of plugins, including: [vim-bufferline][6],
|
||||
[fugitive][4], [unite][9], [ctrlp][10], [minibufexpl][15], [gundo][16],
|
||||
[fugitive][4], [flog][62], [unite][9], [ctrlp][10], [minibufexpl][15], [gundo][16],
|
||||
[undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29],
|
||||
[vim-signify][30], [quickfixsigns][39], [syntastic][5], [eclim][34],
|
||||
[lawrencium][21], [virtualenv][31], [tmuxline][35], [taboo.vim][37],
|
||||
[ctrlspace][38], [vim-bufmru][47], [vimagit][50], [denite][51] and more.
|
||||
[ctrlspace][38], [vim-bufmru][47], [vimagit][50], [denite][51],
|
||||
[vim.battery][61] and more.
|
||||
* Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols.
|
||||
* Optimized for speed; it loads in under a millisecond.
|
||||
* Optimized for speed - loads in under a millisecond.
|
||||
* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others.
|
||||
Note these are now external to this plugin. See [below][46] for detail.
|
||||
Note these are now external to this plugin. More details can be found in the [themes repository][46].
|
||||
* Supports 7.2 as the minimum Vim version.
|
||||
* The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33].
|
||||
* Unit testing suite.
|
||||
|
||||
# Installation
|
||||
|
||||
This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:
|
||||
|
||||
| Plugin Manager | Install with... |
|
||||
| ------------- | ------------- |
|
||||
| [Pathogen][11] | `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline`<br/>Remember to run `:Helptags` to generate help tags |
|
||||
| [NeoBundle][12] | `NeoBundle 'vim-airline/vim-airline'` |
|
||||
| [Vundle][13] | `Plugin 'vim-airline/vim-airline'` |
|
||||
| [Plug][40] | `Plug 'vim-airline/vim-airline'` |
|
||||
| [VAM][22] | `call vam#ActivateAddons([ 'vim-airline' ])` |
|
||||
| [Dein][52] | `call dein#add('vim-airline/vim-airline')` |
|
||||
| [minpac][55] | `call minpac#add('vim-airline/vim-airline')` |
|
||||
| pack feature (native Vim 8 package feature)| `git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline`<br/>Remember to run `:helptags ~/.vim/pack/dist/start/vim-airline/doc` to generate help tags |
|
||||
| manual | copy all of the files into your `~/.vim` directory |
|
||||
|
||||
## Straightforward customization
|
||||
|
||||
If you don't like the defaults, you can replace all sections with standard `statusline` syntax. Give your statusline that you've built over the years a face lift.
|
||||
@@ -93,7 +114,7 @@ Plugin 'vim-airline/vim-airline'
|
||||
Plugin 'vim-airline/vim-airline-themes'
|
||||
```
|
||||
|
||||
See https://github.com/vim-airline/vim-airline-themes for more.
|
||||
See [vim-airline-themes][46] for more.
|
||||
|
||||
## Automatic truncation
|
||||
|
||||
@@ -158,12 +179,15 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
|
||||
#### [syntastic][5]
|
||||

|
||||
|
||||
#### hunks ([vim-gitgutter][29] & [vim-signify][30])
|
||||
#### hunks ([vim-gitgutter][29], [vim-signify][30], [coc-git][59] & [gitsigns.nvim][63])
|
||||

|
||||
|
||||
#### [vimagit][50]
|
||||

|
||||
|
||||
#### [flog][62]
|
||||

|
||||
|
||||
#### [virtualenv][31]
|
||||

|
||||
|
||||
@@ -188,6 +212,12 @@ vim-airline integrates with a variety of plugins out of the box. These extensio
|
||||
#### [LanguageClient][57]
|
||||

|
||||
|
||||
#### [Vim-CMake][60]
|
||||

|
||||
|
||||
#### [vim.battery][61]
|
||||

|
||||
|
||||
## Extras
|
||||
|
||||
vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also:
|
||||
@@ -196,7 +226,7 @@ vim-airline also supplies some supplementary stand-alone extensions. In additio
|
||||

|
||||
|
||||
### statusline on top
|
||||
The statusline can alternatively by drawn on top, making room for other plugins to use the statusline:
|
||||
The statusline can alternatively be drawn on top, making room for other plugins to use the statusline:
|
||||
The example shows a custom statusline setting, that imitates Vims default statusline, while allowing
|
||||
to call custom functions. Use `:let g:airline_statusline_ontop=1` to enable it.
|
||||
|
||||
@@ -234,22 +264,6 @@ What about [vim-powerline][1]?
|
||||
|
||||
I wrote the initial version on an airplane, and since it's light as air it turned out to be a good name. Thanks for flying vim!
|
||||
|
||||
# Installation
|
||||
|
||||
This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:
|
||||
|
||||
| Plugin Manager | Install with... |
|
||||
| ------------- | ------------- |
|
||||
| [Pathogen][11] | `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline`<br/>Remember to run `:Helptags` to generate help tags |
|
||||
| [NeoBundle][12] | `NeoBundle 'vim-airline/vim-airline'` |
|
||||
| [Vundle][13] | `Plugin 'vim-airline/vim-airline'` |
|
||||
| [Plug][40] | `Plug 'vim-airline/vim-airline'` |
|
||||
| [VAM][22] | `call vam#ActivateAddons([ 'vim-airline' ])` |
|
||||
| [Dein][52] | `call dein#add('vim-airline/vim-airline')` |
|
||||
| [minpac][55] | `call minpac#add('vim-airline/vim-airline')` |
|
||||
| pack feature (native Vim 8 package feature)| `git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline`<br/>Remember to run `:helptags` to generate help tags |
|
||||
| manual | copy all of the files into your `~/.vim` directory |
|
||||
|
||||
# Documentation
|
||||
|
||||
`:help airline`
|
||||
@@ -266,7 +280,7 @@ Solutions to common problems can be found in the [Wiki][27].
|
||||
|
||||
# Performance
|
||||
|
||||
Whoa! Everything got slow all of a sudden...
|
||||
Whoa! Everything got slow all of a sudden...
|
||||
|
||||
vim-airline strives to make it easy to use out of the box, which means that by default it will look for all compatible plugins that you have installed and enable the relevant extension.
|
||||
|
||||
@@ -286,16 +300,16 @@ A full list of screenshots for various themes can be found in the [Wiki][14].
|
||||
|
||||
# Maintainers
|
||||
|
||||
The project is currently being maintained by [Bailey Ling][41], [Christian Brabandt][42], and [Mike Hartington][44].
|
||||
The project is currently being maintained by [Christian Brabandt][42] and [Bailey Ling][41].
|
||||
|
||||
If you are interested in becoming a maintainer (we always welcome more maintainers), please [go here][43].
|
||||
|
||||
# License
|
||||
|
||||
[MIT License][58]. Copyright (c) 2013-2019 Bailey Ling & Contributors.
|
||||
[MIT License][58]. Copyright (c) 2013-2021 Bailey Ling & Contributors.
|
||||
|
||||
[1]: https://github.com/Lokaltog/vim-powerline
|
||||
[2]: https://github.com/Lokaltog/powerline
|
||||
[2]: https://github.com/powerline/powerline
|
||||
[3]: https://github.com/Lokaltog/powerline-fonts
|
||||
[4]: https://github.com/tpope/vim-fugitive
|
||||
[5]: https://github.com/scrooloose/syntastic
|
||||
@@ -311,10 +325,10 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
|
||||
[15]: https://github.com/techlivezheng/vim-plugin-minibufexpl
|
||||
[16]: https://github.com/sjl/gundo.vim
|
||||
[17]: https://github.com/mbbill/undotree
|
||||
[18]: https://github.com/scrooloose/nerdtree
|
||||
[18]: https://github.com/preservim/nerdtree
|
||||
[19]: https://github.com/majutsushi/tagbar
|
||||
[20]: https://powerline.readthedocs.org/en/master/installation.html#patched-fonts
|
||||
[21]: https://bitbucket.org/ludovicchabant/vim-lawrencium
|
||||
[21]: https://github.com/ludovicchabant/vim-lawrencium
|
||||
[22]: https://github.com/MarcWeber/vim-addon-manager
|
||||
[23]: https://github.com/altercation/solarized
|
||||
[24]: https://github.com/chriskempson/tomorrow-theme
|
||||
@@ -337,9 +351,8 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
|
||||
[41]: https://github.com/bling
|
||||
[42]: https://github.com/chrisbra
|
||||
[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer
|
||||
[44]: https://github.com/mhartington
|
||||
[45]: https://github.com/vim-airline/vim-airline/commit/d7fd8ca649e441b3865551a325b10504cdf0711b
|
||||
[46]: https://github.com/vim-airline/vim-airline#themes
|
||||
[46]: https://github.com/vim-airline/vim-airline-themes#vim-airline-themes--
|
||||
[47]: https://github.com/mildred/vim-bufmru
|
||||
[48]: https://github.com/ierton/xkb-switch
|
||||
[49]: https://github.com/vovkasm/input-source-switcher
|
||||
@@ -352,3 +365,9 @@ If you are interested in becoming a maintainer (we always welcome more maintaine
|
||||
[56]: https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/dark_minimal.vim
|
||||
[57]: https://github.com/autozimu/LanguageClient-neovim
|
||||
[58]: https://github.com/vim-airline/vim-airline/blob/master/LICENSE
|
||||
[59]: https://github.com/neoclide/coc-git
|
||||
[60]: https://github.com/cdelledonne/vim-cmake
|
||||
[61]: http://github.com/lambdalisue/battery.vim/
|
||||
[62]: http://github.com/rbong/vim-flog/
|
||||
[63]: https://github.com/lewis6991/gitsigns.nvim
|
||||
[64]: https://github.com/VimfanTPdvorak/vimodoro
|
||||
|
||||
14
Rakefile
14
Rakefile
@@ -1,14 +0,0 @@
|
||||
#!/usr/bin/env rake
|
||||
|
||||
task :default => [:test]
|
||||
|
||||
task :ci => [:dump, :test]
|
||||
|
||||
task :dump do
|
||||
sh 'vim --version'
|
||||
end
|
||||
|
||||
task :test do
|
||||
sh 'bundle exec vim-flavor test'
|
||||
end
|
||||
|
||||
@@ -1,25 +1,35 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', [])
|
||||
let g:airline_inactive_funcrefs = get(g:, 'airline_inactive_statusline_funcrefs', [])
|
||||
|
||||
let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning']
|
||||
let s:inactive_funcrefs = []
|
||||
let s:contexts = {}
|
||||
let s:core_funcrefs = [
|
||||
\ function('airline#extensions#apply'),
|
||||
\ function('airline#extensions#default#apply') ]
|
||||
|
||||
|
||||
function! airline#add_statusline_func(name)
|
||||
call airline#add_statusline_funcref(function(a:name))
|
||||
function! airline#add_statusline_func(name, ...)
|
||||
let warn = get(a:, 1, 1)
|
||||
call airline#add_statusline_funcref(function(a:name), warn)
|
||||
endfunction
|
||||
|
||||
function! airline#add_statusline_funcref(function)
|
||||
function! airline#add_inactive_statusline_func(name, ...)
|
||||
let warn = get(a:, 1, 1)
|
||||
call airline#add_inactive_statusline_funcref(function(a:name), warn)
|
||||
endfunction
|
||||
|
||||
|
||||
function! airline#add_statusline_funcref(function, ...)
|
||||
if index(g:airline_statusline_funcrefs, a:function) >= 0
|
||||
call airline#util#warning(printf('The airline statusline funcref "%s" has already been added.', string(a:function)))
|
||||
let warn = get(a:, 1, 1)
|
||||
if warn > 0
|
||||
call airline#util#warning(printf('The airline statusline funcref "%s" has already been added.', string(a:function)))
|
||||
endif
|
||||
return
|
||||
endif
|
||||
call add(g:airline_statusline_funcrefs, a:function)
|
||||
@@ -32,8 +42,15 @@ function! airline#remove_statusline_func(name)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#add_inactive_statusline_func(name)
|
||||
call add(s:inactive_funcrefs, function(a:name))
|
||||
function! airline#add_inactive_statusline_funcref(function, ...)
|
||||
if index(g:airline_inactive_funcrefs, a:function) >= 0
|
||||
let warn = get(a:, 1, 1)
|
||||
if warn > 0
|
||||
call airline#util#warning(printf('The airline inactive statusline funcref "%s" has already been added.', string(a:function)))
|
||||
endif
|
||||
return
|
||||
endif
|
||||
call add(g:airline_inactive_funcrefs, a:function)
|
||||
endfunction
|
||||
|
||||
function! airline#load_theme()
|
||||
@@ -53,6 +70,8 @@ function! airline#load_theme()
|
||||
call airline#highlighter#load_theme()
|
||||
call airline#extensions#load_theme()
|
||||
call airline#update_statusline()
|
||||
|
||||
call airline#util#doautocmd('AirlineAfterTheme')
|
||||
endfunction
|
||||
|
||||
" Load an airline theme
|
||||
@@ -93,8 +112,6 @@ function! airline#switch_theme(name, ...)
|
||||
unlet! w:airline_lastmode
|
||||
call airline#load_theme()
|
||||
|
||||
call airline#util#doautocmd('AirlineAfterTheme')
|
||||
|
||||
" this is required to prevent clobbering the startup info message, i don't know why...
|
||||
call airline#check_mode(winnr())
|
||||
endfunction
|
||||
@@ -125,9 +142,10 @@ endfunction
|
||||
|
||||
" Update the statusline
|
||||
function! airline#update_statusline()
|
||||
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
|
||||
if airline#util#stl_disabled(winnr()) || airline#util#is_popup_window(winnr())
|
||||
return
|
||||
endif
|
||||
" TODO: need to ignore popup windows here as well?
|
||||
let range = filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||
" create inactive statusline
|
||||
call airline#update_statusline_inactive(range)
|
||||
@@ -138,7 +156,12 @@ function! airline#update_statusline()
|
||||
" Now create the active statusline
|
||||
let w:airline_active = 1
|
||||
let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) }
|
||||
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
|
||||
try
|
||||
call s:invoke_funcrefs(context, g:airline_statusline_funcrefs)
|
||||
catch /^Vim\%((\a\+)\)\=:E48:/
|
||||
" Catch: Sandbox mode
|
||||
" no-op
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
" Function to be called to make all statuslines inactive
|
||||
@@ -154,11 +177,11 @@ endfunction
|
||||
|
||||
" Function to draw inactive statuslines for inactive windows
|
||||
function! airline#update_statusline_inactive(range)
|
||||
if airline#util#getwinvar(winnr(), 'airline_disabled', 0)
|
||||
if airline#util#stl_disabled(winnr())
|
||||
return
|
||||
endif
|
||||
for nr in a:range
|
||||
if airline#util#getwinvar(nr, 'airline_disabled', 0)
|
||||
if airline#util#stl_disabled(nr)
|
||||
continue
|
||||
endif
|
||||
call setwinvar(nr, 'airline_active', 0)
|
||||
@@ -168,7 +191,12 @@ function! airline#update_statusline_inactive(range)
|
||||
\ 'left_sep': g:airline_left_alt_sep,
|
||||
\ 'right_sep': g:airline_right_alt_sep }, 'keep')
|
||||
endif
|
||||
call s:invoke_funcrefs(context, s:inactive_funcrefs)
|
||||
try
|
||||
call s:invoke_funcrefs(context, g:airline_inactive_funcrefs)
|
||||
catch /^Vim\%((\a\+)\)\=:E48:/
|
||||
" Catch: Sandbox mode
|
||||
" no-op
|
||||
endtry
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
@@ -203,66 +231,66 @@ function! airline#check_mode(winnr)
|
||||
let context = s:contexts[a:winnr]
|
||||
|
||||
if get(w:, 'airline_active', 1)
|
||||
let l:m = mode(1)
|
||||
if l:m ==# "i"
|
||||
let l:mode = ['insert']
|
||||
elseif l:m[0] ==# "i"
|
||||
let l:mode = ['insert']
|
||||
elseif l:m ==# "Rv"
|
||||
let l:mode =['replace']
|
||||
elseif l:m[0] ==# "R"
|
||||
let l:mode = ['replace']
|
||||
elseif l:m[0] =~# '\v(v|V||s|S|)'
|
||||
let l:mode = ['visual']
|
||||
elseif l:m ==# "t"
|
||||
let l:mode = ['terminal']
|
||||
elseif l:m[0] ==# "c"
|
||||
let l:mode = ['commandline']
|
||||
elseif l:m ==# "no" " does not work, most likely, Vim does not refresh the statusline in OP mode
|
||||
let l:mode = ['normal']
|
||||
elseif l:m[0:1] ==# 'ni'
|
||||
let l:mode = ['normal']
|
||||
let l:m = 'ni'
|
||||
let m = mode(1)
|
||||
" Refer :help mode() to see the list of modes
|
||||
" NB: 'let mode' here refers to the display colour _groups_,
|
||||
" not the literal mode's code (i.e., m). E.g., Select modes
|
||||
" v, S and ^V use 'visual' since they are of similar ilk.
|
||||
" Some modes do not get recognised for status line purposes:
|
||||
" no, nov, noV, no^V, !, cv, and ce.
|
||||
" Mode name displayed is handled in init.vim (g:airline_mode_map).
|
||||
"
|
||||
if m[0] ==# "i"
|
||||
let mode = ['insert'] " Insert modes + submodes (i, ic, ix)
|
||||
elseif m[0] == "R"
|
||||
let mode = ['replace'] " Replace modes + submodes (R, Rc, Rv, Rx) (NB: case sensitive as 'r' is a mode)
|
||||
elseif m[0] =~ '\v(v|V||s|S|)'
|
||||
let mode = ['visual'] " Visual and Select modes (v, V, ^V, s, S, ^S))
|
||||
elseif m ==# "t"
|
||||
let mode = ['terminal'] " Terminal mode (only has one mode (t))
|
||||
elseif m[0] =~ '\v(c|r|!)'
|
||||
let mode = ['commandline'] " c, cv, ce, r, rm, r? (NB: cv and ce stay showing as mode entered from)
|
||||
else
|
||||
let l:mode = ['normal']
|
||||
let mode = ['normal'] " Normal mode + submodes (n, niI, niR, niV; plus operator pendings no, nov, noV, no^V)
|
||||
endif
|
||||
if exists("*VMInfos") && !empty(VMInfos())
|
||||
" Vim plugin Multiple Cursors https://github.com/mg979/vim-visual-multi
|
||||
let l:m = 'multi'
|
||||
let m = 'multi'
|
||||
endif
|
||||
if index(['Rv', 'no', 'ni', 'ix', 'ic', 'multi'], l:m) == -1
|
||||
let l:m = l:m[0]
|
||||
" Adjust to handle additional modes, which don't display correctly otherwise
|
||||
if index(['niI', 'niR', 'niV', 'ic', 'ix', 'Rc', 'Rv', 'Rx', 'multi'], m) == -1
|
||||
let m = m[0]
|
||||
endif
|
||||
let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m)
|
||||
let w:airline_current_mode = get(g:airline_mode_map, m, m)
|
||||
else
|
||||
let l:mode = ['inactive']
|
||||
let mode = ['inactive']
|
||||
let w:airline_current_mode = get(g:airline_mode_map, '__')
|
||||
endif
|
||||
|
||||
if g:airline_detect_modified && &modified
|
||||
call add(l:mode, 'modified')
|
||||
call add(mode, 'modified')
|
||||
endif
|
||||
|
||||
if g:airline_detect_paste && &paste
|
||||
call add(l:mode, 'paste')
|
||||
call add(mode, 'paste')
|
||||
endif
|
||||
|
||||
if g:airline_detect_crypt && exists("+key") && !empty(&key)
|
||||
call add(l:mode, 'crypt')
|
||||
call add(mode, 'crypt')
|
||||
endif
|
||||
|
||||
if g:airline_detect_spell && &spell
|
||||
call add(l:mode, 'spell')
|
||||
call add(mode, 'spell')
|
||||
endif
|
||||
|
||||
if &readonly || ! &modifiable
|
||||
call add(l:mode, 'readonly')
|
||||
call add(mode, 'readonly')
|
||||
endif
|
||||
|
||||
let mode_string = join(l:mode)
|
||||
let mode_string = join(mode)
|
||||
if get(w:, 'airline_lastmode', '') != mode_string
|
||||
call airline#highlighter#highlight_modified_inactive(context.bufnr)
|
||||
call airline#highlighter#highlight(l:mode, context.bufnr)
|
||||
call airline#highlighter#highlight(mode, string(context.bufnr))
|
||||
call airline#util#doautocmd('AirlineModeChanged')
|
||||
let w:airline_lastmode = mode_string
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Christian Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -131,10 +131,10 @@ if v:version >= 800 && has("job")
|
||||
endfunction
|
||||
|
||||
function! airline#async#get_mq_async(cmd, file)
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
let cmd = a:cmd
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd]
|
||||
let cmd = [&shell, &shellcmdflag, a:cmd]
|
||||
endif
|
||||
|
||||
let options = {'cmd': a:cmd, 'buf': '', 'file': a:file}
|
||||
@@ -153,9 +153,12 @@ if v:version >= 800 && has("job")
|
||||
endfunction
|
||||
|
||||
function! airline#async#get_msgfmt_stat(cmd, file)
|
||||
if g:airline#init#is_windows || !executable('msgfmt')
|
||||
" no msgfmt on windows?
|
||||
if !executable('msgfmt')
|
||||
" no msgfmt
|
||||
return
|
||||
endif
|
||||
if g:airline#init#is_windows
|
||||
let cmd = 'cmd /C ' . a:cmd. shellescape(a:file)
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd. shellescape(a:file)]
|
||||
endif
|
||||
@@ -176,10 +179,10 @@ if v:version >= 800 && has("job")
|
||||
endfunction
|
||||
|
||||
function! airline#async#vim_vcs_clean(cmd, file, vcs)
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
let cmd = a:cmd
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd]
|
||||
let cmd = [&shell, &shellcmdflag, a:cmd]
|
||||
endif
|
||||
|
||||
let options = {'buf': '', 'vcs': a:vcs, 'file': a:file}
|
||||
@@ -202,10 +205,10 @@ if v:version >= 800 && has("job")
|
||||
endfunction
|
||||
|
||||
function! airline#async#vim_vcs_untracked(config, file)
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
let cmd = a:config['cmd'] . shellescape(a:file)
|
||||
else
|
||||
let cmd = ['sh', '-c', a:config['cmd'] . shellescape(a:file)]
|
||||
let cmd = [&shell, &shellcmdflag, a:config['cmd'] . shellescape(a:file)]
|
||||
endif
|
||||
|
||||
let options = {'cfg': a:config, 'buf': '', 'file': a:file}
|
||||
@@ -263,10 +266,10 @@ elseif has("nvim")
|
||||
\ 'on_stderr': function('s:nvim_output_handler'),
|
||||
\ 'on_exit': function('s:nvim_mq_job_handler')
|
||||
\ }
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
let cmd = a:cmd
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd]
|
||||
let cmd = [&shell, &shellcmdflag, a:cmd]
|
||||
endif
|
||||
|
||||
if has_key(s:mq_jobs, a:file)
|
||||
@@ -285,11 +288,11 @@ elseif has("nvim")
|
||||
\ 'on_stderr': function('s:nvim_output_handler'),
|
||||
\ 'on_exit': function('s:nvim_po_job_handler')
|
||||
\ }
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
" no msgfmt on windows?
|
||||
return
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd. shellescape(a:file)]
|
||||
let cmd = [&shell, &shellcmdflag, a:cmd. shellescape(a:file)]
|
||||
endif
|
||||
|
||||
if has_key(s:po_jobs, a:file)
|
||||
@@ -308,10 +311,10 @@ elseif has("nvim")
|
||||
\ 'on_stdout': function('s:nvim_output_handler'),
|
||||
\ 'on_stderr': function('s:nvim_output_handler'),
|
||||
\ 'on_exit': function('s:on_exit_clean')}
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd\|powershell'
|
||||
let cmd = a:cmd
|
||||
else
|
||||
let cmd = ['sh', '-c', a:cmd]
|
||||
let cmd = [&shell, &shellcmdflag, a:cmd]
|
||||
endif
|
||||
|
||||
if !has_key(s:clean_jobs, a:vcs)
|
||||
@@ -369,6 +372,8 @@ function! airline#async#vim7_vcs_clean(cmd, file, vcs)
|
||||
" don't want to to see error messages
|
||||
if g:airline#init#is_windows && &shell =~ 'cmd'
|
||||
let cmd = a:cmd .' 2>nul'
|
||||
elseif g:airline#init#is_windows && &shell =~ 'powerline'
|
||||
let cmd = a:cmd .' 2> $null'
|
||||
else
|
||||
let cmd = a:cmd .' 2>/dev/null'
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -90,7 +90,7 @@ function! s:prototype.build() dict
|
||||
" need to fix highlighting groups, since we
|
||||
" have skipped a section, we actually need
|
||||
" the previous previous group and so the
|
||||
" seperator goes from the previous previous group
|
||||
" separator goes from the previous previous group
|
||||
" to the current group
|
||||
let pgroup = group
|
||||
endif
|
||||
@@ -106,12 +106,12 @@ function! s:prototype.build() dict
|
||||
let line .= '%#'.group.'#'
|
||||
elseif split
|
||||
if !is_empty
|
||||
let line .= s:get_transitioned_seperator(self, prev_group, group, side)
|
||||
let line .= s:get_transitioned_separator(self, prev_group, group, side)
|
||||
endif
|
||||
let split = 0
|
||||
else
|
||||
if !is_empty
|
||||
let line .= s:get_seperator(self, prev_group, group, side)
|
||||
let line .= s:get_separator(self, prev_group, group, side)
|
||||
endif
|
||||
endif
|
||||
let line .= is_empty ? '' : s:get_accented_line(self, group, contents)
|
||||
@@ -133,14 +133,11 @@ function! airline#builder#should_change_group(group1, group2)
|
||||
endif
|
||||
let color1 = airline#highlighter#get_highlight(a:group1)
|
||||
let color2 = airline#highlighter#get_highlight(a:group2)
|
||||
if g:airline_gui_mode ==# 'gui'
|
||||
return color1[1] != color2[1] || color1[0] != color2[0]
|
||||
else
|
||||
return color1[3] != color2[3] || color1[2] != color2[2]
|
||||
endif
|
||||
return color1[1] != color2[1] || color1[0] != color2[0]
|
||||
\ || color1[2] != color2[2] || color1[3] != color2[3]
|
||||
endfunction
|
||||
|
||||
function! s:get_transitioned_seperator(self, prev_group, group, side)
|
||||
function! s:get_transitioned_separator(self, prev_group, group, side)
|
||||
let line = ''
|
||||
if get(a:self._context, 'tabline', 0) && get(g:, 'airline#extensions#tabline#alt_sep', 0) && a:group ==# 'airline_tabsel' && a:side
|
||||
call airline#highlighter#add_separator(a:prev_group, a:group, 0)
|
||||
@@ -155,9 +152,9 @@ function! s:get_transitioned_seperator(self, prev_group, group, side)
|
||||
return line
|
||||
endfunction
|
||||
|
||||
function! s:get_seperator(self, prev_group, group, side)
|
||||
function! s:get_separator(self, prev_group, group, side)
|
||||
if airline#builder#should_change_group(a:prev_group, a:group)
|
||||
return s:get_transitioned_seperator(a:self, a:prev_group, a:group, a:side)
|
||||
return s:get_transitioned_separator(a:self, a:prev_group, a:group, a:side)
|
||||
else
|
||||
return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep
|
||||
endif
|
||||
@@ -201,20 +198,27 @@ function! s:section_is_empty(self, content)
|
||||
if get(w:, 'airline_skip_empty_sections', -1) == 0
|
||||
return 0
|
||||
endif
|
||||
" assume accents sections to be never empty
|
||||
" (avoides, that on startup the mode message becomes empty)
|
||||
if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1
|
||||
return 0
|
||||
endif
|
||||
if empty(a:content)
|
||||
|
||||
" special case: When the content is %=, that is the
|
||||
" separation marker, which switches between left- and
|
||||
" right-aligned content.
|
||||
" Consider that to be empty, so that the previous previous
|
||||
" group is correctly remembered in the builder() function
|
||||
if empty(a:content) || a:content is# '%='
|
||||
return 1
|
||||
endif
|
||||
let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
|
||||
if empty(list)
|
||||
return 0 " no function in statusline text
|
||||
|
||||
let stripped = substitute(a:content,
|
||||
\ '\(%{.*}\|%#__accent_[^#]*#\|%#__restore__#\|%( \| %)\)', '', 'g')
|
||||
|
||||
if !empty(stripped)
|
||||
return 0 " There is content in the statusline
|
||||
endif
|
||||
while len(list) > 0
|
||||
let expr = list[0]
|
||||
|
||||
let exprlist = []
|
||||
call substitute(a:content, '%{\([^}]*\)}', '\=add(exprlist, submatch(1))', 'g')
|
||||
|
||||
for expr in exprlist
|
||||
try
|
||||
" catch all exceptions, just in case
|
||||
if !empty(eval(expr))
|
||||
@@ -223,9 +227,7 @@ function! s:section_is_empty(self, content)
|
||||
catch
|
||||
return 0
|
||||
endtry
|
||||
let start += 1
|
||||
let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start)
|
||||
endw
|
||||
endfor
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -23,24 +23,24 @@ endfunction
|
||||
let s:script_path = tolower(resolve(expand('<sfile>:p:h')))
|
||||
|
||||
let s:filetype_overrides = {
|
||||
\ 'coc-explorer': [ 'CoC Explorer', '' ],
|
||||
\ 'defx': ['defx', '%{b:defx.paths[0]}'],
|
||||
\ 'fugitive': ['fugitive', '%{airline#util#wrap(airline#extensions#branch#get_head(),80)}'],
|
||||
\ 'floggraph': [ 'Flog', '%{get(b:, "flog_status_summary", "")}' ],
|
||||
\ 'gundo': [ 'Gundo', '' ],
|
||||
\ 'help': [ 'Help', '%f' ],
|
||||
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
|
||||
\ 'nerdtree': [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ],
|
||||
\ 'startify': [ 'startify', '' ],
|
||||
\ 'vim-plug': [ 'Plugins', '' ],
|
||||
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
|
||||
\ 'vimshell': ['vimshell','%{vimshell#get_status_string()}'],
|
||||
\ 'vaffle' : [ 'Vaffle', '%{b:vaffle.dir}' ],
|
||||
\ }
|
||||
|
||||
if exists(':Gina') && (v:version > 704 || (v:version == 704 && has("patch1898")))
|
||||
" Gina needs the Vim 7.4.1898, which introduce the <mods> flag for custom commands
|
||||
let s:filetype_overrides['gina-status'] = ['gina', '%{gina#component#repo#preset()}' ]
|
||||
let s:filetype_overrides['diff'] = ['gina', '%{gina#component#repo#preset()}' ]
|
||||
let s:filetype_overrides['gina-log'] = ['gina', '%{gina#component#repo#preset()}' ]
|
||||
let s:filetype_overrides['gina-tag'] = ['gina', '%{gina#component#repo#preset()}' ]
|
||||
if get(g:, 'airline#extensions#nerdtree_statusline', 1)
|
||||
let s:filetype_overrides['nerdtree'] = [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ]
|
||||
else
|
||||
let s:filetype_overrides['nerdtree'] = ['NERDTree', '']
|
||||
endif
|
||||
|
||||
let s:filetype_regex_overrides = {}
|
||||
@@ -82,7 +82,7 @@ function! airline#extensions#apply(...)
|
||||
let w:airline_section_y = ''
|
||||
endif
|
||||
|
||||
if &previewwindow
|
||||
if &previewwindow && empty(get(w:, 'airline_section_a', ''))
|
||||
let w:airline_section_a = 'Preview'
|
||||
let w:airline_section_b = ''
|
||||
let w:airline_section_c = bufname(winbufnr(winnr()))
|
||||
@@ -142,7 +142,9 @@ function! airline#extensions#load()
|
||||
call airline#extensions#{ext}#init(s:ext)
|
||||
catch /^Vim\%((\a\+)\)\=:E117/ " E117, function does not exist
|
||||
call airline#util#warning("Extension '".ext."' not installed, ignoring!")
|
||||
continue
|
||||
endtry
|
||||
call add(s:loaded_ext, ext)
|
||||
endfor
|
||||
return
|
||||
endif
|
||||
@@ -150,28 +152,50 @@ function! airline#extensions#load()
|
||||
call airline#extensions#quickfix#init(s:ext)
|
||||
call add(s:loaded_ext, 'quickfix')
|
||||
|
||||
if get(g:, 'loaded_unite', 0)
|
||||
if get(g:, 'loaded_unite', 0) && get(g:, 'airline#extensions#unite#enabled', 1)
|
||||
call airline#extensions#unite#init(s:ext)
|
||||
call add(s:loaded_ext, 'unite')
|
||||
endif
|
||||
|
||||
if get(g:, 'loaded_denite', 0)
|
||||
if get(g:, 'loaded_denite', 0) && get(g:, 'airline#extensions#denite#enabled', 1)
|
||||
call airline#extensions#denite#init(s:ext)
|
||||
call add(s:loaded_ext, 'denite')
|
||||
endif
|
||||
|
||||
if get(g:, 'loaded_gina', 0) && get(g:, 'airline#extensions#gina#enabled', 1)
|
||||
call airline#extensions#gina#init(s:ext)
|
||||
call add(s:loaded_ext, 'gina')
|
||||
endif
|
||||
|
||||
if get(g:, 'loaded_fern', 0) && get(g:, 'airline#extensions#fern#enabled', 1)
|
||||
call airline#extensions#fern#init(s:ext)
|
||||
call add(s:loaded_ext, 'fern')
|
||||
endif
|
||||
|
||||
if exists(':NetrwSettings')
|
||||
call airline#extensions#netrw#init(s:ext)
|
||||
call add(s:loaded_ext, 'netrw')
|
||||
endif
|
||||
|
||||
" fzf buffers are also terminal buffers, so this must be above term.
|
||||
if exists(':FZF') && get(g:, 'airline#extensions#fzf#enabled', 1)
|
||||
call airline#extensions#fzf#init(s:ext)
|
||||
call add(s:loaded_ext, 'fzf')
|
||||
endif
|
||||
|
||||
" Vim-CMake buffers are also terminal buffers, so this must be above term.
|
||||
if get(g:, 'loaded_cmake', 0) && get(g:, 'airline#extensions#vimcmake#enabled', 1)
|
||||
call airline#extensions#vimcmake#init(s:ext)
|
||||
call add(s:loaded_ext, 'vimcmake')
|
||||
endif
|
||||
|
||||
if (has("terminal") || has('nvim')) &&
|
||||
\ get(g:, 'airline#extensions#term#enabled', 1)
|
||||
call airline#extensions#term#init(s:ext)
|
||||
call add(s:loaded_ext, 'term')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#ycm#enabled', 0)
|
||||
if get(g:, 'airline#extensions#ycm#enabled', 0) && exists('g:loaded_youcompleteme')
|
||||
call airline#extensions#ycm#init(s:ext)
|
||||
call add(s:loaded_ext, 'ycm')
|
||||
endif
|
||||
@@ -205,8 +229,18 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'undotree')
|
||||
endif
|
||||
|
||||
if exists(':RTM')
|
||||
call airline#extensions#vimodoro#init(s:ext)
|
||||
call add(s:loaded_ext, 'vimodoro')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#hunks#enabled', 1)
|
||||
\ && (exists('g:loaded_signify') || exists('g:loaded_gitgutter') || exists('g:loaded_changes') || exists('g:loaded_quickfixsigns'))
|
||||
\ && (exists('g:loaded_signify')
|
||||
\ || exists('g:loaded_gitgutter')
|
||||
\ || exists('g:loaded_changes')
|
||||
\ || exists('g:loaded_quickfixsigns')
|
||||
\ || exists(':Gitsigns')
|
||||
\ || exists(':CocCommand'))
|
||||
call airline#extensions#hunks#init(s:ext)
|
||||
call add(s:loaded_ext, 'hunks')
|
||||
endif
|
||||
@@ -222,8 +256,13 @@ function! airline#extensions#load()
|
||||
call airline#extensions#tagbar#init(s:ext)
|
||||
call add(s:loaded_ext, 'tagbar')
|
||||
endif
|
||||
if get(g:, 'airline#extensions#taglist#enabled', 1) && exists(':TlistShowTag')
|
||||
call airline#extensions#taglist#init(s:ext)
|
||||
call add(s:loaded_ext, 'taglist')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#vista#enabled', 1)
|
||||
\ && exists(':Vista')
|
||||
call airline#extensions#vista#init(s:ext)
|
||||
call add(s:loaded_ext, 'vista')
|
||||
endif
|
||||
@@ -234,18 +273,29 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'bookmark')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#scrollbar#enabled', 0)
|
||||
call airline#extensions#scrollbar#init(s:ext)
|
||||
call add(s:loaded_ext, 'scrollbar')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#csv#enabled', 1)
|
||||
\ && (get(g:, 'loaded_csv', 0) || exists(':Table'))
|
||||
call airline#extensions#csv#init(s:ext)
|
||||
call add(s:loaded_ext, 'csv')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#zoomwintab#enabled', 0)
|
||||
call airline#extensions#zoomwintab#init(s:ext)
|
||||
call add(s:loaded_ext, 'zoomwintab')
|
||||
endif
|
||||
|
||||
if exists(':VimShell')
|
||||
let s:filetype_regex_overrides['^int-'] = ['vimshell','%{substitute(&ft, "int-", "", "")}']
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#branch#enabled', 1) && (
|
||||
\ airline#util#has_fugitive() ||
|
||||
\ airline#util#has_gina() ||
|
||||
\ airline#util#has_lawrencium() ||
|
||||
\ airline#util#has_vcscommand() ||
|
||||
\ airline#util#has_custom_scm())
|
||||
@@ -266,9 +316,20 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'fugitiveline')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#virtualenv#enabled', 1) && (exists(':VirtualEnvList') || isdirectory($VIRTUAL_ENV)))
|
||||
" NOTE: This means that if both virtualenv and poetv are enabled and
|
||||
" available, poetv silently takes precedence and the virtualenv
|
||||
" extension won't be initialized. Since both extensions currently just
|
||||
" add a virtualenv identifier section to the airline, this seems
|
||||
" acceptable.
|
||||
if (get(g:, 'airline#extensions#poetv#enabled', 0) && (exists(':PoetvActivate')))
|
||||
call airline#extensions#poetv#init(s:ext)
|
||||
call add(s:loaded_ext, 'poetv')
|
||||
elseif (get(g:, 'airline#extensions#virtualenv#enabled', 0) && (exists(':VirtualEnvList')))
|
||||
call airline#extensions#virtualenv#init(s:ext)
|
||||
call add(s:loaded_ext, 'virtualenv')
|
||||
elseif (get(g:, 'airline#extensions#poetv#enabled', 0) && (isdirectory($VIRTUAL_ENV)))
|
||||
call airline#extensions#poetv#init(s:ext)
|
||||
call add(s:loaded_ext, 'poetv')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#eclim#enabled', 1) && exists(':ProjectCreate'))
|
||||
@@ -287,6 +348,18 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'ale')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#lsp#enabled', 1) && exists(':LspDeclaration'))
|
||||
call airline#extensions#lsp#init(s:ext)
|
||||
call add(s:loaded_ext, 'lsp')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#nvimlsp#enabled', 1)
|
||||
\ && has('nvim')
|
||||
\ && luaeval('vim.lsp ~= nil'))
|
||||
call airline#extensions#nvimlsp#init(s:ext)
|
||||
call add(s:loaded_ext, 'nvimlsp')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#coc#enabled', 1) && exists(':CocCommand'))
|
||||
call airline#extensions#coc#init(s:ext)
|
||||
call add(s:loaded_ext, 'coc')
|
||||
@@ -332,7 +405,7 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'promptline')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && exists(':NR') == 2
|
||||
if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && get(g:, 'loaded_nrrw_rgn', 0)
|
||||
call airline#extensions#nrrwrgn#init(s:ext)
|
||||
call add(s:loaded_ext, 'nrrwrgn')
|
||||
endif
|
||||
@@ -347,17 +420,27 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'capslock')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#codeium#enabled', 1) && get(g:, 'loaded_codeium', 0))
|
||||
call airline#extensions#codeium#init(s:ext)
|
||||
call add(s:loaded_ext, 'codeium')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0))
|
||||
call airline#extensions#gutentags#init(s:ext)
|
||||
call add(s:loaded_ext, 'gutentags')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#gen_tags#enabled', 1) && (get(g:, 'loaded_gentags#gtags', 0) || get(g:, 'loaded_gentags#ctags', 0))
|
||||
call airline#extensions#gen_tags#init(s:ext)
|
||||
call add(s:loaded_ext, 'gen_tags')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#grepper#enabled', 1) && get(g:, 'loaded_grepper', 0))
|
||||
call airline#extensions#grepper#init(s:ext)
|
||||
call add(s:loaded_ext, 'grepper')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#xkblayout#enabled', 1) && exists('g:XkbSwitchLib'))
|
||||
if get(g:, 'airline#extensions#xkblayout#enabled', 1) && (exists('g:XkbSwitchLib') || exists('*FcitxCurrentIM') || has('nvim'))
|
||||
call airline#extensions#xkblayout#init(s:ext)
|
||||
call add(s:loaded_ext, 'xkblayout')
|
||||
endif
|
||||
@@ -390,17 +473,32 @@ function! airline#extensions#load()
|
||||
call add(s:loaded_ext, 'cursormode')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#searchcount#enabled', 1) && exists('*searchcount')
|
||||
call airline#extensions#searchcount#init(s:ext)
|
||||
call add(s:loaded_ext, 'searchcount')
|
||||
endif
|
||||
|
||||
if get(g:, 'loaded_battery', 0) && get(g:, 'airline#extensions#battery#enabled', 0)
|
||||
call airline#extensions#battery#init(s:ext)
|
||||
call add(s:loaded_ext, 'battery')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#vim9lsp#enabled', 1) && exists('*lsp#lsp#ErrorCount'))
|
||||
call airline#extensions#vim9lsp#init(s:ext)
|
||||
call add(s:loaded_ext, 'vim9lsp')
|
||||
endif
|
||||
|
||||
if !get(g:, 'airline#extensions#disable_rtp_load', 0)
|
||||
" load all other extensions, which are not part of the default distribution.
|
||||
" (autoload/airline/extensions/*.vim outside of our s:script_path).
|
||||
for file in split(globpath(&rtp, "autoload/airline/extensions/*.vim"), "\n")
|
||||
for file in split(globpath(&rtp, 'autoload/airline/extensions/*.vim', 1), "\n")
|
||||
" we have to check both resolved and unresolved paths, since it's possible
|
||||
" that they might not get resolved properly (see #187)
|
||||
if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0
|
||||
\ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0
|
||||
let name = fnamemodify(file, ':t:r')
|
||||
if !get(g:, 'airline#extensions#'.name.'#enabled', 1) ||
|
||||
\ index(s:loaded_ext, name) > -1
|
||||
\ index(s:loaded_ext, name.'*') > -1
|
||||
continue
|
||||
endif
|
||||
try
|
||||
@@ -412,6 +510,22 @@ function! airline#extensions#load()
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
if exists(':Dirvish') && get(g:, 'airline#extensions#dirvish#enabled', 1)
|
||||
call airline#extensions#dirvish#init(s:ext)
|
||||
call add(s:loaded_ext, 'dirvish')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#omnisharp#enabled', 1) && get(g:, 'OmniSharp_loaded', 0))
|
||||
call airline#extensions#omnisharp#init(s:ext)
|
||||
call add(s:loaded_ext, 'omnisharp')
|
||||
endif
|
||||
|
||||
if (get(g:, 'airline#extensions#rufo#enabled', 0) && get(g:, 'rufo_loaded', 0))
|
||||
call airline#extensions#rufo#init(s:ext)
|
||||
call add(s:loaded_ext, 'rufo')
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#get_loaded_extensions()
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bjorn Neergaard, w0rp et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, w0rp et al.
|
||||
" Plugin: https://github.com/dense-analysis/ale
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'loaded_ale_dont_use_this_in_other_plugins_please', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! s:airline_ale_count(cnt, symbol)
|
||||
return a:cnt ? a:symbol. a:cnt : ''
|
||||
endfunction
|
||||
@@ -124,6 +128,10 @@ function! airline#extensions#ale#init(ext)
|
||||
endfunction
|
||||
|
||||
function! s:ale_refresh()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
if get(g:, 'airline_skip_empty_sections', 0)
|
||||
exe ':AirlineRefresh!'
|
||||
endif
|
||||
|
||||
23
autoload/airline/extensions/battery.vim
Normal file
23
autoload/airline/extensions/battery.vim
Normal file
@@ -0,0 +1,23 @@
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Plugin: https://github.com/lambdalisue/battery.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('g:loaded_battery')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#battery#status(...) abort
|
||||
if !exists('g:battery#update_statusline')
|
||||
let g:battery#update_statusline = 1
|
||||
call battery#update()
|
||||
endif
|
||||
|
||||
let bat = battery#component()
|
||||
return bat
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#battery#init(ext) abort
|
||||
call airline#parts#define_function('battery', 'airline#extensions#battery#status')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2019 Bjoern Petri <bjoern.petri@sundevil.de>
|
||||
" MIT License. Copyright (c) 2021 Bjoern Petri <bjoern.petri@sundevil.de>
|
||||
" Plugin: https://github.com/MattesGroeger/vim-bookmarks
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -8,23 +8,23 @@ if !exists(':BookmarkToggle')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#bookmark#currentbookmark()
|
||||
function! airline#extensions#bookmark#currentbookmark() abort
|
||||
if get(w:, 'airline_active', 0)
|
||||
let file = expand("%:p")
|
||||
if file ==# ""
|
||||
return
|
||||
endif
|
||||
let file = expand('%:p')
|
||||
if file ==# ''
|
||||
return
|
||||
endif
|
||||
|
||||
let current_line = line('.')
|
||||
let has_bm = bm#has_bookmark_at_line(file, current_line)
|
||||
let bm = has_bm ? bm#get_bookmark_by_line(file, current_line) : 0
|
||||
let annotation = has_bm ? bm['annotation'] : ""
|
||||
let current_line = line('.')
|
||||
let has_bm = bm#has_bookmark_at_line(file, current_line)
|
||||
let bm = has_bm ? bm#get_bookmark_by_line(file, current_line) : 0
|
||||
let annotation = has_bm ? bm['annotation'] : ''
|
||||
|
||||
return annotation
|
||||
endif
|
||||
return annotation
|
||||
endif
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#bookmark#init(ext)
|
||||
function! airline#extensions#bookmark#init(ext) abort
|
||||
call airline#parts#define_function('bookmark', 'airline#extensions#bookmark#currentbookmark')
|
||||
endfunction
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" Plugin: fugitive, lawrencium and vcscommand
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: fugitive, gina, lawrencium and vcscommand
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -17,8 +17,8 @@ scriptencoding utf-8
|
||||
let s:vcs_config = {
|
||||
\ 'git': {
|
||||
\ 'exe': 'git',
|
||||
\ 'cmd': 'git status --porcelain -- ',
|
||||
\ 'dirty': 'git status -uno --porcelain --ignore-submodules',
|
||||
\ 'cmd': 'git --no-optional-locks status --porcelain -- ',
|
||||
\ 'dirty': 'git --no-optional-locks status -uno --porcelain --ignore-submodules',
|
||||
\ 'untracked_mark': '??',
|
||||
\ 'exclude': '\.git',
|
||||
\ 'update_branch': 's:update_git_branch',
|
||||
@@ -85,13 +85,32 @@ let s:names = {'0': 'index', '1': 'orig', '2':'fetch', '3':'merge'}
|
||||
let s:sha1size = get(g:, 'airline#extensions#branch#sha1_len', 7)
|
||||
|
||||
function! s:update_git_branch()
|
||||
if !airline#util#has_fugitive()
|
||||
call airline#util#ignore_next_focusgain()
|
||||
if airline#util#has_fugitive()
|
||||
call s:config_fugitive_branch()
|
||||
elseif airline#util#has_gina()
|
||||
call s:config_gina_branch()
|
||||
else
|
||||
let s:vcs_config['git'].branch = ''
|
||||
return
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let s:vcs_config['git'].branch = exists("*FugitiveHead") ?
|
||||
\ FugitiveHead(s:sha1size) : fugitive#head(s:sha1size)
|
||||
function! s:config_fugitive_branch() abort
|
||||
let s:vcs_config['git'].branch = FugitiveHead(s:sha1size)
|
||||
if s:vcs_config['git'].branch is# 'master' &&
|
||||
\ airline#util#winwidth() < 81
|
||||
" Shorten default a bit
|
||||
let s:vcs_config['git'].branch='mas'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:config_gina_branch() abort
|
||||
try
|
||||
let g:gina#component#repo#commit_length = s:sha1size
|
||||
let s:vcs_config['git'].branch = gina#component#repo#branch()
|
||||
catch
|
||||
endtry
|
||||
if s:vcs_config['git'].branch is# 'master' &&
|
||||
\ airline#util#winwidth() < 81
|
||||
" Shorten default a bit
|
||||
@@ -107,8 +126,15 @@ function! s:display_git_branch()
|
||||
if has_key(s:names, commit)
|
||||
let name = get(s:names, commit)."(".name.")"
|
||||
elseif !empty(commit)
|
||||
let ref = fugitive#repo().git_chomp('describe', '--all', '--exact-match', commit)
|
||||
if ref !~ "^fatal: no tag exactly matches"
|
||||
if exists('*FugitiveExecute')
|
||||
let ref = FugitiveExecute(['describe', '--all', '--exact-match', commit], bufnr('')).stdout[0]
|
||||
else
|
||||
noautocmd let ref = fugitive#repo().git_chomp('describe', '--all', '--exact-match', commit)
|
||||
if ref =~# ':'
|
||||
let ref = ''
|
||||
endif
|
||||
endif
|
||||
if !empty(ref)
|
||||
let name = s:format_name(substitute(ref, '\v\C^%(heads/|remotes/|tags/)=','',''))."(".name.")"
|
||||
else
|
||||
let name = matchstr(commit, '.\{'.s:sha1size.'}')."(".name.")"
|
||||
@@ -116,7 +142,6 @@ function! s:display_git_branch()
|
||||
endif
|
||||
catch
|
||||
endtry
|
||||
|
||||
return name
|
||||
endfunction
|
||||
|
||||
@@ -200,7 +225,7 @@ function! s:update_untracked()
|
||||
for vcs in keys(s:vcs_config)
|
||||
" only check, for git, if fugitive is installed
|
||||
" and for 'hg' if lawrencium is installed, else skip
|
||||
if vcs is# 'git' && !airline#util#has_fugitive()
|
||||
if vcs is# 'git' && (!airline#util#has_fugitive() && !airline#util#has_gina())
|
||||
continue
|
||||
elseif vcs is# 'mercurial' && !airline#util#has_lawrencium()
|
||||
continue
|
||||
@@ -303,6 +328,10 @@ endfunction
|
||||
|
||||
function! s:reset_untracked_cache(shellcmdpost)
|
||||
" shellcmdpost - whether function was called as a result of ShellCmdPost hook
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
if !g:airline#init#vim_async && !has('nvim')
|
||||
if a:shellcmdpost
|
||||
" Clear cache only if there was no error or the script uses an
|
||||
@@ -324,11 +353,17 @@ function! s:reset_untracked_cache(shellcmdpost)
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:sh_autocmd_handler()
|
||||
if exists('#airline')
|
||||
unlet! b:airline_head b:airline_do_mq_check
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#branch#init(ext)
|
||||
call airline#parts#define_function('branch', 'airline#extensions#branch#get_head')
|
||||
|
||||
autocmd ShellCmdPost,CmdwinLeave * unlet! b:airline_head b:airline_do_mq_check
|
||||
autocmd User AirlineBeforeRefresh unlet! b:airline_head b:airline_do_mq_check
|
||||
autocmd ShellCmdPost,CmdwinLeave * call s:sh_autocmd_handler()
|
||||
autocmd User AirlineBeforeRefresh call s:sh_autocmd_handler()
|
||||
autocmd BufWritePost * call s:reset_untracked_cache(0)
|
||||
autocmd ShellCmdPost * call s:reset_untracked_cache(1)
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/bling/vim-bufferline
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -20,7 +20,7 @@ function! airline#extensions#bufferline#init(ext)
|
||||
endif
|
||||
|
||||
if exists("+autochdir") && &autochdir == 1
|
||||
" if 'acd' is set, vim-airline uses the path section, so we need ot redefine this here as well
|
||||
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
|
||||
call airline#parts#define_raw('path', '%{bufferline#refresh_status()}'.bufferline#get_status_string())
|
||||
else
|
||||
call airline#parts#define_raw('file', '%{bufferline#refresh_status()}'.bufferline#get_status_string())
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al.
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Plugin: https://github.com/tpope/vim-capslock
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -9,7 +9,7 @@ if !exists('*CapsLockStatusline')
|
||||
endif
|
||||
|
||||
function! airline#extensions#capslock#status()
|
||||
return tolower(CapsLockStatusline()) == '[caps]' ? 'CAPS' : ''
|
||||
return tolower(CapsLockStatusline()) ==# '[caps]' ? get(g:, 'airline#extensions#capslock#symbol', 'CAPS') : ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#capslock#init(ext)
|
||||
|
||||
@@ -1,48 +1,54 @@
|
||||
" MIT License. Copyright (c) 2019 Peng Guanwen et al.
|
||||
" MIT License. Copyright (c) 2019-2021 Peng Guanwen et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
" Plugin: https://github.com/neoclide/coc
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let s:error_symbol = get(g:, 'airline#extensions#coc#error_symbol', 'E:')
|
||||
let s:warning_symbol = get(g:, 'airline#extensions#coc#warning_symbol', 'W:')
|
||||
let s:show_coc_status = get(g:, 'airline#extensions#coc#show_coc_status', 1)
|
||||
|
||||
function! airline#extensions#coc#get_warning()
|
||||
function! airline#extensions#coc#get_warning() abort
|
||||
return airline#extensions#coc#get('warning')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#coc#get_error()
|
||||
function! airline#extensions#coc#get_error() abort
|
||||
return airline#extensions#coc#get('error')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#coc#get(type)
|
||||
if !exists(":CocCommand")
|
||||
return ''
|
||||
endif
|
||||
let _backup = get(g:, 'coc_stl_format', '')
|
||||
function! airline#extensions#coc#get(type) abort
|
||||
if !exists(':CocCommand') | return '' | endif
|
||||
|
||||
let is_err = (a:type is# 'error')
|
||||
if is_err
|
||||
let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_err', '%E{[%e(#%fe)]}')
|
||||
else
|
||||
let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%W{[%w(#%fw)]}')
|
||||
endif
|
||||
let info = get(b:, 'coc_diagnostic_info', {})
|
||||
if empty(info) | return '' | endif
|
||||
|
||||
|
||||
let cnt = get(info, a:type, 0)
|
||||
if !empty(_backup)
|
||||
let g:coc_stl_format = _backup
|
||||
endif
|
||||
if empty(cnt) | return '' | endif
|
||||
|
||||
if empty(cnt)
|
||||
return ''
|
||||
else
|
||||
return (is_err ? s:error_symbol : s:warning_symbol).cnt
|
||||
endif
|
||||
let error_symbol = get(g:, 'airline#extensions#coc#error_symbol', 'E:')
|
||||
let warning_symbol = get(g:, 'airline#extensions#coc#warning_symbol', 'W:')
|
||||
let error_format = get(g:, 'airline#extensions#coc#stl_format_err', '%C(L%L)')
|
||||
let warning_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%C(L%L)')
|
||||
|
||||
" replace %C with error count and %L with line number
|
||||
return (is_err ? error_symbol : warning_symbol) .
|
||||
\ substitute(substitute(is_err ? error_format : warning_format,
|
||||
\ '%C', cnt, 'g'),
|
||||
\ '%L', (info.lnums)[is_err ? 0 : 1], 'g')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#coc#init(ext)
|
||||
function! airline#extensions#coc#get_status() abort
|
||||
" Shorten text for windows < 91 characters
|
||||
let status = airline#util#shorten(get(g:, 'coc_status', ''), 91, 9)
|
||||
return (s:show_coc_status ? status : '')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#coc#get_current_function() abort
|
||||
return get(b:, 'coc_current_function', '')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#coc#init(ext) abort
|
||||
call airline#parts#define_function('coc_error_count', 'airline#extensions#coc#get_error')
|
||||
call airline#parts#define_function('coc_warning_count', 'airline#extensions#coc#get_warning')
|
||||
call airline#parts#define_function('coc_status', 'airline#extensions#coc#get_status')
|
||||
call airline#parts#define_function('coc_current_function', 'airline#extensions#coc#get_current_function')
|
||||
endfunction
|
||||
|
||||
17
autoload/airline/extensions/codeium.vim
Normal file
17
autoload/airline/extensions/codeium.vim
Normal file
@@ -0,0 +1,17 @@
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Plugin: https://github.com/Exafunction/codeium.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'loaded_codeium', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#codeium#status() abort
|
||||
return '{…}' . codeium#GetStatusString()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#codeium#init(ext) abort
|
||||
call airline#parts#define_function('codeium', 'airline#extensions#codeium#status')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/wincent/command-t
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
|
||||
" Plugin: https://github.com/chrisbra/csv.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/ctrlpvim/ctrlp.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/szw/vim-ctrlspace
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#ctrlspace#statusline(...)
|
||||
function! airline#extensions#ctrlspace#statusline(...) abort
|
||||
let spc = g:airline_symbols.space
|
||||
let padding = spc . spc . spc
|
||||
let l:padding = spc . spc . spc
|
||||
let cs = ctrlspace#context#Configuration().Symbols.CS
|
||||
|
||||
let b = airline#builder#new({ 'active': 1 })
|
||||
call b.add_section('airline_b', cs . padding . ctrlspace#api#StatuslineModeSegment(s:padding))
|
||||
call b.add_section('airline_b', cs . l:padding . ctrlspace#api#StatuslineModeSegment(l:padding))
|
||||
call b.split()
|
||||
call b.add_section('airline_x', spc . ctrlspace#api#StatuslineTabSegment() . spc)
|
||||
return b.build()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#ctrlspace#init(ext)
|
||||
function! airline#extensions#ctrlspace#init(ext) abort
|
||||
let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()"
|
||||
endfunction
|
||||
|
||||
@@ -5,6 +5,12 @@
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if exists('g:loaded_cursormode')
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_cursormode = 1
|
||||
|
||||
let s:is_win = has('win32') || has('win64')
|
||||
let s:is_iTerm = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'iTerm.app'
|
||||
let s:is_AppleTerminal = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'Apple_Terminal'
|
||||
@@ -101,6 +107,10 @@ augroup airline#extensions#cursormode
|
||||
augroup END
|
||||
|
||||
function! airline#extensions#cursormode#activate()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
let s:color_map = s:get_color_map()
|
||||
call airline#extensions#cursormode#set()
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -7,7 +7,7 @@ let s:section_use_groups = get(g:, 'airline#extensions#default#section_use_g
|
||||
let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', {
|
||||
\ 'b': 79,
|
||||
\ 'x': 60,
|
||||
\ 'y': 88,
|
||||
\ 'y': 80,
|
||||
\ 'z': 45,
|
||||
\ 'warning': 80,
|
||||
\ 'error': 80,
|
||||
@@ -76,17 +76,14 @@ else
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function! airline#extensions#default#apply(builder, context)
|
||||
function! airline#extensions#default#apply(builder, context) abort
|
||||
let winnr = a:context.winnr
|
||||
let active = a:context.active
|
||||
|
||||
if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse))
|
||||
call s:build_sections(a:builder, a:context, s:layout[0])
|
||||
else
|
||||
let text = s:get_section(winnr, 'c')
|
||||
if empty(text)
|
||||
let text = ' %f%m '
|
||||
endif
|
||||
let text = !empty(s:get_section(winnr, 'c')) ? s:get_section(winnr, 'c') : ' %f%m '
|
||||
call a:builder.add_section('airline_c'.(a:context.bufnr), text)
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2017-2019 Thomas Dy et al.
|
||||
" MIT License. Copyright (c) 2017-2021 Thomas Dy et al.
|
||||
" Plugin: https://github.com/Shougo/denite.nvim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -12,8 +12,8 @@ let s:denite_ver = (exists('*denite#get_status_mode') ? 2 : 3)
|
||||
" Denite does not use vim's built-in modal editing but has a custom prompt
|
||||
" that implements its own insert/normal mode so we have to handle changing the
|
||||
" highlight
|
||||
function! airline#extensions#denite#check_denite_mode(bufnr)
|
||||
if &filetype !=# 'denite' || &filetype !=# 'denite-filter'
|
||||
function! airline#extensions#denite#check_denite_mode(bufnr) abort
|
||||
if &filetype !=# 'denite' && &filetype !=# 'denite-filter'
|
||||
return ''
|
||||
endif
|
||||
|
||||
@@ -30,7 +30,7 @@ function! airline#extensions#denite#check_denite_mode(bufnr)
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#denite#apply(...)
|
||||
function! airline#extensions#denite#apply(...) abort
|
||||
if &filetype ==# 'denite' || &filetype ==# 'denite-filter'
|
||||
let w:airline_skip_empty_sections = 0
|
||||
call a:1.add_section('airline_a', ' Denite %{airline#extensions#denite#check_denite_mode('.a:2['bufnr'].')}')
|
||||
@@ -49,7 +49,7 @@ function! airline#extensions#denite#apply(...)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#denite#init(ext)
|
||||
function! airline#extensions#denite#init(ext) abort
|
||||
call denite#custom#option('_', 'statusline', 0)
|
||||
call a:ext.add_statusline_func('airline#extensions#denite#apply')
|
||||
endfunction
|
||||
|
||||
36
autoload/airline/extensions/dirvish.vim
Normal file
36
autoload/airline/extensions/dirvish.vim
Normal file
@@ -0,0 +1,36 @@
|
||||
" MIT Licsense
|
||||
" Plugin: https://github.com/justinmk/vim-dirvish
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'loaded_dirvish', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:spc = g:airline_symbols.space
|
||||
|
||||
function! airline#extensions#dirvish#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#dirvish#apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#dirvish#apply(...) abort
|
||||
if &filetype ==# 'dirvish' && exists('b:dirvish')
|
||||
let w:airline_section_a = 'Dirvish'
|
||||
|
||||
let w:airline_section_b = exists('*airline#extensions#branch#get_head')
|
||||
\ ? '%{airline#extensions#branch#get_head()}'
|
||||
\ : ''
|
||||
|
||||
let w:airline_section_c = '%{b:dirvish._dir}'
|
||||
|
||||
let w:airline_section_x = ''
|
||||
let w:airline_section_y = ''
|
||||
|
||||
let current_column_regex = ':%\dv'
|
||||
let w:airline_section_z = join(filter(
|
||||
\ split(get(w:, 'airline_section_z', g:airline_section_z)),
|
||||
\ 'v:val !~ current_column_regex'
|
||||
\ ))
|
||||
endif
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" PLugin: https://eclim.org
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -23,7 +23,7 @@ function! airline#extensions#example#init(ext)
|
||||
call airline#parts#define_raw('cats', '%{airline#extensions#example#get_cats()}')
|
||||
|
||||
" Next up we add a funcref so that we can run some code prior to the
|
||||
" statusline getting modifed.
|
||||
" statusline getting modified.
|
||||
call a:ext.add_statusline_func('airline#extensions#example#apply')
|
||||
|
||||
" You can also add a funcref for inactive statuslines.
|
||||
@@ -40,7 +40,7 @@ function! airline#extensions#example#apply(...)
|
||||
" section_c.
|
||||
let w:airline_section_c = get(w:, 'airline_section_c', g:airline_section_c)
|
||||
|
||||
" Then we just append this extenion to it, optionally using separators.
|
||||
" Then we just append this extension to it, optionally using separators.
|
||||
let w:airline_section_c .= s:spc.g:airline_left_alt_sep.s:spc.'%{airline#extensions#example#get_cats()}'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
36
autoload/airline/extensions/fern.vim
Normal file
36
autoload/airline/extensions/fern.vim
Normal file
@@ -0,0 +1,36 @@
|
||||
" MIT License. Copyright (c) 2013-2021
|
||||
" Plugin: https://github.com/lambdalisue/fern.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
if !get(g:, 'loaded_fern', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#fern#apply(...) abort
|
||||
if (&ft =~# 'fern')
|
||||
let spc = g:airline_symbols.space
|
||||
let fri = fern#fri#parse(expand('%f'))
|
||||
|
||||
call a:1.add_section('airline_a', spc.'fern'.spc)
|
||||
if exists('*airline#extensions#branch#get_head')
|
||||
call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc)
|
||||
else
|
||||
call a:1.add_section('airline_b', '')
|
||||
endif
|
||||
if !(fri.authority =~# '^drawer')
|
||||
let abspath = substitute(fri.path, 'file://', '', '')
|
||||
call a:1.add_section('airline_c', spc.fnamemodify(abspath, ':~'))
|
||||
call a:1.split()
|
||||
if len(get(g:, 'fern#comparators', {}))
|
||||
call a:1.add_section('airline_y', spc.'%{fern#comparator}'.spc)
|
||||
endif
|
||||
endif
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fern#init(ext) abort
|
||||
let g:fern_force_overwrite_statusline = 0
|
||||
call a:ext.add_statusline_func('airline#extensions#fern#apply')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2017-2019 Cimbali et al
|
||||
" MIT License. Copyright (c) 2017-2021 Cimbali et al
|
||||
" Plugin: https://github.com/tpope/vim-fugitive
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -8,45 +8,54 @@ if !airline#util#has_fugitive()
|
||||
finish
|
||||
endif
|
||||
|
||||
function! s:ModifierFlags()
|
||||
return (exists("+autochdir") && &autochdir) ? ':p' : ':.'
|
||||
endfunction
|
||||
let s:has_percent_eval = v:version > 802 || (v:version == 802 && has("patch2854"))
|
||||
|
||||
function! airline#extensions#fugitiveline#bufname()
|
||||
function! airline#extensions#fugitiveline#bufname() abort
|
||||
if !exists('b:fugitive_name')
|
||||
let b:fugitive_name = ''
|
||||
try
|
||||
if bufname('%') =~? '^fugitive:' && exists('*FugitiveReal')
|
||||
let b:fugitive_name = FugitiveReal(bufname('%'))
|
||||
elseif exists('b:git_dir') && exists('*fugitive#repo')
|
||||
if get(b:, 'fugitive_type', '') is# 'blob'
|
||||
let b:fugitive_name = fugitive#repo().translate(FugitivePath(@%, ''))
|
||||
endif
|
||||
elseif exists('b:git_dir') && !exists('*fugitive#repo')
|
||||
let buffer = fugitive#buffer()
|
||||
if buffer.type('blob')
|
||||
let b:fugitive_name = buffer.repo().translate(buffer.path('/'))
|
||||
endif
|
||||
endif
|
||||
catch
|
||||
endtry
|
||||
endif
|
||||
|
||||
let fmod = s:ModifierFlags()
|
||||
let fmod = (exists("+autochdir") && &autochdir) ? ':p' : ':.'
|
||||
let result=''
|
||||
if empty(b:fugitive_name)
|
||||
return fnamemodify(bufname('%'), fmod)
|
||||
if empty(bufname('%'))
|
||||
return &buftype ==# 'nofile' ? '[Scratch]' : '[No Name]'
|
||||
endif
|
||||
return s:has_percent_eval ? '%f' : fnamemodify(bufname('%'), fmod)
|
||||
else
|
||||
return fnamemodify(b:fugitive_name, fmod). " [git]"
|
||||
return s:has_percent_eval ? '%f [git]' : (fnamemodify(b:fugitive_name, fmod). " [git]")
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fugitiveline#init(ext)
|
||||
function! s:sh_autocmd_handler()
|
||||
if exists('#airline')
|
||||
unlet! b:fugitive_name
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fugitiveline#init(ext) abort
|
||||
let prct = s:has_percent_eval ? '%' : ''
|
||||
|
||||
if exists("+autochdir") && &autochdir
|
||||
" if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well
|
||||
call airline#parts#define_raw('path', '%<%{airline#extensions#fugitiveline#bufname()}%m')
|
||||
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
|
||||
call airline#parts#define_raw('path', '%<%{'. prct. 'pathshorten(airline#extensions#fugitiveline#bufname())' . prct . '}%m')
|
||||
else
|
||||
call airline#parts#define_raw('path', '%<%{' . prct . 'airline#extensions#fugitiveline#bufname()' . prct . '}%m')
|
||||
endif
|
||||
else
|
||||
call airline#parts#define_raw('file', '%<%{airline#extensions#fugitiveline#bufname()}%m')
|
||||
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
|
||||
call airline#parts#define_raw('file', '%<%{' . prct . 'pathshorten(airline#extensions#fugitiveline#bufname())' . prct . '}%m')
|
||||
else
|
||||
call airline#parts#define_raw('file', '%<%{' . prct . 'airline#extensions#fugitiveline#bufname()' . prct . '}%m')
|
||||
endif
|
||||
endif
|
||||
autocmd ShellCmdPost,CmdwinLeave * unlet! b:fugitive_name
|
||||
autocmd User AirlineBeforeRefresh unlet! b:fugitive_name
|
||||
autocmd ShellCmdPost,CmdwinLeave * call s:sh_autocmd_handler()
|
||||
autocmd User AirlineBeforeRefresh call s:sh_autocmd_handler()
|
||||
endfunction
|
||||
|
||||
44
autoload/airline/extensions/fzf.vim
Normal file
44
autoload/airline/extensions/fzf.vim
Normal file
@@ -0,0 +1,44 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/junegunn/fzf, https://github.com/junegunn/fzf.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#fzf#init(ext) abort
|
||||
" Remove the custom statusline that fzf.vim sets by removing its `FileType
|
||||
" fzf` autocmd. Ideally we'd use `let g:fzf_statusline = 0`, but this
|
||||
" variable is checked *before* airline#extensions#init() is called.
|
||||
augroup _fzf_statusline
|
||||
autocmd!
|
||||
augroup END
|
||||
|
||||
call a:ext.add_statusline_func('airline#extensions#fzf#apply')
|
||||
call a:ext.add_inactive_statusline_func('airline#extensions#fzf#inactive_apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fzf#statusline(...) abort
|
||||
let spc = g:airline_symbols.space
|
||||
|
||||
let builder = airline#builder#new({ 'active': 1 })
|
||||
call builder.add_section('airline_a', spc.'FZF'.spc)
|
||||
call builder.add_section('airline_c', '')
|
||||
return builder.build()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fzf#apply(...) abort
|
||||
if &filetype ==# 'fzf'
|
||||
let spc = g:airline_symbols.space
|
||||
call a:1.add_section('airline_a', spc.'FZF'.spc)
|
||||
call a:1.add_section('airline_c', '')
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#fzf#inactive_apply(...) abort
|
||||
if getbufvar(a:2.bufnr, '&filetype') ==# 'fzf'
|
||||
let spc = g:airline_symbols.space
|
||||
call a:1.add_section('airline_a', spc.'FZF'.spc)
|
||||
call a:1.add_section('airline_c', '')
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
19
autoload/airline/extensions/gen_tags.vim
Normal file
19
autoload/airline/extensions/gen_tags.vim
Normal file
@@ -0,0 +1,19 @@
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Written by Kamil Cukrowski 2020
|
||||
" Plugin: https://github.com/jsfaint/gen_tags.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !(get(g:, 'loaded_gentags#gtags', 0) || get(g:, 'loaded_gentags#ctags', 0))
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#gen_tags#status(...) abort
|
||||
return gen_tags#job#is_running() != 0 ? 'Gen. gen_tags' : ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#gen_tags#init(ext) abort
|
||||
call airline#parts#define_function('gen_tags', 'airline#extensions#gen_tags#status')
|
||||
endfunction
|
||||
|
||||
28
autoload/airline/extensions/gina.vim
Normal file
28
autoload/airline/extensions/gina.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" MIT License. Copyright (c) 2013-2021
|
||||
" Plugin: https://github.com/lambdalisue/gina.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
if !get(g:, 'loaded_gina', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#gina#apply(...) abort
|
||||
" gina.vim seems to set b:gina_initialized = 1 in diff buffers it open,
|
||||
" where get(b:, 'gina_initialized', 0) returns 1.
|
||||
" In diff buffers not opened by gina.vim b:gina_initialized is not set,
|
||||
" so get(b:, 'gina_initialized', 0) returns 0.
|
||||
if (&ft =~# 'gina' && &ft !~# 'blame') || (&ft ==# 'diff' && get(b:, 'gina_initialized', 0))
|
||||
call a:1.add_section('airline_a', ' gina ')
|
||||
call a:1.add_section('airline_b', ' %{gina#component#repo#branch()} ')
|
||||
call a:1.split()
|
||||
call a:1.add_section('airline_y', ' staged %{gina#component#status#staged()} ')
|
||||
call a:1.add_section('airline_z', ' unstaged %{gina#component#status#unstaged()} ')
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#gina#init(ext) abort
|
||||
let g:gina_force_overwrite_statusline = 0
|
||||
call a:ext.add_statusline_func('airline#extensions#gina#apply')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al.
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Plugin: https://github.com/mhinz/vim-grepper
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al.
|
||||
" MIT License. Copyright (c) 2014-2021 Mathias Andersson et al.
|
||||
" Plugin: https://github.com/ludovicchabant/vim-gutentags
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,17 +1,59 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns, coc-git,
|
||||
" gitsigns.nvim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'loaded_signify', 0) && !get(g:, 'loaded_gitgutter', 0) && !get(g:, 'loaded_changes', 0) && !get(g:, 'loaded_quickfixsigns', 0)
|
||||
if !get(g:, 'loaded_signify', 0)
|
||||
\ && !get(g:, 'loaded_gitgutter', 0)
|
||||
\ && !get(g:, 'loaded_changes', 0)
|
||||
\ && !get(g:, 'loaded_quickfixsigns', 0)
|
||||
\ && !exists(':Gitsigns')
|
||||
\ && !exists("*CocAction")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:non_zero_only = get(g:, 'airline#extensions#hunks#non_zero_only', 0)
|
||||
let s:hunk_symbols = get(g:, 'airline#extensions#hunks#hunk_symbols', ['+', '~', '-'])
|
||||
|
||||
function! s:get_hunks_signify()
|
||||
function! s:coc_git_enabled() abort
|
||||
if !exists("*CocAction") ||
|
||||
\ !get(g:, 'airline#extensions#hunks#coc_git', 0)
|
||||
" coc-git extension is disabled by default
|
||||
" unless specifically being enabled by the user
|
||||
" (as requested from coc maintainer)
|
||||
return 0
|
||||
endif
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! s:parse_hunk_status_dict(hunks) abort
|
||||
let result = [0, 0, 0]
|
||||
let result[0] = get(a:hunks, 'added', 0)
|
||||
let result[1] = get(a:hunks, 'changed', 0)
|
||||
let result[2] = get(a:hunks, 'removed', 0)
|
||||
return result
|
||||
endfunction
|
||||
|
||||
function! s:parse_hunk_status_decorated(hunks) abort
|
||||
if empty(a:hunks)
|
||||
return []
|
||||
endif
|
||||
let result = [0, 0, 0]
|
||||
for val in split(a:hunks)
|
||||
if val[0] is# '+'
|
||||
let result[0] = val[1:] + 0
|
||||
elseif val[0] is# '~'
|
||||
let result[1] = val[1:] + 0
|
||||
elseif val[0] is# '-'
|
||||
let result[2] = val[1:] + 0
|
||||
endif
|
||||
endfor
|
||||
return result
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_signify() abort
|
||||
let hunks = sy#repo#get_stats()
|
||||
if hunks[0] >= 0
|
||||
return hunks
|
||||
@@ -19,40 +61,44 @@ function! s:get_hunks_signify()
|
||||
return []
|
||||
endfunction
|
||||
|
||||
function! s:is_branch_empty()
|
||||
return exists('*airline#extensions#branch#head') &&
|
||||
\ empty(get(b:, 'airline_head', ''))
|
||||
function! s:get_hunks_gitgutter() abort
|
||||
let hunks = GitGutterGetHunkSummary()
|
||||
return hunks == [0, 0, 0] ? [] : hunks
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_gitgutter()
|
||||
if !get(g:, 'gitgutter_enabled', 0) || s:is_branch_empty()
|
||||
return ''
|
||||
endif
|
||||
return GitGutterGetHunkSummary()
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_changes()
|
||||
if !get(b:, 'changes_view_enabled', 0) || s:is_branch_empty()
|
||||
return []
|
||||
endif
|
||||
function! s:get_hunks_changes() abort
|
||||
let hunks = changes#GetStats()
|
||||
return hunks == [0, 0, 0] ? [] : hunks
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_empty()
|
||||
function! s:get_hunks_gitsigns() abort
|
||||
let hunks = get(b:, 'gitsigns_status_dict', {})
|
||||
return s:parse_hunk_status_dict(hunks)
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_coc() abort
|
||||
let hunks = get(b:, 'coc_git_status', '')
|
||||
return s:parse_hunk_status_decorated(hunks)
|
||||
endfunction
|
||||
|
||||
function! s:get_hunks_empty() abort
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#hunks#get_raw_hunks()
|
||||
function! airline#extensions#hunks#get_raw_hunks() abort
|
||||
if !exists('b:source_func') || get(b:, 'source_func', '') is# 's:get_hunks_empty'
|
||||
if get(g:, 'loaded_signify') && sy#buffer_is_active()
|
||||
let b:source_func = 's:get_hunks_signify'
|
||||
elseif exists('*GitGutterGetHunkSummary')
|
||||
elseif exists('*GitGutterGetHunkSummary') && get(g:, 'gitgutter_enabled')
|
||||
let b:source_func = 's:get_hunks_gitgutter'
|
||||
elseif exists('*changes#GetStats')
|
||||
let b:source_func = 's:get_hunks_changes'
|
||||
elseif exists('*quickfixsigns#vcsdiff#GetHunkSummary')
|
||||
let b:source_func = 'quickfixsigns#vcsdiff#GetHunkSummary'
|
||||
elseif exists(':Gitsigns')
|
||||
let b:source_func = 's:get_hunks_gitsigns'
|
||||
elseif s:coc_git_enabled()
|
||||
let b:source_func = 's:get_hunks_coc'
|
||||
else
|
||||
let b:source_func = 's:get_hunks_empty'
|
||||
endif
|
||||
@@ -60,7 +106,7 @@ function! airline#extensions#hunks#get_raw_hunks()
|
||||
return {b:source_func}()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#hunks#get_hunks()
|
||||
function! airline#extensions#hunks#get_hunks() abort
|
||||
if !get(w:, 'airline_active', 0)
|
||||
return ''
|
||||
endif
|
||||
@@ -71,25 +117,33 @@ function! airline#extensions#hunks#get_hunks()
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_signify' &&
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_gitgutter' &&
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_empty' &&
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_changes'
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_changes' &&
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_gitsigns' &&
|
||||
\ get(b:, 'source_func', '') isnot# 's:get_hunks_coc'
|
||||
return b:airline_hunks
|
||||
endif
|
||||
let hunks = airline#extensions#hunks#get_raw_hunks()
|
||||
let string = ''
|
||||
let winwidth = get(airline#parts#get('hunks'), 'minwidth', 100)
|
||||
if !empty(hunks)
|
||||
" hunks should contain [added, changed, deleted]
|
||||
for i in [0, 1, 2]
|
||||
if (s:non_zero_only == 0 && airline#util#winwidth() > winwidth) || hunks[i] > 0
|
||||
let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i])
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if index(airline#extensions#get_loaded_extensions(), 'branch') == -1 && string[-1:] == ' '
|
||||
" branch extension not loaded, skip trailing whitespace
|
||||
let string = string[0:-2]
|
||||
endif
|
||||
|
||||
let b:airline_hunks = string
|
||||
let b:airline_changenr = b:changedtick
|
||||
let s:airline_winwidth = airline#util#winwidth()
|
||||
return string
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#hunks#init(ext)
|
||||
function! airline#extensions#hunks#init(ext) abort
|
||||
call airline#parts#define_function('hunks', 'airline#extensions#hunks#get_hunks')
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Doron Behar, C.Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Doron Behar, C.Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -9,7 +9,18 @@ endif
|
||||
|
||||
function! airline#extensions#keymap#status()
|
||||
if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap'))
|
||||
return printf('%s', (!empty(&keymap) ? (g:airline_symbols.keymap . ' '. &keymap) : ''))
|
||||
let short_codes = get(g:, 'airline#extensions#keymap#short_codes', {})
|
||||
let label = get(g:, 'airline#extensions#keymap#label', g:airline_symbols.keymap)
|
||||
let default = get(g:, 'airline#extensions#keymap#default', '')
|
||||
if (label !=# '')
|
||||
let label .= ' '
|
||||
endif
|
||||
let keymap = &keymap
|
||||
if has_key(short_codes, keymap)
|
||||
let keymap = short_codes[keymap]
|
||||
endif
|
||||
return printf('%s', (!empty(keymap) && &iminsert ? (label . keymap) :
|
||||
\ (!empty(default) ? label . default : default)))
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bjorn Neergaard, hallettj et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bjorn Neergaard, hallettj et al.
|
||||
" Plugin: https://github.com/autozimu/LanguageClient-neovim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -35,6 +35,10 @@ function! s:record_diagnostics(state)
|
||||
endfunction
|
||||
|
||||
function! s:get_diagnostics()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
call LanguageClient#getState(function("s:record_diagnostics"))
|
||||
endfunction
|
||||
|
||||
@@ -66,6 +70,10 @@ function! s:airline_languageclient_get_line_number(type) abort
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#languageclient#get(type)
|
||||
if get(b:, 'LanguageClient_isServerRunning', 0) ==# 0
|
||||
return ''
|
||||
endif
|
||||
|
||||
let is_err = a:type == s:severity_error
|
||||
let symbol = is_err ? s:error_symbol : s:warning_symbol
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" MIT License. Copyright (c) 2018-2019 mox et al.
|
||||
" Plugin: https://github.com/mox-mox/localsearch
|
||||
" MIT License. Copyright (c) 2018-2021 mox et al.
|
||||
" Plugin: https://github.com/mox-mox/vim-localsearch
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -12,25 +12,30 @@ let g:airline#extensions#localsearch#loaded = 001
|
||||
|
||||
let s:spc = g:airline_symbols.space
|
||||
|
||||
function! airline#extensions#localsearch#load_theme(palette)
|
||||
let g:airline#extensions#localsearch#inverted = get(g:, 'airline#extensions#localsearch#inverted', 0)
|
||||
|
||||
function! airline#extensions#localsearch#load_theme(palette) abort
|
||||
call airline#highlighter#exec('localsearch_dark', [ '#ffffff' , '#000000' , 15 , 1 , ''])
|
||||
endfunction
|
||||
|
||||
|
||||
function! airline#extensions#localsearch#init(ext)
|
||||
call a:ext.add_theme_func('airline#extensions#localsearch#load_theme')
|
||||
call a:ext.add_statusline_func('airline#extensions#localsearch#apply')
|
||||
function! airline#extensions#localsearch#init(ext) abort
|
||||
call a:ext.add_theme_func('airline#extensions#localsearch#load_theme')
|
||||
call a:ext.add_statusline_func('airline#extensions#localsearch#apply')
|
||||
endfunction
|
||||
|
||||
|
||||
function! airline#extensions#localsearch#apply(...)
|
||||
function! airline#extensions#localsearch#apply(...) abort
|
||||
" first variable is the statusline builder
|
||||
let builder = a:1
|
||||
|
||||
""""" WARNING: the API for the builder is not finalized and may change
|
||||
if exists('#localsearch#WinEnter') " If localsearch mode is enabled
|
||||
if exists('#localsearch#WinEnter') && !g:airline#extensions#localsearch#inverted " If localsearch mode is enabled and 'invert' option is false
|
||||
call builder.add_section('localsearch_dark', s:spc.airline#section#create('LS').s:spc)
|
||||
endif
|
||||
if !exists('#localsearch#WinEnter') && g:airline#extensions#localsearch#inverted " If localsearch mode is disabled and 'invert' option is true
|
||||
call builder.add_section('localsearch_dark', s:spc.airline#section#create('GS').s:spc)
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
|
||||
111
autoload/airline/extensions/lsp.vim
Normal file
111
autoload/airline/extensions/lsp.vim
Normal file
@@ -0,0 +1,111 @@
|
||||
" MIT License. Copyright (c) 2013-2021 François-Xavier Carton et al.
|
||||
" Plugin: https://github.com/prabirshrestha/vim-lsp
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'lsp_loaded', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! s:airline_lsp_count(cnt, symbol) abort
|
||||
return a:cnt ? a:symbol. a:cnt : ''
|
||||
endfunction
|
||||
|
||||
function! s:airline_lsp_get_line_number(cnt, type) abort
|
||||
let result = ''
|
||||
|
||||
if a:type ==# 'error'
|
||||
let result = lsp#get_buffer_first_error_line()
|
||||
endif
|
||||
|
||||
if empty(result)
|
||||
return ''
|
||||
endif
|
||||
|
||||
let open_lnum_symbol =
|
||||
\ get(g:, 'airline#extensions#lsp#open_lnum_symbol', '(L')
|
||||
let close_lnum_symbol =
|
||||
\ get(g:, 'airline#extensions#lsp#close_lnum_symbol', ')')
|
||||
|
||||
return open_lnum_symbol . result . close_lnum_symbol
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#lsp#get(type) abort
|
||||
if !exists(':LspDeclaration')
|
||||
return ''
|
||||
endif
|
||||
|
||||
let error_symbol = get(g:, 'airline#extensions#lsp#error_symbol', 'E:')
|
||||
let warning_symbol = get(g:, 'airline#extensions#lsp#warning_symbol', 'W:')
|
||||
let show_line_numbers = get(g:, 'airline#extensions#lsp#show_line_numbers', 1)
|
||||
|
||||
let is_err = a:type ==# 'error'
|
||||
|
||||
let symbol = is_err ? error_symbol : warning_symbol
|
||||
|
||||
let num = lsp#get_buffer_diagnostics_counts()[a:type]
|
||||
|
||||
if show_line_numbers == 1
|
||||
return s:airline_lsp_count(num, symbol) . <sid>airline_lsp_get_line_number(num, a:type)
|
||||
else
|
||||
return s:airline_lsp_count(num, symbol)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#lsp#get_warning() abort
|
||||
return airline#extensions#lsp#get('warning')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#lsp#get_error() abort
|
||||
return airline#extensions#lsp#get('error')
|
||||
endfunction
|
||||
|
||||
let s:lsp_progress = []
|
||||
function! airline#extensions#lsp#progress() abort
|
||||
if get(w:, 'airline_active', 0)
|
||||
if exists('*lsp#get_progress')
|
||||
let s:lsp_progress = lsp#get_progress()
|
||||
|
||||
if len(s:lsp_progress) == 0 | return '' | endif
|
||||
|
||||
" show only most new progress
|
||||
let s:lsp_progress = s:lsp_progress[0]
|
||||
if s:lsp_progress['message'] !=# ''
|
||||
let percent = ''
|
||||
if has_key(s:lsp_progress, 'percentage') && s:lsp_progress['percentage'] >= 0
|
||||
let percent = ' ' . string(s:lsp_progress['percentage']) . '%'
|
||||
endif
|
||||
let s:title = s:lsp_progress['title']
|
||||
let message = airline#util#shorten(s:lsp_progress['message'] . percent, 91, 9)
|
||||
return s:lsp_progress['server'] . ': ' . s:title . ' ' . message
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
let s:timer = 0
|
||||
let s:ignore_time = 0
|
||||
function! airline#extensions#lsp#update() abort
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
if reltimefloat(reltime()) - s:ignore_time >=
|
||||
\ get(g:, 'airline#extensions#lsp#progress_skip_time', 0.3)
|
||||
\ || len(s:lsp_progress) == 0
|
||||
call airline#update_statusline()
|
||||
let s:ignore_time = reltimefloat(reltime())
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#lsp#init(ext) abort
|
||||
call airline#parts#define_function('lsp_error_count', 'airline#extensions#lsp#get_error')
|
||||
call airline#parts#define_function('lsp_warning_count', 'airline#extensions#lsp#get_warning')
|
||||
call airline#parts#define_function('lsp_progress', 'airline#extensions#lsp#progress')
|
||||
augroup airline_lsp_progress
|
||||
autocmd!
|
||||
autocmd User lsp_progress_updated call airline#extensions#lsp#update()
|
||||
augroup END
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/neomake/neomake
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: http://www.drchip.org/astronaut/vim/#NETRW
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -31,5 +31,5 @@ endfunction
|
||||
|
||||
function! airline#extensions#netrw#sortstring()
|
||||
let order = (get(g:, 'netrw_sort_direction', 'n') =~ 'n') ? '+' : '-'
|
||||
return g:netrw_sort_by . (g:airline_symbols.space) . '[' . order . ']'
|
||||
return get(g:, 'netrw_sort_by', '') . (g:airline_symbols.space) . '[' . order . ']'
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
|
||||
" Plugin: https://github.com/chrisbra/NrrwRgn
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
71
autoload/airline/extensions/nvimlsp.vim
Normal file
71
autoload/airline/extensions/nvimlsp.vim
Normal file
@@ -0,0 +1,71 @@
|
||||
" Apache 2.0 license. Copyright (c) 2019-2021 Copyright Neovim contributors.
|
||||
" Plugin: https://github.com/neovim/nvim-lsp
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !(get(g:, 'airline#extensions#nvimlsp#enabled', 1)
|
||||
\ && has('nvim')
|
||||
\ && luaeval('vim.lsp ~= nil'))
|
||||
finish
|
||||
endif
|
||||
|
||||
function! s:airline_nvimlsp_count(cnt, symbol) abort
|
||||
return a:cnt ? a:symbol. a:cnt : ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#nvimlsp#get(type) abort
|
||||
if has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.get_clients({ bufnr = 0 }))')
|
||||
return ''
|
||||
elseif !has('nvim-0.11') && luaeval('vim.tbl_isempty(vim.lsp.buf_get_clients(0))')
|
||||
return ''
|
||||
endif
|
||||
|
||||
let error_symbol = get(g:, 'airline#extensions#nvimlsp#error_symbol', 'E:')
|
||||
let warning_symbol = get(g:, 'airline#extensions#nvimlsp#warning_symbol', 'W:')
|
||||
let show_line_numbers = get(g:, 'airline#extensions#nvimlsp#show_line_numbers', 1)
|
||||
|
||||
let is_err = a:type ==# 'Error'
|
||||
|
||||
let symbol = is_err ? error_symbol : warning_symbol
|
||||
|
||||
if luaeval("pcall(require, 'vim.diagnostic')")
|
||||
let severity = a:type == 'Warning' ? 'Warn' : a:type
|
||||
let num = len(v:lua.vim.diagnostic.get(0, { 'severity': severity }))
|
||||
elseif luaeval("pcall(require, 'vim.lsp.diagnostic')")
|
||||
let num = v:lua.vim.lsp.diagnostic.get_count(0, a:type)
|
||||
else
|
||||
let num = v:lua.vim.lsp.util.buf_diagnostics_count(a:type)
|
||||
endif
|
||||
|
||||
if show_line_numbers == 1 && luaeval("pcall(require, 'vim.diagnostic')") && num > 0
|
||||
return s:airline_nvimlsp_count(num, symbol) . <sid>airline_nvimlsp_get_line_number(num, a:type)
|
||||
else
|
||||
return s:airline_nvimlsp_count(num, symbol)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:airline_nvimlsp_get_line_number(cnt, type) abort
|
||||
let severity = a:type == 'Warning' ? 'Warn' : a:type
|
||||
let num = v:lua.vim.diagnostic.get(0, { 'severity': severity })[0].lnum
|
||||
|
||||
let l:open_lnum_symbol =
|
||||
\ get(g:, 'airline#extensions#nvimlsp#open_lnum_symbol', '(L')
|
||||
let l:close_lnum_symbol =
|
||||
\ get(g:, 'airline#extensions#nvimlsp#close_lnum_symbol', ')')
|
||||
|
||||
return open_lnum_symbol . num . close_lnum_symbol
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#nvimlsp#get_warning() abort
|
||||
return airline#extensions#nvimlsp#get('Warning')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#nvimlsp#get_error() abort
|
||||
return airline#extensions#nvimlsp#get('Error')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#nvimlsp#init(ext) abort
|
||||
call airline#parts#define_function('nvimlsp_error_count', 'airline#extensions#nvimlsp#get_error')
|
||||
call airline#parts#define_function('nvimlsp_warning_count', 'airline#extensions#nvimlsp#get_warning')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/tpope/vim-obsession
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
45
autoload/airline/extensions/omnisharp.vim
Normal file
45
autoload/airline/extensions/omnisharp.vim
Normal file
@@ -0,0 +1,45 @@
|
||||
" MIT License
|
||||
" Plugin: https://github.com/OmniSharp/omnisharp-vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'OmniSharp_loaded', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#omnisharp#server_status(...) abort
|
||||
if !exists(':OmniSharpGotoDefinition') || !get(g:, 'OmniSharp_server_stdio', 0)
|
||||
return ''
|
||||
endif
|
||||
|
||||
let host = OmniSharp#GetHost(bufnr('%'))
|
||||
if type(host.job) != v:t_dict || get(host.job, 'stopped')
|
||||
return ''
|
||||
endif
|
||||
|
||||
let sln = fnamemodify(host.sln_or_dir, ':t')
|
||||
|
||||
if get(host.job, 'loaded', 0)
|
||||
return sln
|
||||
endif
|
||||
|
||||
try
|
||||
let projectsloaded = OmniSharp#project#CountLoaded()
|
||||
let projectstotal = OmniSharp#project#CountTotal()
|
||||
catch
|
||||
" The CountLoaded and CountTotal functions are very new - catch the error
|
||||
" when they don't exist
|
||||
let projectsloaded = 0
|
||||
let projectstotal = 0
|
||||
endtry
|
||||
return printf('%s(%d/%d)', sln, projectsloaded, projectstotal)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#omnisharp#init(ext) abort
|
||||
call airline#parts#define_function('omnisharp', 'airline#extensions#omnisharp#server_status')
|
||||
augroup airline_omnisharp
|
||||
autocmd!
|
||||
autocmd User OmniSharpStarted,OmniSharpReady,OmniSharpStopped AirlineRefresh!
|
||||
augroup END
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -10,7 +10,7 @@ function! airline#extensions#po#shorten()
|
||||
if exists("g:airline#extensions#po#displayed_limit")
|
||||
let w:displayed_po_limit = g:airline#extensions#po#displayed_limit
|
||||
if len(b:airline_po_stats) > w:displayed_po_limit - 1
|
||||
let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 2)].(&encoding==?'utf-8' ? '…' : '.'). ']'
|
||||
let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 2)].(&encoding==?'utf-8' ? '…' : '.')
|
||||
endif
|
||||
endif
|
||||
if strlen(get(b:, 'airline_po_stats', '')) >= 30 && airline#util#winwidth() < 150
|
||||
@@ -19,27 +19,34 @@ function! airline#extensions#po#shorten()
|
||||
let messages = ''
|
||||
" Shorten [120 translated, 50 fuzzy, 4 untranslated] to [120T/50F/4U]
|
||||
if b:airline_po_stats =~ 'fuzzy'
|
||||
let fuzzy = substitute(b:airline_po_stats, '.*\(\d\+\) fuzzy.*', '\1F', '')
|
||||
let fuzzy = substitute(b:airline_po_stats, '.\{-}\(\d\+\) fuzzy.*', '\1F', '')
|
||||
if fuzzy == '0F'
|
||||
let fuzzy = ''
|
||||
endif
|
||||
endif
|
||||
if b:airline_po_stats =~ 'untranslated'
|
||||
let untranslated = substitute(b:airline_po_stats, '.*\(\d\+\) untranslated.*', '\1U', '')
|
||||
let untranslated = substitute(b:airline_po_stats, '.\{-}\(\d\+\) untranslated.*', '\1U', '')
|
||||
if untranslated == '0U'
|
||||
let untranslated = ''
|
||||
endif
|
||||
endif
|
||||
let messages = substitute(b:airline_po_stats, '\(\d\+\) translated.*', '\1T', '')
|
||||
if messages ==# '0T'
|
||||
let messages = ''
|
||||
endif
|
||||
let b:airline_po_stats = printf('%s%s%s', fuzzy, (empty(fuzzy) || empty(untranslated) ? '' : '/'), untranslated)
|
||||
if strlen(b:airline_po_stats) < 8
|
||||
let b:airline_po_stats = messages. (!empty(b:airline_po_stats) ? '/':''). b:airline_po_stats
|
||||
if strlen(b:airline_po_stats) < 10
|
||||
let b:airline_po_stats = messages. (!empty(b:airline_po_stats) && !empty(messages) ? '/':''). b:airline_po_stats
|
||||
endif
|
||||
endif
|
||||
let b:airline_po_stats = '['.b:airline_po_stats. ']'
|
||||
let b:airline_po_stats = '['.b:airline_po_stats. '] '
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#po#on_winenter()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
" only reset cache, if the window size changed
|
||||
if get(b:, 'airline_winwidth', 0) != airline#util#winwidth()
|
||||
let b:airline_winwidth = airline#util#winwidth()
|
||||
@@ -48,11 +55,17 @@ function! airline#extensions#po#on_winenter()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:autocmd_handler()
|
||||
if exists('#airline')
|
||||
unlet! b:airline_po_stats
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#po#apply(...)
|
||||
if &ft ==# 'po'
|
||||
call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}')
|
||||
" Also reset the cache variable, if a window has been split, e.g. the winwidth changed
|
||||
autocmd airline BufWritePost * unlet! b:airline_po_stats
|
||||
autocmd airline BufWritePost * call s:autocmd_handler()
|
||||
autocmd airline WinEnter * call airline#extensions#po#on_winenter()
|
||||
endif
|
||||
endfunction
|
||||
@@ -62,7 +75,12 @@ function! airline#extensions#po#stats()
|
||||
return b:airline_po_stats
|
||||
endif
|
||||
|
||||
let cmd = 'msgfmt --statistics -o /dev/null -- '
|
||||
" Write stdout to null because we only want to see warnings.
|
||||
if g:airline#init#is_windows
|
||||
let cmd = 'msgfmt --statistics -o /NUL '
|
||||
else
|
||||
let cmd = 'msgfmt --statistics -o /dev/null -- '
|
||||
endif
|
||||
if g:airline#init#vim_async
|
||||
call airline#async#get_msgfmt_stat(cmd, expand('%:p'))
|
||||
elseif has("nvim")
|
||||
|
||||
32
autoload/airline/extensions/poetv.vim
Normal file
32
autoload/airline/extensions/poetv.vim
Normal file
@@ -0,0 +1,32 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/petobens/poet_v
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let s:spc = g:airline_symbols.space
|
||||
|
||||
function! airline#extensions#poetv#init(ext)
|
||||
call a:ext.add_statusline_func('airline#extensions#poetv#apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#poetv#apply(...)
|
||||
if &filetype =~# 'python'
|
||||
if get(g:, 'poetv_loaded', 0)
|
||||
let statusline = poetv#statusline()
|
||||
else
|
||||
let statusline = fnamemodify($VIRTUAL_ENV, ':t')
|
||||
endif
|
||||
if !empty(statusline)
|
||||
call airline#extensions#append_to_section('x',
|
||||
\ s:spc.g:airline_right_alt_sep.s:spc.statusline)
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#poetv#update()
|
||||
if &filetype =~# 'python'
|
||||
call airline#extensions#poetv#apply()
|
||||
call airline#update_statusline()
|
||||
endif
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/edkolev/promptline.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
38
autoload/airline/extensions/rufo.vim
Normal file
38
autoload/airline/extensions/rufo.vim
Normal file
@@ -0,0 +1,38 @@
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('g:rufo_loaded')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:spc = g:airline_symbols.space
|
||||
|
||||
if !exists('g:airline#extensions#rufo#symbol')
|
||||
let g:airline#extensions#rufo#symbol = 'RuFo'
|
||||
endif
|
||||
|
||||
function! airline#extensions#rufo#init(ext)
|
||||
call airline#parts#define_raw('rufo', '%{airline#extensions#rufo#get_status}')
|
||||
call a:ext.add_statusline_func('airline#extensions#rufo#apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#rufo#get_status()
|
||||
let out = ''
|
||||
if &ft == "ruby" && g:rufo_auto_formatting == 1
|
||||
let out .= s:spc.g:airline_left_alt_sep.s:spc.g:airline#extensions#rufo#symbol
|
||||
endif
|
||||
return out
|
||||
endfunction
|
||||
|
||||
" This function will be invoked just prior to the statusline getting modified.
|
||||
function! airline#extensions#rufo#apply(...)
|
||||
" First we check for the filetype.
|
||||
if &filetype == "ruby"
|
||||
" section_z.
|
||||
let w:airline_section_z = get(w:, 'airline_section_z', g:airline_section_z)
|
||||
|
||||
" Then we just append this extension to it, optionally using separators.
|
||||
let w:airline_section_z .= '%{airline#extensions#rufo#get_status()}'
|
||||
endif
|
||||
endfunction
|
||||
37
autoload/airline/extensions/scrollbar.vim
Normal file
37
autoload/airline/extensions/scrollbar.vim
Normal file
@@ -0,0 +1,37 @@
|
||||
" MIT License. Copyright (c) 2013-2021
|
||||
" vim: et ts=2 sts=2 sw=2 et
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#scrollbar#calculate() abort
|
||||
if winwidth(0) > get(g:, 'airline#extensions#scrollbar#minwidth', 200)
|
||||
\ && get(w:, 'airline_active', 0)
|
||||
let overwrite = 0
|
||||
if &encoding ==? 'utf-8' && !get(g:, 'airline_symbols_ascii', 0)
|
||||
let [left, right, middle] = [ '|', '|', '█']
|
||||
let overwrite = 1
|
||||
else
|
||||
let [left, right, middle] = [ '[', ']', '-']
|
||||
endif
|
||||
let spc = get(g:, 'airline_symbols.space', ' ')
|
||||
let width = 20 " max width, plus one border and indicator
|
||||
let perc = (line('.') + 0.0) / (line('$') + 0.0)
|
||||
let before = float2nr(round(perc * width))
|
||||
if before >= 0 && line('.') == 1
|
||||
let before = 0
|
||||
let left = (overwrite ? '' : left)
|
||||
endif
|
||||
let after = width - before
|
||||
if (after <= 1 && line('.') == line('$'))
|
||||
let after = 0
|
||||
let right = (overwrite ? '' : right)
|
||||
endif
|
||||
return left . repeat(spc, before) . middle . repeat(spc, after) . right
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#scrollbar#init(ext) abort
|
||||
call airline#parts#define_function('scrollbar', 'airline#extensions#scrollbar#calculate')
|
||||
endfunction
|
||||
56
autoload/airline/extensions/searchcount.vim
Normal file
56
autoload/airline/extensions/searchcount.vim
Normal file
@@ -0,0 +1,56 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" This extension is inspired by vim-anzu <https://github.com/osyo-manga/vim-anzu>.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('*searchcount')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#searchcount#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#searchcount#apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#searchcount#apply(...) abort
|
||||
call airline#extensions#append_to_section('y',
|
||||
\ '%{v:hlsearch ? airline#extensions#searchcount#status() : ""}')
|
||||
endfunction
|
||||
|
||||
function! s:search_term()
|
||||
let show_search_term = get(g:, 'airline#extensions#searchcount#show_search_term', 1)
|
||||
let search_term_limit = get(g:, 'airline#extensions#searchcount#search_term_limit', 8)
|
||||
|
||||
if show_search_term == 0
|
||||
return ''
|
||||
endif
|
||||
" shorten for all width smaller than 300 (this is just a guess)
|
||||
" this uses a non-breaking space, because it looks like
|
||||
" a leading space is stripped :/
|
||||
return "\ua0" . '/' . airline#util#shorten(getreg('/'), 300, search_term_limit)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#searchcount#status() abort
|
||||
try
|
||||
let result = searchcount(#{recompute: 1, maxcount: -1})
|
||||
if empty(result) || result.total ==# 0
|
||||
return ''
|
||||
endif
|
||||
if result.incomplete ==# 1 " timed out
|
||||
return printf('%s[?/??]', s:search_term())
|
||||
elseif result.incomplete ==# 2 " max count exceeded
|
||||
if result.total > result.maxcount &&
|
||||
\ result.current > result.maxcount
|
||||
return printf('%s[>%d/>%d]', s:search_term(),
|
||||
\ result.current, result.total)
|
||||
elseif result.total > result.maxcount
|
||||
return printf('%s[%d/>%d]', s:search_term(),
|
||||
\ result.current, result.total)
|
||||
endif
|
||||
endif
|
||||
return printf('%s[%d/%d]', s:search_term(),
|
||||
\ result.current, result.total)
|
||||
catch
|
||||
return ''
|
||||
endtry
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/vim-syntastic/syntastic
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2 et
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
@@ -10,9 +10,13 @@ endif
|
||||
|
||||
let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0)
|
||||
let s:tabws = get(g:, 'tabws_loaded', 0)
|
||||
let s:current_tabcnt = -1
|
||||
|
||||
" Dictionary functions are not possible in Vim9 Script,
|
||||
" so use the legacy Vim Script implementation
|
||||
|
||||
function! airline#extensions#tabline#init(ext)
|
||||
if has('gui_running')
|
||||
if has('gui_running') && match(&guioptions, 'e') > -1
|
||||
set guioptions-=e
|
||||
endif
|
||||
|
||||
@@ -23,228 +27,457 @@ function! airline#extensions#tabline#init(ext)
|
||||
call a:ext.add_theme_func('airline#extensions#tabline#load_theme')
|
||||
endfunction
|
||||
|
||||
function! s:toggle_off()
|
||||
call airline#extensions#tabline#autoshow#off()
|
||||
call airline#extensions#tabline#tabs#off()
|
||||
call airline#extensions#tabline#buffers#off()
|
||||
if s:ctrlspace
|
||||
call airline#extensions#tabline#ctrlspace#off()
|
||||
endif
|
||||
if s:tabws
|
||||
call airline#extensions#tabline#tabws#off()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:toggle_on()
|
||||
if get(g:, 'airline_statusline_ontop', 0)
|
||||
call airline#extensions#tabline#enable()
|
||||
let &tabline='%!airline#statusline('.winnr().')'
|
||||
return
|
||||
endif
|
||||
call airline#extensions#tabline#autoshow#on()
|
||||
call airline#extensions#tabline#tabs#on()
|
||||
call airline#extensions#tabline#buffers#on()
|
||||
if s:ctrlspace
|
||||
call airline#extensions#tabline#ctrlspace#on()
|
||||
endif
|
||||
if s:tabws
|
||||
call airline#extensions#tabline#tabws#on()
|
||||
endif
|
||||
|
||||
set tabline=%!airline#extensions#tabline#get()
|
||||
endfunction
|
||||
|
||||
function! s:update_tabline()
|
||||
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
||||
return
|
||||
endif
|
||||
let match = expand('<afile>')
|
||||
if pumvisible()
|
||||
return
|
||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||
return
|
||||
" return, if buffer matches ignore pattern or is directory (netrw)
|
||||
elseif empty(match) || airline#util#ignore_buf(match)
|
||||
\ || isdirectory(expand("<afile>"))
|
||||
return
|
||||
endif
|
||||
call airline#util#doautocmd('BufMRUChange')
|
||||
call airline#extensions#tabline#redraw()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#redraw()
|
||||
" sometimes, the tabline is not correctly updated see #1580
|
||||
" so force redraw here
|
||||
if exists(":redrawtabline") == 2
|
||||
redrawtabline
|
||||
else
|
||||
" Have to set a property equal to itself to get airline to re-eval.
|
||||
" Setting `let &tabline=&tabline` destroys the cursor position so we
|
||||
" need something less invasive.
|
||||
let &ro = &ro
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#enable()
|
||||
if &lines > 3
|
||||
set showtabline=2
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#load_theme(palette)
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let colors = get(a:palette, 'tabline', {})
|
||||
let tablabel = get(colors, 'airline_tablabel', a:palette.normal.airline_b)
|
||||
" Theme for tabs on the left
|
||||
let tab = get(colors, 'airline_tab', a:palette.normal.airline_b)
|
||||
let tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a)
|
||||
let tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
|
||||
let tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
|
||||
let tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
|
||||
let tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
|
||||
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
|
||||
else
|
||||
"Fall back to normal airline_c if modified airline_c isn't present
|
||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
|
||||
endif
|
||||
call airline#highlighter#exec('airline_tablabel', tablabel)
|
||||
call airline#highlighter#exec('airline_tab', tab)
|
||||
call airline#highlighter#exec('airline_tabsel', tabsel)
|
||||
call airline#highlighter#exec('airline_tabtype', tabtype)
|
||||
call airline#highlighter#exec('airline_tabfill', tabfill)
|
||||
call airline#highlighter#exec('airline_tabmod', tabmod)
|
||||
call airline#highlighter#exec('airline_tabmod_unsel', tabmodu)
|
||||
call airline#highlighter#exec('airline_tabhid', tabhid)
|
||||
|
||||
" Theme for tabs on the right
|
||||
" label on the right
|
||||
let tablabel_r = get(colors, 'airline_tablabel', a:palette.normal.airline_b)
|
||||
let tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a)
|
||||
let tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c)
|
||||
let tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a)
|
||||
let tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c)
|
||||
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal_modified.airline_c)
|
||||
else
|
||||
"Fall back to normal airline_c if modified airline_c isn't present
|
||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c)
|
||||
endif
|
||||
call airline#highlighter#exec('airline_tablabel_right', tablabel_r)
|
||||
call airline#highlighter#exec('airline_tab_right', tab_right)
|
||||
call airline#highlighter#exec('airline_tabsel_right', tabsel_right)
|
||||
call airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
||||
call airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
||||
call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
||||
endfunction
|
||||
|
||||
let s:current_tabcnt = -1
|
||||
|
||||
function! airline#extensions#tabline#get()
|
||||
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
||||
|
||||
let curtabcnt = tabpagenr('$')
|
||||
if curtabcnt != s:current_tabcnt
|
||||
let s:current_tabcnt = curtabcnt
|
||||
call airline#extensions#tabline#tabs#invalidate()
|
||||
call airline#extensions#tabline#buffers#invalidate()
|
||||
call airline#extensions#tabline#ctrlspace#invalidate()
|
||||
call airline#extensions#tabline#tabws#invalidate()
|
||||
endif
|
||||
|
||||
if !exists('#airline#BufAdd#*')
|
||||
autocmd airline BufAdd * call <sid>update_tabline()
|
||||
endif
|
||||
if s:ctrlspace
|
||||
return airline#extensions#tabline#ctrlspace#get()
|
||||
elseif s:tabws
|
||||
return airline#extensions#tabline#tabws#get()
|
||||
elseif show_buffers && curtabcnt == 1 || !show_tabs
|
||||
return airline#extensions#tabline#buffers#get()
|
||||
else
|
||||
return airline#extensions#tabline#tabs#get()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#title(n)
|
||||
let title = ''
|
||||
if s:taboo
|
||||
let title = TabooTabTitle(a:n)
|
||||
endif
|
||||
|
||||
if empty(title) && exists('*gettabvar')
|
||||
let title = gettabvar(a:n, 'title')
|
||||
endif
|
||||
|
||||
if empty(title)
|
||||
let buflist = tabpagebuflist(a:n)
|
||||
let winnr = tabpagewinnr(a:n)
|
||||
let all_buffers = airline#extensions#tabline#buflist#list()
|
||||
return airline#extensions#tabline#get_buffer_name(
|
||||
\ buflist[winnr - 1],
|
||||
\ filter(buflist, 'index(all_buffers, v:val) != -1'))
|
||||
endif
|
||||
|
||||
return title
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#get_buffer_name(nr, ...)
|
||||
let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list()
|
||||
let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
||||
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#new_builder()
|
||||
let builder_context = {
|
||||
\ 'active' : 1,
|
||||
\ 'tabline' : 1,
|
||||
\ 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep),
|
||||
\ 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep),
|
||||
\ }
|
||||
if get(g:, 'airline_powerline_fonts', 0)
|
||||
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , g:airline_left_sep)
|
||||
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , g:airline_left_alt_sep)
|
||||
else
|
||||
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ')
|
||||
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
|
||||
endif
|
||||
|
||||
return airline#extensions#tabline#builder#new(builder_context)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
||||
let cur = bufnr('%')
|
||||
if cur == a:bufnr
|
||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||
let group = 'airline_tabmod'
|
||||
else
|
||||
let group = 'airline_tabsel'
|
||||
endif
|
||||
else
|
||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||
let group = 'airline_tabmod_unsel'
|
||||
elseif index(a:tab_bufs, a:bufnr) > -1
|
||||
let group = 'airline_tab'
|
||||
else
|
||||
let group = 'airline_tabhid'
|
||||
endif
|
||||
endif
|
||||
return group
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#add_label(dict, type, right)
|
||||
if get(g:, 'airline#extensions#tabline#show_tab_type', 1)
|
||||
call a:dict.add_section_spaced('airline_tablabel'.
|
||||
\ (a:right ? '_right' : ''),
|
||||
call a:dict.add_section_spaced('airline_tablabel'. (a:right ? '_right' : ''),
|
||||
\ get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#add_tab_label(dict)
|
||||
if get(g:, 'airline#extensions#tabline#show_tab_count', 1) && tabpagenr('$') > 1
|
||||
let show_tab_count = get(g:, 'airline#extensions#tabline#show_tab_count', 1)
|
||||
if show_tab_count == 2
|
||||
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
||||
elseif show_tab_count == 1 && tabpagenr('$') > 1
|
||||
call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$')))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
if !exists(":def") || !airline#util#has_vim9_script()
|
||||
|
||||
" Legacy Vim Script Implementation
|
||||
|
||||
function! s:toggle_off()
|
||||
call airline#extensions#tabline#autoshow#off()
|
||||
call airline#extensions#tabline#tabs#off()
|
||||
call airline#extensions#tabline#buffers#off()
|
||||
if s:ctrlspace
|
||||
call airline#extensions#tabline#ctrlspace#off()
|
||||
endif
|
||||
if s:tabws
|
||||
call airline#extensions#tabline#tabws#off()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:toggle_on()
|
||||
if get(g:, 'airline_statusline_ontop', 0)
|
||||
call airline#extensions#tabline#enable()
|
||||
let &tabline='%!airline#statusline('.winnr().')'
|
||||
return
|
||||
endif
|
||||
call airline#extensions#tabline#autoshow#on()
|
||||
call airline#extensions#tabline#tabs#on()
|
||||
call airline#extensions#tabline#buffers#on()
|
||||
if s:ctrlspace
|
||||
call airline#extensions#tabline#ctrlspace#on()
|
||||
endif
|
||||
if s:tabws
|
||||
call airline#extensions#tabline#tabws#on()
|
||||
endif
|
||||
|
||||
set tabline=%!airline#extensions#tabline#get()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#load_theme(palette)
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let colors = get(a:palette, 'tabline', {})
|
||||
let tablabel = get(colors, 'airline_tablabel', a:palette.normal.airline_b)
|
||||
" Theme for tabs on the left
|
||||
let tab = get(colors, 'airline_tab', a:palette.inactive.airline_c)
|
||||
let tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a)
|
||||
let tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a)
|
||||
let tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c)
|
||||
let tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a)
|
||||
let tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c)
|
||||
if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c')
|
||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c)
|
||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal_modified.airline_c)
|
||||
else
|
||||
"Fall back to normal airline_c if modified airline_c isn't present
|
||||
let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c)
|
||||
let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c)
|
||||
endif
|
||||
call airline#highlighter#exec('airline_tablabel', tablabel)
|
||||
call airline#highlighter#exec('airline_tab', tab)
|
||||
call airline#highlighter#exec('airline_tabsel', tabsel)
|
||||
call airline#highlighter#exec('airline_tabtype', tabtype)
|
||||
call airline#highlighter#exec('airline_tabfill', tabfill)
|
||||
call airline#highlighter#exec('airline_tabmod', tabmod)
|
||||
call airline#highlighter#exec('airline_tabmod_unsel', tabmodu)
|
||||
call airline#highlighter#exec('airline_tabhid', tabhid)
|
||||
|
||||
" Theme for tabs on the right
|
||||
" label on the right
|
||||
let tablabel_r = get(colors, 'airline_tablabel', a:palette.normal.airline_b)
|
||||
let tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a)
|
||||
let tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c)
|
||||
let tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a)
|
||||
let tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c)
|
||||
call airline#highlighter#exec('airline_tablabel_right', tablabel_r)
|
||||
call airline#highlighter#exec('airline_tab_right', tab_right)
|
||||
call airline#highlighter#exec('airline_tabsel_right', tabsel_right)
|
||||
call airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
||||
call airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
||||
call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
||||
endfunction
|
||||
|
||||
function! s:update_tabline(forceit)
|
||||
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
||||
return
|
||||
endif
|
||||
" loading a session file
|
||||
" On SessionLoadPost, g:SessionLoad variable is still set :/
|
||||
if !a:forceit && get(g:, 'SessionLoad', 0)
|
||||
return
|
||||
endif
|
||||
let match = expand('<afile>')
|
||||
if pumvisible()
|
||||
return
|
||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||
return
|
||||
" return, if buffer matches ignore pattern or is directory (netrw)
|
||||
elseif empty(match) || airline#util#ignore_buf(match) || isdirectory(match)
|
||||
return
|
||||
endif
|
||||
call airline#util#doautocmd('BufMRUChange')
|
||||
call airline#extensions#tabline#redraw()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#redraw()
|
||||
" sometimes, the tabline is not correctly updated see #1580
|
||||
" so force redraw here
|
||||
if exists(":redrawtabline") == 2
|
||||
redrawtabline
|
||||
else
|
||||
" Have to set a property equal to itself to get airline to re-eval.
|
||||
" Setting `let &tabline=&tabline` destroys the cursor position so we
|
||||
" need something less invasive.
|
||||
let &ro = &ro
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#enable()
|
||||
if &lines > 3
|
||||
set showtabline=2
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
function! airline#extensions#tabline#get()
|
||||
let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||
let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
||||
|
||||
let curtabcnt = tabpagenr('$')
|
||||
if curtabcnt != s:current_tabcnt
|
||||
let s:current_tabcnt = curtabcnt
|
||||
call airline#extensions#tabline#tabs#invalidate()
|
||||
call airline#extensions#tabline#buffers#invalidate()
|
||||
call airline#extensions#tabline#ctrlspace#invalidate()
|
||||
call airline#extensions#tabline#tabws#invalidate()
|
||||
endif
|
||||
|
||||
if !exists('#airline#BufAdd#*')
|
||||
autocmd airline BufAdd * call <sid>update_tabline(0)
|
||||
endif
|
||||
if !exists('#airline#SessionLoadPost')
|
||||
autocmd airline SessionLoadPost * call <sid>update_tabline(1)
|
||||
endif
|
||||
if s:ctrlspace
|
||||
return airline#extensions#tabline#ctrlspace#get()
|
||||
elseif s:tabws
|
||||
return airline#extensions#tabline#tabws#get()
|
||||
elseif show_buffers && curtabcnt == 1 || !show_tabs
|
||||
return airline#extensions#tabline#buffers#get()
|
||||
else
|
||||
return airline#extensions#tabline#tabs#get()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#title(n)
|
||||
let title = ''
|
||||
if s:taboo
|
||||
let title = TabooTabTitle(a:n)
|
||||
endif
|
||||
|
||||
if empty(title) && exists('*gettabvar')
|
||||
let title = gettabvar(a:n, 'title')
|
||||
endif
|
||||
|
||||
let formatter = get(g:, 'airline#extensions#tabline#tabtitle_formatter')
|
||||
if empty(title) && formatter !=# '' && exists("*".formatter)
|
||||
let title = call(formatter, [a:n])
|
||||
endif
|
||||
|
||||
if empty(title)
|
||||
let buflist = tabpagebuflist(a:n)
|
||||
let winnr = tabpagewinnr(a:n)
|
||||
let all_buffers = airline#extensions#tabline#buflist#list()
|
||||
let curbuf = filter(buflist, 'index(all_buffers, v:val) != -1')
|
||||
if len(curbuf) == 0
|
||||
call add(curbuf, tabpagebuflist(a:n)[0])
|
||||
endif
|
||||
" a:n: -> buffer number
|
||||
" curbuf: list of buffers in current tabpage
|
||||
" we need the buffername in current tab page.
|
||||
return airline#extensions#tabline#get_buffer_name(curbuf[0], curbuf)
|
||||
endif
|
||||
|
||||
return title
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#get_buffer_name(nr, ...)
|
||||
let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list()
|
||||
let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default')
|
||||
return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#new_builder()
|
||||
let builder_context = {
|
||||
\ 'active' : 1,
|
||||
\ 'tabline' : 1,
|
||||
\ 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep),
|
||||
\ 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep),
|
||||
\ }
|
||||
if get(g:, 'airline_powerline_fonts', 0)
|
||||
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , g:airline_left_sep)
|
||||
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , g:airline_left_alt_sep)
|
||||
else
|
||||
let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ')
|
||||
let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|')
|
||||
endif
|
||||
|
||||
return airline#extensions#tabline#builder#new(builder_context)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr)
|
||||
let cur = bufnr('%')
|
||||
if cur == a:bufnr
|
||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||
let group = 'airline_tabmod'
|
||||
else
|
||||
let group = 'airline_tabsel'
|
||||
endif
|
||||
else
|
||||
if g:airline_detect_modified && getbufvar(a:bufnr, '&modified')
|
||||
let group = 'airline_tabmod_unsel'
|
||||
elseif index(a:tab_bufs, a:bufnr) > -1
|
||||
let group = 'airline_tab'
|
||||
else
|
||||
let group = 'airline_tabhid'
|
||||
endif
|
||||
endif
|
||||
return group
|
||||
endfunction
|
||||
finish
|
||||
else
|
||||
def s:toggle_off(): void
|
||||
airline#extensions#tabline#autoshow#off()
|
||||
airline#extensions#tabline#tabs#off()
|
||||
airline#extensions#tabline#buffers#off()
|
||||
if s:ctrlspace
|
||||
airline#extensions#tabline#ctrlspace#off()
|
||||
endif
|
||||
if s:tabws
|
||||
airline#extensions#tabline#tabws#off()
|
||||
endif
|
||||
enddef
|
||||
|
||||
def s:toggle_on(): void
|
||||
if get(g:, 'airline_statusline_ontop', 0)
|
||||
airline#extensions#tabline#enable()
|
||||
&tabline = '%!airline#statusline(' .. winnr() .. ')'
|
||||
return
|
||||
endif
|
||||
airline#extensions#tabline#autoshow#on()
|
||||
airline#extensions#tabline#tabs#on()
|
||||
airline#extensions#tabline#buffers#on()
|
||||
if s:ctrlspace
|
||||
airline#extensions#tabline#ctrlspace#on()
|
||||
endif
|
||||
if s:tabws
|
||||
airline#extensions#tabline#tabws#on()
|
||||
endif
|
||||
&tabline = '%!airline#extensions#tabline#get()'
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#load_theme(palette: dict<any>): number
|
||||
# Needs to return a number, because it is implicitly used as extern_funcref
|
||||
# And funcrefs should return a value (see airline#util#exec_funcrefs())
|
||||
if pumvisible()
|
||||
return 0
|
||||
endif
|
||||
var colors = get(palette, 'tabline', {})
|
||||
var tablabel = get(colors, 'airline_tablabel', palette.normal.airline_b)
|
||||
# Theme for tabs on the left
|
||||
var tab = get(colors, 'airline_tab', palette.inactive.airline_c)
|
||||
var tabsel = get(colors, 'airline_tabsel', palette.normal.airline_a)
|
||||
var tabtype = get(colors, 'airline_tabtype', palette.visual.airline_a)
|
||||
var tabfill = get(colors, 'airline_tabfill', palette.normal.airline_c)
|
||||
var tabmod = get(colors, 'airline_tabmod', palette.insert.airline_a)
|
||||
var tabhid = get(colors, 'airline_tabhid', palette.normal.airline_c)
|
||||
var tabmodu = tabhid
|
||||
var tabmodu_right = tabhid
|
||||
if has_key(palette, 'normal_modified') && has_key(palette.normal_modified, 'airline_c')
|
||||
tabmodu = get(colors, 'airline_tabmod_unsel', palette.normal_modified.airline_c)
|
||||
tabmodu_right = get(colors, 'airline_tabmod_unsel_right', palette.normal_modified.airline_c)
|
||||
else
|
||||
# Fall back to normal airline_c if modified airline_c isn't present
|
||||
tabmodu = get(colors, 'airline_tabmod_unsel', palette.normal.airline_c)
|
||||
tabmodu_right = get(colors, 'airline_tabmod_unsel_right', palette.normal.airline_c)
|
||||
endif
|
||||
airline#highlighter#exec('airline_tablabel', tablabel)
|
||||
airline#highlighter#exec('airline_tab', tab)
|
||||
airline#highlighter#exec('airline_tabsel', tabsel)
|
||||
airline#highlighter#exec('airline_tabtype', tabtype)
|
||||
airline#highlighter#exec('airline_tabfill', tabfill)
|
||||
airline#highlighter#exec('airline_tabmod', tabmod)
|
||||
airline#highlighter#exec('airline_tabmod_unsel', tabmodu)
|
||||
airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right)
|
||||
airline#highlighter#exec('airline_tabhid', tabhid)
|
||||
# Theme for tabs on the right
|
||||
var tablabel_r = get(colors, 'airline_tablabel', palette.normal.airline_b)
|
||||
var tabsel_right = get(colors, 'airline_tabsel_right', palette.normal.airline_a)
|
||||
var tab_right = get(colors, 'airline_tab_right', palette.inactive.airline_c)
|
||||
var tabmod_right = get(colors, 'airline_tabmod_right', palette.insert.airline_a)
|
||||
var tabhid_right = get(colors, 'airline_tabhid_right', palette.normal.airline_c)
|
||||
airline#highlighter#exec('airline_tablabel_right', tablabel_r)
|
||||
airline#highlighter#exec('airline_tab_right', tab_right)
|
||||
airline#highlighter#exec('airline_tabsel_right', tabsel_right)
|
||||
airline#highlighter#exec('airline_tabmod_right', tabmod_right)
|
||||
airline#highlighter#exec('airline_tabhid_right', tabhid_right)
|
||||
return 0
|
||||
enddef
|
||||
|
||||
def s:update_tabline(forceit: number): void
|
||||
if get(g:, 'airline#extensions#tabline#disable_refresh', 0)
|
||||
return
|
||||
endif
|
||||
# loading a session file
|
||||
# On SessionLoadPost, g:SessionLoad variable is still set :/
|
||||
if !forceit && get(g:, 'SessionLoad', 0)
|
||||
return
|
||||
endif
|
||||
var match = expand('<afile>')
|
||||
if pumvisible()
|
||||
return
|
||||
elseif !get(g:, 'airline#extensions#tabline#enabled', 0)
|
||||
return
|
||||
# return, if buffer matches ignore pattern or is directory (netrw)
|
||||
elseif empty(match) || airline#util#ignore_buf(match) || isdirectory(match)
|
||||
return
|
||||
endif
|
||||
airline#util#doautocmd('BufMRUChange')
|
||||
airline#extensions#tabline#redraw()
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#redraw(): void
|
||||
# redrawtabline should always be available
|
||||
:redrawtabline
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#enable(): void
|
||||
if &lines > 3
|
||||
&showtabline = 2
|
||||
endif
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#get(): string
|
||||
var show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||
var show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1)
|
||||
|
||||
var curtabcnt = tabpagenr('$')
|
||||
if curtabcnt != s:current_tabcnt
|
||||
s:current_tabcnt = curtabcnt
|
||||
airline#extensions#tabline#tabs#invalidate()
|
||||
airline#extensions#tabline#buffers#invalidate()
|
||||
airline#extensions#tabline#ctrlspace#invalidate()
|
||||
airline#extensions#tabline#tabws#invalidate()
|
||||
endif
|
||||
|
||||
if !exists('#airline#BufAdd#*')
|
||||
autocmd airline BufAdd * call <sid>update_tabline(0)
|
||||
endif
|
||||
if !exists('#airline#SessionLoadPost')
|
||||
autocmd airline SessionLoadPost * call <sid>update_tabline(1)
|
||||
endif
|
||||
if s:ctrlspace
|
||||
return airline#extensions#tabline#ctrlspace#get()
|
||||
elseif s:tabws
|
||||
return airline#extensions#tabline#tabws#get()
|
||||
elseif show_buffers && curtabcnt == 1 || !show_tabs
|
||||
return airline#extensions#tabline#buffers#get()
|
||||
else
|
||||
return airline#extensions#tabline#tabs#get()
|
||||
endif
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#title(n: number): string
|
||||
var title = ''
|
||||
if get(g:, 'airline#extensions#taboo#enabled', 1) &&
|
||||
get(g:, 'loaded_taboo', 0) && exists("*TabooTabTitle")
|
||||
title = call("TabooTabTitle", [n])
|
||||
endif
|
||||
|
||||
if empty(title)
|
||||
title = gettabvar(n, 'title')
|
||||
endif
|
||||
|
||||
var formatter = get(g:, 'airline#extensions#tabline#tabtitle_formatter', '')
|
||||
if empty(title) && !empty(formatter) && exists("*" .. formatter)
|
||||
title = call(formatter, [n])
|
||||
endif
|
||||
|
||||
if empty(title)
|
||||
var buflist = tabpagebuflist(n)
|
||||
var winnr = tabpagewinnr(n)
|
||||
var all_buffers = airline#extensions#tabline#buflist#list()
|
||||
var curbuf = filter(buflist, (_, v) => index(all_buffers, v) != -1)
|
||||
if len(curbuf) == 0
|
||||
add(curbuf, tabpagebuflist(n)[0])
|
||||
endif
|
||||
return airline#extensions#tabline#get_buffer_name(curbuf[0], curbuf)
|
||||
endif
|
||||
return title
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#get_buffer_name(nr: number, buffers = airline#extensions#tabline#buflist#list()): string
|
||||
var Formatter = 'airline#extensions#tabline#formatters#' .. get(g:, 'airline#extensions#tabline#formatter', 'default') .. '#format'
|
||||
return call(Formatter, [ nr, buffers] )
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#new_builder(): dict<any>
|
||||
var builder_context = {
|
||||
'active': 1,
|
||||
'tabline': 1,
|
||||
'right_sep': get(g:, 'airline#extensions#tabline#right_sep', g:airline_right_sep),
|
||||
'right_alt_sep': get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep),
|
||||
'left_sep': get(g:, 'airline#extensions#tabline#left_sep', g:airline_left_sep),
|
||||
'left_alt_sep': get(g:, 'airline#extensions#tabline#left_alt_sep', g:airline_left_alt_sep),
|
||||
}
|
||||
return airline#extensions#tabline#builder#new(builder_context)
|
||||
enddef
|
||||
|
||||
def airline#extensions#tabline#group_of_bufnr(tab_bufs: list<number>, bufnr: number): string
|
||||
var cur = bufnr('%')
|
||||
var group = ''
|
||||
if cur == bufnr
|
||||
if g:airline_detect_modified && getbufvar(bufnr, '&modified')
|
||||
group = 'airline_tabmod'
|
||||
else
|
||||
group = 'airline_tabsel'
|
||||
endif
|
||||
else
|
||||
if g:airline_detect_modified && getbufvar(bufnr, '&modified')
|
||||
group = 'airline_tabmod_unsel'
|
||||
elseif index(tab_bufs, bufnr) > -1
|
||||
group = 'airline_tab'
|
||||
else
|
||||
group = 'airline_tabhid'
|
||||
endif
|
||||
endif
|
||||
return group
|
||||
enddef
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -30,7 +30,7 @@ function! airline#extensions#tabline#autoshow#on()
|
||||
autocmd BufEnter * call <sid>show_tabline(s:buf_min_count, len(airline#extensions#tabline#buflist#list()))
|
||||
autocmd BufUnload * call <sid>show_tabline(s:buf_min_count, len(airline#extensions#tabline#buflist#list()) - 1)
|
||||
else
|
||||
autocmd TabEnter * call <sid>show_tabline(s:tab_min_count, tabpagenr('$'))
|
||||
autocmd TabNew,TabClosed * call <sid>show_tabline(s:tab_min_count, tabpagenr('$'))
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -161,16 +161,15 @@ function! s:get_number(index)
|
||||
return a:index
|
||||
endif
|
||||
let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0)
|
||||
if bidx_mode > 1
|
||||
return join(map(split(a:index+11, '\zs'), 'get(s:number_map, v:val, "")'), '')
|
||||
else
|
||||
return get(s:number_map, a:index+1, '')
|
||||
endif
|
||||
let number_format = bidx_mode > 1 ? '%02d' : '%d'
|
||||
let l:count = bidx_mode == 2 ? a:index+11 : a:index+1
|
||||
return join(map(split(printf(number_format, l:count), '\zs'),
|
||||
\ 'get(s:number_map, v:val, "")'), '')
|
||||
endfunction
|
||||
|
||||
function! s:select_tab(buf_index)
|
||||
" no-op when called in 'keymap_ignored_filetypes'
|
||||
if count(get(g:, 'airline#extensions#tabline#keymap_ignored_filetypes',
|
||||
if count(get(g:, 'airline#extensions#tabline#keymap_ignored_filetypes',
|
||||
\ ['vimfiler', 'nerdtree']), &ft)
|
||||
return
|
||||
endif
|
||||
@@ -197,12 +196,13 @@ function! s:map_keys()
|
||||
let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1)
|
||||
if bidx_mode > 0
|
||||
if bidx_mode == 1
|
||||
for i in range(1, 9)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%d :call <SID>select_tab(%d)<CR>', i, i-1)
|
||||
for i in range(1, 10)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%d :call <SID>select_tab(%d)<CR>', i%10, i-1)
|
||||
endfor
|
||||
else
|
||||
for i in range(11, 99)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%d :call <SID>select_tab(%d)<CR>', i, i-11)
|
||||
let start_idx = bidx_mode == 2 ? 11 : 1
|
||||
for i in range(start_idx, 99)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%02d :call <SID>select_tab(%d)<CR>', i, i-start_idx)
|
||||
endfor
|
||||
endif
|
||||
noremap <silent> <Plug>AirlineSelectPrevTab :<C-u>call <SID>jump_to_tab(-v:count1)<CR>
|
||||
@@ -220,7 +220,11 @@ function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, mo
|
||||
if a:clicks == 1 && a:modifiers !~# '[^ ]'
|
||||
if a:button is# 'l'
|
||||
" left button - switch to buffer
|
||||
silent execute 'buffer' a:minwid
|
||||
try
|
||||
silent execute 'buffer' a:minwid
|
||||
catch
|
||||
call airline#util#warning("Cannot switch buffer, current buffer is modified! See :h 'hidden'")
|
||||
endtry
|
||||
elseif a:button is# 'm'
|
||||
" middle button - delete buffer
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -8,6 +8,10 @@ function! airline#extensions#tabline#buflist#invalidate()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#buflist#clean()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
call airline#extensions#tabline#buflist#invalidate()
|
||||
call airline#extensions#tabline#buffers#invalidate()
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -71,7 +71,7 @@ endfunction
|
||||
|
||||
" Compute the change in size of the tabline caused by separators
|
||||
"
|
||||
" This should be kept up-to-date with |s:get_transitioned_seperator| and
|
||||
" This should be kept up-to-date with |s:get_transitioned_separator| and
|
||||
" |s:get_separator| in autoload/airline/builder.vim
|
||||
function! s:get_separator_change_with_end(new_group, old_group, new_end_group, old_end_group, sep_size, alt_sep_size)
|
||||
let sep_change = 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2016-2019 Kevin Sapper et al.
|
||||
" MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
|
||||
" Plugin: https://github.com/szw/vim-ctrlspace
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -24,13 +24,24 @@ function! airline#extensions#tabline#ctrlspace#on()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#ctrlspace#invalidate()
|
||||
if !exists('#airline')
|
||||
return
|
||||
endif
|
||||
let s:current_bufnr = -1
|
||||
let s:current_tabnr = -1
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, pull_right)
|
||||
let pos_extension = (a:pull_right ? '_right' : '')
|
||||
let buffer_list = ctrlspace#api#BufferList(a:cur_tab)
|
||||
|
||||
let buffer_list = []
|
||||
for bufferindex in sort(keys(ctrlspace#api#Buffers(a:cur_tab)), 'N')
|
||||
for buffer in ctrlspace#api#BufferList(a:cur_tab)
|
||||
if buffer['index'] == bufferindex
|
||||
call add(buffer_list, buffer)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
|
||||
" add by tenfy(tenfyzhong@qq.com)
|
||||
" if the current buffer no in the buffer list
|
||||
|
||||
@@ -1,43 +1,85 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2 et
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||
let s:fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||
let s:buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
||||
let s:buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
|
||||
let s:buf_modified_symbol = g:airline_symbols.modified
|
||||
if !exists(":def") || !airline#util#has_vim9_script()
|
||||
function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
||||
let fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||
let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
||||
let _ = ''
|
||||
|
||||
function! airline#extensions#tabline#formatters#default#format(bufnr, buffers)
|
||||
let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
||||
let _ = ''
|
||||
|
||||
let name = bufname(a:bufnr)
|
||||
if empty(name)
|
||||
let _ .= '[No Name]'
|
||||
else
|
||||
if s:fnamecollapse
|
||||
" Does not handle non-ascii characters like Cyrillic: 'D/Учёба/t.c'
|
||||
"let _ .= substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')
|
||||
let _ .= pathshorten(fnamemodify(name, fmod))
|
||||
let name = bufname(a:bufnr)
|
||||
if empty(name)
|
||||
let _ = '[No Name]'
|
||||
elseif name =~ 'term://'
|
||||
" Neovim Terminal
|
||||
let _ = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '')
|
||||
else
|
||||
let _ .= fnamemodify(name, fmod)
|
||||
if get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||
" Does not handle non-ascii characters like Cyrillic: 'D/Учёба/t.c'
|
||||
"let _ .= substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')
|
||||
let _ = pathshorten(fnamemodify(name, fmod))
|
||||
else
|
||||
let _ = fnamemodify(name, fmod)
|
||||
endif
|
||||
if a:bufnr != bufnr('%') && fnametruncate && strlen(_) > fnametruncate
|
||||
let _ = airline#util#strcharpart(_, 0, fnametruncate)
|
||||
endif
|
||||
endif
|
||||
if a:bufnr != bufnr('%') && s:fnametruncate && strlen(_) > s:fnametruncate
|
||||
let _ = strpart(_, 0, s:fnametruncate)
|
||||
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#formatters#default#wrap_name(bufnr, buffer_name)
|
||||
let buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
||||
let buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
|
||||
|
||||
let _ = buf_nr_show ? printf(buf_nr_format, a:bufnr) : ''
|
||||
let _ .= substitute(a:buffer_name, '\\', '/', 'g')
|
||||
|
||||
if getbufvar(a:bufnr, '&modified') == 1
|
||||
let _ .= g:airline_symbols.modified
|
||||
endif
|
||||
endif
|
||||
return _
|
||||
endfunction
|
||||
finish
|
||||
else
|
||||
" Vim9 Script implementation
|
||||
def airline#extensions#tabline#formatters#default#format(bufnr: number, buffers: list<number>): string
|
||||
var fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0)
|
||||
var fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.')
|
||||
var result = ''
|
||||
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _)
|
||||
endfunction
|
||||
var name = bufname(bufnr)
|
||||
if empty(name)
|
||||
result = '[No Name]'
|
||||
elseif name =~ 'term://'
|
||||
# Neovim Terminal
|
||||
result = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '')
|
||||
else
|
||||
if get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||
result = pathshorten(fnamemodify(name, fmod))
|
||||
else
|
||||
result = fnamemodify(name, fmod)
|
||||
endif
|
||||
if bufnr != bufnr('%') && fnametruncate && strlen(result) > fnametruncate
|
||||
result = airline#util#strcharpart(result, 0, fnametruncate)
|
||||
endif
|
||||
endif
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(bufnr, result)
|
||||
enddef
|
||||
|
||||
function! airline#extensions#tabline#formatters#default#wrap_name(bufnr, buffer_name)
|
||||
let _ = s:buf_nr_show ? printf(s:buf_nr_format, a:bufnr) : ''
|
||||
let _ .= substitute(a:buffer_name, '\\', '/', 'g')
|
||||
def airline#extensions#tabline#formatters#default#wrap_name(bufnr: number, buffer_name: string): string
|
||||
var buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ')
|
||||
var buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0)
|
||||
|
||||
if getbufvar(a:bufnr, '&modified') == 1
|
||||
let _ .= s:buf_modified_symbol
|
||||
endif
|
||||
return _
|
||||
endfunction
|
||||
var result = buf_nr_show ? printf(buf_nr_format, bufnr) : ''
|
||||
result ..= substitute(buffer_name, '\\', '/', 'g')
|
||||
|
||||
if getbufvar(bufnr, '&modified')
|
||||
result ..= g:airline_symbols.modified
|
||||
endif
|
||||
return result
|
||||
enddef
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -7,7 +7,7 @@ function! airline#extensions#tabline#formatters#jsformatter#format(bufnr, buffer
|
||||
let buf = bufname(a:bufnr)
|
||||
let filename = fnamemodify(buf, ':t')
|
||||
|
||||
if filename == 'index.js' || filename == 'index.jsx' || filename == 'index.ts' || filename == 'index.tsx'
|
||||
if filename ==# 'index.js' || filename ==# 'index.jsx' || filename ==# 'index.ts' || filename ==# 'index.tsx' || filename ==# 'index.vue'
|
||||
return fnamemodify(buf, ':p:h:t') . '/i'
|
||||
else
|
||||
return airline#extensions#tabline#formatters#unique_tail_improved#format(a:bufnr, a:buffers)
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1)
|
||||
|
||||
function! airline#extensions#tabline#formatters#short_path#format(bufnr, buffers)
|
||||
let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':p:h:t')
|
||||
let _ = ''
|
||||
|
||||
let name = bufname(a:bufnr)
|
||||
if empty(name)
|
||||
let _ .= '[No Name]'
|
||||
elseif name =~ 'term://'
|
||||
" Neovim Terminal
|
||||
let _ = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '')
|
||||
else
|
||||
let _ .= fnamemodify(name, ':p:h:t') . '/' . fnamemodify(name, ':t')
|
||||
let _ .= fnamemodify(name, fmod) . '/' . fnamemodify(name, ':t')
|
||||
endif
|
||||
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _)
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#tabline#formatters#short_path_improved#format(bufnr, buffers) abort
|
||||
let name = bufname(a:bufnr)
|
||||
if empty(name)
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, '[No Name]')
|
||||
endif
|
||||
|
||||
let tail = s:tail(a:bufnr)
|
||||
let tails = s:tails(a:bufnr, a:buffers)
|
||||
|
||||
if has_key(tails, tail)
|
||||
" Use short path for duplicates
|
||||
return airline#extensions#tabline#formatters#short_path#format(a:bufnr, a:buffers)
|
||||
endif
|
||||
|
||||
" Use tail for unique filenames
|
||||
return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, tail)
|
||||
endfunction
|
||||
|
||||
function! s:tails(self, buffers) abort
|
||||
let tails = {}
|
||||
for nr in a:buffers
|
||||
if nr != a:self
|
||||
let tails[s:tail(nr)] = 1
|
||||
endif
|
||||
endfor
|
||||
return tails
|
||||
endfunction
|
||||
|
||||
function! s:tail(bufnr) abort
|
||||
return fnamemodify(bufname(a:bufnr), ':t')
|
||||
endfunction
|
||||
@@ -1,15 +1,18 @@
|
||||
" MIT License. Copyright (c) 2017-2019 Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2017-2021 Christian Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#tabline#formatters#tabnr#format(tab_nr_type, nr)
|
||||
function! airline#extensions#tabline#formatters#tabnr#format(tab_nr, buflist)
|
||||
let spc=g:airline_symbols.space
|
||||
if a:tab_nr_type == 0 " nr of splits
|
||||
return spc. '%{len(tabpagebuflist('.a:nr.'))}'
|
||||
elseif a:tab_nr_type == 1 " tab number
|
||||
return spc. a:nr
|
||||
else "== 2 splits and tab number
|
||||
return spc. a:nr. '.%{len(tabpagebuflist('.a:nr.'))}'
|
||||
let tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
|
||||
if tab_nr_type == 0 " nr of splits
|
||||
return spc. len(tabpagebuflist(a:tab_nr))
|
||||
elseif tab_nr_type == 1 " tab number
|
||||
" Return only the current tab number
|
||||
return spc. a:tab_nr
|
||||
else " tab_nr_type == 2 splits and tab number
|
||||
" return the tab number followed by the number of buffers (in the tab)
|
||||
return spc. a:tab_nr. spc. len(tabpagebuflist(a:tab_nr))
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -12,7 +12,12 @@ function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffer
|
||||
if empty(name)
|
||||
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, '[No Name]')
|
||||
else
|
||||
let tail = fnamemodify(name, ':s?/\+$??:t')
|
||||
if name =~ 'term://'
|
||||
" Neovim Terminal
|
||||
let tail = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '')
|
||||
else
|
||||
let tail = fnamemodify(name, ':s?/\+$??:t')
|
||||
endif
|
||||
if has_key(tails, tail)
|
||||
let duplicates[nr] = nr
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -22,7 +22,9 @@ function! airline#extensions#tabline#tabs#on()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#tabs#invalidate()
|
||||
let s:current_bufnr = -1
|
||||
if exists('#airline')
|
||||
let s:current_bufnr = -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#tabs#get()
|
||||
@@ -39,6 +41,8 @@ function! airline#extensions#tabline#tabs#get()
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:filtered_buflist = airline#extensions#tabline#buflist#list()
|
||||
|
||||
let b = airline#extensions#tabline#new_builder()
|
||||
|
||||
call airline#extensions#tabline#add_label(b, 'tabs', 0)
|
||||
@@ -50,8 +54,10 @@ function! airline#extensions#tabline#tabs#get()
|
||||
let group = 'airline_tabsel'
|
||||
if g:airline_detect_modified
|
||||
for bi in tabpagebuflist(curtab)
|
||||
if getbufvar(bi, '&modified')
|
||||
let group = 'airline_tabmod'
|
||||
if index(s:filtered_buflist,bi) != -1
|
||||
if getbufvar(bi, '&modified')
|
||||
let group = 'airline_tabmod'
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
@@ -64,8 +70,7 @@ function! airline#extensions#tabline#tabs#get()
|
||||
let val = '%('
|
||||
|
||||
if get(g:, 'airline#extensions#tabline#show_tab_nr', 1)
|
||||
let tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0)
|
||||
let val .= airline#extensions#tabline#tabs#tabnr_formatter(tab_nr_type, a:i)
|
||||
let val .= airline#extensions#tabline#tabs#tabnr_formatter(a:i, tabpagebuflist(a:i))
|
||||
endif
|
||||
|
||||
return val.'%'.a:i.'T %{airline#extensions#tabline#title('.a:i.')} %)'
|
||||
@@ -79,14 +84,16 @@ function! airline#extensions#tabline#tabs#get()
|
||||
|
||||
if get(g:, 'airline#extensions#tabline#show_close_button', 1)
|
||||
call b.add_section('airline_tab_right', ' %999X'.
|
||||
\ get(g:, 'airline#extensions#tabline#close_symbol', 'X').' ')
|
||||
\ get(g:, 'airline#extensions#tabline#close_symbol', 'X').'%X ')
|
||||
endif
|
||||
|
||||
if get(g:, 'airline#extensions#tabline#show_splits', 1) == 1
|
||||
let buffers = tabpagebuflist(curtab)
|
||||
for nr in buffers
|
||||
let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) . "_right"
|
||||
call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)')
|
||||
if index(s:filtered_buflist,nr) != -1
|
||||
let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) . "_right"
|
||||
call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)')
|
||||
endif
|
||||
endfor
|
||||
if get(g:, 'airline#extensions#tabline#show_buffers', 1)
|
||||
call airline#extensions#tabline#add_label(b, 'buffers', 1)
|
||||
@@ -107,8 +114,8 @@ function! airline#extensions#tabline#tabs#map_keys()
|
||||
endif
|
||||
let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1)
|
||||
if bidx_mode == 1
|
||||
for i in range(1, 9)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%d :%dtabn<CR>', i, i)
|
||||
for i in range(1, 10)
|
||||
exe printf('noremap <silent> <Plug>AirlineSelectTab%d :%dtabn<CR>', i%10, i)
|
||||
endfor
|
||||
else
|
||||
for i in range(11, 99)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2016-2019 Kevin Sapper et al.
|
||||
" MIT License. Copyright (c) 2016-2021 Kevin Sapper et al.
|
||||
" PLugin: https://github.com/s1341/vim-tabws
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -24,8 +24,10 @@ function! airline#extensions#tabline#tabws#on()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#tabws#invalidate()
|
||||
let s:current_bufnr = -1
|
||||
let s:current_tabnr = -1
|
||||
if exists('#airline')
|
||||
let s:current_bufnr = -1
|
||||
let s:current_tabnr = -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#tabline#tabws#add_buffer_section(builder, cur_tab, cur_buf, pull_right)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
" xTabline - Reduced version for vim-airline
|
||||
" Plugin: https://github.com/mg979/vim-xtabline
|
||||
" MIT License Copyright (C) 2018-2019 Gianmaria Bajo <mg1979.git@gmail.com>
|
||||
" MIT License Copyright (C) 2018-2021 Gianmaria Bajo <mg1979.git@gmail.com>
|
||||
" tabpagecd:
|
||||
" expanded version by mg979
|
||||
" MIT License Copyright (C) 2012-2013 Kana Natsuno <http://whileimautomaton.net/>
|
||||
" MIT License Copyright (C) 2018-2019 Gianmaria Bajo <mg1979.git@gmail.com>
|
||||
" MIT License Copyright (C) 2018-2021 Gianmaria Bajo <mg1979.git@gmail.com>
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ function! airline#extensions#tabline#xtabline#init()
|
||||
autocmd TabLeave * call s:Do('leave')
|
||||
autocmd TabClosed * call s:Do('close')
|
||||
|
||||
autocmd BufEnter * let g:xtabline_changing_buffer = 0
|
||||
autocmd BufEnter * if exists('#airline') | let g:xtabline_changing_buffer = 0 | endif
|
||||
autocmd BufAdd,BufDelete,BufWrite * call airline#extensions#tabline#xtabline#filter_buffers()
|
||||
augroup END
|
||||
|
||||
@@ -180,6 +180,10 @@ function! airline#extensions#tabline#xtabline#filter_buffers()
|
||||
" 'accepted' is a list of buffer numbers, for quick access.
|
||||
" 'excluded' is a list of buffer numbers, it will be used by Airline to hide buffers.
|
||||
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
if !s:xtabline_filtering | return | endif
|
||||
|
||||
let g:airline#extensions#tabline#exclude_buffers = []
|
||||
@@ -351,6 +355,10 @@ endfunction
|
||||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
function! s:Do(action)
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
let arg = a:action
|
||||
if !s:state | call s:InitCwds() | return | endif
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/majutsushi/tagbar
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -8,7 +8,6 @@ if !exists(':TagbarToggle')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:flags = get(g:, 'airline#extensions#tagbar#flags', '')
|
||||
let s:spc = g:airline_symbols.space
|
||||
let s:init=0
|
||||
|
||||
@@ -35,15 +34,21 @@ function! airline#extensions#tagbar#currenttag()
|
||||
try
|
||||
" try to load the plugin, if filetypes are disabled,
|
||||
" this will cause an error, so try only once
|
||||
let a=tagbar#currenttag('%', '', '')
|
||||
let a = tagbar#currenttag('%s', '', '')
|
||||
catch
|
||||
endtry
|
||||
unlet! a
|
||||
let s:init=1
|
||||
endif
|
||||
let cursize = getfsize(fnamemodify(bufname('%'), ':p'))
|
||||
if cursize > 0 && cursize > get(g:, 'airline#extensions#tagbar#max_filesize', 1024 * 1024)
|
||||
return ''
|
||||
endif
|
||||
let flags = get(g:, 'airline#extensions#tagbar#flags', '')
|
||||
" function tagbar#currenttag does not exist, if filetype is not enabled
|
||||
if s:airline_tagbar_last_lookup_time != localtime() && exists("*tagbar#currenttag")
|
||||
let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
|
||||
let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', flags,
|
||||
\ get(g:, 'airline#extensions#tagbar#searchmethod', 'nearest-stl'))
|
||||
let s:airline_tagbar_last_lookup_time = localtime()
|
||||
endif
|
||||
return s:airline_tagbar_last_lookup_val
|
||||
|
||||
37
autoload/airline/extensions/taglist.vim
Normal file
37
autoload/airline/extensions/taglist.vim
Normal file
@@ -0,0 +1,37 @@
|
||||
" MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr)
|
||||
" Plugin: https://github.com/yegappan/taglist/
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists(':TlistShowTag')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#taglist#currenttag()
|
||||
" Update tag list if taglist is not loaded (else we get an empty tag name)
|
||||
" Load yegappan/taglist and vim-scripts/taglist.vim only once.
|
||||
let tlist_updated = 0
|
||||
if !exists('*taglist#Tlist_Get_Tagname_By_Line()') && !exists('*Tlist_Get_Tagname_By_Line()')
|
||||
TlistUpdate
|
||||
let tlist_updated = 1
|
||||
endif
|
||||
if !tlist_updated && exists('*Tlist_Get_Filenames()')
|
||||
let tlist_filenames = Tlist_Get_Filenames()
|
||||
if stridx(type(tlist_filenames) == type([]) ? join(tlist_filenames, '\n') : tlist_filenames, expand('%:p')) < 0
|
||||
TlistUpdate
|
||||
endif
|
||||
endif
|
||||
" Is this function is not present it'means you use the old vertsion of
|
||||
" tag list : https://github.com/vim-scripts/taglist.vim.
|
||||
" Please use the new version : https://github.com/yegappan/taglist.
|
||||
if exists('*taglist#Tlist_Get_Tagname_By_Line()')
|
||||
return taglist#Tlist_Get_Tagname_By_Line()
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#taglist#init(ext)
|
||||
call airline#parts#define_function('taglist', 'airline#extensions#taglist#currenttag')
|
||||
endfunction
|
||||
@@ -1,55 +1,79 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
call airline#parts#define_function('tmode', 'airline#extensions#term#termmode')
|
||||
call airline#parts#define('terminal', {'text': get(g:airline_mode_map, 't', 't'), 'accent': 'bold'})
|
||||
let s:section_a = airline#section#create_left(['terminal', 'tmode'])
|
||||
|
||||
function! airline#extensions#term#apply(...)
|
||||
if &buftype == 'terminal' || bufname('%')[0] == '!'
|
||||
|
||||
function! s:GetAirlineSection()
|
||||
if exists("g:airline_section_z_term")
|
||||
let section_z = g:airline_section_z_term
|
||||
else
|
||||
let section_z = airline#section#create(['linenr', 'maxlinenr'])
|
||||
endif
|
||||
|
||||
if exists("g:airline_section_a_term")
|
||||
let section_a = g:airline_section_a_term
|
||||
else
|
||||
let section_a = airline#section#create_left(['terminal', 'tmode'])
|
||||
endif
|
||||
return [section_a, section_z]
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#term#apply(...) abort
|
||||
if &buftype ==? 'terminal' || bufname(a:2.bufnr)[0] ==? '!'
|
||||
let sections = s:GetAirlineSection()
|
||||
let spc = g:airline_symbols.space
|
||||
|
||||
call a:1.add_section('airline_a', spc.s:section_a.spc)
|
||||
call a:1.add_section('airline_b', '')
|
||||
call a:1.add_section('airline_term', spc.s:termname())
|
||||
call a:1.add_section_spaced('airline_a', sections[0])
|
||||
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
|
||||
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr))
|
||||
call a:1.split()
|
||||
call a:1.add_section('airline_y', '')
|
||||
call a:1.add_section('airline_z', spc.airline#section#create_right(['linenr', 'maxlinenr']))
|
||||
call a:1.add_section_spaced('airline_z', sections[1])
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#term#inactive_apply(...)
|
||||
if getbufvar(a:2.bufnr, '&buftype') == 'terminal'
|
||||
function! airline#extensions#term#inactive_apply(...) abort
|
||||
if getbufvar(a:2.bufnr, '&buftype') ==? 'terminal'
|
||||
let sections = s:GetAirlineSection()
|
||||
let spc = g:airline_symbols.space
|
||||
call a:1.add_section('airline_a', spc.'TERMINAL'.spc)
|
||||
call a:1.add_section('airline_b', spc.'%f')
|
||||
let neoterm_id = getbufvar(a:2.bufnr, 'neoterm_id')
|
||||
if neoterm_id != ''
|
||||
call a:1.add_section('airline_c', spc.'neoterm_'.neoterm_id.spc)
|
||||
endif
|
||||
call a:1.add_section_spaced('airline_a', sections[0])
|
||||
call a:1.add_section_spaced('airline_b', s:neoterm_id(a:2.bufnr))
|
||||
call a:1.add_section('airline_term', spc.s:termname(a:2.bufnr))
|
||||
call a:1.split()
|
||||
call a:1.add_section('airline_y', '')
|
||||
call a:1.add_section_spaced('airline_z', sections[1])
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#term#termmode()
|
||||
function! airline#extensions#term#termmode() abort
|
||||
let mode = airline#parts#mode()[0]
|
||||
if mode ==? 'T'
|
||||
" don't need to output T, statusline already says "TERMINAL"
|
||||
let mode=''
|
||||
if mode ==? 'T' || mode ==? '-'
|
||||
" We don't need to output T, the statusline already says "TERMINAL".
|
||||
" Also we don't want to output "-" on an inactive statusline.
|
||||
let mode = ''
|
||||
endif
|
||||
return mode
|
||||
endfunction
|
||||
|
||||
function! s:termname()
|
||||
let bufname = bufname('%')
|
||||
function! s:termname(bufnr) abort
|
||||
let bufname = bufname(a:bufnr)
|
||||
if has('nvim')
|
||||
return matchstr(bufname, 'term.*:\zs.*')
|
||||
" Get rid of the leading "term", working dir and process ID.
|
||||
" Afterwards, remove the possibly added neoterm ID.
|
||||
return substitute(matchstr(bufname, 'term.*:\zs.*'),
|
||||
\ ';#neoterm-\d\+', '', '')
|
||||
else
|
||||
" get rid of leading '!'
|
||||
if bufname[0] is# '!'
|
||||
if bufname =~? 'neoterm-\d\+'
|
||||
" Do not return a redundant buffer name, when this is a neoterm terminal.
|
||||
return ''
|
||||
endif
|
||||
" Get rid of the leading "!".
|
||||
if bufname[0] ==? '!'
|
||||
return bufname[1:]
|
||||
else
|
||||
return bufname
|
||||
@@ -57,7 +81,15 @@ function! s:termname()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#term#init(ext)
|
||||
function! s:neoterm_id(bufnr) abort
|
||||
let id = getbufvar(a:bufnr, 'neoterm_id')
|
||||
if id !=? ''
|
||||
let id = 'neoterm-'.id
|
||||
endif
|
||||
return id
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#term#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#term#apply')
|
||||
call a:ext.add_inactive_statusline_func('airline#extensions#term#inactive_apply')
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/edkolev/tmuxline.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/mbbill/undotree
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling, Christian Brabandt et al.
|
||||
" Plugin: https://github.com/chrisbra/unicode.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -9,7 +9,7 @@ if !get(g:, 'loaded_unicodePlugin', 0)
|
||||
endif
|
||||
|
||||
function! airline#extensions#unicode#apply(...)
|
||||
if exists(":UnicodeTable") == 2 && bufname('') ==# 'UnicodeTable'
|
||||
if exists(':UnicodeTable') == 2 && bufname('') =~# '/UnicodeTable.txt'
|
||||
call airline#parts#define('unicode', {
|
||||
\ 'text': '[UnicodeTable]',
|
||||
\ 'accent': 'bold' })
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/Shougo/unite.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
27
autoload/airline/extensions/vim9lsp.vim
Normal file
27
autoload/airline/extensions/vim9lsp.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" MIT License. Copyright (c) 2021 DEMAREST Maxime (maxime@indelog.fr)
|
||||
" Plugin: https://github.com/yegappan/lsp
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('*lsp#lsp#ErrorCount')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:error_symbol = get(g:, 'airline#extensions#vim9lsp#error_symbol', 'E:')
|
||||
let s:warning_symbol = get(g:, 'airline#extensions#vim9lsp#warning_symbol', 'W:')
|
||||
|
||||
function! airline#extensions#vim9lsp#get_warnings() abort
|
||||
let res = get(lsp#lsp#ErrorCount(), 'Warn', 0)
|
||||
return res > 0 ? s:warning_symbol . res : ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vim9lsp#get_errors() abort
|
||||
let res = get(lsp#lsp#ErrorCount(), 'Error', 0)
|
||||
return res > 0 ? s:error_symbol . res : ''
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vim9lsp#init(ext) abort
|
||||
call airline#parts#define_function('vim9lsp_warning_count', 'airline#extensions#vim9lsp#get_warnings')
|
||||
call airline#parts#define_function('vim9lsp_error_count', 'airline#extensions#vim9lsp#get_errors')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2016-2019 Jerome Reybert et al.
|
||||
" MIT License. Copyright (c) 2016-2021 Jerome Reybert et al.
|
||||
" Plugin: https://github.com/jreybert/vimagit
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -9,26 +9,21 @@ if !get(g:, 'loaded_magit', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#vimagit#init(ext)
|
||||
let s:commit_mode = {'ST': 'STAGING', 'CC': 'COMMIT', 'CA': 'AMEND'}
|
||||
|
||||
function! airline#extensions#vimagit#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#vimagit#apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vimagit#get_mode()
|
||||
function! airline#extensions#vimagit#get_mode() abort
|
||||
if ( exists("*magit#get_current_mode") )
|
||||
return magit#get_current_mode()
|
||||
else
|
||||
if ( b:magit_current_commit_mode == '' )
|
||||
return "STAGING"
|
||||
elseif ( b:magit_current_commit_mode == 'CC' )
|
||||
return "COMMIT"
|
||||
elseif ( b:magit_current_commit_mode == 'CA' )
|
||||
return "AMEND"
|
||||
else
|
||||
return "???"
|
||||
endif
|
||||
return get(s:commit_mode, b:magit_current_commit_mode, '???')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vimagit#apply(...)
|
||||
function! airline#extensions#vimagit#apply(...) abort
|
||||
if ( &filetype == 'magit' )
|
||||
let w:airline_section_a = '%{airline#extensions#vimagit#get_mode()}'
|
||||
endif
|
||||
|
||||
30
autoload/airline/extensions/vimcmake.vim
Normal file
30
autoload/airline/extensions/vimcmake.vim
Normal file
@@ -0,0 +1,30 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/cdelledonne/vim-cmake
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#vimcmake#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#vimcmake#apply')
|
||||
call a:ext.add_inactive_statusline_func('airline#extensions#vimcmake#inactive_apply')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vimcmake#apply(...) abort
|
||||
if &filetype ==# 'vimcmake'
|
||||
let spc = g:airline_symbols.space
|
||||
call a:1.add_section('airline_a', spc.'CMake'.spc)
|
||||
call a:1.add_section('airline_b', spc.'%{cmake#statusline#GetBuildInfo(1)}'.spc)
|
||||
call a:1.add_section('airline_c', spc.'%{cmake#statusline#GetCmdInfo()}'.spc)
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vimcmake#inactive_apply(...) abort
|
||||
if getbufvar(a:2.bufnr, '&filetype') ==# 'vimcmake'
|
||||
let spc = g:airline_symbols.space
|
||||
call a:1.add_section('airline_a', spc.'[CMake]')
|
||||
call a:1.add_section('airline_b', spc.'%{cmake#statusline#GetBuildInfo(0)}')
|
||||
call a:1.add_section('airline_c', spc.'%{cmake#statusline#GetCmdInfo()}')
|
||||
return 1
|
||||
endif
|
||||
endfunction
|
||||
25
autoload/airline/extensions/vimodoro.vim
Normal file
25
autoload/airline/extensions/vimodoro.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/VimfanTPdvorak/vimodoro.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists(':RTM')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#vimodoro#apply(...) abort
|
||||
if exists('t:vimodoro')
|
||||
if &ft ==# 'vimodoro'
|
||||
if exists(':PomodoroStatus')
|
||||
call airline#extensions#apply_left_override('vimodoro', '%{PomodoroStatus(1)}')
|
||||
else
|
||||
call airline#extensions#apply_left_override('vimodoro', g:airline_section_y)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vimodoro#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#vimodoro#apply')
|
||||
endfunction
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/lervag/vimtex
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/jmcantrell/vim-virtualenv
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
@@ -11,7 +11,7 @@ function! airline#extensions#virtualenv#init(ext)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#virtualenv#apply(...)
|
||||
if &filetype =~# "python"
|
||||
if match(get(g:, 'airline#extensions#virtualenv#ft', ['python']), &filetype) > -1
|
||||
if get(g:, 'virtualenv_loaded', 0)
|
||||
let statusline = virtualenv#statusline()
|
||||
else
|
||||
@@ -25,7 +25,7 @@ function! airline#extensions#virtualenv#apply(...)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#virtualenv#update()
|
||||
if &filetype =~# "python"
|
||||
if match(get(g:, 'airline#extensions#virtualenv#ft', ['python']), &filetype) > -1
|
||||
call airline#extensions#virtualenv#apply()
|
||||
call airline#update_statusline()
|
||||
endif
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
" MIT License. Copyright (c) 2019 s1341 (github@shmarya.net)
|
||||
" Plugin: https://github.com/liuchngxu/vista.vim
|
||||
" MIT License. Copyright (c) 2021 s1341 (github@shmarya.net)
|
||||
" Plugin: https://github.com/liuchengxu/vista.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
if !get(g:, 'loaded_vista', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#vista#currenttag()
|
||||
function! airline#extensions#vista#currenttag() abort
|
||||
if get(w:, 'airline_active', 0)
|
||||
return get(b:, 'vista_nearest_method_or_function', '')
|
||||
return airline#util#shorten(get(b:, 'vista_nearest_method_or_function', ''), 91, 9)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#vista#init(ext)
|
||||
function! airline#extensions#vista#init(ext) abort
|
||||
call airline#parts#define_function('vista', 'airline#extensions#vista#currenttag')
|
||||
endfunction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
" http://got-ravings.blogspot.com/2008/10/vim-pr0n-statusline-whitespace-flags.html
|
||||
@@ -10,7 +10,9 @@ let s:symbol = get(g:, 'airline#extensions#whitespace#symbol', g:airline_symbols
|
||||
let s:default_checks = ['indent', 'trailing', 'mixed-indent-file', 'conflicts']
|
||||
|
||||
let s:enabled = get(g:, 'airline#extensions#whitespace#enabled', 1)
|
||||
let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file']}
|
||||
let s:skip_check_ft = {'make': ['indent', 'mixed-indent-file'],
|
||||
\ 'csv': ['indent', 'mixed-indent-file'],
|
||||
\ 'mail': ['trailing']}
|
||||
|
||||
function! s:check_mixed_indent()
|
||||
let indent_algo = get(g:, 'airline#extensions#whitespace#mixed_indent_algo', 0)
|
||||
@@ -23,9 +25,9 @@ function! s:check_mixed_indent()
|
||||
let t_l_s = '(^\t+ {' . &ts . ',}' . '\S)'
|
||||
return search('\v' . t_s_t . '|' . t_l_s, 'nw')
|
||||
elseif indent_algo == 2
|
||||
return search('\v(^\t* +\t\s*\S)', 'nw')
|
||||
return search('\v(^\t* +\t\s*\S)', 'nw', 0, 500)
|
||||
else
|
||||
return search('\v(^\t+ +)|(^ +\t+)', 'nw')
|
||||
return search('\v(^\t+ +)|(^ +\t+)', 'nw', 0, 500)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
@@ -50,7 +52,12 @@ endfunction
|
||||
function! s:conflict_marker()
|
||||
" Checks for git conflict markers
|
||||
let annotation = '\%([0-9A-Za-z_.:]\+\)\?'
|
||||
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(=\{7\}\)\|\%(>\{7\} '.annotation.'\)\)$'
|
||||
if match(['rst', 'markdown', 'rmd'], &ft) >= 0
|
||||
" rst filetypes use '=======' as header
|
||||
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(>\{7\} '.annotation.'\)\)$'
|
||||
else
|
||||
let pattern = '^\%(\%(<\{7} '.annotation. '\)\|\%(=\{7\}\)\|\%(>\{7\} '.annotation.'\)\)$'
|
||||
endif
|
||||
return search(pattern, 'nw')
|
||||
endfunction
|
||||
|
||||
@@ -71,7 +78,8 @@ function! airline#extensions#whitespace#check()
|
||||
let check = 'trailing'
|
||||
if index(checks, check) > -1 && index(get(skip_check_ft, &ft, []), check) < 0
|
||||
try
|
||||
let regexp = get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$')
|
||||
let regexp = get(b:, 'airline_whitespace_trailing_regexp',
|
||||
\ get(g:, 'airline#extensions#whitespace#trailing_regexp', '\s$'))
|
||||
let trailing = search(regexp, 'nw')
|
||||
catch
|
||||
call airline#util#warning(printf('Whitespace: error occurred evaluating "%s"', regexp))
|
||||
@@ -176,6 +184,10 @@ function! airline#extensions#whitespace#init(...)
|
||||
endfunction
|
||||
|
||||
function! s:ws_refresh()
|
||||
if !exists('#airline')
|
||||
" airline disabled
|
||||
return
|
||||
endif
|
||||
if get(b:, 'airline_ws_changedtick', 0) == b:changedtick
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" Plugin: https://github.com/wesQ3/vim-windowswap
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2 fdm=marker
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -9,8 +9,18 @@ if exists('*wordcount')
|
||||
if get(g:, 'actual_curbuf', '') != bufnr('')
|
||||
return
|
||||
endif
|
||||
let query = a:visual_mode_active ? 'visual_words' : 'words'
|
||||
return get(wordcount(), query, 0)
|
||||
if &filetype ==# 'tex' && exists('b:vimtex') && get(g:, 'airline#extensions#vimtex#wordcount', 0)
|
||||
" We're in a TeX file and vimtex is a plugin, so use vimtex's wordcount...
|
||||
if a:visual_mode_active
|
||||
" not useful?
|
||||
return
|
||||
else
|
||||
return vimtex#misc#wordcount()
|
||||
endif
|
||||
else
|
||||
let query = a:visual_mode_active ? 'visual_words' : 'words'
|
||||
return get(wordcount(), query, 0)
|
||||
endif
|
||||
endfunction
|
||||
else " Pull wordcount from the g_ctrl-g stats
|
||||
function! s:get_wordcount(visual_mode_active)
|
||||
@@ -86,17 +96,19 @@ endfunction
|
||||
" airline functions {{{1
|
||||
" default filetypes:
|
||||
function! airline#extensions#wordcount#apply(...)
|
||||
let filetypes = get(g:, 'airline#extensions#wordcount#filetypes',
|
||||
\ ['asciidoc', 'help', 'mail', 'markdown', 'org', 'rst', 'tex', 'text'])
|
||||
let filetypes = get(g:, 'airline#extensions#wordcount#filetypes',
|
||||
\ ['asciidoc', 'help', 'mail', 'markdown', 'rmd', 'nroff', 'org', 'rst', 'plaintex', 'tex', 'text'])
|
||||
" export current filetypes settings to global namespace
|
||||
let g:airline#extensions#wordcount#filetypes = filetypes
|
||||
|
||||
" Check if filetype needs testing
|
||||
if did_filetype()
|
||||
" correctly test for compound filetypes (e.g. markdown.pandoc)
|
||||
let ft = substitute(&filetype, '\.', '\\|', 'g')
|
||||
|
||||
" Select test based on type of "filetypes": new=list, old=string
|
||||
if type(filetypes) == get(v:, 't_list', type([]))
|
||||
\ ? index(filetypes, &filetype) > -1 || index(filetypes, 'all') > -1
|
||||
\ ? match(filetypes, '\<'. ft. '\>') > -1 || index(filetypes, 'all') > -1
|
||||
\ : match(&filetype, filetypes) > -1
|
||||
let b:airline_changedtick = -1
|
||||
call s:update_wordcount(1) " force update: ensures initial worcount exists
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling et al.
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
@@ -10,6 +10,7 @@ endfunction
|
||||
|
||||
" Reload format when statusline is rebuilt
|
||||
call airline#extensions#wordcount#formatters#default#update_fmt()
|
||||
|
||||
if index(g:airline_statusline_funcrefs, function('airline#extensions#wordcount#formatters#default#update_fmt')) == -1
|
||||
" only add it, if not already done
|
||||
call airline#add_statusline_funcref(function('airline#extensions#wordcount#formatters#default#update_fmt'))
|
||||
@@ -35,5 +36,12 @@ function! airline#extensions#wordcount#formatters#default#to_string(wordcount)
|
||||
else
|
||||
let str = printf(s:fmt_short, a:wordcount)
|
||||
endif
|
||||
return str . g:airline_symbols.space . g:airline_right_alt_sep . g:airline_symbols.space
|
||||
|
||||
let str .= g:airline_symbols.space
|
||||
|
||||
if !empty(g:airline_right_alt_sep)
|
||||
let str .= g:airline_right_alt_sep . g:airline_symbols.space
|
||||
endif
|
||||
|
||||
return str
|
||||
endfunction
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#extensions#wordcount#formatters#readingtime#update_fmt(...) abort
|
||||
let s:fmt = get(g:, 'airline#extensions#wordcount#formatter#readingtime#fmt', 'About %s minutes')
|
||||
let s:fmt_short = get(g:, 'airline#extensions#wordcount#formatter#readingtime#fmt_short', s:fmt ==# 'About %s minutes' ? '%sW' : s:fmt)
|
||||
endfunction
|
||||
|
||||
" Reload format when statusline is rebuilt
|
||||
call airline#extensions#wordcount#formatters#readingtime#update_fmt()
|
||||
|
||||
if index(g:airline_statusline_funcrefs, function('airline#extensions#wordcount#formatters#readingtime#update_fmt')) == -1
|
||||
" only add it, if not already done
|
||||
call airline#add_statusline_funcref(function('airline#extensions#wordcount#formatters#readingtime#update_fmt'))
|
||||
endif
|
||||
|
||||
if match(get(v:, 'lang', ''), '\v\cC|en') > -1
|
||||
let s:decimal_group = ','
|
||||
elseif match(get(v:, 'lang', ''), '\v\cde|dk|fr|pt') > -1
|
||||
let s:decimal_group = '.'
|
||||
else
|
||||
let s:decimal_group = ''
|
||||
endif
|
||||
|
||||
function! airline#extensions#wordcount#formatters#readingtime#to_string(wordcount) abort
|
||||
if airline#util#winwidth() > 85
|
||||
if a:wordcount > 999
|
||||
" Format number according to locale, e.g. German: 1.245 or English: 1,245
|
||||
let wordcount = substitute(a:wordcount, '\d\@<=\(\(\d\{3\}\)\+\)$', s:decimal_group.'&', 'g')
|
||||
else
|
||||
let wordcount = a:wordcount
|
||||
endif
|
||||
let str = printf(s:fmt, ceil(wordcount / 200.0))
|
||||
else
|
||||
let str = printf(s:fmt_short, ceil(a:wordcount / 200.0))
|
||||
endif
|
||||
|
||||
let str .= g:airline_symbols.space
|
||||
|
||||
if !empty(g:airline_right_alt_sep)
|
||||
let str .= g:airline_right_alt_sep . g:airline_symbols.space
|
||||
endif
|
||||
|
||||
return str
|
||||
endfunction
|
||||
@@ -1,17 +1,37 @@
|
||||
" MIT License. Copyright (c) 2017-2019 YoungHoon Rhiu et al.
|
||||
" MIT License. Copyright (c) 2017-2021 YoungHoon Rhiu et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !exists('g:XkbSwitchLib')
|
||||
if !exists('g:XkbSwitchLib') && !exists('*FcitxCurrentIM') && !has('nvim')
|
||||
finish
|
||||
endif
|
||||
|
||||
function! airline#extensions#xkblayout#status()
|
||||
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
|
||||
let keyboard_layout = split(keyboard_layout, '\.')[-1]
|
||||
let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
|
||||
if exists('g:XkbSwitchLib')
|
||||
let keyboard_layout = libcall(g:XkbSwitchLib, 'Xkb_Switch_getXkbLayout', '')
|
||||
let keyboard_layout = get(split(keyboard_layout, '\.'), -1, '')
|
||||
elseif exists('*FcitxCurrentIMwithRime')
|
||||
let keyboard_layout = FcitxCurrentIMwithRime()
|
||||
elseif exists('*FcitxCurrentIM')
|
||||
let keyboard_layout = FcitxCurrentIM()
|
||||
elseif has('nvim')
|
||||
try
|
||||
let keyboard_layout = luaeval('require"ime".current()')
|
||||
catch /.*/
|
||||
try
|
||||
let keyboard_layout = luaeval('require"fcitx5-ui".displayCurrentIM()')
|
||||
catch /.*/
|
||||
let keyboard_layout = ''
|
||||
endtry
|
||||
endtry
|
||||
else
|
||||
let keyboard_layout = ''
|
||||
endif
|
||||
" substitute keyboard-us to us
|
||||
let keyboard_layout = substitute(keyboard_layout, 'keyboard-', '', 'g')
|
||||
|
||||
let short_codes = get(g:, 'airline#extensions#xkblayout#short_codes', {'2SetKorean': 'KR', 'Chinese': 'CN', 'Japanese': 'JP'})
|
||||
if has_key(short_codes, keyboard_layout)
|
||||
let keyboard_layout = short_codes[keyboard_layout]
|
||||
endif
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
" MIT License. Copyright (c) 2015-2019 Evgeny Firsov et al.
|
||||
" MIT License. Copyright (c) 2015-2021 Evgeny Firsov et al.
|
||||
" Plugin: https://github.com/ycm-core/YouCompleteMe
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
if !get(g:, 'loaded_youcompleteme', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:spc = g:airline_symbols.space
|
||||
let s:error_symbol = get(g:, 'airline#extensions#ycm#error_symbol', 'E:')
|
||||
let s:warning_symbol = get(g:, 'airline#extensions#ycm#warning_symbol', 'W:')
|
||||
@@ -12,8 +17,8 @@ function! airline#extensions#ycm#init(ext)
|
||||
call airline#parts#define_function('ycm_warning_count', 'airline#extensions#ycm#get_warning_count')
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#ycm#get_error_count()
|
||||
if exists(':YcmDiag') && exists("*youcompleteme#GetErrorCount")
|
||||
function! airline#extensions#ycm#get_error_count() abort
|
||||
if exists("*youcompleteme#GetErrorCount")
|
||||
let cnt = youcompleteme#GetErrorCount()
|
||||
|
||||
if cnt != 0
|
||||
@@ -25,7 +30,7 @@ function! airline#extensions#ycm#get_error_count()
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#ycm#get_warning_count()
|
||||
if exists(':YcmDiag') && exists("*youcompleteme#GetWarningCount")
|
||||
if exists("*youcompleteme#GetWarningCount")
|
||||
let cnt = youcompleteme#GetWarningCount()
|
||||
|
||||
if cnt != 0
|
||||
|
||||
27
autoload/airline/extensions/zoomwintab.vim
Normal file
27
autoload/airline/extensions/zoomwintab.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" MIT License. Copyright (c) 2021 Dmitry Geurkov (d.geurkov@gmail.com)
|
||||
" Plugin: https://github.com/troydm/zoomwintab.vim
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
|
||||
" Avoid installing twice
|
||||
if exists('g:loaded_vim_airline_zoomwintab')
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_vim_airline_zoomwintab = 1
|
||||
|
||||
let s:zoomwintab_status_zoomed_in =
|
||||
\ get(g:, 'airline#extensions#zoomwintab#status_zoomed_in', g:airline_left_alt_sep.' Zoomed')
|
||||
let s:zoomwintab_status_zoomed_out =
|
||||
\ get(g:, 'airline#extensions#zoomwintab#status_zoomed_out', '')
|
||||
|
||||
function! airline#extensions#zoomwintab#apply(...) abort
|
||||
call airline#extensions#prepend_to_section('gutter',
|
||||
\ exists('t:zoomwintab') ? s:zoomwintab_status_zoomed_in : s:zoomwintab_status_zoomed_out)
|
||||
endfunction
|
||||
|
||||
function! airline#extensions#zoomwintab#init(ext) abort
|
||||
call a:ext.add_statusline_func('airline#extensions#zoomwintab#apply')
|
||||
endfunction
|
||||
8
autoload/airline/formatter/short_path.vim
Normal file
8
autoload/airline/formatter/short_path.vim
Normal file
@@ -0,0 +1,8 @@
|
||||
scriptencoding utf-8
|
||||
|
||||
function! airline#formatter#short_path#format(val) abort
|
||||
if get(g:, 'airline_stl_path_style', 'default') ==# 'short'
|
||||
return '%{pathshorten(expand("'.a:val.'"))}'
|
||||
endif
|
||||
return a:val
|
||||
endfunction
|
||||
@@ -1,319 +1,685 @@
|
||||
" MIT License. Copyright (c) 2013-2019 Bailey Ling Christian Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2
|
||||
" MIT License. Copyright (c) 2013-2021 Bailey Ling Christian Brabandt et al.
|
||||
" vim: et ts=2 sts=2 sw=2 et
|
||||
|
||||
scriptencoding utf-8
|
||||
|
||||
let s:is_win32term = (has('win32') || has('win64')) &&
|
||||
\ !has('gui_running') &&
|
||||
\ (empty($CONEMUBUILD) || &term !=? 'xterm') &&
|
||||
\ empty($WT_SESSION) &&
|
||||
\ !(exists("+termguicolors") && &termguicolors)
|
||||
|
||||
let s:separators = {}
|
||||
let s:accents = {}
|
||||
let s:hl_groups = {}
|
||||
|
||||
function! s:gui2cui(rgb, fallback)
|
||||
if a:rgb == ''
|
||||
return a:fallback
|
||||
elseif match(a:rgb, '^\%(NONE\|[fb]g\)$') > -1
|
||||
return a:rgb
|
||||
endif
|
||||
let rgb = map(split(a:rgb[1:], '..\zs'), '0 + ("0x".v:val)')
|
||||
return airline#msdos#round_msdos_colors(rgb)
|
||||
endfunction
|
||||
if !exists(":def") || !airline#util#has_vim9_script()
|
||||
|
||||
function! s:group_not_done(list, name)
|
||||
if index(a:list, a:name) == -1
|
||||
call add(a:list, a:name)
|
||||
return 1
|
||||
else
|
||||
if &vbs
|
||||
echomsg printf("airline: group: %s already done, skipping", a:name)
|
||||
" Legacy Vimscript implementation
|
||||
function! s:gui2cui(rgb, fallback) abort
|
||||
if a:rgb == ''
|
||||
return a:fallback
|
||||
elseif match(a:rgb, '^\%(NONE\|[fb]g\)$') > -1
|
||||
return a:rgb
|
||||
elseif a:rgb[0] !~ '#'
|
||||
" a:rgb contains colorname
|
||||
return a:rgb
|
||||
endif
|
||||
return 0
|
||||
endif
|
||||
endfu
|
||||
let rgb = map(split(a:rgb[1:], '..\zs'), '0 + ("0x".v:val)')
|
||||
return airline#msdos#round_msdos_colors(rgb)
|
||||
endfunction
|
||||
|
||||
function! s:get_syn(group, what)
|
||||
if !exists("g:airline_gui_mode")
|
||||
let g:airline_gui_mode = airline#init#gui_mode()
|
||||
endif
|
||||
let color = ''
|
||||
if hlexists(a:group)
|
||||
let color = synIDattr(synIDtrans(hlID(a:group)), a:what, g:airline_gui_mode)
|
||||
endif
|
||||
if empty(color) || color == -1
|
||||
" should always exists
|
||||
let color = synIDattr(synIDtrans(hlID('Normal')), a:what, g:airline_gui_mode)
|
||||
" however, just in case
|
||||
if empty(color) || color == -1
|
||||
let color = 'NONE'
|
||||
endif
|
||||
endif
|
||||
return color
|
||||
endfunction
|
||||
|
||||
function! s:get_array(fg, bg, opts)
|
||||
let opts=empty(a:opts) ? '' : join(a:opts, ',')
|
||||
return g:airline_gui_mode ==# 'gui'
|
||||
\ ? [ a:fg, a:bg, '', '', opts ]
|
||||
\ : [ '', '', a:fg, a:bg, opts ]
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#reset_hlcache()
|
||||
let s:hl_groups = {}
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#get_highlight(group, ...)
|
||||
let reverse = get(g:, 'airline_gui_mode', '') ==# 'gui'
|
||||
\ ? synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'gui')
|
||||
\ : synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')
|
||||
\|| synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'term')
|
||||
if get(g:, 'airline_highlighting_cache', 0) && has_key(s:hl_groups, a:group)
|
||||
let res = s:hl_groups[a:group]
|
||||
return reverse ? [ res[1], res[0], res[3], res[2], res[4] ] : res
|
||||
else
|
||||
let fg = s:get_syn(a:group, 'fg')
|
||||
let bg = s:get_syn(a:group, 'bg')
|
||||
let bold = synIDattr(synIDtrans(hlID(a:group)), 'bold')
|
||||
if reverse
|
||||
let res = s:get_array(bg, fg, bold ? ['bold'] : a:000)
|
||||
function! s:group_not_done(list, name) abort
|
||||
if index(a:list, a:name) == -1
|
||||
call add(a:list, a:name)
|
||||
return 1
|
||||
else
|
||||
let res = s:get_array(fg, bg, bold ? ['bold'] : a:000)
|
||||
if &vbs
|
||||
echomsg printf("airline: group: %s already done, skipping", a:name)
|
||||
endif
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
let s:hl_groups[a:group] = res
|
||||
return res
|
||||
endfunction
|
||||
endfu
|
||||
|
||||
function! airline#highlighter#get_highlight2(fg, bg, ...)
|
||||
let fg = s:get_syn(a:fg[0], a:fg[1])
|
||||
let bg = s:get_syn(a:bg[0], a:bg[1])
|
||||
return s:get_array(fg, bg, a:000)
|
||||
endfunction
|
||||
|
||||
function! s:hl_group_exists(group)
|
||||
if !hlexists(a:group)
|
||||
return 0
|
||||
elseif empty(synIDattr(hlID(a:group), 'fg'))
|
||||
return 0
|
||||
endif
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#exec(group, colors)
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let colors = a:colors
|
||||
if s:is_win32term
|
||||
let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
|
||||
let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
|
||||
endif
|
||||
let old_hi = airline#highlighter#get_highlight(a:group)
|
||||
if len(colors) == 4
|
||||
call add(colors, '')
|
||||
endif
|
||||
if g:airline_gui_mode ==# 'gui'
|
||||
let new_hi = [colors[0], colors[1], '', '', colors[4]]
|
||||
else
|
||||
let new_hi = ['', '', printf("%s", colors[2]), printf("%s", colors[3]), colors[4]]
|
||||
endif
|
||||
let colors = s:CheckDefined(colors)
|
||||
if old_hi != new_hi || !s:hl_group_exists(a:group)
|
||||
let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors))
|
||||
exe cmd
|
||||
if has_key(s:hl_groups, a:group)
|
||||
let s:hl_groups[a:group] = colors
|
||||
function! s:get_syn(group, what, mode) abort
|
||||
let color = ''
|
||||
if hlexists(a:group)
|
||||
let color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode)
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
if empty(color) || color == -1
|
||||
" should always exist
|
||||
let color = synIDattr(synIDtrans(hlID('Normal')), a:what, a:mode)
|
||||
" however, just in case
|
||||
if empty(color) || color == -1
|
||||
let color = 'NONE'
|
||||
endif
|
||||
endif
|
||||
return color
|
||||
endfunction
|
||||
|
||||
function! s:CheckDefined(colors)
|
||||
" Checks, whether the definition of the colors is valid and is not empty or NONE
|
||||
" e.g. if the colors would expand to this:
|
||||
" hi airline_c ctermfg=NONE ctermbg=NONE
|
||||
" that means to clear that highlighting group, therefore, fallback to Normal
|
||||
" highlighting group for the cterm values
|
||||
function! s:get_array(guifg, guibg, ctermfg, ctermbg, opts) abort
|
||||
return [ a:guifg, a:guibg, a:ctermfg, a:ctermbg, empty(a:opts) ? '' : join(a:opts, ',') ]
|
||||
endfunction
|
||||
|
||||
" This only works, if the Normal highlighting group is actually defined, so
|
||||
" return early, if it has been cleared
|
||||
if !exists("g:airline#highlighter#normal_fg_hi")
|
||||
let g:airline#highlighter#normal_fg_hi = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm')
|
||||
endif
|
||||
if empty(g:airline#highlighter#normal_fg_hi) || g:airline#highlighter#normal_fg_hi < 0
|
||||
return a:colors
|
||||
endif
|
||||
function! airline#highlighter#reset_hlcache() abort
|
||||
let s:hl_groups = {}
|
||||
endfunction
|
||||
|
||||
for val in a:colors
|
||||
if !empty(val) && val !=# 'NONE'
|
||||
function! airline#highlighter#get_highlight(group, ...) abort
|
||||
" only check for the cterm reverse attribute
|
||||
" TODO: do we need to check all modes (gui, term, as well)?
|
||||
let reverse = synIDattr(synIDtrans(hlID(a:group)), 'reverse', 'cterm')
|
||||
if get(g:, 'airline_highlighting_cache', 0) && has_key(s:hl_groups, a:group)
|
||||
let res = s:hl_groups[a:group]
|
||||
return reverse ? [ res[1], res[0], res[3], res[2], res[4] ] : res
|
||||
else
|
||||
let ctermfg = s:get_syn(a:group, 'fg', 'cterm')
|
||||
let ctermbg = s:get_syn(a:group, 'bg', 'cterm')
|
||||
let guifg = s:get_syn(a:group, 'fg', 'gui')
|
||||
let guibg = s:get_syn(a:group, 'bg', 'gui')
|
||||
let bold = synIDattr(synIDtrans(hlID(a:group)), 'bold')
|
||||
if reverse
|
||||
let res = s:get_array(guibg, guifg, ctermbg, ctermfg, bold ? ['bold'] : a:000)
|
||||
else
|
||||
let res = s:get_array(guifg, guibg, ctermfg, ctermbg, bold ? ['bold'] : a:000)
|
||||
endif
|
||||
endif
|
||||
let s:hl_groups[a:group] = res
|
||||
return res
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#get_highlight2(fg, bg, ...) abort
|
||||
let guifg = s:get_syn(a:fg[0], a:fg[1], 'gui')
|
||||
let guibg = s:get_syn(a:bg[0], a:bg[1], 'gui')
|
||||
let ctermfg = s:get_syn(a:fg[0], a:fg[1], 'cterm')
|
||||
let ctermbg = s:get_syn(a:bg[0], a:bg[1], 'cterm')
|
||||
return s:get_array(guifg, guibg, ctermfg, ctermbg, a:000)
|
||||
endfunction
|
||||
|
||||
function! s:hl_group_exists(group) abort
|
||||
if !hlexists(a:group)
|
||||
return 0
|
||||
elseif empty(synIDattr(synIDtrans(hlID(a:group)), 'fg'))
|
||||
return 0
|
||||
endif
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
function! s:CheckDefined(colors) abort
|
||||
" Checks, whether the definition of the colors is valid and is not empty or NONE
|
||||
" e.g. if the colors would expand to this:
|
||||
" hi airline_c ctermfg=NONE ctermbg=NONE
|
||||
" that means to clear that highlighting group, therefore, fallback to Normal
|
||||
" highlighting group for the cterm values
|
||||
|
||||
" This only works, if the Normal highlighting group is actually defined, so
|
||||
" return early, if it has been cleared
|
||||
if !exists("g:airline#highlighter#normal_fg_hi")
|
||||
let g:airline#highlighter#normal_fg_hi = synIDattr(synIDtrans(hlID('Normal')), 'fg', 'cterm')
|
||||
endif
|
||||
if empty(g:airline#highlighter#normal_fg_hi) || g:airline#highlighter#normal_fg_hi < 0
|
||||
return a:colors
|
||||
endif
|
||||
endfor
|
||||
" this adds the bold attribute to the term argument of the :hi command,
|
||||
" but at least this makes sure, the group will be defined
|
||||
let fg = g:airline#highlighter#normal_fg_hi
|
||||
let bg = synIDattr(synIDtrans(hlID('Normal')), 'bg', 'cterm')
|
||||
if bg < 0
|
||||
" in case there is no background color defined for Normal
|
||||
let bg = a:colors[3]
|
||||
endif
|
||||
return a:colors[0:1] + [fg, bg] + [a:colors[4]]
|
||||
endfunction
|
||||
|
||||
function! s:GetHiCmd(list)
|
||||
" a:list needs to have 5 items!
|
||||
let res = ''
|
||||
let i = -1
|
||||
while i < 4
|
||||
let i += 1
|
||||
let item = get(a:list, i, '')
|
||||
if item is ''
|
||||
continue
|
||||
for val in a:colors
|
||||
if !empty(val) && val !=# 'NONE'
|
||||
return a:colors
|
||||
endif
|
||||
endfor
|
||||
" this adds the bold attribute to the term argument of the :hi command,
|
||||
" but at least this makes sure, the group will be defined
|
||||
let fg = g:airline#highlighter#normal_fg_hi
|
||||
let bg = synIDattr(synIDtrans(hlID('Normal')), 'bg', 'cterm')
|
||||
if empty(bg) || bg < 0
|
||||
" in case there is no background color defined for Normal
|
||||
let bg = a:colors[3]
|
||||
endif
|
||||
if i == 0
|
||||
let res .= ' guifg='.item
|
||||
elseif i == 1
|
||||
let res .= ' guibg='.item
|
||||
elseif i == 2
|
||||
let res .= ' ctermfg='.item
|
||||
elseif i == 3
|
||||
let res .= ' ctermbg='.item
|
||||
elseif i == 4
|
||||
let res .= printf(' gui=%s cterm=%s term=%s', item, item, item)
|
||||
endif
|
||||
endwhile
|
||||
return res
|
||||
endfunction
|
||||
return a:colors[0:1] + [fg, bg] + [a:colors[4]]
|
||||
endfunction
|
||||
|
||||
function! s:exec_separator(dict, from, to, inverse, suffix)
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let group = a:from.'_to_'.a:to.a:suffix
|
||||
let l:from = airline#themes#get_highlight(a:from.a:suffix)
|
||||
let l:to = airline#themes#get_highlight(a:to.a:suffix)
|
||||
if a:inverse
|
||||
let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
|
||||
else
|
||||
let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
|
||||
endif
|
||||
let a:dict[group] = colors
|
||||
call airline#highlighter#exec(group, colors)
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#load_theme()
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
for winnr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||
call airline#highlighter#highlight_modified_inactive(winbufnr(winnr))
|
||||
endfor
|
||||
call airline#highlighter#highlight(['inactive'])
|
||||
if getbufvar( bufnr('%'), '&modified' )
|
||||
call airline#highlighter#highlight(['normal', 'modified'])
|
||||
else
|
||||
call airline#highlighter#highlight(['normal'])
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#add_separator(from, to, inverse)
|
||||
let s:separators[a:from.a:to] = [a:from, a:to, a:inverse]
|
||||
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#add_accent(accent)
|
||||
let s:accents[a:accent] = 1
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#highlight_modified_inactive(bufnr)
|
||||
if getbufvar(a:bufnr, '&modified')
|
||||
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c')
|
||||
\ ? g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c : []
|
||||
else
|
||||
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive.airline_c')
|
||||
\ ? g:airline#themes#{g:airline_theme}#palette.inactive.airline_c : []
|
||||
endif
|
||||
|
||||
if !empty(colors)
|
||||
call airline#highlighter#exec('airline_c'.(a:bufnr).'_inactive', colors)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#highlight(modes, ...)
|
||||
let bufnr = a:0 ? a:1 : ''
|
||||
let p = g:airline#themes#{g:airline_theme}#palette
|
||||
|
||||
" draw the base mode, followed by any overrides
|
||||
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
||||
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
||||
let airline_grouplist = []
|
||||
let buffers_in_tabpage = sort(tabpagebuflist())
|
||||
if exists("*uniq")
|
||||
let buffers_in_tabpage = uniq(buffers_in_tabpage)
|
||||
endif
|
||||
" mapped might be something like ['normal', 'normal_modified']
|
||||
" if a group is in both modes available, only define the second
|
||||
" that is how this was done previously overwrite the previous definition
|
||||
for mode in reverse(mapped)
|
||||
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
||||
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
||||
for kvp in items(dict)
|
||||
let mode_colors = kvp[1]
|
||||
let name = kvp[0]
|
||||
if name is# 'airline_c' && !empty(bufnr) && suffix is# '_inactive'
|
||||
let name = 'airline_c'.bufnr
|
||||
endif
|
||||
" do not re-create highlighting for buffers that are no longer visible
|
||||
" in the current tabpage
|
||||
if name =~# 'airline_c\d\+'
|
||||
let bnr = matchstr(name, 'airline_c\zs\d\+') + 0
|
||||
if bnr > 0 && index(buffers_in_tabpage, bnr) == -1
|
||||
continue
|
||||
endif
|
||||
elseif (name =~# '_to_') || (name[0:10] is# 'airline_tab' && !empty(suffix))
|
||||
" group will be redefined below at exec_separator
|
||||
" or is not needed for tabline with '_inactive' suffix
|
||||
" since active flag is 1 for builder)
|
||||
continue
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name.suffix)
|
||||
call airline#highlighter#exec(name.suffix, mode_colors)
|
||||
endif
|
||||
|
||||
for accent in keys(s:accents)
|
||||
if !has_key(p.accents, accent)
|
||||
continue
|
||||
endif
|
||||
let colors = copy(mode_colors)
|
||||
if p.accents[accent][0] != ''
|
||||
let colors[0] = p.accents[accent][0]
|
||||
endif
|
||||
if p.accents[accent][2] != ''
|
||||
let colors[2] = p.accents[accent][2]
|
||||
endif
|
||||
if len(colors) >= 5
|
||||
let colors[4] = get(p.accents[accent], 4, '')
|
||||
else
|
||||
call add(colors, get(p.accents[accent], 4, ''))
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name.suffix.'_'.accent)
|
||||
call airline#highlighter#exec(name.suffix.'_'.accent, colors)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
|
||||
if empty(s:separators)
|
||||
" nothing to be done
|
||||
function! s:GetHiCmd(list) abort
|
||||
" a:list needs to have 5 items!
|
||||
let res = ''
|
||||
let i = -1
|
||||
while i < 4
|
||||
let i += 1
|
||||
let item = get(a:list, i, '')
|
||||
if item is ''
|
||||
continue
|
||||
endif
|
||||
" TODO: optimize this
|
||||
for sep in items(s:separators)
|
||||
" we cannot check, that the group already exists, else the separators
|
||||
" might not be correctly defined. But perhaps we can skip above groups
|
||||
" that match the '_to_' name, because they would be redefined here...
|
||||
call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
|
||||
endfor
|
||||
if i == 0
|
||||
let res .= ' guifg='.item
|
||||
elseif i == 1
|
||||
let res .= ' guibg='.item
|
||||
elseif i == 2
|
||||
let res .= ' ctermfg='.item
|
||||
elseif i == 3
|
||||
let res .= ' ctermbg='.item
|
||||
elseif i == 4
|
||||
let res .= printf(' gui=%s cterm=%s term=%s', item, item, item)
|
||||
endif
|
||||
endwhile
|
||||
return res
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#load_theme() abort
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
for winnr in filter(range(1, winnr('$')), 'v:val != winnr()')
|
||||
call airline#highlighter#highlight_modified_inactive(winbufnr(winnr))
|
||||
endfor
|
||||
call airline#highlighter#highlight(['inactive'])
|
||||
if getbufvar( bufnr('%'), '&modified' ) && &buftype != 'terminal'
|
||||
call airline#highlighter#highlight(['normal', 'modified'])
|
||||
else
|
||||
call airline#highlighter#highlight(['normal'])
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#add_accent(accent) abort
|
||||
let s:accents[a:accent] = 1
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#add_separator(from, to, inverse) abort
|
||||
let s:separators[a:from.a:to] = [a:from, a:to, a:inverse]
|
||||
call <sid>exec_separator({}, a:from, a:to, a:inverse, '')
|
||||
endfunction
|
||||
|
||||
function! s:exec_separator(dict, from, to, inverse, suffix) abort
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let group = a:from.'_to_'.a:to.a:suffix
|
||||
let l:from = airline#themes#get_highlight(a:from.a:suffix)
|
||||
let l:to = airline#themes#get_highlight(a:to.a:suffix)
|
||||
if a:inverse
|
||||
let colors = [ l:from[1], l:to[1], l:from[3], l:to[3] ]
|
||||
else
|
||||
let colors = [ l:to[1], l:from[1], l:to[3], l:from[3] ]
|
||||
endif
|
||||
let a:dict[group] = colors
|
||||
call airline#highlighter#exec(group, colors)
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#highlight_modified_inactive(bufnr) abort
|
||||
if getbufvar(a:bufnr, '&modified')
|
||||
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c')
|
||||
\ ? g:airline#themes#{g:airline_theme}#palette.inactive_modified.airline_c : []
|
||||
else
|
||||
let colors = exists('g:airline#themes#{g:airline_theme}#palette.inactive.airline_c')
|
||||
\ ? g:airline#themes#{g:airline_theme}#palette.inactive.airline_c : []
|
||||
endif
|
||||
|
||||
if !empty(colors)
|
||||
call airline#highlighter#exec('airline_c'.(a:bufnr).'_inactive', colors)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#exec(group, colors) abort
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
let colors = a:colors
|
||||
if len(colors) == 4
|
||||
call add(colors, '')
|
||||
endif
|
||||
" colors should always be string values
|
||||
let colors = map(copy(colors), 'type(v:val) != type("") ? string(v:val) : v:val')
|
||||
if s:is_win32term
|
||||
let colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
|
||||
let colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
|
||||
endif
|
||||
let old_hi = airline#highlighter#get_highlight(a:group)
|
||||
let new_hi = [colors[0], colors[1], printf('%s', colors[2]), printf('%s', colors[3]), colors[4]]
|
||||
let colors = s:CheckDefined(colors)
|
||||
if old_hi != new_hi || !s:hl_group_exists(a:group)
|
||||
let cmd = printf('hi %s%s', a:group, s:GetHiCmd(colors))
|
||||
try
|
||||
exe cmd
|
||||
catch /^Vim\%((\a\+)\)\=:E421:/ " color definition not found
|
||||
let group=matchstr(v:exception, '\w\+\ze=')
|
||||
let color=matchstr(v:exception, '=\zs\w\+')
|
||||
let cmd=substitute(cmd, color, 'grey', 'g')
|
||||
exe cmd
|
||||
call airline#util#warning('color definition for group ' . a:group . ' not found, using grey as fallback')
|
||||
catch
|
||||
call airline#util#warning('Error when running command: '. cmd)
|
||||
endtry
|
||||
if has_key(s:hl_groups, a:group)
|
||||
let s:hl_groups[a:group] = colors
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! airline#highlighter#highlight(modes, ...) abort
|
||||
let bufnr = a:0 ? a:1 : ''
|
||||
let p = g:airline#themes#{g:airline_theme}#palette
|
||||
|
||||
" draw the base mode, followed by any overrides
|
||||
let mapped = map(a:modes, 'v:val == a:modes[0] ? v:val : a:modes[0]."_".v:val')
|
||||
let suffix = a:modes[0] == 'inactive' ? '_inactive' : ''
|
||||
let airline_grouplist = []
|
||||
let buffers_in_tabpage = sort(tabpagebuflist())
|
||||
if exists("*uniq")
|
||||
let buffers_in_tabpage = uniq(buffers_in_tabpage)
|
||||
endif
|
||||
" mapped might be something like ['normal', 'normal_modified']
|
||||
" if a group is in both modes available, only define the second
|
||||
" that is how this was done previously overwrite the previous definition
|
||||
for mode in reverse(mapped)
|
||||
if exists('g:airline#themes#{g:airline_theme}#palette[mode]')
|
||||
let dict = g:airline#themes#{g:airline_theme}#palette[mode]
|
||||
for kvp in items(dict)
|
||||
let mode_colors = kvp[1]
|
||||
let name = kvp[0]
|
||||
if name is# 'airline_c' && !empty(bufnr) && suffix is# '_inactive'
|
||||
let name = 'airline_c'.bufnr
|
||||
endif
|
||||
" do not re-create highlighting for buffers that are no longer visible
|
||||
" in the current tabpage
|
||||
if name =~# 'airline_c\d\+'
|
||||
let bnr = matchstr(name, 'airline_c\zs\d\+') + 0
|
||||
if bnr > 0 && index(buffers_in_tabpage, bnr) == -1
|
||||
continue
|
||||
endif
|
||||
elseif (name =~# '_to_') || (name[0:10] is# 'airline_tab' && !empty(suffix))
|
||||
" group will be redefined below at exec_separator
|
||||
" or is not needed for tabline with '_inactive' suffix
|
||||
" since active flag is 1 for builder)
|
||||
continue
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name.suffix)
|
||||
call airline#highlighter#exec(name.suffix, mode_colors)
|
||||
endif
|
||||
|
||||
if !has_key(p, 'accents')
|
||||
" work around a broken installation
|
||||
" shouldn't actually happen, p should always contain accents
|
||||
continue
|
||||
endif
|
||||
|
||||
for accent in keys(s:accents)
|
||||
if !has_key(p.accents, accent)
|
||||
continue
|
||||
endif
|
||||
let colors = copy(mode_colors)
|
||||
if p.accents[accent][0] != ''
|
||||
let colors[0] = p.accents[accent][0]
|
||||
endif
|
||||
if p.accents[accent][2] != ''
|
||||
let colors[2] = p.accents[accent][2]
|
||||
endif
|
||||
if len(colors) >= 5
|
||||
let colors[4] = get(p.accents[accent], 4, '')
|
||||
else
|
||||
call add(colors, get(p.accents[accent], 4, ''))
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name.suffix.'_'.accent)
|
||||
call airline#highlighter#exec(name.suffix.'_'.accent, colors)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
|
||||
if empty(s:separators)
|
||||
" nothing to be done
|
||||
continue
|
||||
endif
|
||||
" TODO: optimize this
|
||||
for sep in items(s:separators)
|
||||
" we cannot check, that the group already exists, else the separators
|
||||
" might not be correctly defined. But perhaps we can skip above groups
|
||||
" that match the '_to_' name, because they would be redefined here...
|
||||
call <sid>exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
|
||||
endfor
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" End legacy VimScript
|
||||
finish
|
||||
|
||||
else
|
||||
|
||||
" This is using Vim9 script
|
||||
|
||||
def s:gui2cui(rgb: string, fallback: string): string
|
||||
if empty(rgb)
|
||||
return fallback
|
||||
elseif match(rgb, '^\%(NONE\|[fb]g\)$') > -1
|
||||
return rgb
|
||||
elseif rgb !~ '#'
|
||||
# rgb contains colorname
|
||||
return rgb
|
||||
endif
|
||||
var _rgb = []
|
||||
_rgb = mapnew(split(rgb[1 : ], '..\zs'), (_, v) => ('0x' .. v)->str2nr(16))
|
||||
return airline#msdos#round_msdos_colors(_rgb)
|
||||
enddef
|
||||
|
||||
def s:group_not_done(list: list<string>, name: string): bool
|
||||
if index(list, name) == -1
|
||||
add(list, name)
|
||||
return true
|
||||
else
|
||||
if &vbs
|
||||
echomsg printf("airline: group: %s already done, skipping", name)
|
||||
endif
|
||||
return false
|
||||
endif
|
||||
enddef
|
||||
|
||||
def s:get_syn(group: string, what: string, mode: string): string
|
||||
var color = ''
|
||||
if hlexists(group)
|
||||
color = hlID(group)->synIDtrans()->synIDattr(what, mode)
|
||||
endif
|
||||
if empty(color) || str2nr(color) == -1
|
||||
# Normal highlighting group should always exist
|
||||
color = hlID('Normal')->synIDtrans()->synIDattr(what, mode)
|
||||
# however, just in case
|
||||
if empty(color) || str2nr(color) == -1
|
||||
color = 'NONE'
|
||||
endif
|
||||
endif
|
||||
return color
|
||||
enddef
|
||||
|
||||
def s:get_array(guifg: string, guibg: string, ctermfg: string, ctermbg: string, opts: list<string>): list<string>
|
||||
return [ guifg, guibg, ctermfg, ctermbg, empty(opts) ? '' : join(opts, ',') ]
|
||||
enddef
|
||||
|
||||
def airline#highlighter#reset_hlcache(): void
|
||||
s:hl_groups = {}
|
||||
enddef
|
||||
|
||||
def airline#highlighter#get_highlight(group: string, rest: list<string> = ['']): list<string>
|
||||
# only check for the cterm reverse attribute
|
||||
# TODO: do we need to check all modes (gui, term, as well)?
|
||||
var reverse = false
|
||||
var bold = false
|
||||
var property: string
|
||||
var res = []
|
||||
var ctermfg: string
|
||||
var ctermbg: string
|
||||
var guifg: string
|
||||
var guibg: string
|
||||
property = hlID(group)->synIDtrans()->synIDattr('reverse', 'cterm')
|
||||
if !empty(property) && property->str2nr()
|
||||
reverse = true
|
||||
endif
|
||||
if get(g:, 'airline_highlighting_cache', 0) && has_key(s:hl_groups, group)
|
||||
res = s:hl_groups[group]
|
||||
return reverse ? [ res[1], res[0], res[3], res[2], res[4] ] : res
|
||||
else
|
||||
ctermfg = s:get_syn(group, 'fg', 'cterm')
|
||||
ctermbg = s:get_syn(group, 'bg', 'cterm')
|
||||
guifg = s:get_syn(group, 'fg', 'gui')
|
||||
guibg = s:get_syn(group, 'bg', 'gui')
|
||||
property = hlID(group)->synIDtrans()->synIDattr('bold')
|
||||
if !empty(property) && property->str2nr()
|
||||
bold = true
|
||||
endif
|
||||
if reverse
|
||||
res = s:get_array(guibg, guifg, ctermbg, ctermfg, bold ? ['bold'] : rest)
|
||||
else
|
||||
res = s:get_array(guifg, guibg, ctermfg, ctermbg, bold ? ['bold'] : rest)
|
||||
endif
|
||||
endif
|
||||
s:hl_groups[group] = res
|
||||
return res
|
||||
enddef
|
||||
|
||||
def airline#highlighter#get_highlight2(fg: list<string>, bg: list<string>, ...rest: list<string>): list<string>
|
||||
var guifg = s:get_syn(fg[0], fg[1], 'gui')
|
||||
var guibg = s:get_syn(bg[0], bg[1], 'gui')
|
||||
var ctermfg = s:get_syn(fg[0], fg[1], 'cterm')
|
||||
var ctermbg = s:get_syn(bg[0], bg[1], 'cterm')
|
||||
return s:get_array(guifg, guibg, ctermfg, ctermbg, filter(rest, (_, v) => !empty(v)))
|
||||
enddef
|
||||
|
||||
def s:hl_group_exists(group: string): bool
|
||||
if !hlexists(group)
|
||||
return false
|
||||
elseif hlID(group)->synIDtrans()->synIDattr('fg')->empty()
|
||||
return false
|
||||
endif
|
||||
return true
|
||||
enddef
|
||||
|
||||
def s:CheckDefined(colors: list<any>): list<any>
|
||||
# Checks, whether the definition of the colors is valid and is not empty or NONE
|
||||
# e.g. if the colors would expand to this:
|
||||
# hi airline_c ctermfg=NONE ctermbg=NONE
|
||||
# that means to clear that highlighting group, therefore, fallback to Normal
|
||||
# highlighting group for the cterm values
|
||||
|
||||
# This only works, if the Normal highlighting group is actually defined,
|
||||
# so return early, if it has been cleared
|
||||
if !exists("g:airline#highlighter#normal_fg_hi")
|
||||
g:airline#highlighter#normal_fg_hi = hlID('Normal')->synIDtrans()->synIDattr('fg', 'cterm')
|
||||
endif
|
||||
if empty(g:airline#highlighter#normal_fg_hi) || str2nr(g:airline#highlighter#normal_fg_hi) < 0
|
||||
return colors
|
||||
endif
|
||||
|
||||
for val in colors
|
||||
if !empty(val) && val !=# 'NONE'
|
||||
return colors
|
||||
endif
|
||||
endfor
|
||||
# this adds the bold attribute to the term argument of the :hi command,
|
||||
# but at least this makes sure, the group will be defined
|
||||
var fg = g:airline#highlighter#normal_fg_hi
|
||||
var bg = hlID('Normal')->synIDtrans()->synIDattr('bg', 'cterm')
|
||||
if empty(bg) || str2nr(bg) < 0
|
||||
# in case there is no background color defined for Normal
|
||||
bg = colors[3]
|
||||
endif
|
||||
return colors[ 0 : 1 ] + [fg, bg] + [colors[4]]
|
||||
enddef
|
||||
|
||||
def s:GetHiCmd(list: list<string>): string
|
||||
# list needs to have 5 items!
|
||||
var res: string
|
||||
var i = -1
|
||||
var item: string
|
||||
while i < 4
|
||||
i += 1
|
||||
item = get(list, i, '')
|
||||
if item is ''
|
||||
continue
|
||||
endif
|
||||
if i == 0
|
||||
res ..= ' guifg=' .. item
|
||||
elseif i == 1
|
||||
res ..= ' guibg=' .. item
|
||||
elseif i == 2
|
||||
res ..= ' ctermfg=' .. item
|
||||
elseif i == 3
|
||||
res ..= ' ctermbg=' .. item
|
||||
elseif i == 4
|
||||
res ..= printf(' gui=%s cterm=%s term=%s', item, item, item)
|
||||
endif
|
||||
endwhile
|
||||
return res
|
||||
enddef
|
||||
|
||||
def airline#highlighter#load_theme(): void
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
for winnr in filter(range(1, winnr('$')), (_, v) => v != winnr())
|
||||
airline#highlighter#highlight_modified_inactive(winbufnr(winnr))
|
||||
endfor
|
||||
airline#highlighter#highlight(['inactive'])
|
||||
if getbufvar( bufnr('%'), '&modified' ) && &buftype != 'terminal'
|
||||
airline#highlighter#highlight(['normal', 'modified'])
|
||||
else
|
||||
airline#highlighter#highlight(['normal'])
|
||||
endif
|
||||
enddef
|
||||
|
||||
def airline#highlighter#add_accent(accent: string): void
|
||||
s:accents[accent] = 1
|
||||
enddef
|
||||
|
||||
def airline#highlighter#add_separator(from: string, to: string, inverse: bool): void
|
||||
s:separators[from .. to] = [from, to, inverse]
|
||||
s:exec_separator({}, from, to, inverse, '')
|
||||
enddef
|
||||
|
||||
def s:exec_separator(dict: dict<any>, from_arg: string, to_arg: string, inverse: bool, suffix: string): void
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
var group = from_arg .. '_to_' .. to_arg .. suffix
|
||||
var from = mapnew(airline#themes#get_highlight(from_arg .. suffix), (_, v) => type(v) != type('') ? string(v) : v)
|
||||
var colors = []
|
||||
var to = mapnew(airline#themes#get_highlight(to_arg .. suffix), (_, v) => type(v) != type('') ? string(v) : v)
|
||||
if inverse
|
||||
colors = [ from[1], to[1], from[3], to[3] ]
|
||||
else
|
||||
colors = [ to[1], from[1], to[3], from[3] ]
|
||||
endif
|
||||
dict[group] = colors
|
||||
airline#highlighter#exec(group, colors)
|
||||
enddef
|
||||
|
||||
def airline#highlighter#highlight_modified_inactive(bufnr: number): void
|
||||
var colors: list<any>
|
||||
var dict1 = eval('g:airline#themes#' .. g:airline_theme .. '#palette')->get('inactive_modified', {})
|
||||
var dict2 = eval('g:airline#themes#' .. g:airline_theme .. '#palette')->get('inactive', {})
|
||||
|
||||
if empty(dict2)
|
||||
return
|
||||
endif
|
||||
|
||||
if getbufvar(bufnr, '&modified')
|
||||
colors = get(dict1, 'airline_c', [])
|
||||
else
|
||||
colors = get(dict2, 'airline_c', [])
|
||||
endif
|
||||
if !empty(colors)
|
||||
airline#highlighter#exec('airline_c' .. bufnr .. '_inactive', colors)
|
||||
endif
|
||||
enddef
|
||||
|
||||
def airline#highlighter#exec(group: string, clrs: list<any>): void
|
||||
if pumvisible()
|
||||
return
|
||||
endif
|
||||
var colors: list<string> = mapnew(copy(clrs), (_, v) => type(v) != type('') ? string(v) : v)
|
||||
if len(colors) == 4
|
||||
add(colors, '')
|
||||
endif
|
||||
if s:is_win32term
|
||||
colors[2] = s:gui2cui(get(colors, 0, ''), get(colors, 2, ''))
|
||||
colors[3] = s:gui2cui(get(colors, 1, ''), get(colors, 3, ''))
|
||||
endif
|
||||
var old_hi: list<string> = airline#highlighter#get_highlight(group)
|
||||
var new_hi: list<string> = colors
|
||||
if old_hi != new_hi || !s:hl_group_exists(group)
|
||||
var cmd = printf('hi %s%s', group, s:GetHiCmd(colors))
|
||||
try
|
||||
:exe cmd
|
||||
catch /^Vim\%((\a\+)\)\=:E421:/
|
||||
var grp = matchstr(v:exception, '\w\+\ze=')
|
||||
var clr = matchstr(v:exception, '=\zs\w\+')
|
||||
cmd = substitute(cmd, clr, 'grey', 'g')
|
||||
:exe cmd
|
||||
airline#util#warning('color ' .. clr .. ' definition for group ' .. grp .. ' not found, using grey as fallback')
|
||||
catch
|
||||
airline#util#warning('Error when running command: ' .. cmd)
|
||||
endtry
|
||||
if has_key(s:hl_groups, group)
|
||||
s:hl_groups[group] = colors
|
||||
endif
|
||||
endif
|
||||
enddef
|
||||
|
||||
def airline#highlighter#highlight(modes: list<string>, bufnr: string = ''): void
|
||||
var p: dict<any> = eval('g:airline#themes#' .. g:airline_theme .. '#palette')
|
||||
|
||||
# draw the base mode, followed by any overrides
|
||||
var mapped = map(modes, (_, v) => v == modes[0] ? v : modes[0] .. "_" .. v)
|
||||
var suffix = ''
|
||||
if modes[0] == 'inactive'
|
||||
suffix = '_inactive'
|
||||
endif
|
||||
var airline_grouplist = []
|
||||
var dict: dict<any>
|
||||
var bnr: number = 0
|
||||
|
||||
var buffers_in_tabpage: list<number> = uniq(sort(tabpagebuflist()))
|
||||
# mapped might be something like ['normal', 'normal_modified']
|
||||
# if a group is in both modes available, only define the second
|
||||
# that is how this was done previously overwrite the previous definition
|
||||
for mode in reverse(mapped)
|
||||
if exists('g:airline#themes#' .. g:airline_theme .. '#palette.' .. mode)
|
||||
dict = eval('g:airline#themes#' .. g:airline_theme .. '#palette.' .. mode)
|
||||
for kvp in items(dict)
|
||||
var mode_colors = kvp[1]
|
||||
var name = kvp[0]
|
||||
if name == 'airline_c' && !empty(bufnr) && suffix == '_inactive'
|
||||
name = 'airline_c' .. bufnr
|
||||
endif
|
||||
# do not re-create highlighting for buffers that are no longer visible
|
||||
# in the current tabpage
|
||||
if name =~# 'airline_c\d\+'
|
||||
bnr = matchstr(name, 'airline_c\zs\d\+')->str2nr()
|
||||
if bnr > 0 && index(buffers_in_tabpage, bnr) == -1
|
||||
continue
|
||||
endif
|
||||
elseif (name =~ '_to_') || (name[ 0 : 10 ] == 'airline_tab' && !empty(suffix))
|
||||
# group will be redefined below at exec_separator
|
||||
# or is not needed for tabline with '_inactive' suffix
|
||||
# since active flag is 1 for builder)
|
||||
continue
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name .. suffix)
|
||||
airline#highlighter#exec(name .. suffix, mode_colors)
|
||||
endif
|
||||
|
||||
if !has_key(p, 'accents')
|
||||
# shouldn't actually happen, p should always contain accents
|
||||
continue
|
||||
endif
|
||||
|
||||
for accent in keys(s:accents)
|
||||
if !has_key(p.accents, accent)
|
||||
continue
|
||||
endif
|
||||
var colors = copy(mode_colors)
|
||||
if p.accents[accent][0] != ''
|
||||
colors[0] = p.accents[accent][0]
|
||||
endif
|
||||
if type(get(p.accents[accent], 2, '')) == type('')
|
||||
colors[2] = get(p.accents[accent], 2, '')
|
||||
else
|
||||
colors[2] = string(p.accents[accent][2])
|
||||
endif
|
||||
if len(colors) >= 5
|
||||
colors[4] = get(p.accents[accent], 4, '')
|
||||
else
|
||||
add(colors, get(p.accents[accent], 4, ''))
|
||||
endif
|
||||
if s:group_not_done(airline_grouplist, name .. suffix .. '_' .. accent)
|
||||
airline#highlighter#exec(name .. suffix .. '_' .. accent, colors)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
|
||||
if empty(s:separators)
|
||||
continue
|
||||
endif
|
||||
for sep in items(s:separators)
|
||||
# we cannot check, that the group already exists, else the separators
|
||||
# might not be correctly defined. But perhaps we can skip above groups
|
||||
# that match the '_to_' name, because they would be redefined here...
|
||||
s:exec_separator(dict, sep[1][0], sep[1][1], sep[1][2], suffix)
|
||||
endfor
|
||||
endif
|
||||
endfor
|
||||
enddef
|
||||
endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user