Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4252f585a6 | ||
|
|
6061f9455d | ||
|
|
3d78ef3474 | ||
|
|
3585ae3dfd | ||
|
|
cbc813388d | ||
|
|
4a888ad037 | ||
|
|
d7522a940d | ||
|
|
b21defd4e4 | ||
|
|
03563f30cc | ||
|
|
232b453c29 | ||
|
|
af22bee84a | ||
|
|
bf89f0bf5f | ||
|
|
63d54926a4 | ||
|
|
4ca8d781cf | ||
|
|
e328b86336 | ||
|
|
1face444b8 | ||
|
|
b9e8f489ed | ||
|
|
6e9c78d1af | ||
|
|
47e4f0361f | ||
|
|
ec5017126c | ||
|
|
958a62bc67 | ||
|
|
75dbf5027d | ||
|
|
229ad7e00d | ||
|
|
ec274db8b2 | ||
|
|
4ad0bf1b22 | ||
|
|
f58c7e7b9e | ||
|
|
1278a3b703 | ||
|
|
ef6ecab861 | ||
|
|
e1cdf92a01 | ||
|
|
ac392cd29b | ||
|
|
cb531cd90b | ||
|
|
1777be0064 | ||
|
|
5ec6112a59 | ||
|
|
0cf5d77f72 | ||
|
|
05e48656de | ||
|
|
76d194b141 | ||
|
|
ceaf02e0bf | ||
|
|
c1e372e2cd | ||
|
|
9ca0af1a24 | ||
|
|
4be722d4a6 | ||
|
|
d9d380e41b | ||
|
|
f81531df42 | ||
|
|
a21e884983 | ||
|
|
ca481b1385 | ||
|
|
e7bba86ccf | ||
|
|
baaa7f0d4b | ||
|
|
748f0db485 | ||
|
|
7b7c204e23 | ||
|
|
f4c4d8f6c6 | ||
|
|
70baf718d2 | ||
|
|
46db63749f | ||
|
|
5a3ac7300d | ||
|
|
71295f9b61 | ||
|
|
3ee787fe08 | ||
|
|
2eab84f8f1 | ||
|
|
d0ad028efc | ||
|
|
195f6f3621 | ||
|
|
1f73ef0ec6 | ||
|
|
6b06bb9ed4 | ||
|
|
d8dabe9e5e | ||
|
|
bd98d76ad6 | ||
|
|
e87c10f225 | ||
|
|
4bda425371 | ||
|
|
4b68a75853 | ||
|
|
a3a5b506de | ||
|
|
de246fa0f5 | ||
|
|
64c32d2e5e | ||
|
|
e8b31c9308 | ||
|
|
50aa25f307 | ||
|
|
0349de6d10 | ||
|
|
2a02054a39 | ||
|
|
ee5b79d3d4 | ||
|
|
20e8249efa | ||
|
|
4511b84d6c | ||
|
|
ddd13df5af | ||
|
|
c2a1298ac0 | ||
|
|
b9fcaf610f | ||
|
|
bad06dc44f | ||
|
|
4c85f25a09 | ||
|
|
b86ae3b170 | ||
|
|
a0dd82a292 | ||
|
|
4077ff3520 | ||
|
|
bccd8e4ab9 | ||
|
|
82211ed829 | ||
|
|
c3beea11ee | ||
|
|
cf7f8a557a | ||
|
|
8f7b19f23b | ||
|
|
e6223cc587 | ||
|
|
b1338beb0f | ||
|
|
a21ee2f22f | ||
|
|
fa9f9aad0b | ||
|
|
8c2bbd2143 | ||
|
|
e9b25e5912 | ||
|
|
71b710b35b | ||
|
|
ea6f2a1490 | ||
|
|
83ad616dd3 | ||
|
|
6f65cffaa1 | ||
|
|
4e54ee0081 | ||
|
|
799432e99e | ||
|
|
0a546e4720 | ||
|
|
4c88eaec49 | ||
|
|
1e6f9a2e52 | ||
|
|
9d013a3529 | ||
|
|
9551ce7031 | ||
|
|
abe720b881 | ||
|
|
edcf93ea81 | ||
|
|
e77be17fe6 | ||
|
|
de9b702f0e | ||
|
|
688586eeec | ||
|
|
331754a890 | ||
|
|
60212005cb | ||
|
|
19cb35d80e | ||
|
|
a2d91acc84 | ||
|
|
7be01383ab | ||
|
|
ae90cca3f0 | ||
|
|
344a9aa90c | ||
|
|
e5435e93de | ||
|
|
dbc95e41bf | ||
|
|
3a966955d4 | ||
|
|
31e551af30 | ||
|
|
1cd5150b70 | ||
|
|
f718060260 | ||
|
|
abcd035e89 | ||
|
|
01f652fcc4 | ||
|
|
7c9bf9cbe3 | ||
|
|
d2db2cc1cd | ||
|
|
16d035c031 | ||
|
|
2293b16709 | ||
|
|
773d25980c | ||
|
|
52d4b564ba | ||
|
|
01babafd72 | ||
|
|
2a8afcb7b6 | ||
|
|
27c33790ef | ||
|
|
fc593d0321 | ||
|
|
ef6c1d4c27 | ||
|
|
310d84d47f | ||
|
|
97572ee1bb | ||
|
|
03d55e94a4 | ||
|
|
84c3a18fab | ||
|
|
6347a00023 | ||
|
|
653a2f5337 | ||
|
|
9e8af5ad93 | ||
|
|
067c6cc7fc | ||
|
|
7114ebd945 | ||
|
|
b4da490138 | ||
|
|
5c69d46dd6 | ||
|
|
07b4d19b8f | ||
|
|
3330d1cc06 | ||
|
|
aa9667a5de | ||
|
|
1567a9c73a | ||
|
|
e8b919723e | ||
|
|
bdd6dc12c2 | ||
|
|
5db36d44fb | ||
|
|
8de3f4e84c | ||
|
|
a256591e90 | ||
|
|
b4c50fa443 | ||
|
|
c8a27d701c | ||
|
|
fd668e559e | ||
|
|
c5fe1f711e | ||
|
|
4b2bbe5d1c | ||
|
|
01eec524be | ||
|
|
c7a36fe7d8 | ||
|
|
69c0f38a7a | ||
|
|
2cf5fe7cea | ||
|
|
6e3e0bf029 | ||
|
|
0e493bcacc | ||
|
|
068ae08f6c | ||
|
|
67962828bb | ||
|
|
56d05ac9d9 | ||
|
|
003038b2a7 | ||
|
|
eefee5e17d | ||
|
|
16a0c97fc9 | ||
|
|
9a45bb3f20 | ||
|
|
1b4a67a1e1 | ||
|
|
a24a65ab6b | ||
|
|
fb9c54bc5d | ||
|
|
cb977a5313 | ||
|
|
1b44d4f2b9 | ||
|
|
e8bbe1e4a1 | ||
|
|
d221504482 | ||
|
|
1ec9f80bdb | ||
|
|
1af5510d03 | ||
|
|
8a426b9e62 | ||
|
|
40554c80ad | ||
|
|
5799af49e2 | ||
|
|
d47fcda9ef | ||
|
|
5aa370e375 | ||
|
|
7449c9e4f6 | ||
|
|
e0ac314fab | ||
|
|
86d92a2fd2 | ||
|
|
4a349a3b45 | ||
|
|
7d5a15f7ce | ||
|
|
6fb97be55c | ||
|
|
b2cd5e38f5 | ||
|
|
2356ba069e | ||
|
|
585266dcef | ||
|
|
d810cc35a7 | ||
|
|
317eedd9b2 | ||
|
|
a1c234e001 | ||
|
|
ba3af27de0 | ||
|
|
bd1319895d | ||
|
|
cd9b2c4810 | ||
|
|
9a2430132f | ||
|
|
1c9b5b46e4 | ||
|
|
bcb4b15669 | ||
|
|
1756c92609 | ||
|
|
0b55d45845 | ||
|
|
5db8d84515 | ||
|
|
e137fddf6e | ||
|
|
5bf92c5246 | ||
|
|
3d7f0159f5 | ||
|
|
92a9e13e7c | ||
|
|
7cab4295ee | ||
|
|
8726de1faa | ||
|
|
dc80ae5795 | ||
|
|
94b01be483 | ||
|
|
f2a0051aa9 | ||
|
|
548e4e4a9d | ||
|
|
962c2bfe69 | ||
|
|
1cd3faffb3 | ||
|
|
cb3c5682a8 | ||
|
|
98ec153e8f | ||
|
|
54d5c13d38 | ||
|
|
f65338092d | ||
|
|
5bb7cd3360 | ||
|
|
d6e08ba2aa | ||
|
|
ac28a9f99e | ||
|
|
7051afe43c | ||
|
|
555f61493a | ||
|
|
a41ab8b830 | ||
|
|
8e0dfc1de6 | ||
|
|
50a5bcc870 | ||
|
|
2685ad8e30 | ||
|
|
e408a1168f | ||
|
|
9e8fb9db74 | ||
|
|
a820c3cafd | ||
|
|
595be18680 | ||
|
|
cc48bfb5c8 | ||
|
|
3d0a0e53f7 | ||
|
|
ee586047e5 | ||
|
|
9961cc0113 | ||
|
|
80c8bf4243 | ||
|
|
a5a5a8220c | ||
|
|
a5ae8899d5 | ||
|
|
eced5f2ec4 | ||
|
|
bfc10e6034 | ||
|
|
ca1ad15ad2 | ||
|
|
22f89cfeef | ||
|
|
f3fe3d46c8 | ||
|
|
0b30ed27d5 | ||
|
|
1658bf9fc6 | ||
|
|
c84f3cd6cf | ||
|
|
31d605608f | ||
|
|
1b2473bb9c | ||
|
|
62538e0b37 | ||
|
|
61b6eda6af | ||
|
|
a52382c6fa | ||
|
|
256ba205e1 | ||
|
|
67e1038b59 | ||
|
|
d0980b7109 | ||
|
|
cafd078e8f | ||
|
|
4fcf9524ee | ||
|
|
4c025cd1bf | ||
|
|
14f0460317 | ||
|
|
2309f7c249 | ||
|
|
85117ef95e | ||
|
|
f73ba68c08 | ||
|
|
3d6d429793 | ||
|
|
fe84f3952d | ||
|
|
d53761839d | ||
|
|
8056b07cdc | ||
|
|
f6f13908fc | ||
|
|
5c22354817 | ||
|
|
094ad61785 | ||
|
|
ddb11c6bc1 | ||
|
|
daa05d6688 | ||
|
|
72812acb76 | ||
|
|
62fc276f8c | ||
|
|
b515097dce | ||
|
|
803143c2e9 | ||
|
|
562a3b2824 | ||
|
|
fed72bd15d | ||
|
|
f016bf634e | ||
|
|
299ce1cde3 | ||
|
|
1107be6417 | ||
|
|
2ac6931c69 | ||
|
|
9ee56ce229 | ||
|
|
d1777dfbdf | ||
|
|
0fece65c3f | ||
|
|
53b7498d64 | ||
|
|
5c71f1421b | ||
|
|
98b531682e | ||
|
|
472fab40cf | ||
|
|
69718c7138 | ||
|
|
13abea4340 | ||
|
|
287b4bae9a | ||
|
|
ba6592c4a9 | ||
|
|
873b846d50 | ||
|
|
5742567630 | ||
|
|
19e17eac58 | ||
|
|
a3e436d16d | ||
|
|
ec7b15fead | ||
|
|
a125c388c3 | ||
|
|
2cf3e2cac5 | ||
|
|
a12455509b | ||
|
|
56ea1714f6 | ||
|
|
ad35d6b6e2 | ||
|
|
e1dfaa7a45 | ||
|
|
60db2ec626 | ||
|
|
7ddd394172 | ||
|
|
28015f639c | ||
|
|
146c0ed54f | ||
|
|
1dacbeb462 | ||
|
|
df9a780846 | ||
|
|
5db010e870 | ||
|
|
d5f4c04424 | ||
|
|
2efac1cd67 | ||
|
|
e800122b45 | ||
|
|
d90747415f | ||
|
|
cdf9250636 | ||
|
|
6b31861aeb | ||
|
|
b63e1502a5 | ||
|
|
57d0714362 | ||
|
|
0e09c3f471 | ||
|
|
2c33e3dd38 | ||
|
|
a1c103b6a8 | ||
|
|
97e155f3a2 | ||
|
|
f7ff16e84e | ||
|
|
130b2bfe00 | ||
|
|
828217b9da | ||
|
|
c87482f107 | ||
|
|
647c3730ae | ||
|
|
253047747a | ||
|
|
475a4c5f38 | ||
|
|
59ec5a5fed | ||
|
|
3c7de7a890 | ||
|
|
e107e1aaf7 | ||
|
|
4e645c3c9f | ||
|
|
780142b150 | ||
|
|
adf0168dcc | ||
|
|
66de975543 | ||
|
|
af597372ec | ||
|
|
ee981f4f4a | ||
|
|
8a21e73cc5 | ||
|
|
8f733755e8 | ||
|
|
80b632ee95 | ||
|
|
2f2389a31b | ||
|
|
21b2680e56 | ||
|
|
7d8f6b85c7 | ||
|
|
80d36cca00 | ||
|
|
9635b45404 | ||
|
|
c02b1a063f | ||
|
|
9b4b288d01 | ||
|
|
753f144d3f | ||
|
|
1b2ec94b75 | ||
|
|
49216a9c93 | ||
|
|
4828cfd282 | ||
|
|
3dc1db884c | ||
|
|
c66fb4ff3d | ||
|
|
cd5433d24b | ||
|
|
bf3e9a323f | ||
|
|
2f61dbfcd8 | ||
|
|
7d74ca4767 | ||
|
|
a3dbef5872 | ||
|
|
bce7e624e2 | ||
|
|
fba26a3a40 | ||
|
|
09f6c4c067 | ||
|
|
6fbb503a16 | ||
|
|
ac83f1d580 | ||
|
|
b2ec48ef30 | ||
|
|
49c809b6be | ||
|
|
a65368aed9 | ||
|
|
f97490d179 | ||
|
|
bf3d4b31a6 | ||
|
|
a28a838c06 | ||
|
|
a82f71334f | ||
|
|
ef40dfcbc1 | ||
|
|
3ee3b0368a | ||
|
|
e08a460543 | ||
|
|
aa95c05179 | ||
|
|
3719521d9a | ||
|
|
e1d0678f6e | ||
|
|
9ffddb6b52 | ||
|
|
44ae0178f4 | ||
|
|
ce5d33a93b | ||
|
|
dceb6a70d4 | ||
|
|
7a06fbb0be | ||
|
|
18705c4da4 | ||
|
|
c60df482e9 | ||
|
|
83992378a4 | ||
|
|
cbb0ddc0a5 | ||
|
|
b5668a037a | ||
|
|
6206a9e27b | ||
|
|
513a279788 | ||
|
|
aca4353902 | ||
|
|
b57cb6cdc0 | ||
|
|
b817c55542 | ||
|
|
4c04160b87 | ||
|
|
e15e79b519 | ||
|
|
1f6dbed26b | ||
|
|
dbf0b56059 | ||
|
|
fd5d50f194 | ||
|
|
3ccd804da9 | ||
|
|
5fab35f2e1 | ||
|
|
f7d2bacb51 | ||
|
|
d84b2d5ee1 | ||
|
|
44182c0ca1 | ||
|
|
89c371397f | ||
|
|
06c324a1a7 | ||
|
|
2c0a094442 | ||
|
|
b97d9a8f85 | ||
|
|
3ec8c80abe | ||
|
|
9b719a6db6 | ||
|
|
6bfd2043e8 | ||
|
|
df00e8ba51 | ||
|
|
47ab9c28a1 | ||
|
|
a49f62d3c6 | ||
|
|
112d3866a5 | ||
|
|
5ae6fba20d | ||
|
|
7244492b36 | ||
|
|
224873b937 | ||
|
|
114d699fc5 | ||
|
|
e75fbed322 | ||
|
|
f10fb47637 | ||
|
|
880d4dc312 | ||
|
|
4801ec86f1 | ||
|
|
7753e03b9e | ||
|
|
02f0122ab4 | ||
|
|
e3f0429a72 | ||
|
|
6224ed6283 | ||
|
|
32a6fd8d29 | ||
|
|
aa8df57cae | ||
|
|
36cb57ecce | ||
|
|
623a2a0d1a | ||
|
|
88ff5595ad | ||
|
|
1d78add91e | ||
|
|
fdb2fa115d | ||
|
|
f82b390aba | ||
|
|
1fac41047d | ||
|
|
fa965c9797 | ||
|
|
e663122638 | ||
|
|
575dc10ddc | ||
|
|
51760c21f5 | ||
|
|
056fcb51f5 | ||
|
|
b571fd9d40 | ||
|
|
0d35b9ddac | ||
|
|
98086892a7 | ||
|
|
29f3259c42 | ||
|
|
9cee2c0921 | ||
|
|
e25f30899d | ||
|
|
9c3f9adb22 | ||
|
|
cf4e0a2c53 | ||
|
|
00e76c72ec | ||
|
|
c62e94923a | ||
|
|
eaaefc236d | ||
|
|
86903ab982 | ||
|
|
4abf43aa99 | ||
|
|
9c134872fb | ||
|
|
aabc3e692f | ||
|
|
c251f88567 | ||
|
|
7b796294a4 | ||
|
|
27031acd08 | ||
|
|
49120177ce | ||
|
|
154ba7d419 | ||
|
|
ea0a221230 | ||
|
|
ebdcd4cae1 | ||
|
|
05e587cfc0 | ||
|
|
e0feea9407 | ||
|
|
c656d6a3bd | ||
|
|
e80a6935d6 | ||
|
|
c80d79a7cc | ||
|
|
59359943eb | ||
|
|
fd2aa6095f | ||
|
|
2b331e7fa1 | ||
|
|
f805cb1cbd | ||
|
|
91c8736146 | ||
|
|
3f44f0761a | ||
|
|
c7fdd68072 | ||
|
|
f832195a81 | ||
|
|
f884caa606 | ||
|
|
2884254afe | ||
|
|
0df87e4e72 | ||
|
|
a21ef38dc5 | ||
|
|
0efa21c9c9 | ||
|
|
d5c64d335e | ||
|
|
ae30324ed4 | ||
|
|
0423da189c | ||
|
|
f22366eac9 | ||
|
|
62841e3dc2 | ||
|
|
98e2957234 | ||
|
|
605cbdf585 | ||
|
|
b16e2bf29c | ||
|
|
2795ed4fb3 | ||
|
|
ea992308f1 | ||
|
|
d390966b4d | ||
|
|
d4193727bd | ||
|
|
232bb5fd7c | ||
|
|
ef16aa7f1c | ||
|
|
ccca491acd | ||
|
|
9e7bec1198 | ||
|
|
45bf74bc03 | ||
|
|
c5fd109a2d | ||
|
|
af1aa860da | ||
|
|
a49c54fc41 | ||
|
|
acceccda87 | ||
|
|
bbbd73fc56 | ||
|
|
3ed108b4ea | ||
|
|
927bde7187 | ||
|
|
a25f4fca70 | ||
|
|
e0f1cb3687 | ||
|
|
668f1d5623 | ||
|
|
6468de54c1 | ||
|
|
0ea1bcb6f1 | ||
|
|
f172cc8362 | ||
|
|
021cf9c6f4 | ||
|
|
af783670e4 | ||
|
|
a6ab121d12 | ||
|
|
7affb8cbfb | ||
|
|
12085f495c | ||
|
|
5236893e5e | ||
|
|
8ac85a03af | ||
|
|
e9aa4b5234 | ||
|
|
bcbde0e1a2 | ||
|
|
29f04fcc9d | ||
|
|
202c62a2d3 | ||
|
|
5d1156ddb2 | ||
|
|
9ba08bf788 | ||
|
|
dcf5d64437 | ||
|
|
9089232ec7 | ||
|
|
d9c7a1b504 | ||
|
|
87f3415f6f | ||
|
|
f27f7b1502 | ||
|
|
f4d24e35ae | ||
|
|
462a20d66a | ||
|
|
7f34fee4a4 | ||
|
|
e197049a59 | ||
|
|
b49ba0a254 | ||
|
|
3f1e9cf37a | ||
|
|
22ea576682 | ||
|
|
3b05354337 | ||
|
|
268c37e52f | ||
|
|
11d75cf597 | ||
|
|
33422b0f3a | ||
|
|
cf46fc09a5 | ||
|
|
edbd88fdb7 | ||
|
|
9157cafb61 | ||
|
|
a31d8fb228 | ||
|
|
bdd63eeedc | ||
|
|
c98334ae08 | ||
|
|
17b5336254 | ||
|
|
021b5c07f5 | ||
|
|
b0adf7a565 | ||
|
|
472278f2e3 | ||
|
|
92eb5ca740 | ||
|
|
6b4435caef | ||
|
|
936f368036 | ||
|
|
e01aafeea5 | ||
|
|
559acbd135 | ||
|
|
bb04ba07cb | ||
|
|
fcfb814594 | ||
|
|
3fc587b54d | ||
|
|
766d52db12 | ||
|
|
f8727f1659 | ||
|
|
756713b9c3 | ||
|
|
0d69a528a8 | ||
|
|
652f703767 | ||
|
|
020daec5fc | ||
|
|
845ac0e615 | ||
|
|
b54c4ca5de | ||
|
|
fec301504f | ||
|
|
c1544dd020 | ||
|
|
08dfe17678 | ||
|
|
f72c36f4ab | ||
|
|
5531edf8e4 | ||
|
|
355178a7bb | ||
|
|
1e2d299bf9 | ||
|
|
f35aa3c604 | ||
|
|
15f20e8437 | ||
|
|
a6ea40d7ba | ||
|
|
ff14ba61f9 | ||
|
|
665fa24783 | ||
|
|
2e1d53971e | ||
|
|
2567ebaee4 | ||
|
|
3669af3517 | ||
|
|
1e658562f0 | ||
|
|
6b507c3368 | ||
|
|
0023233eef | ||
|
|
05d57bba29 | ||
|
|
d257c4dd85 | ||
|
|
4ff7208c66 | ||
|
|
9f1dc90269 | ||
|
|
18a050d54f | ||
|
|
036fb6cd66 | ||
|
|
2a9d24b4a8 | ||
|
|
3be058da26 | ||
|
|
79f8c39dd2 | ||
|
|
18f3b8b93e | ||
|
|
6d98a11dfe | ||
|
|
cb3f7538e8 | ||
|
|
1bedbbe5c4 | ||
|
|
cf8b2ce1cb | ||
|
|
9c1a3ad2a2 | ||
|
|
1d7602e3e4 | ||
|
|
dbc4979ebd | ||
|
|
72b9fa5018 | ||
|
|
8be8d36474 | ||
|
|
2c74abe936 | ||
|
|
82f07879f3 | ||
|
|
5f7f2df2b7 | ||
|
|
c6857e2a72 | ||
|
|
f0b491cd94 | ||
|
|
5bb85b8176 | ||
|
|
75aa73762f | ||
|
|
2952f4d5c7 | ||
|
|
6f2b358d3a | ||
|
|
35b210b46a | ||
|
|
d1f23d1bc3 | ||
|
|
643d1bd7d8 | ||
|
|
3e83ec5314 | ||
|
|
d16ffabcfd | ||
|
|
0d7345bc44 | ||
|
|
42bf581337 | ||
|
|
4a934e9a82 | ||
|
|
c4a8ecf47f | ||
|
|
7658c3d978 | ||
|
|
6d0150ab0b | ||
|
|
e6ae79127f | ||
|
|
10ddd491c1 | ||
|
|
605c9e0458 | ||
|
|
c38c4ec0cf | ||
|
|
484751c422 | ||
|
|
734562cc36 | ||
|
|
5ff50c63e9 | ||
|
|
df4ff8dc6f | ||
|
|
4dbb1a71e2 | ||
|
|
9627b5e6b4 | ||
|
|
f6ace73656 | ||
|
|
0bbb88f6db | ||
|
|
1aef7e9a97 | ||
|
|
3a209318bb | ||
|
|
2988a22eb8 | ||
|
|
e71b9bbece | ||
|
|
a75d59a2bf | ||
|
|
61778b20f1 | ||
|
|
0a55de407e | ||
|
|
a5bd221680 | ||
|
|
9f8ce72e55 | ||
|
|
c6084220de | ||
|
|
e219b04e82 | ||
|
|
b16c5a2f70 | ||
|
|
8b4118605b | ||
|
|
7db1fb75b9 | ||
|
|
3ee8f9876c | ||
|
|
02b4194e1e | ||
|
|
45f940f3fb | ||
|
|
20c3eca0b6 | ||
|
|
07d3192f6f | ||
|
|
1399a0c762 | ||
|
|
1aed70921e | ||
|
|
c5703f2d03 | ||
|
|
0914c33ab8 | ||
|
|
8355a055d1 | ||
|
|
ac069fd543 | ||
|
|
6d864a62bf | ||
|
|
7f6cf1bc4b | ||
|
|
d7729017c1 | ||
|
|
0e6f3c81b9 | ||
|
|
4730350ca8 | ||
|
|
30e7c8cefe | ||
|
|
27e3cf69bc | ||
|
|
1f89919d27 | ||
|
|
a3df1f4cc4 | ||
|
|
e8574170f5 | ||
|
|
6881fdfefb | ||
|
|
327c067fd2 | ||
|
|
57f9d0dbd3 | ||
|
|
d50d11435d | ||
|
|
f3f3e51d0f | ||
|
|
c721db661f | ||
|
|
0d9ae5f497 | ||
|
|
135249e19e | ||
|
|
50b00f4737 | ||
|
|
82eb17d95b | ||
|
|
81ce6877ae | ||
|
|
da0b4df3c5 | ||
|
|
48ad79cd93 | ||
|
|
4005cbc854 | ||
|
|
8ddf78a9af | ||
|
|
c2f857cb9e | ||
|
|
4647da671b | ||
|
|
45a9c806a2 | ||
|
|
0b842db789 | ||
|
|
76cdd5a29b | ||
|
|
dfe707d6db | ||
|
|
9dbc9e6880 | ||
|
|
eacc481b08 | ||
|
|
1895d1f771 | ||
|
|
10d7b892c9 | ||
|
|
0ecde48940 | ||
|
|
113c9b5a6d | ||
|
|
a1645954aa | ||
|
|
dbb87a304d | ||
|
|
1f3a5fd233 | ||
|
|
799f2e0b6f | ||
|
|
940f344e0e | ||
|
|
3b1d43fcc4 | ||
|
|
ea3b090566 | ||
|
|
311a01da44 | ||
|
|
6e5d2940d7 | ||
|
|
9d7c11e6bd | ||
|
|
f1662951d1 | ||
|
|
9b2d36b767 | ||
|
|
2d4172fd98 | ||
|
|
d073e01117 | ||
|
|
67a8d2b9df | ||
|
|
7e69cb8ac9 | ||
|
|
8e389776dc | ||
|
|
a465ea7239 | ||
|
|
602835d637 | ||
|
|
168054cd05 | ||
|
|
4631fbcf4c | ||
|
|
97370f36ca | ||
|
|
4159c5370f | ||
|
|
69e790eeb3 | ||
|
|
2b628f1729 | ||
|
|
e9e2dd3f14 | ||
|
|
4dde80f315 | ||
|
|
bd6014d60d | ||
|
|
087e4e8acc | ||
|
|
50321ad4a0 | ||
|
|
da50d99462 | ||
|
|
ca29b38478 | ||
|
|
7d23b8c24e | ||
|
|
89ab7f7be9 | ||
|
|
6d4d73c7f7 | ||
|
|
9da869feee | ||
|
|
ae2461a46f | ||
|
|
3523eb277b | ||
|
|
aa1a1af099 | ||
|
|
c671acb112 | ||
|
|
45afa83629 | ||
|
|
36aa25ba49 | ||
|
|
a6d2ccbb22 | ||
|
|
3e1cf53fd6 | ||
|
|
c5f5709f10 | ||
|
|
fc76cb3f52 | ||
|
|
7758c086e2 | ||
|
|
40a63f67c8 | ||
|
|
685044335b | ||
|
|
47e062eb73 | ||
|
|
900fb9e8f1 | ||
|
|
0e9b3832ae | ||
|
|
2f238742d2 | ||
|
|
193a852335 | ||
|
|
f900ecaed3 | ||
|
|
247e6e06c5 | ||
|
|
4c96c28c2d | ||
|
|
b42f4778f9 | ||
|
|
dcc04837d4 | ||
|
|
e2717401fe | ||
|
|
5f676ffbdb | ||
|
|
4e23587ca3 | ||
|
|
922089fc07 | ||
|
|
7464358bbf | ||
|
|
e771a32ab8 | ||
|
|
bbadee53ad | ||
|
|
7c0b6bac22 | ||
|
|
8f6780f09f | ||
|
|
18ff27d6b1 | ||
|
|
36474baab2 | ||
|
|
c995595509 | ||
|
|
ffa008f148 | ||
|
|
671ed7d090 | ||
|
|
6c272e7313 | ||
|
|
a9816eed42 | ||
|
|
74a97956bb | ||
|
|
fdd32cfcab | ||
|
|
35343e8b96 | ||
|
|
a80de385f2 | ||
|
|
fe0fc44f77 | ||
|
|
20cc14e584 | ||
|
|
9d35626a56 | ||
|
|
c3a447a471 | ||
|
|
61022dd971 | ||
|
|
9bbd2b5d69 | ||
|
|
9aea4d08e5 | ||
|
|
62f4ce0912 | ||
|
|
f87772e559 | ||
|
|
19763665e6 | ||
|
|
e31e74e0da | ||
|
|
c0369c7130 | ||
|
|
0350571803 | ||
|
|
e48da3491d | ||
|
|
3879718cea | ||
|
|
3552dcffb9 |
No files matched your search
@@ -0,0 +1,161 @@
|
||||
# [CONTRIBUTING](https://nvchad.github.io/contribute)
|
||||
|
||||
## NvChad install for contributors
|
||||
|
||||
If you wish to contribute to NvChad, you should:
|
||||
1. [create a fork on GitHub](https://docs.github.com/en/get-started/quickstart/fork-a-repo)
|
||||
2. clone your fork to your machine
|
||||
- For ssh:
|
||||
```shell
|
||||
$ git clone git@github.com:<YOUR GITHUB USERNAME>/NvChad.git ~/.config/nvim
|
||||
```
|
||||
- For https:
|
||||
```shell
|
||||
$ git clone https://github.com/<YOUR GITHUB USERNAME>/NvChad.git ~/.config/nvim
|
||||
```
|
||||
3. [add a new remote repo to track](https://www.atlassian.com/git/tutorials/git-forks-and-upstreams)
|
||||
- this means you can push/pull as normal to your own repo, but also easily track & update from the NvChad repo
|
||||
- for ssh:
|
||||
```shell
|
||||
$ git remote add upstream git@github.com:NvChad/NvChad.git
|
||||
```
|
||||
- for https:
|
||||
```shell
|
||||
$ git remote add upstream https://github.com/NvChad/NvChad.git
|
||||
```
|
||||
4. any time you create a branch to do some work, use
|
||||
```shell
|
||||
$ git fetch upstream && git checkout -b dev-myFEAT upstream/main
|
||||
```
|
||||
5. only use the **--rebase** flag to update your dev branch
|
||||
- this means that there are no `Merge NvChad/main into devBranch` commits, which are to be avoided
|
||||
```shell
|
||||
$ git pull upstream --rebase
|
||||
```
|
||||
|
||||
## Things to know before contributing
|
||||
|
||||
- When making a PR (pull request), please be very descriptive about what you've done!
|
||||
|
||||
- PR titles should be formatted with 'fix', 'chore' or 'feat'. ex: `feat: add new plugin`
|
||||
|
||||
- PRs should follow the pull request formats where applicable
|
||||
|
||||
- We are open to all PRs, but may decline some for a myriad of reasons. Though don't be discouraged! We'll still be open to discussions.
|
||||
|
||||
- PR's are always welcomed however NvChad aims to be less bloated. So PR's regarding existing plugin's enhancement and creating new features with existing plugins itself ( without adding a new plugin), bug fixes and corrections are more encouraged.
|
||||
|
||||
- NvChad won't keep adding more and more features (like adding new plugins most likely) as requested if they feel unneeded and aren't usable by the majority!! If you think the plugin you want to be added is very useful and many NvChaders would find it useful, then such feature's PR is welcomed!
|
||||
|
||||
- But adding specific features like adding config for [wakatime](https://github.com/wakatime/vim-wakatime) etc will be added in this [chad user configs](https://github.com/NvChad/NvChad/wiki/Chad-user-configs). This lets the user select the things only they want ( adding configs from extra configs ).
|
||||
|
||||
## How to remove or edit commits from your PR
|
||||
> You may have been directed here to remove a commit such as a merge commit: `Merge NvChad/main into devBranch` from your PR
|
||||
|
||||
> As these commands edit your git history, you may need to **force push** with `git push origin --force`
|
||||
|
||||
1. Run the following:
|
||||
```
|
||||
$ git rebase -i HEAD~<NUMBER OF COMMITS TO GO BACK>
|
||||
```
|
||||
<details><summary>Example</summary>
|
||||
<p>
|
||||
|
||||
```shell
|
||||
$ git rebase -i HEAD~4
|
||||
```
|
||||
|
||||
```shell
|
||||
pick 28b2dcb statusline add lsp status
|
||||
pick dad9a39 feat: Added lsp radial progress
|
||||
pick 68f72f1 add clickable btn for exiting nvim
|
||||
pick b281b53 avoid using q! for quitting vim
|
||||
|
||||
# Rebase 52b655b..b281b53 onto 52b655b (4 commands)
|
||||
#
|
||||
# Commands:
|
||||
# p, pick <commit> = use commit
|
||||
# r, reword <commit> = use commit, but edit the commit message
|
||||
# e, edit <commit> = use commit, but stop for amending
|
||||
# s, squash <commit> = use commit, but meld into previous commit
|
||||
# f, fixup <commit> = like "squash", but discard this commit's log message
|
||||
# x, exec <command> = run command (the rest of the line) using shell
|
||||
# b, break = stop here (continue rebase later with 'git rebase --continue')
|
||||
# d, drop <commit> = remove commit
|
||||
# l, label <label> = label current HEAD with a name
|
||||
# t, reset <label> = reset HEAD to a label
|
||||
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
|
||||
# . create a merge commit using the original merge commit's
|
||||
# . message (or the oneline, if no original merge commit was
|
||||
# . specified). Use -c <commit> to reword the commit message.
|
||||
#
|
||||
# These lines can be re-ordered; they are executed from top to bottom.
|
||||
#
|
||||
# If you remove a line here THAT COMMIT WILL BE LOST.
|
||||
#
|
||||
# However, if you remove everything, the rebase will be aborted.
|
||||
#
|
||||
# Note that empty commits are commented out
|
||||
```
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
||||
2. Change the `pick` commands to whatever you wish, you may wish to `d` `drop` or `e` `edit` a commit. Then save & quit this git file to run it.
|
||||
|
||||
<details><summary>Example</summary>
|
||||
<p>
|
||||
|
||||
```shell {3,4}
|
||||
pick 28b2dcb statusline add lsp status
|
||||
pick dad9a39 feat: Added lsp radial progress
|
||||
edit 68f72f1 add clickable btn for exiting nvim
|
||||
d b281b53 avoid using q! for quitting vim
|
||||
|
||||
# Rebase 52b655b..b281b53 onto 52b655b (4 commands)
|
||||
#
|
||||
# Commands:
|
||||
# p, pick <commit> = use commit
|
||||
# r, reword <commit> = use commit, but edit the commit message
|
||||
# e, edit <commit> = use commit, but stop for amending
|
||||
# s, squash <commit> = use commit, but meld into previous commit
|
||||
# f, fixup <commit> = like "squash", but discard this commit's log message
|
||||
# x, exec <command> = run command (the rest of the line) using shell
|
||||
# b, break = stop here (continue rebase later with 'git rebase --continue')
|
||||
# d, drop <commit> = remove commit
|
||||
# l, label <label> = label current HEAD with a name
|
||||
# t, reset <label> = reset HEAD to a label
|
||||
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
|
||||
# . create a merge commit using the original merge commit's
|
||||
# . message (or the oneline, if no original merge commit was
|
||||
# . specified). Use -c <commit> to reword the commit message.
|
||||
#
|
||||
# These lines can be re-ordered; they are executed from top to bottom.
|
||||
#
|
||||
# If you remove a line here THAT COMMIT WILL BE LOST.
|
||||
#
|
||||
# However, if you remove everything, the rebase will be aborted.
|
||||
#
|
||||
# Note that empty commits are commented out
|
||||
```
|
||||
|
||||
</p>
|
||||
</details>
|
||||
|
||||
3. If you picked `drop` you are done, if you picked `edit` then edit your files, then run:
|
||||
```shell
|
||||
$ git add <files>
|
||||
```
|
||||
|
||||
4. Once you have edited & added your files, run:
|
||||
```shell
|
||||
$ git rebase --continue
|
||||
```
|
||||
|
||||
5. You will likely need to push using:
|
||||
```shell
|
||||
$ git push origin --force
|
||||
```
|
||||
|
||||
## Help
|
||||
For help with contributing and anything else nvChad related join the [discord](https://discord.gg/VyPxsGArXc)
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- Operating System
|
||||
- Terminal
|
||||
- Version of Neovim
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Wiki
|
||||
url: https://github.com/siduck76/NvChad/wiki
|
||||
about: "Walks you through how to use and Configure NvChad."
|
||||
- name: Visit our gitter chat
|
||||
url: https://gitter.im/neovim-dotfiles/community
|
||||
about: "A place where we dicuss NvChad related stuff."
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem was.
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
|
||||
**Screenshot**
|
||||
Maybe a screenshot of the feature
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
Fixes Issue # (If it doesn't fix an issue then delete this line)
|
||||
|
||||
Features Added:
|
||||
- Plugin Name (Add links if possible too)
|
||||
|
||||
Reasoning:
|
||||
List why the feature is needed
|
||||
|
||||
Speed (If applicable):
|
||||
Show the impact on the speed of nvChad
|
||||
|
||||
Other:
|
||||
Anything else relevant goes here
|
||||
@@ -0,0 +1,16 @@
|
||||
(Make sure your title is either: 'fix', 'chore', or 'feat' then your title. ex: `fix: add new plugin`)
|
||||
|
||||
Fixes Issue # (If it doesn't fix an issue then delete this line)
|
||||
|
||||
Plugins Added:
|
||||
- [Plugin Name](Plugin Link)
|
||||
- [Plugin Name](Plugin Link)
|
||||
|
||||
Reasoning:
|
||||
List why the plugin(s) should be added
|
||||
|
||||
Speed:
|
||||
Show the impact on the speed of nvChad
|
||||
|
||||
Other:
|
||||
Anything else relevant goes here
|
||||
@@ -0,0 +1,175 @@
|
||||
<h1 align="center">NvChad</h1>
|
||||
|
||||
<div align="center">
|
||||
<a href="https://nvchad.github.io/">Home</a>
|
||||
<span> • </span>
|
||||
<a href="https://nvchad.github.io/getting-started/setup">Install</a>
|
||||
<span> • </span>
|
||||
<a href="https://nvchad.github.io/contribute">Contribute</a>
|
||||
<span> • </span>
|
||||
<a href="https://github.com/NvChad/NvChad#gift_heart-support">Support</a>
|
||||
<span> • </span>
|
||||
<a href="https://nvchad.github.io/Extras">Extras</a>
|
||||
<p></p>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
|
||||
[]()
|
||||
<a href="https://github.com/NvChad/NvChad/blob/main/LICENSE"
|
||||
><img
|
||||
src="https://img.shields.io/github/license/NvChad/NvChad?style=flat-square&logo=GNU&label=License&color=df967f"
|
||||
alt="License"
|
||||
/>
|
||||
[](https://github.com/neovim/neovim)
|
||||
[](https://github.com/NvChad/NvChad/issues)
|
||||
[](https://discord.gg/gADmkJb9Fb)
|
||||
[](https://matrix.to/#/#nvchad:matrix.org)
|
||||
[](https://t.me/DE_WM)
|
||||
|
||||
</div>
|
||||
|
||||
## Showcase
|
||||
|
||||
<img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/dashboard-nvim.png"><hr>
|
||||
<img src="https://cdn.discordapp.com/attachments/610012460828852229/853933487295299584/unknown.png"><hr>
|
||||
<img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/initialNvim1.png"><hr>
|
||||
<img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/initialNvim.png"><hr>
|
||||
|
||||
## Theme Showcase
|
||||
|
||||
<details><summary> <b>Images (Click to expand!)</b></summary>
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
</details>
|
||||
|
||||
## Very useful plugins used
|
||||
|
||||
<details><summary> <b>Images (Click to expand!)</b></summary>
|
||||
|
||||
<h3> Nvim-tree.lua </h3>
|
||||
|
||||
Fast file tree:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/nvimtree.png"></kbd><hr>
|
||||
|
||||
<h3> Telescope-nvim </h3>
|
||||
|
||||
A fuzzy file finder, picker, sorter, previewer and much more:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/tel.png"></kbd>
|
||||
|
||||
<h3> Indent-blankline.nvim </h3>
|
||||
|
||||
Adds indentline:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/blanklineNvim.png"></kbd><hr>
|
||||
|
||||
<h3> Feline.nvim </h3>
|
||||
|
||||
Highly configurable statusline plugin:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/statusline.png"></kbd><hr>
|
||||
|
||||
<h3> Nvim-bufferline.lua </h3>
|
||||
|
||||
Better tab implementation:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/bufferline.png"></kbd><hr>
|
||||
|
||||
<h3> Nvim-web-devicons </h3>
|
||||
|
||||
Lua fork of Vim Devicons which offers more file icon customisability:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/image.png"></kbd><hr>
|
||||
|
||||
<h3> Nvim-treesitter </h3
|
||||
|
||||
Better syntax highlighting for programming languages (NvChad by default comes with Lua/bash treesitter parsers).
|
||||
|
||||
Without/with Treesitter:
|
||||
|
||||
<kbd><img src="https://raw.githubusercontent.com/siduck/dotfiles/all/rice%20flex/woTree.png"></kbd><hr>
|
||||
|
||||
</details>
|
||||
|
||||
## Credits
|
||||
|
||||
- [Elianiva](https://github.com/elianiva) helped me with NeoVim Lua related issues many times, NvChad wouldn't exist without his help at all.
|
||||
- @lorvethe for making the beautiful NvChad logo.
|
||||
|
||||
## Features
|
||||
|
||||
- Many beautiful themes to choose from.
|
||||
- Fast plugin loading.
|
||||
- File navigation with [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua).
|
||||
- Managing tabs, buffers with [bufferline.nvim](https://github.com/akinsho/bufferline.nvim).
|
||||
- Beautiful and configurable icons with [nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons).
|
||||
- Pretty and functional statusline with [feline.nvim](https://github.com/Famiu/feline.nvim).
|
||||
- Git diffs and more with [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) .
|
||||
- NeoVim Lsp configuration with [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig).
|
||||
- Autocompletion with [nvim-cmp](https://github.com/hrsh7th/nvim-cmp).
|
||||
- File searching, previewing image and text files and more with [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim).
|
||||
- Syntax highlighting with [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter).
|
||||
- Autoclosing braces and html tags with [nvim-autopairs](https://github.com/windwp/nvim-autopairs).
|
||||
- Indentlines with [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim).
|
||||
- Useful snippets with [LuaSnip](https://github.com/L3MON4D3/LuaSnip).
|
||||
|
||||
## Bloat
|
||||
|
||||
To everyone who thinks that NvChad is bloat: Bloat means different things to everyone.
|
||||
|
||||
NvChad has 38 plugins installed by default, yet it is still very fast because it uses the Packer plugin manager. Packer.nvim allows you to lazy load plugins, meaning they only get loaded when absolutely required. Furthermore, you can disable plugins you don't use in `chadrc.lua`.
|
||||
|
||||
<img src = "https://chadpaste.com/f/kdmxdabxbk.png">
|
||||
|
||||
# TODO
|
||||
|
||||
NvChad is focusing more on improving its already existing plugins and features instead of adding more plugins. Things you can do to help currently are:
|
||||
|
||||
- Improving base plugins configurations
|
||||
- Debloating the config.
|
||||
- Adding more themes.
|
||||
|
||||
## Try NvChad in a Docker container
|
||||
|
||||
This will leave your current Neovim configuration untouched. Once you exit Neovim, the image is deleted.
|
||||
|
||||
```zsh
|
||||
docker run -w /root -it --rm alpine:edge sh -uelic '
|
||||
apk add git nodejs neovim ripgrep alpine-sdk --update
|
||||
git clone https://github.com/NvChad/NvChad ~/.config/nvim
|
||||
nvim -c "autocmd User PackerComplete quitall" -c "PackerSync"
|
||||
nvim
|
||||
'
|
||||
```
|
||||
|
||||
## Chadributors
|
||||
|
||||
<a href="https://github.com/NvChad/NvChad/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=NvChad/NvChad"/>
|
||||
</a>
|
||||
|
||||
## Warning
|
||||
|
||||
If you have an issue with a plugin in NvChad, first you should report it to NvChad to see if it's an issue with it.
|
||||
|
||||
## :gift_heart: Support
|
||||
|
||||
I would happily accept donations but would feel awful since I'm not the only one who has worked on NvChad. The project has only been made possible by the many great contributors and plugin developers, thus taking the donations just for me feels unjustified. If you enjoy using NvChad and would like to show your support then try to be a better you! Help the people in need whenever possible and do charity work. Be nice to loved ones and strangers alike. Do not be rude, always try to be helpful and caring for one another. It's easy to hate but hard to care. Be respectful to any software/work done by other people rather than making fun of them. Do not compare software (In a bad way). I'm grateful to even be able to use NeoVim! But I still cannot be fully happy when I know that there are people who barely have any food to eat, starve for weeks, don't have access to proper education, computers, basic health care facilities and more. Here are some charities and gofundme links you can donate to instead:
|
||||
|
||||
- https://www.gofundme.com/f/WeCareAboutSyria
|
||||
- https://www.gofundme.com/f/Burundi-Nutrition
|
||||
- https://charity.gofundme.com/o/en/campaign/feedingyemen
|
||||
- https://www.gofundme.com/f/6p8ea-give-ghanaian-orphans-the-gift-of-a-ride-to-school
|
||||
- https://www.isupportmyanmar.com
|
||||
- https://www.justgiving.com/campaign/somaliawater
|
||||
- https://www.justgiving.com/crowdfunding/acaappeal
|
||||
- https://www.justgiving.com/fundraising/muslim-chat
|
||||
- https://www.gofundme.com/f/help-kids-in-mali-have-warm-clothing-in-winter
|
||||
- https://www.justgiving.com/crowdfunding/carevenezuela
|
||||
- https://www.justgiving.com/campaign/yemen
|
||||
@@ -1,31 +0,0 @@
|
||||
name: Super-Linter
|
||||
|
||||
# Run this workflow every time a new commit pushed to your repository
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
# Set the job key. The key is displayed as the job name
|
||||
# when a job name is not provided
|
||||
super-lint:
|
||||
# Name the Job
|
||||
name: Lint code base
|
||||
# Set the type of machine to run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checks out a copy of your repository on the ubuntu-latest machine
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Runs the Super-Linter action
|
||||
- name: Run Super-Linter
|
||||
uses: github/super-linter@v3
|
||||
env:
|
||||
VALIDATE_YAML: true
|
||||
VALIDATE_BASH_EXEC: true
|
||||
#VALIDATE_LUA: true #removed because the lua gets caught with all the vim
|
||||
OUTPUT_FOLDER: super-linter.report
|
||||
OUTPUT_DETAILS: detailed
|
||||
DEFAULT_BRANCH: main
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
plugin
|
||||
custom
|
||||
spell
|
||||
@@ -0,0 +1,6 @@
|
||||
column_width = 120
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 3
|
||||
quote_style = "AutoPreferDouble"
|
||||
no_call_parentheses = true
|
||||
@@ -1,103 +0,0 @@
|
||||
[](https://github.com/siduck76/NvChad/actions/workflows/superLinter.yml)
|
||||
|
||||
An attempt to make neovim (cli version) as functional as an IDE while being very eyecandy.
|
||||
|
||||
# Screenshots -
|
||||
|
||||
<img src ="https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/dashboard-nvim.png"><hr>
|
||||
<img src ="https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/initialNvim1.png"><hr>
|
||||
<img src ="https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/initialNvim.png"><hr>
|
||||
<kbd><img src ="https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/nvimRice2.png"></kbd><hr>
|
||||
|
||||
# Very Useful lua plugins used in my config -
|
||||
|
||||
#### lspkind-nvim
|
||||
|
||||
This tiny plugin adds vscode-like pictograms to neovim built-in lsp completion items :
|
||||
|
||||
<kbd><img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/lspkind.png"></kbd><hr>
|
||||
|
||||
#### nvim-tree.lua
|
||||
|
||||
fast file tree :
|
||||
|
||||
<kbd><img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/nvimtree.png"></kbd><hr>
|
||||
|
||||
### telescope-nvim -
|
||||
|
||||
A fuzzy file finder, picker, sorter, previewer and much more:
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/tel.png"></kbd>
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/telmedia.png"></kbd><hr>
|
||||
|
||||
### indent-blankline.nvim -
|
||||
|
||||
adds indentline :
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/blanklineNvim.png"></kbd>
|
||||
|
||||
### galaxyline -
|
||||
|
||||
fastest statusline plugin I've used so far:
|
||||
<kbd><img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/statusline.png"></kbd><hr>
|
||||
|
||||
<hr>
|
||||
|
||||
### nvim-bufferline.lua -
|
||||
|
||||
As a top bufferline like thing which lets me handle tabs like switching, closing tabs.
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/bufferline.png"></kbd>
|
||||
|
||||
<hr>
|
||||
|
||||
### nvim-web-devicons -
|
||||
Lua fork of vim devicons which lets me change icons of filetypes
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/image.png"></kbd><hr>
|
||||
|
||||
### nvim-treesitter
|
||||
Better syntax highlighting for programming languages ( my config just has html,css,js support for now ).
|
||||
|
||||
without / with Treesitter :
|
||||
<kbd> <img src = "https://raw.githubusercontent.com/siduck76/dotfiles/master/rice%20flex/woTree.png"></kbd>
|
||||
|
||||
# Features
|
||||
|
||||
- File navigation with Nvimtree
|
||||
- mouse works
|
||||
- managing tabs with bufferline
|
||||
- autosave
|
||||
- icons on nvimtree , telescope , bufferline/statusline and almost everywhere! with nvim-web-devicons
|
||||
- minimal status line ( galaxyline)
|
||||
- gitsigns (colored bars for git in my config)
|
||||
- using nvim-lsp
|
||||
- nvim-lspconfig for nvim-lps configuration
|
||||
- nvim-compe for autocompletion
|
||||
- lspkind to show pictograms on autocompletion items
|
||||
- telescope for file finding , picking , previewing (files and even images)
|
||||
- nvim-treesitter for syntax highlighting
|
||||
- nvim-autopairs , for autolosing braces and stuffs
|
||||
- neoformat for prettifying / formatting code
|
||||
- packer.nvim as package manager
|
||||
- indent-blankline.Nvim for indentlines
|
||||
- smooth scrolling
|
||||
- Snip support from VSCode through vsnip supporting custom and predefined snips (friendly-snippets)
|
||||
|
||||
# Requirements
|
||||
|
||||
- neovim 0.5
|
||||
- A terminal that supports [nerdfonts](https://github.com/ryanoasis/nerd-fonts)
|
||||
- Set terminal's inner padding to 0.
|
||||
|
||||
# Wiki
|
||||
|
||||
- [config-structure](https://github.com/siduck76/NvChad/wiki#config-structure)
|
||||
- [Install](https://github.com/siduck76/NvChad/wiki#clone-my-setup)
|
||||
- [mappings](https://github.com/siduck76/NvChad/wiki/mappings)
|
||||
|
||||
# TODO
|
||||
|
||||
- Add more themes.
|
||||
- Add a theme switcher
|
||||
|
||||
# Contact -
|
||||
|
||||
- My linux / unix related ricing community: https://t.me/DE_WM (telegram)
|
||||
- Me: @siduck (telegram)
|
||||
@@ -0,0 +1,12 @@
|
||||
-- Just an example, supposed to be placed in /lua/custom/
|
||||
|
||||
local M = {}
|
||||
|
||||
-- make sure you maintain the structure of `core/default_config.lua` here,
|
||||
-- example of changing theme:
|
||||
|
||||
M.ui = {
|
||||
theme = "gruvchad",
|
||||
}
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,11 @@
|
||||
-- Please check NvChad docs if you're totally new to nvchad + dont know lua!!
|
||||
-- This is an example init file in /lua/custom/
|
||||
-- this init.lua can load stuffs etc too so treat it like your ~/.config/nvim/
|
||||
|
||||
-- MAPPINGS
|
||||
local map = require("core.utils").map
|
||||
|
||||
map("n", "<leader>cc", ":Telescope <CR>")
|
||||
map("n", "<leader>q", ":q <CR>")
|
||||
|
||||
-- NOTE: the 4th argument in the map function is be a table i.e options but its most likely un-needed so dont worry about it
|
||||
@@ -1,59 +1,31 @@
|
||||
-- load all plugins
|
||||
require "pluginList"
|
||||
require "misc-utils"
|
||||
local present, impatient = pcall(require, "impatient")
|
||||
|
||||
require "top-bufferline"
|
||||
require "statusline"
|
||||
if present then
|
||||
impatient.enable_profile()
|
||||
end
|
||||
|
||||
require("colorizer").setup()
|
||||
require("neoscroll").setup() -- smooth scroll
|
||||
local core_modules = {
|
||||
"core.options",
|
||||
"core.autocmds",
|
||||
"core.mappings",
|
||||
}
|
||||
|
||||
-- lsp stuff
|
||||
require "nvim-lspconfig"
|
||||
require "compe-completion"
|
||||
for _, module in ipairs(core_modules) do
|
||||
local ok, err = pcall(require, module)
|
||||
if not ok then
|
||||
error("Error loading " .. module .. "\n\n" .. err)
|
||||
end
|
||||
end
|
||||
|
||||
local cmd = vim.cmd
|
||||
local g = vim.g
|
||||
-- non plugin mappings
|
||||
require("core.mappings").misc()
|
||||
|
||||
g.mapleader = " "
|
||||
g.auto_save = 0
|
||||
|
||||
-- colorscheme related stuff
|
||||
cmd "syntax on"
|
||||
|
||||
local base16 = require "base16"
|
||||
base16(base16.themes["onedark"], true)
|
||||
|
||||
require "highlights"
|
||||
|
||||
-- blankline
|
||||
|
||||
g.indentLine_enabled = 1
|
||||
g.indent_blankline_char = "▏"
|
||||
|
||||
g.indent_blankline_filetype_exclude = {"help", "terminal", "dashboard"}
|
||||
g.indent_blankline_buftype_exclude = {"terminal"}
|
||||
|
||||
g.indent_blankline_show_trailing_blankline_indent = false
|
||||
g.indent_blankline_show_first_indent_level = false
|
||||
|
||||
require "treesitter-nvim"
|
||||
require "mappings"
|
||||
|
||||
require "telescope-nvim"
|
||||
require "nvimTree" -- file tree stuff
|
||||
require "file-icons"
|
||||
|
||||
-- git signs , lsp symbols etc
|
||||
require "gitsigns-nvim"
|
||||
require("nvim-autopairs").setup()
|
||||
require("lspkind").init()
|
||||
|
||||
-- hide line numbers in terminal windows
|
||||
vim.api.nvim_exec([[
|
||||
au BufEnter term://* setlocal nonumber
|
||||
]], false)
|
||||
|
||||
require "zenmode"
|
||||
require "whichkey"
|
||||
require "dashboard"
|
||||
-- check if custom init.lua file exists
|
||||
if vim.fn.filereadable(vim.fn.stdpath "config" .. "/lua/custom/init.lua") == 1 then
|
||||
-- try to call custom init, if not successful, show error
|
||||
local ok, err = pcall(require, "custom")
|
||||
if not ok then
|
||||
vim.notify("Error loading custom/init.lua\n\n" .. err)
|
||||
end
|
||||
return
|
||||
end
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
get_platform() {
|
||||
case "$(uname -s)" in
|
||||
Linux*) platform=Linux ;;
|
||||
Darwin*) platform=Mac ;;
|
||||
CYGWIN*) platform=Cygwin ;;
|
||||
MINGW*) platform=MinGw ;;
|
||||
*) platform="UNKNOWN:${unameOut}" ;;
|
||||
esac
|
||||
echo $platform
|
||||
}
|
||||
|
||||
echo "installing packer"
|
||||
|
||||
if [ ! -d ~/.local/share/nvim/site/pack/packer ]; then
|
||||
echo "Installing packer"
|
||||
git clone https://github.com/wbthomason/packer.nvim \
|
||||
~/.local/share/nvim/site/pack/packer/start/packer.nvim
|
||||
echo
|
||||
echo "packer installed!"
|
||||
echo
|
||||
fi
|
||||
|
||||
echo "Linking config"
|
||||
echo "old nvim config will be deleted so watchout! :0"
|
||||
echo
|
||||
|
||||
# copying config
|
||||
|
||||
rm -rf ~/.config/nvim/ && mkdir -p ~/.config/nvim
|
||||
cp -r init.lua ~/.config/nvim && cp -r lua ~/.config/nvim
|
||||
|
||||
# change shell in nvim config
|
||||
read -p "which shell do you use?: " shellname
|
||||
echo "$shellname"
|
||||
|
||||
if [ "$(get_platform)" = "Mac" ]; then
|
||||
gsed -i "s/bash/$shellname/g" ~/.config/nvim/lua/mappings.lua
|
||||
else
|
||||
sed -i "s/bash/$shellname/g" ~/.config/nvim/lua/mappings.lua
|
||||
fi
|
||||
|
||||
echo "shell changed to $shellname on nvim successfully!"
|
||||
echo
|
||||
echo "neovim will open with some errors , just press enter" && sleep 1
|
||||
|
||||
# install all plugins
|
||||
nvim +PackerInstall
|
||||
@@ -0,0 +1,168 @@
|
||||
local cmd = vim.cmd
|
||||
|
||||
local colors = require("colors").get()
|
||||
local ui = require("core.utils").load_config().ui
|
||||
|
||||
local black = colors.black
|
||||
local black2 = colors.black2
|
||||
local blue = colors.blue
|
||||
local darker_black = colors.darker_black
|
||||
local folder_bg = colors.folder_bg
|
||||
local green = colors.green
|
||||
local grey = colors.grey
|
||||
local grey_fg = colors.grey_fg
|
||||
local light_grey = colors.light_grey
|
||||
local line = colors.line
|
||||
local nord_blue = colors.nord_blue
|
||||
local one_bg = colors.one_bg
|
||||
local one_bg2 = colors.one_bg2
|
||||
local pmenu_bg = colors.pmenu_bg
|
||||
local purple = colors.purple
|
||||
local red = colors.red
|
||||
local white = colors.white
|
||||
local yellow = colors.yellow
|
||||
local orange = colors.orange
|
||||
local one_bg3 = colors.one_bg3
|
||||
|
||||
-- functions for setting highlights
|
||||
local fg = require("core.utils").fg
|
||||
local fg_bg = require("core.utils").fg_bg
|
||||
local bg = require("core.utils").bg
|
||||
|
||||
-- Comments
|
||||
if ui.italic_comments then
|
||||
fg("Comment", grey_fg .. " gui=italic")
|
||||
else
|
||||
fg("Comment", grey_fg)
|
||||
end
|
||||
|
||||
-- Disable cursor line
|
||||
cmd "hi clear CursorLine"
|
||||
-- Line number
|
||||
fg("cursorlinenr", white)
|
||||
|
||||
-- same it bg, so it doesn't appear
|
||||
fg("EndOfBuffer", black)
|
||||
|
||||
-- For floating windows
|
||||
fg("FloatBorder", blue)
|
||||
bg("NormalFloat", darker_black)
|
||||
|
||||
-- Pmenu
|
||||
bg("Pmenu", one_bg)
|
||||
bg("PmenuSbar", one_bg2)
|
||||
bg("PmenuSel", pmenu_bg)
|
||||
bg("PmenuThumb", nord_blue)
|
||||
fg("CmpItemAbbr", white)
|
||||
fg("CmpItemAbbrMatch", white)
|
||||
fg("CmpItemKind", white)
|
||||
fg("CmpItemMenu", white)
|
||||
|
||||
-- misc
|
||||
|
||||
-- inactive statuslines as thin lines
|
||||
fg("StatusLineNC", one_bg3 .. " gui=underline")
|
||||
|
||||
fg("LineNr", grey)
|
||||
fg("NvimInternalError", red)
|
||||
fg("VertSplit", one_bg2)
|
||||
|
||||
if ui.transparency then
|
||||
bg("Normal", "NONE")
|
||||
bg("Folded", "NONE")
|
||||
fg("Folded", "NONE")
|
||||
fg("Comment", grey)
|
||||
end
|
||||
|
||||
-- [[ Plugin Highlights
|
||||
|
||||
-- Dashboard
|
||||
fg("AlphaHeader", grey_fg)
|
||||
fg("AlphaButtons", light_grey)
|
||||
|
||||
-- Git signs
|
||||
fg_bg("DiffAdd", blue, "NONE")
|
||||
fg_bg("DiffChange", grey_fg, "NONE")
|
||||
fg_bg("DiffChangeDelete", red, "NONE")
|
||||
fg_bg("DiffModified", red, "NONE")
|
||||
fg_bg("DiffDelete", red, "NONE")
|
||||
|
||||
-- Indent blankline plugin
|
||||
fg("IndentBlanklineChar", line)
|
||||
fg("IndentBlanklineSpaceChar", line)
|
||||
|
||||
-- Lsp diagnostics
|
||||
|
||||
fg("DiagnosticHint", purple)
|
||||
fg("DiagnosticError", red)
|
||||
fg("DiagnosticWarn", yellow)
|
||||
fg("DiagnosticInformation", green)
|
||||
|
||||
-- NvimTree
|
||||
fg("NvimTreeEmptyFolderName", folder_bg)
|
||||
fg("NvimTreeEndOfBuffer", darker_black)
|
||||
fg("NvimTreeFolderIcon", folder_bg)
|
||||
fg("NvimTreeFolderName", folder_bg)
|
||||
fg("NvimTreeGitDirty", red)
|
||||
fg("NvimTreeIndentMarker", one_bg2)
|
||||
bg("NvimTreeNormal", darker_black)
|
||||
bg("NvimTreeNormalNC", darker_black)
|
||||
fg("NvimTreeOpenedFolderName", folder_bg)
|
||||
fg("NvimTreeRootFolder", red .. " gui=underline") -- enable underline for root folder in nvim tree
|
||||
fg_bg("NvimTreeStatuslineNc", darker_black, darker_black)
|
||||
fg_bg("NvimTreeVertSplit", darker_black, darker_black)
|
||||
fg_bg("NvimTreeWindowPicker", red, black2)
|
||||
|
||||
-- Telescope
|
||||
fg_bg("TelescopeBorder", darker_black, darker_black)
|
||||
fg_bg("TelescopePromptBorder", black2, black2)
|
||||
|
||||
fg_bg("TelescopePromptNormal", white, black2)
|
||||
fg_bg("TelescopePromptPrefix", red, black2)
|
||||
|
||||
bg("TelescopeNormal", darker_black)
|
||||
|
||||
fg_bg("TelescopePreviewTitle", black, green)
|
||||
fg_bg("TelescopePromptTitle", black, red)
|
||||
fg_bg("TelescopeResultsTitle", darker_black, darker_black)
|
||||
|
||||
bg("TelescopeSelection", black2)
|
||||
|
||||
-- keybinds cheatsheet
|
||||
|
||||
fg_bg("CheatsheetBorder", black, black)
|
||||
bg("CheatsheetSectionContent", black)
|
||||
fg("CheatsheetHeading", white)
|
||||
|
||||
local section_title_colors = {
|
||||
white,
|
||||
blue,
|
||||
red,
|
||||
green,
|
||||
yellow,
|
||||
purple,
|
||||
orange,
|
||||
}
|
||||
for i, color in ipairs(section_title_colors) do
|
||||
vim.cmd("highlight CheatsheetTitle" .. i .. " guibg = " .. color .. " guifg=" .. black)
|
||||
end
|
||||
|
||||
-- Disable some highlight in nvim tree if transparency enabled
|
||||
if ui.transparency then
|
||||
bg("NormalFloat", "NONE")
|
||||
bg("NvimTreeNormal", "NONE")
|
||||
bg("NvimTreeNormalNC", "NONE")
|
||||
bg("NvimTreeStatusLineNC", "NONE")
|
||||
fg_bg("NvimTreeVertSplit", grey, "NONE")
|
||||
|
||||
-- telescope
|
||||
bg("TelescopeBorder", "NONE")
|
||||
bg("TelescopePrompt", "NONE")
|
||||
bg("TelescopeResults", "NONE")
|
||||
bg("TelescopePromptBorder", "NONE")
|
||||
bg("TelescopePromptNormal", "NONE")
|
||||
bg("TelescopeNormal", "NONE")
|
||||
bg("TelescopePromptPrefix", "NONE")
|
||||
fg("TelescopeBorder", one_bg)
|
||||
fg_bg("TelescopeResultsTitle", black, blue)
|
||||
end
|
||||
@@ -0,0 +1,52 @@
|
||||
local colors = require("core.utils").load_config().ui.colors
|
||||
local override = require("core.utils").load_config().ui.hl_override
|
||||
|
||||
local M = {}
|
||||
|
||||
-- if theme given, load given theme if given, otherwise nvchad_theme
|
||||
M.init = function(theme)
|
||||
if not theme then
|
||||
theme = require("core.utils").load_config().ui.theme
|
||||
end
|
||||
|
||||
-- set the global theme, used at various places like theme switcher, highlights
|
||||
vim.g.nvchad_theme = theme
|
||||
|
||||
local present, base16 = pcall(require, "base16")
|
||||
|
||||
if present then
|
||||
-- first load the base16 theme
|
||||
local ok, array = pcall(base16.themes, theme)
|
||||
|
||||
if ok then
|
||||
base16(array, true)
|
||||
-- unload to force reload
|
||||
package.loaded["colors.highlights" or false] = nil
|
||||
-- then load the highlights
|
||||
require "colors.highlights"
|
||||
else
|
||||
pcall(vim.cmd, "colo " .. theme)
|
||||
end
|
||||
else
|
||||
pcall(vim.cmd, "colo " .. theme)
|
||||
end
|
||||
|
||||
if #override ~= 0 then
|
||||
package.loaded[override] = nil
|
||||
require(override)
|
||||
end
|
||||
end
|
||||
|
||||
-- returns a table of colors for given or current theme
|
||||
M.get = function(theme)
|
||||
if #colors ~= 0 then
|
||||
return require(colors)
|
||||
else
|
||||
if not theme then
|
||||
theme = vim.g.nvchad_theme
|
||||
end
|
||||
return require("hl_themes." .. theme)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -1,74 +0,0 @@
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
|
||||
require "compe".setup {
|
||||
enabled = true,
|
||||
autocomplete = true,
|
||||
debug = false,
|
||||
min_length = 1,
|
||||
preselect = "enable",
|
||||
throttle_time = 80,
|
||||
source_timeout = 200,
|
||||
incomplete_delay = 400,
|
||||
max_abbr_width = 100,
|
||||
max_kind_width = 100,
|
||||
max_menu_width = 100,
|
||||
documentation = true,
|
||||
source = {
|
||||
buffer = {kind = "", true},
|
||||
vsnip = {kind = ""}, --replace to what sign you prefer
|
||||
nvim_lsp = true
|
||||
}
|
||||
}
|
||||
|
||||
local t = function(str)
|
||||
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
||||
end
|
||||
|
||||
local check_back_space = function()
|
||||
local col = vim.fn.col(".") - 1
|
||||
if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- tab completion
|
||||
|
||||
_G.tab_complete = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return t "<C-n>"
|
||||
elseif check_back_space() then
|
||||
return t "<Tab>"
|
||||
else
|
||||
return vim.fn["compe#complete"]()
|
||||
end
|
||||
end
|
||||
_G.s_tab_complete = function()
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
return t "<C-p>"
|
||||
elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then
|
||||
return t "<Plug>(vsnip-jump-prev)"
|
||||
else
|
||||
return t "<S-Tab>"
|
||||
end
|
||||
end
|
||||
|
||||
-- mappings
|
||||
|
||||
vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||
vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})
|
||||
|
||||
function _G.completions()
|
||||
local npairs = require("nvim-autopairs")
|
||||
if vim.fn.pumvisible() == 1 then
|
||||
if vim.fn.complete_info()["selected"] ~= -1 then
|
||||
return vim.fn["compe#confirm"]("<CR>")
|
||||
end
|
||||
end
|
||||
return npairs.check_break_line_char()
|
||||
end
|
||||
|
||||
vim.api.nvim_set_keymap("i", "<CR>", "v:lua.completions()", {expr = true})
|
||||
@@ -0,0 +1,22 @@
|
||||
local settings=require("core.utils").load_config().options.nvChad
|
||||
-- uncomment this if you want to open nvim with a dir
|
||||
-- vim.cmd [[ autocmd BufEnter * if &buftype != "terminal" | lcd %:p:h | endif ]]
|
||||
|
||||
-- Use relative & absolute line numbers in 'n' & 'i' modes respectively
|
||||
-- vim.cmd[[ au InsertEnter * set norelativenumber ]]
|
||||
-- vim.cmd[[ au InsertLeave * set relativenumber ]]
|
||||
|
||||
-- Don't show any numbers inside terminals
|
||||
if not settings.terminal_numbers then
|
||||
vim.cmd [[ au TermOpen term://* setlocal nonumber norelativenumber | setfiletype terminal ]]
|
||||
end
|
||||
|
||||
-- Don't show status line on certain windows
|
||||
if not require("core.utils").load_config().plugins.options.statusline.hide_disable then
|
||||
vim.cmd [[ autocmd BufEnter,BufRead,BufWinEnter,FileType,WinEnter * lua require("core.utils").hide_statusline() ]]
|
||||
end
|
||||
|
||||
-- Open a file from its last left off position
|
||||
-- vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]]
|
||||
-- File extension specific tabbing
|
||||
-- vim.cmd [[ autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 ]]
|
||||
@@ -0,0 +1,279 @@
|
||||
-- IMPORTANT NOTE : This is default config, so dont change anything here.
|
||||
-- use custom/chadrc.lua instead
|
||||
|
||||
local M = {}
|
||||
|
||||
M.options = {
|
||||
-- custom = {}
|
||||
-- general nvim/vim options , check :h optionname to know more about an option
|
||||
|
||||
clipboard = "unnamedplus",
|
||||
cmdheight = 1,
|
||||
ruler = false,
|
||||
hidden = true,
|
||||
ignorecase = true,
|
||||
smartcase = true,
|
||||
mapleader = " ",
|
||||
mouse = "a",
|
||||
number = true,
|
||||
numberwidth = 2,
|
||||
relativenumber = false,
|
||||
expandtab = true,
|
||||
shiftwidth = 2,
|
||||
smartindent = true,
|
||||
tabstop = 8,
|
||||
timeoutlen = 400,
|
||||
updatetime = 250,
|
||||
undofile = true,
|
||||
fillchars = { eob = " " },
|
||||
shadafile = vim.opt.shadafile,
|
||||
|
||||
-- NvChad options
|
||||
nvChad = {
|
||||
copy_cut = true, -- copy cut text ( x key ), visual and normal mode
|
||||
copy_del = true, -- copy deleted text ( dd key ), visual and normal mode
|
||||
insert_nav = true, -- navigation in insertmode
|
||||
window_nav = true,
|
||||
terminal_numbers = false,
|
||||
|
||||
-- updater
|
||||
update_url = "https://github.com/NvChad/NvChad",
|
||||
update_branch = "main",
|
||||
},
|
||||
terminal = {
|
||||
behavior = {
|
||||
close_on_exit = true,
|
||||
},
|
||||
window = {
|
||||
vsplit_ratio = 0.5,
|
||||
split_ratio = 0.4,
|
||||
},
|
||||
location = {
|
||||
horizontal = "rightbelow",
|
||||
vertical = "rightbelow",
|
||||
float = {
|
||||
relative = 'editor',
|
||||
row = 0.3,
|
||||
col = 0.25,
|
||||
width = 0.5,
|
||||
height = 0.4,
|
||||
border = "single",
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
---- UI -----
|
||||
|
||||
M.ui = {
|
||||
hl_override = "", -- path of your file that contains highlights
|
||||
colors = "", -- path of your file that contains colors
|
||||
italic_comments = false,
|
||||
theme = "onedark", -- default theme
|
||||
|
||||
-- Change terminal bg to nvim theme's bg color so it'll match well
|
||||
-- For Ex : if you have onedark set in nvchad, set onedark's bg color on your terminal
|
||||
transparency = false,
|
||||
}
|
||||
|
||||
---- PLUGIN OPTIONS ----
|
||||
|
||||
M.plugins = {
|
||||
|
||||
-- builtin nvim plugins are disabled
|
||||
builtins = {
|
||||
"2html_plugin",
|
||||
"getscript",
|
||||
"getscriptPlugin",
|
||||
"gzip",
|
||||
"logipat",
|
||||
"netrw",
|
||||
"netrwPlugin",
|
||||
"netrwSettings",
|
||||
"netrwFileHandlers",
|
||||
"matchit",
|
||||
"tar",
|
||||
"tarPlugin",
|
||||
"rrhelper",
|
||||
"spellfile_plugin",
|
||||
"vimball",
|
||||
"vimballPlugin",
|
||||
"zip",
|
||||
"zipPlugin",
|
||||
},
|
||||
|
||||
-- enable/disable plugins (false for disable)
|
||||
status = {
|
||||
blankline = true, -- indentline stuff
|
||||
bufferline = true, -- manage and preview opened buffers
|
||||
colorizer = false, -- color RGB, HEX, CSS, NAME color codes
|
||||
comment = true, -- easily (un)comment code, language aware
|
||||
alpha = false, -- dashboard
|
||||
better_escape = true, -- map to <ESC> with no lag
|
||||
feline = true, -- statusline
|
||||
gitsigns = true,
|
||||
lspsignature = true, -- lsp enhancements
|
||||
vim_matchup = true, -- improved matchit
|
||||
cmp = true,
|
||||
nvimtree = true,
|
||||
autopairs = true,
|
||||
},
|
||||
options = {
|
||||
packer = {
|
||||
init_file = "plugins.packerInit",
|
||||
},
|
||||
autopairs = { loadAfter = "nvim-cmp" },
|
||||
cmp = {
|
||||
lazy_load = true,
|
||||
},
|
||||
lspconfig = {
|
||||
setup_lspconf = "", -- path of file containing setups of different lsps
|
||||
},
|
||||
nvimtree = {
|
||||
-- packerCompile required after changing lazy_load
|
||||
lazy_load = true,
|
||||
},
|
||||
luasnip = {
|
||||
snippet_path = {},
|
||||
},
|
||||
statusline = {
|
||||
hide_disable = false,
|
||||
-- hide, show on specific filetypes
|
||||
hidden = {
|
||||
"help",
|
||||
"NvimTree",
|
||||
"terminal",
|
||||
"alpha",
|
||||
},
|
||||
shown = {},
|
||||
|
||||
-- truncate statusline on small screens
|
||||
shortline = true,
|
||||
style = "default", -- default, round , slant , block , arrow
|
||||
},
|
||||
esc_insertmode_timeout = 300,
|
||||
},
|
||||
default_plugin_config_replace = {},
|
||||
default_plugin_remove = {},
|
||||
install = nil,
|
||||
}
|
||||
|
||||
-- Don't use a single keymap twice
|
||||
|
||||
--- MAPPINGS ----
|
||||
|
||||
-- non plugin
|
||||
M.mappings = {
|
||||
-- custom = {}, -- custom user mappings
|
||||
|
||||
misc = {
|
||||
cheatsheet = "<leader>ch",
|
||||
close_buffer = "<leader>x",
|
||||
cp_whole_file = "<C-c>", -- copy all contents of current buffer
|
||||
lineNR_toggle = "<leader>n", -- toggle line number
|
||||
lineNR_rel_toggle = "<leader>rn",
|
||||
update_nvchad = "<leader>uu",
|
||||
new_buffer = "<S-t>",
|
||||
new_tab = "<C-t>b",
|
||||
save_file = "<C-s>", -- save file using :w
|
||||
},
|
||||
|
||||
-- navigation in insert mode, only if enabled in options
|
||||
|
||||
insert_nav = {
|
||||
backward = "<C-h>",
|
||||
end_of_line = "<C-e>",
|
||||
forward = "<C-l>",
|
||||
next_line = "<C-j>",
|
||||
prev_line = "<C-k>",
|
||||
beginning_of_line = "<C-a>",
|
||||
},
|
||||
|
||||
-- better window movement
|
||||
window_nav = {
|
||||
moveLeft = "<C-h>",
|
||||
moveRight = "<C-l>",
|
||||
moveUp = "<C-k>",
|
||||
moveDown = "<C-j>",
|
||||
},
|
||||
|
||||
-- terminal related mappings
|
||||
terminal = {
|
||||
-- multiple mappings can be given for esc_termmode, esc_hide_termmode
|
||||
|
||||
-- get out of terminal mode
|
||||
esc_termmode = { "jk" },
|
||||
|
||||
-- get out of terminal mode and hide it
|
||||
esc_hide_termmode = { "JK" },
|
||||
-- show & recover hidden terminal buffers in a telescope picker
|
||||
pick_term = "<leader>W",
|
||||
|
||||
-- spawn a single terminal and toggle it
|
||||
-- this just works like toggleterm kinda
|
||||
new_horizontal = "<leader>h",
|
||||
new_vertical = "<leader>v",
|
||||
new_float = "<A-i>",
|
||||
|
||||
-- spawn new terminals
|
||||
spawn_horizontal = "<A-h>",
|
||||
spawn_vertical = "<A-v>",
|
||||
spawn_window = "<leader>w",
|
||||
},
|
||||
}
|
||||
|
||||
-- plugins related mappings
|
||||
-- To disable a mapping, equate the variable to "" or false or nil in chadrc
|
||||
M.mappings.plugins = {
|
||||
bufferline = {
|
||||
next_buffer = "<TAB>",
|
||||
prev_buffer = "<S-Tab>",
|
||||
},
|
||||
comment = {
|
||||
toggle = "<leader>/",
|
||||
},
|
||||
|
||||
-- map to <ESC> with no lag
|
||||
better_escape = { -- <ESC> will still work
|
||||
esc_insertmode = { "jk" }, -- multiple mappings allowed
|
||||
},
|
||||
|
||||
lspconfig = {
|
||||
declaration = "gD",
|
||||
definition = "gd",
|
||||
hover = "K",
|
||||
implementation = "gi",
|
||||
signature_help = "gk",
|
||||
add_workspace_folder = "<leader>wa",
|
||||
remove_workspace_folder = "<leader>wr",
|
||||
list_workspace_folders = "<leader>wl",
|
||||
type_definition = "<leader>D",
|
||||
rename = "<leader>ra",
|
||||
code_action = "<leader>ca",
|
||||
references = "gr",
|
||||
float_diagnostics = "ge",
|
||||
goto_prev = "[d",
|
||||
goto_next = "]d",
|
||||
set_loclist = "<leader>q",
|
||||
formatting = "<leader>fm",
|
||||
},
|
||||
|
||||
nvimtree = {
|
||||
toggle = "<C-n>",
|
||||
focus = "<leader>e",
|
||||
},
|
||||
|
||||
telescope = {
|
||||
buffers = "<leader>fb",
|
||||
find_files = "<leader>ff",
|
||||
find_hiddenfiles = "<leader>fa",
|
||||
git_commits = "<leader>cm",
|
||||
git_status = "<leader>gt",
|
||||
help_tags = "<leader>fh",
|
||||
live_grep = "<leader>fw",
|
||||
oldfiles = "<leader>fo",
|
||||
themes = "<leader>th", -- NvChad theme picker
|
||||
},
|
||||
}
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,207 @@
|
||||
local utils = require "core.utils"
|
||||
|
||||
local config = utils.load_config()
|
||||
local map_wrapper = utils.map
|
||||
|
||||
local maps = config.mappings
|
||||
local plugin_maps = maps.plugins
|
||||
local nvChad_options = config.options.nvChad
|
||||
local terminal_options = config.options.terminal
|
||||
|
||||
local cmd = vim.cmd
|
||||
|
||||
-- This is a wrapper function made to disable a plugin mapping from chadrc
|
||||
-- If keys are nil, false or empty string, then the mapping will be not applied
|
||||
-- Useful when one wants to use that keymap for any other purpose
|
||||
local map = function(...)
|
||||
local keys = select(2, ...)
|
||||
if not keys or keys == "" then
|
||||
return
|
||||
end
|
||||
map_wrapper(...)
|
||||
end
|
||||
|
||||
local M = {}
|
||||
|
||||
-- these mappings will only be called during initialization
|
||||
M.misc = function()
|
||||
local function non_config_mappings()
|
||||
-- Don't copy the replaced text after pasting in visual mode
|
||||
map_wrapper("v", "p", "p:let @+=@0<CR>")
|
||||
|
||||
-- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
|
||||
-- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/
|
||||
-- empty mode is same as using :map
|
||||
-- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour
|
||||
map_wrapper({ "n", "x", "o" }, "j", 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', { expr = true })
|
||||
map_wrapper({ "n", "x", "o" }, "k", 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', { expr = true })
|
||||
map_wrapper("", "<Down>", 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', { expr = true })
|
||||
map_wrapper("", "<Up>", 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', { expr = true })
|
||||
|
||||
-- use ESC to turn off search highlighting
|
||||
map_wrapper("n", "<Esc>", ":noh <CR>")
|
||||
|
||||
-- center cursor when moving (goto_definition)
|
||||
end
|
||||
|
||||
local function optional_mappings()
|
||||
-- don't yank text on cut ( x )
|
||||
if not nvChad_options.copy_cut then
|
||||
map_wrapper({ "n", "v" }, "x", '"_x')
|
||||
end
|
||||
|
||||
-- don't yank text on delete ( dd )
|
||||
if not nvChad_options.copy_del then
|
||||
map_wrapper({ "n", "v" }, "d", '"_d')
|
||||
end
|
||||
|
||||
-- navigation within insert mode
|
||||
if nvChad_options.insert_nav then
|
||||
local inav = maps.insert_nav
|
||||
|
||||
map("i", inav.backward, "<Left>")
|
||||
map("i", inav.end_of_line, "<End>")
|
||||
map("i", inav.forward, "<Right>")
|
||||
map("i", inav.next_line, "<Down>")
|
||||
map("i", inav.prev_line, "<Up>")
|
||||
map("i", inav.beginning_of_line, "<ESC>^i")
|
||||
end
|
||||
|
||||
-- easier navigation between windows
|
||||
if nvChad_options.window_nav then
|
||||
local wnav = maps.window_nav
|
||||
|
||||
map("n", wnav.moveLeft, "<C-w>h")
|
||||
map("n", wnav.moveRight, "<C-w>l")
|
||||
map("n", wnav.moveUp, "<C-w>k")
|
||||
map("n", wnav.moveDown, "<C-w>j")
|
||||
end
|
||||
end
|
||||
|
||||
local function required_mappings()
|
||||
map("n", maps.misc.cheatsheet, ":lua require('nvchad.cheatsheet').show() <CR>") -- show keybinds
|
||||
map("n", maps.misc.close_buffer, ":lua require('core.utils').close_buffer() <CR>") -- close buffer
|
||||
map("n", maps.misc.cp_whole_file, ":%y+ <CR>") -- copy whole file content
|
||||
map("n", maps.misc.new_buffer, ":enew <CR>") -- new buffer
|
||||
map("n", maps.misc.new_tab, ":tabnew <CR>") -- new tabs
|
||||
map("n", maps.misc.lineNR_toggle, ":set nu! <CR>")
|
||||
map("n", maps.misc.lineNR_rel_toggle, ":set rnu! <CR>") -- relative line numbers
|
||||
map("n", maps.misc.save_file, ":w <CR>") -- ctrl + s to save file
|
||||
|
||||
-- terminal mappings --
|
||||
local term_maps = maps.terminal
|
||||
-- get out of terminal mode
|
||||
map("t", term_maps.esc_termmode, "<C-\\><C-n>")
|
||||
-- hide a term from within terminal mode
|
||||
map("t", term_maps.esc_hide_termmode, "<CMD>lua require('nvchad.terminal').hide() <CR>")
|
||||
-- pick a hidden term
|
||||
map("n", term_maps.pick_term, ":Telescope terms <CR>")
|
||||
-- Open terminals
|
||||
-- TODO this opens on top of an existing vert/hori term, fixme
|
||||
map(
|
||||
{ "n", "t" },
|
||||
term_maps.new_horizontal,
|
||||
"<CMD>lua require('nvchad.terminal').new_or_toggle('horizontal', "
|
||||
.. tostring(terminal_options.window.split_height)
|
||||
.. ")<CR>"
|
||||
)
|
||||
map(
|
||||
{ "n", "t" },
|
||||
term_maps.new_vertical,
|
||||
"<CMD>lua require('nvchad.terminal').new_or_toggle('vertical', "
|
||||
.. tostring(terminal_options.window.vsplit_width)
|
||||
.. ")<CR>"
|
||||
)
|
||||
map(
|
||||
{ "n", "t" },
|
||||
term_maps.new_float,
|
||||
"<CMD>lua require('nvchad.terminal').new_or_toggle('float')<CR>"
|
||||
)
|
||||
|
||||
-- spawns terminals
|
||||
map(
|
||||
"n",
|
||||
term_maps.spawn_horizontal,
|
||||
":execute 15 .. 'new +terminal' | let b:term_type = 'hori' | startinsert <CR>"
|
||||
)
|
||||
map("n", term_maps.spawn_vertical, ":execute 'vnew +terminal' | let b:term_type = 'vert' | startinsert <CR>")
|
||||
map("n", term_maps.spawn_window, ":execute 'terminal' | let b:term_type = 'wind' | startinsert <CR>")
|
||||
|
||||
-- terminal mappings end --
|
||||
|
||||
-- Add Packer commands because we are not loading it at startup
|
||||
cmd "silent! command PackerClean lua require 'plugins' require('packer').clean()"
|
||||
cmd "silent! command PackerCompile lua require 'plugins' require('packer').compile()"
|
||||
cmd "silent! command PackerInstall lua require 'plugins' require('packer').install()"
|
||||
cmd "silent! command PackerStatus lua require 'plugins' require('packer').status()"
|
||||
cmd "silent! command PackerSync lua require 'plugins' require('packer').sync()"
|
||||
cmd "silent! command PackerUpdate lua require 'plugins' require('packer').update()"
|
||||
|
||||
-- add NvChadUpdate command and mapping
|
||||
cmd "silent! command! NvChadUpdate lua require('nvchad').update_nvchad()"
|
||||
map("n", maps.misc.update_nvchad, ":NvChadUpdate <CR>")
|
||||
end
|
||||
|
||||
non_config_mappings()
|
||||
optional_mappings()
|
||||
required_mappings()
|
||||
end
|
||||
|
||||
-- below are all plugin related mappings
|
||||
|
||||
M.bufferline = function()
|
||||
local m = plugin_maps.bufferline
|
||||
|
||||
map("n", m.next_buffer, ":BufferLineCycleNext <CR>")
|
||||
map("n", m.prev_buffer, ":BufferLineCyclePrev <CR>")
|
||||
end
|
||||
|
||||
M.comment = function()
|
||||
local m = plugin_maps.comment.toggle
|
||||
map("n", m, ":lua require('Comment.api').toggle_current_linewise()<CR>")
|
||||
map("v", m, ":lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>")
|
||||
end
|
||||
|
||||
M.lspconfig = function()
|
||||
local m = plugin_maps.lspconfig
|
||||
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
map("n", m.declaration, "<cmd>lua vim.lsp.buf.declaration()<CR>")
|
||||
map("n", m.definition, "<cmd>lua vim.lsp.buf.definition()<CR>")
|
||||
map("n", m.hover, "<cmd>lua vim.lsp.buf.hover()<CR>")
|
||||
map("n", m.implementation, "<cmd>lua vim.lsp.buf.implementation()<CR>")
|
||||
map("n", m.signature_help, "<cmd>lua vim.lsp.buf.signature_help()<CR>")
|
||||
map("n", m.add_workspace_folder, "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>")
|
||||
map("n", m.remove_workspace_folder, "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>")
|
||||
map("n", m.list_workspace_folders, "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>")
|
||||
map("n", m.type_definition, "<cmd>lua vim.lsp.buf.type_definition()<CR>")
|
||||
map("n", m.rename, "<cmd>lua vim.lsp.buf.rename()<CR>")
|
||||
map("n", m.code_action, "<cmd>lua vim.lsp.buf.code_action()<CR>")
|
||||
map("n", m.references, "<cmd>lua vim.lsp.buf.references()<CR>")
|
||||
map("n", m.float_diagnostics, "<cmd>lua vim.diagnostic.open_float()<CR>")
|
||||
map("n", m.goto_prev, "<cmd>lua vim.diagnostic.goto_prev()<CR>")
|
||||
map("n", m.goto_next, "<cmd>lua vim.diagnostic.goto_next()<CR>")
|
||||
map("n", m.set_loclist, "<cmd>lua vim.diagnostic.setloclist()<CR>")
|
||||
map("n", m.formatting, "<cmd>lua vim.lsp.buf.formatting()<CR>")
|
||||
end
|
||||
|
||||
M.nvimtree = function()
|
||||
map("n", plugin_maps.nvimtree.toggle, ":NvimTreeToggle <CR>")
|
||||
map("n", plugin_maps.nvimtree.focus, ":NvimTreeFocus <CR>")
|
||||
end
|
||||
|
||||
M.telescope = function()
|
||||
local m = plugin_maps.telescope
|
||||
|
||||
map("n", m.buffers, ":Telescope buffers <CR>")
|
||||
map("n", m.find_files, ":Telescope find_files <CR>")
|
||||
map("n", m.find_hiddenfiles, ":Telescope find_files follow=true no_ignore=true hidden=true <CR>")
|
||||
map("n", m.git_commits, ":Telescope git_commits <CR>")
|
||||
map("n", m.git_status, ":Telescope git_status <CR>")
|
||||
map("n", m.help_tags, ":Telescope help_tags <CR>")
|
||||
map("n", m.live_grep, ":Telescope live_grep <CR>")
|
||||
map("n", m.oldfiles, ":Telescope oldfiles <CR>")
|
||||
map("n", m.themes, ":Telescope themes <CR>")
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,63 @@
|
||||
local opt = vim.opt
|
||||
local g = vim.g
|
||||
|
||||
local options = require("core.utils").load_config().options
|
||||
|
||||
opt.title = true
|
||||
opt.clipboard = options.clipboard
|
||||
opt.cmdheight = options.cmdheight
|
||||
opt.cul = true -- cursor line
|
||||
|
||||
-- Indentline
|
||||
opt.expandtab = options.expandtab
|
||||
opt.shiftwidth = options.shiftwidth
|
||||
opt.smartindent = options.smartindent
|
||||
|
||||
-- disable tilde on end of buffer: https://github.com/neovim/neovim/pull/8546#issuecomment-643643758
|
||||
opt.fillchars = options.fillchars
|
||||
|
||||
opt.hidden = options.hidden
|
||||
opt.ignorecase = options.ignorecase
|
||||
opt.smartcase = options.smartcase
|
||||
opt.mouse = options.mouse
|
||||
|
||||
-- Numbers
|
||||
opt.number = options.number
|
||||
opt.numberwidth = options.numberwidth
|
||||
opt.relativenumber = options.relativenumber
|
||||
opt.ruler = options.ruler
|
||||
|
||||
-- disable nvim intro
|
||||
opt.shortmess:append "sI"
|
||||
|
||||
opt.signcolumn = "yes"
|
||||
opt.splitbelow = true
|
||||
opt.splitright = true
|
||||
opt.tabstop = options.tabstop
|
||||
opt.termguicolors = true
|
||||
opt.timeoutlen = options.timeoutlen
|
||||
opt.undofile = options.undofile
|
||||
|
||||
-- interval for writing swap file to disk, also used by gitsigns
|
||||
opt.updatetime = options.updatetime
|
||||
|
||||
-- go to previous/next line with h,l,left arrow and right arrow
|
||||
-- when cursor reaches end/beginning of line
|
||||
opt.whichwrap:append "<>[]hl"
|
||||
|
||||
g.mapleader = options.mapleader
|
||||
|
||||
-- disable some builtin vim plugins
|
||||
local disabled_built_ins = require("core.utils").load_config().plugins.builtins
|
||||
|
||||
for _, plugin in pairs(disabled_built_ins) do
|
||||
g["loaded_" .. plugin] = 1
|
||||
end
|
||||
|
||||
--Defer loading shada until after startup_
|
||||
vim.opt.shadafile = "NONE"
|
||||
|
||||
vim.schedule(function()
|
||||
vim.opt.shadafile = require("core.utils").load_config().options.shadafile
|
||||
vim.cmd [[ silent! rsh ]]
|
||||
end)
|
||||
@@ -0,0 +1,321 @@
|
||||
local M = {}
|
||||
|
||||
local cmd = vim.cmd
|
||||
M.close_buffer = function(force)
|
||||
-- This is a modification of a NeoVim plugin from
|
||||
-- Author: ojroques - Olivier Roques
|
||||
-- Src: https://github.com/ojroques/nvim-bufdel
|
||||
-- (Author has okayed copy-paste)
|
||||
|
||||
-- Options
|
||||
local opts = {
|
||||
next = "cycle", -- how to retrieve the next buffer
|
||||
quit = false, -- exit when last buffer is deleted
|
||||
--TODO make this a chadrc flag/option
|
||||
}
|
||||
|
||||
-- ----------------
|
||||
-- Helper functions
|
||||
-- ----------------
|
||||
|
||||
-- Switch to buffer 'buf' on each window from list 'windows'
|
||||
local function switch_buffer(windows, buf)
|
||||
local cur_win = vim.fn.winnr()
|
||||
for _, winid in ipairs(windows) do
|
||||
winid = tonumber(winid) or 0
|
||||
vim.cmd(string.format("%d wincmd w", vim.fn.win_id2win(winid)))
|
||||
vim.cmd(string.format("buffer %d", buf))
|
||||
end
|
||||
vim.cmd(string.format("%d wincmd w", cur_win)) -- return to original window
|
||||
end
|
||||
|
||||
-- Select the first buffer with a number greater than given buffer
|
||||
local function get_next_buf(buf)
|
||||
local next = vim.fn.bufnr "#"
|
||||
if opts.next == "alternate" and vim.fn.buflisted(next) == 1 then
|
||||
return next
|
||||
end
|
||||
for i = 0, vim.fn.bufnr "$" - 1 do
|
||||
next = (buf + i) % vim.fn.bufnr "$" + 1 -- will loop back to 1
|
||||
if vim.fn.buflisted(next) == 1 then
|
||||
return next
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ----------------
|
||||
-- End helper functions
|
||||
-- ----------------
|
||||
|
||||
local buf = vim.fn.bufnr()
|
||||
if vim.fn.buflisted(buf) == 0 then -- exit if buffer number is invalid
|
||||
vim.cmd "close"
|
||||
return
|
||||
end
|
||||
|
||||
if #vim.fn.getbufinfo { buflisted = 1 } < 2 then
|
||||
if opts.quit then
|
||||
-- exit when there is only one buffer left
|
||||
if force then
|
||||
vim.cmd "qall!"
|
||||
else
|
||||
vim.cmd "confirm qall"
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
local chad_term, _ = pcall(function()
|
||||
return vim.api.nvim_buf_get_var(buf, "term_type")
|
||||
end)
|
||||
|
||||
if chad_term then
|
||||
-- Must be a window type
|
||||
vim.cmd(string.format("setlocal nobl", buf))
|
||||
vim.cmd "enew"
|
||||
return
|
||||
end
|
||||
-- don't exit and create a new empty buffer
|
||||
vim.cmd "enew"
|
||||
vim.cmd "bp"
|
||||
end
|
||||
|
||||
local next_buf = get_next_buf(buf)
|
||||
local windows = vim.fn.getbufinfo(buf)[1].windows
|
||||
|
||||
-- force deletion of terminal buffers to avoid the prompt
|
||||
if force or vim.fn.getbufvar(buf, "&buftype") == "terminal" then
|
||||
local chad_term, type = pcall(function()
|
||||
return vim.api.nvim_buf_get_var(buf, "term_type")
|
||||
end)
|
||||
|
||||
-- TODO this scope is error prone, make resilient
|
||||
if chad_term then
|
||||
if type == "wind" then
|
||||
-- hide from bufferline
|
||||
vim.cmd(string.format("%d bufdo setlocal nobl", buf))
|
||||
-- switch to another buff
|
||||
-- TODO switch to next buffer, this works too
|
||||
vim.cmd "BufferLineCycleNext"
|
||||
else
|
||||
local cur_win = vim.fn.winnr()
|
||||
-- we can close this window
|
||||
vim.cmd(string.format("%d wincmd c", cur_win))
|
||||
return
|
||||
end
|
||||
else
|
||||
switch_buffer(windows, next_buf)
|
||||
vim.cmd(string.format("bd! %d", buf))
|
||||
end
|
||||
else
|
||||
switch_buffer(windows, next_buf)
|
||||
vim.cmd(string.format("silent! confirm bd %d", buf))
|
||||
end
|
||||
-- revert buffer switches if user has canceled deletion
|
||||
if vim.fn.buflisted(buf) == 1 then
|
||||
switch_buffer(windows, buf)
|
||||
end
|
||||
end
|
||||
|
||||
-- hide statusline
|
||||
-- tables fetched from load_config function
|
||||
M.hide_statusline = function()
|
||||
local hidden = require("core.utils").load_config().plugins.options.statusline.hidden
|
||||
local shown = require("core.utils").load_config().plugins.options.statusline.shown
|
||||
local api = vim.api
|
||||
local buftype = api.nvim_buf_get_option(0, "ft")
|
||||
|
||||
-- shown table from config has the highest priority
|
||||
if vim.tbl_contains(shown, buftype) then
|
||||
api.nvim_set_option("laststatus", 2)
|
||||
return
|
||||
end
|
||||
|
||||
if vim.tbl_contains(hidden, buftype) then
|
||||
api.nvim_set_option("laststatus", 0)
|
||||
return
|
||||
end
|
||||
|
||||
api.nvim_set_option("laststatus", 2)
|
||||
end
|
||||
|
||||
M.load_config = function()
|
||||
local conf = require "core.default_config"
|
||||
|
||||
-- attempt to load and merge a user config
|
||||
local chadrc_exists = vim.fn.filereadable(vim.fn.stdpath "config" .. "/lua/custom/chadrc.lua") == 1
|
||||
if chadrc_exists then
|
||||
-- merge user config if it exists and is a table; otherwise display an error
|
||||
local user_config = require "custom.chadrc"
|
||||
if type(user_config) == 'table' then
|
||||
conf = vim.tbl_deep_extend("force", conf, user_config)
|
||||
else
|
||||
error("User config (chadrc.lua) *must* return a table!")
|
||||
end
|
||||
end
|
||||
|
||||
return conf
|
||||
end
|
||||
|
||||
M.map = function(mode, keys, command, opt)
|
||||
local options = { noremap = true, silent = true }
|
||||
if opt then
|
||||
options = vim.tbl_extend("force", options, opt)
|
||||
end
|
||||
|
||||
-- all valid modes allowed for mappings
|
||||
-- :h map-modes
|
||||
local valid_modes = {
|
||||
[""] = true,
|
||||
["n"] = true,
|
||||
["v"] = true,
|
||||
["s"] = true,
|
||||
["x"] = true,
|
||||
["o"] = true,
|
||||
["!"] = true,
|
||||
["i"] = true,
|
||||
["l"] = true,
|
||||
["c"] = true,
|
||||
["t"] = true,
|
||||
}
|
||||
|
||||
-- helper function for M.map
|
||||
-- can gives multiple modes and keys
|
||||
local function map_wrapper(sub_mode, lhs, rhs, sub_options)
|
||||
if type(lhs) == "table" then
|
||||
for _, key in ipairs(lhs) do
|
||||
map_wrapper(sub_mode, key, rhs, sub_options)
|
||||
end
|
||||
else
|
||||
if type(sub_mode) == "table" then
|
||||
for _, m in ipairs(sub_mode) do
|
||||
map_wrapper(m, lhs, rhs, sub_options)
|
||||
end
|
||||
else
|
||||
if valid_modes[sub_mode] and lhs and rhs then
|
||||
vim.api.nvim_set_keymap(sub_mode, lhs, rhs, sub_options)
|
||||
else
|
||||
sub_mode, lhs, rhs = sub_mode or "", lhs or "", rhs or ""
|
||||
print(
|
||||
"Cannot set mapping [ mode = '" .. sub_mode .. "' | key = '" .. lhs .. "' | cmd = '" .. rhs .. "' ]"
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
map_wrapper(mode, keys, command, options)
|
||||
end
|
||||
|
||||
-- load plugin after entering vim ui
|
||||
M.packer_lazy_load = function(plugin, timer)
|
||||
if plugin then
|
||||
timer = timer or 0
|
||||
vim.defer_fn(function()
|
||||
require("packer").loader(plugin)
|
||||
end, timer)
|
||||
end
|
||||
end
|
||||
|
||||
-- Highlights functions
|
||||
|
||||
-- Define bg color
|
||||
-- @param group Group
|
||||
-- @param color Color
|
||||
|
||||
M.bg = function(group, col)
|
||||
cmd("hi " .. group .. " guibg=" .. col)
|
||||
end
|
||||
|
||||
-- Define fg color
|
||||
-- @param group Group
|
||||
-- @param color Color
|
||||
M.fg = function(group, col)
|
||||
cmd("hi " .. group .. " guifg=" .. col)
|
||||
end
|
||||
|
||||
-- Define bg and fg color
|
||||
-- @param group Group
|
||||
-- @param fgcol Fg Color
|
||||
-- @param bgcol Bg Color
|
||||
M.fg_bg = function(group, fgcol, bgcol)
|
||||
cmd("hi " .. group .. " guifg=" .. fgcol .. " guibg=" .. bgcol)
|
||||
end
|
||||
|
||||
-- Override default config of a plugin based on the path provided in the chadrc
|
||||
-- Arguments:
|
||||
-- 1st - name of plugin
|
||||
-- 2nd - default config path
|
||||
-- 3rd - optional function name which will called from default_config path
|
||||
-- e.g: if given args - "telescope", "plugins.configs.telescope", "setup"
|
||||
-- then return "require('plugins.configs.telescope').setup()"
|
||||
-- if 3rd arg not given, then return "require('plugins.configs.telescope')"
|
||||
-- if override is a table, mark set the override flag for the default config to true
|
||||
-- override flag being true tells the plugin to call tbl_override_req as part of configuration
|
||||
|
||||
M.override_req = function(name, default_config, config_function)
|
||||
local override, apply_table_override =
|
||||
require("core.utils").load_config().plugins.default_plugin_config_replace[name], "false"
|
||||
local result = default_config
|
||||
if type(override) == "string" and override ~= "" then
|
||||
return "require('" .. override .. "')"
|
||||
elseif type(override) == "table" then
|
||||
apply_table_override = "true"
|
||||
elseif type(override) == "function" then
|
||||
return override
|
||||
end
|
||||
|
||||
result = "('" .. result .. "')"
|
||||
if type(config_function) == "string" and config_function ~= "" then
|
||||
-- add the . to call the functions and concatenate true or false as argument
|
||||
result = result .. "." .. config_function .. "(" .. apply_table_override .. ")"
|
||||
end
|
||||
|
||||
return "require" .. result
|
||||
end
|
||||
|
||||
-- Override parts of default config of a plugin based on the table provided in the chadrc
|
||||
|
||||
-- FUNCTION: tbl_override_req, use `chadrc` plugin config override to modify default config if present
|
||||
-- name = name inside `default_config` / `chadrc`
|
||||
-- default_table = the default configuration table of the plugin
|
||||
-- returns the modified configuration table
|
||||
M.tbl_override_req = function(name, default_table)
|
||||
local override = require("core.utils").load_config().plugins.default_plugin_config_replace[name] or {}
|
||||
return vim.tbl_deep_extend("force", default_table, override)
|
||||
end
|
||||
|
||||
--provide labels to plugins instead of integers
|
||||
M.label_plugins = function(plugins)
|
||||
local plugins_labeled = {}
|
||||
for _, plugin in ipairs(plugins) do
|
||||
plugins_labeled[plugin[1]] = plugin
|
||||
end
|
||||
return plugins_labeled
|
||||
end
|
||||
|
||||
-- remove plugins specified by user from the plugins table
|
||||
M.remove_default_plugins = function(plugins)
|
||||
local removals = require("core.utils").load_config().plugins.default_plugin_remove or {}
|
||||
if not vim.tbl_isempty(removals) then
|
||||
for _, plugin in pairs(removals) do
|
||||
plugins[plugin] = nil
|
||||
end
|
||||
end
|
||||
return plugins
|
||||
end
|
||||
|
||||
-- append user plugins to default plugins
|
||||
M.add_user_plugins = function(plugins)
|
||||
local user_Plugins = require("core.utils").load_config().plugins.install or {}
|
||||
if type(user_Plugins) == "string"
|
||||
then user_Plugins=require(user_Plugins)
|
||||
end
|
||||
if not vim.tbl_isempty(user_Plugins) then
|
||||
for _, v in pairs(user_Plugins) do
|
||||
plugins[v[1]] = v
|
||||
end
|
||||
end
|
||||
return plugins
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -1,28 +0,0 @@
|
||||
local g = vim.g
|
||||
|
||||
g.dashboard_default_executive = "telescope"
|
||||
g.dashboard_custom_header = {
|
||||
" ",
|
||||
" ",
|
||||
" ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ",
|
||||
" ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ",
|
||||
" ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ",
|
||||
" ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ",
|
||||
" ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ",
|
||||
" ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ",
|
||||
" ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ",
|
||||
" ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ",
|
||||
" ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ",
|
||||
" ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ",
|
||||
" ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ",
|
||||
" "
|
||||
}
|
||||
|
||||
g.dashboard_custom_section = {
|
||||
a = {description = {" Find File SPC f f"}, command = "Telescope find_files"},
|
||||
b = {description = {" Recents SPC f o"}, command = "Telescope oldfiles"},
|
||||
c = {description = {" Find Word SPC f w"}, command = "Telescope live_grep"},
|
||||
d = {description = {"洛 New File SPC f n"}, command = "DashboardNewFile"},
|
||||
e = {description = {" Bookmarks SPC f b"}, command = "Telescope marks"},
|
||||
f = {description = {" Load Last Session SPC f s"}, command = "SessionLoad"}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
local colors = require "themes/onedark"
|
||||
|
||||
require "nvim-web-devicons".setup {
|
||||
override = {
|
||||
html = {
|
||||
icon = "",
|
||||
color = colors.baby_pink,
|
||||
name = "html"
|
||||
},
|
||||
css = {
|
||||
icon = "",
|
||||
color = colors.blue,
|
||||
name = "css"
|
||||
},
|
||||
js = {
|
||||
icon = "",
|
||||
color = colors.sun,
|
||||
name = "js"
|
||||
},
|
||||
ts = {
|
||||
icon = "ﯤ",
|
||||
color = colors.teal,
|
||||
name = "ts"
|
||||
},
|
||||
kt = {
|
||||
icon = "",
|
||||
color = colors.orange,
|
||||
name = "kt"
|
||||
},
|
||||
png = {
|
||||
icon = "",
|
||||
color = colors.dark_purple,
|
||||
name = "png"
|
||||
},
|
||||
jpg = {
|
||||
icon = "",
|
||||
color = colors.dark_purple,
|
||||
name = "jpg"
|
||||
},
|
||||
jpeg = {
|
||||
icon = "",
|
||||
color = "colors.dark_purple",
|
||||
name = "jpeg"
|
||||
},
|
||||
mp3 = {
|
||||
icon = "",
|
||||
color = colors.white,
|
||||
name = "mp3"
|
||||
},
|
||||
mp4 = {
|
||||
icon = "",
|
||||
color = colors.white,
|
||||
name = "mp4"
|
||||
},
|
||||
out = {
|
||||
icon = "",
|
||||
color = colors.white,
|
||||
name = "out"
|
||||
},
|
||||
Dockerfile = {
|
||||
icon = "",
|
||||
color = colors.cyan,
|
||||
name = "Dockerfile"
|
||||
},
|
||||
rb = {
|
||||
icon = "",
|
||||
color = colors.pink,
|
||||
name = "rb"
|
||||
},
|
||||
vue = {
|
||||
icon = "﵂",
|
||||
color = colors.vibrant_green,
|
||||
name = "vue"
|
||||
},
|
||||
py = {
|
||||
icon = "",
|
||||
color = colors.cyan,
|
||||
name = "py"
|
||||
},
|
||||
toml = {
|
||||
icon = "",
|
||||
color = colors.blue,
|
||||
name = "toml"
|
||||
},
|
||||
lock = {
|
||||
icon = "",
|
||||
color = colors.red,
|
||||
name = "lock"
|
||||
},
|
||||
zip = {
|
||||
icon = "",
|
||||
color = colors.sun,
|
||||
name = "zip"
|
||||
},
|
||||
xz = {
|
||||
icon = "",
|
||||
color = colors.sun,
|
||||
name = "xz"
|
||||
},
|
||||
deb = {
|
||||
icon = "",
|
||||
color = colors.cyan,
|
||||
name = "deb"
|
||||
},
|
||||
rpm = {
|
||||
icon = "",
|
||||
color = colors.orange,
|
||||
name = "rpm"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
require("gitsigns").setup {
|
||||
signs = {
|
||||
add = {hl = "DiffAdd", text = "▌", numhl = "GitSignsAddNr"},
|
||||
change = {hl = "DiffChange", text = "▌", numhl = "GitSignsChangeNr"},
|
||||
delete = {hl = "DiffDelete", text = "_", numhl = "GitSignsDeleteNr"},
|
||||
topdelete = {hl = "DiffDelete", text = "‾", numhl = "GitSignsDeleteNr"},
|
||||
changedelete = {hl = "DiffChange", text = "~", numhl = "GitSignsChangeNr"}
|
||||
},
|
||||
numhl = false,
|
||||
keymaps = {
|
||||
-- Default keymap options
|
||||
noremap = true,
|
||||
buffer = true,
|
||||
["n ]c"] = {expr = true, '&diff ? \']c\' : \'<cmd>lua require"gitsigns".next_hunk()<CR>\''},
|
||||
["n [c"] = {expr = true, '&diff ? \'[c\' : \'<cmd>lua require"gitsigns".prev_hunk()<CR>\''},
|
||||
["n <leader>hs"] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
|
||||
["n <leader>hu"] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>',
|
||||
["n <leader>hr"] = '<cmd>lua require"gitsigns".reset_hunk()<CR>',
|
||||
["n <leader>hp"] = '<cmd>lua require"gitsigns".preview_hunk()<CR>',
|
||||
["n <leader>hb"] = '<cmd>lua require"gitsigns".blame_line()<CR>'
|
||||
},
|
||||
watch_index = {
|
||||
interval = 100
|
||||
},
|
||||
sign_priority = 5,
|
||||
status_formatter = nil -- Use default
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
local cmd = vim.cmd
|
||||
|
||||
local colors = require "themes/onedark"
|
||||
|
||||
local white = colors.white
|
||||
local darker_black = colors.darker_black
|
||||
local black = colors.black
|
||||
local black2 = colors.black2
|
||||
local one_bg = colors.one_bg
|
||||
local one_bg2 = colors.one_bg2
|
||||
local one_bg3 = colors.one_bg3
|
||||
local light_grey = colors.light_grey
|
||||
local grey = colors.grey
|
||||
local grey_fg = colors.grey_fg
|
||||
local red = colors.red
|
||||
local line = colors.line
|
||||
local green = colors.green
|
||||
local nord_blue = colors.nord_blue
|
||||
local blue = colors.blue
|
||||
local yellow = colors.yellow
|
||||
local purple = colors.purple
|
||||
|
||||
-- for guifg , bg
|
||||
|
||||
local function fg(group, color)
|
||||
cmd("hi " .. group .. " guifg=" .. color)
|
||||
end
|
||||
|
||||
local function bg(group, color)
|
||||
cmd("hi " .. group .. " guibg=" .. color)
|
||||
end
|
||||
|
||||
local function fg_bg(group, fgcol, bgcol)
|
||||
cmd("hi " .. group .. " guifg=" .. fgcol .. " guibg=" .. bgcol)
|
||||
end
|
||||
|
||||
-- blankline
|
||||
|
||||
fg("IndentBlanklineChar", line)
|
||||
|
||||
-- misc --
|
||||
fg("LineNr", grey)
|
||||
fg("Comment", grey)
|
||||
fg("NvimInternalError", red)
|
||||
fg("VertSplit", line)
|
||||
fg("EndOfBuffer", black)
|
||||
|
||||
-- Pmenu
|
||||
bg("Pmenu", one_bg)
|
||||
bg("PmenuSbar", one_bg2)
|
||||
bg("PmenuSel", green)
|
||||
bg("PmenuThumb", nord_blue)
|
||||
|
||||
-- inactive statuslines as thin splitlines
|
||||
cmd("hi! StatusLineNC gui=underline guifg=" .. line)
|
||||
|
||||
-- line n.o
|
||||
cmd "hi clear CursorLine"
|
||||
fg("cursorlinenr", white)
|
||||
|
||||
-- git signs ---
|
||||
fg_bg("DiffAdd", nord_blue, "none")
|
||||
fg_bg("DiffChange", one_bg2, "none")
|
||||
fg_bg("DiffModified", nord_blue, "none")
|
||||
|
||||
-- NvimTree
|
||||
fg("NvimTreeFolderIcon", blue)
|
||||
fg("NvimTreeFolderName", blue)
|
||||
fg("NvimTreeIndentMarker", one_bg2)
|
||||
fg("NvimTreeVertSplit", darker_black)
|
||||
bg("NvimTreeVertSplit", darker_black)
|
||||
|
||||
fg("NvimTreeRootFolder", darker_black)
|
||||
bg("NvimTreeNormal", darker_black)
|
||||
fg_bg("NvimTreeStatuslineNc", darker_black, darker_black)
|
||||
|
||||
-- telescope
|
||||
fg("TelescopeBorder", line)
|
||||
fg("TelescopePromptBorder", line)
|
||||
fg("TelescopeResultsBorder", line)
|
||||
fg("TelescopePreviewBorder", grey)
|
||||
|
||||
-- LspDiagnostics ---
|
||||
|
||||
-- error / warnings
|
||||
fg("LspDiagnosticsSignError", red)
|
||||
fg("LspDiagnosticsVirtualTextError", red)
|
||||
fg("LspDiagnosticsSignWarning", yellow)
|
||||
fg("LspDiagnosticsVirtualTextWarning", yellow)
|
||||
|
||||
-- info
|
||||
fg("LspDiagnosticsSignInformation", green)
|
||||
fg("LspDiagnosticsVirtualTextInformation", green)
|
||||
|
||||
-- hint
|
||||
fg("LspDiagnosticsSignHint", purple)
|
||||
fg("LspDiagnosticsVirtualTextHint", purple)
|
||||
|
||||
-- bufferline
|
||||
|
||||
fg_bg("BufferLineFill", grey_fg, black2)
|
||||
fg_bg("BufferLineBackground", light_grey, black2)
|
||||
|
||||
fg_bg("BufferLineBufferVisible", light_grey, black2)
|
||||
fg_bg("BufferLineBufferSelected", white, black)
|
||||
|
||||
cmd "hi BufferLineBufferSelected gui=bold"
|
||||
|
||||
-- tabs
|
||||
fg_bg("BufferLineTab", light_grey, one_bg3)
|
||||
fg_bg("BufferLineTabSelected", black2, nord_blue)
|
||||
fg_bg("BufferLineTabClose", red, black)
|
||||
|
||||
fg_bg("BufferLineIndicator", black2, black2)
|
||||
fg_bg("BufferLineIndicatorSelected", black, black)
|
||||
|
||||
-- separators
|
||||
fg_bg("BufferLineSeparator", line, black2)
|
||||
fg_bg("BufferLineSeparatorVisible", line, black2)
|
||||
fg_bg("BufferLineSeparatorSelected", black, black2)
|
||||
|
||||
-- modified buffers
|
||||
fg_bg("BufferLineModified", red, black2)
|
||||
fg_bg("BufferLineModifiedVisible", red, black2)
|
||||
fg_bg("BufferLineModifiedSelected", green, black)
|
||||
|
||||
-- close buttons
|
||||
fg_bg("BufferLineCLoseButtonVisible", light_grey, black2)
|
||||
fg_bg("BufferLineCLoseButton", light_grey, black2)
|
||||
fg_bg("BufferLineCLoseButtonSelected", red, black)
|
||||
|
||||
-- dashboard
|
||||
|
||||
fg("DashboardHeader", grey_fg)
|
||||
fg("DashboardCenter", grey_fg)
|
||||
fg("DashboardShortcut", grey_fg)
|
||||
fg("DashboardFooter", black)
|
||||
@@ -1,35 +0,0 @@
|
||||
local function map(mode, lhs, rhs, opts)
|
||||
local options = {noremap = true}
|
||||
if opts then
|
||||
options = vim.tbl_extend("force", options, opts)
|
||||
end
|
||||
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||
end
|
||||
|
||||
local opt = {}
|
||||
|
||||
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them!
|
||||
--[[ remove this line
|
||||
|
||||
map("n", "dd", [=[ "_dd ]=], opt)
|
||||
map("v", "dd", [=[ "_dd ]=], opt)
|
||||
map("v", "x", [=[ "_x ]=], opt)
|
||||
|
||||
this line too ]]
|
||||
-- OPEN TERMINALS --
|
||||
map("n", "<C-l>", [[<Cmd>vnew term://bash <CR>]], opt) -- term over right
|
||||
map("n", "<C-x>", [[<Cmd> split term://bash | resize 10 <CR>]], opt) -- term bottom
|
||||
map("n", "<C-t>t", [[<Cmd> tabnew | term <CR>]], opt) -- term newtab
|
||||
|
||||
-- COPY EVERYTHING --
|
||||
map("n", "<C-a>", [[ <Cmd> %y+<CR>]], opt)
|
||||
|
||||
-- toggle numbers ---
|
||||
map("n", "<leader>n", [[ <Cmd> set nu!<CR>]], opt)
|
||||
|
||||
-- toggle truezen.nvim's ataraxis and minimalist mode
|
||||
map("n", "<leader>z", [[ <Cmd> TZAtaraxis<CR>]], opt)
|
||||
map("n", "<leader>m", [[ <Cmd> TZMinimalist<CR>]], opt)
|
||||
|
||||
map("n", "<C-s>", [[ <Cmd> w <CR>]], opt)
|
||||
-- vim.cmd("inoremap jh <Esc>")
|
||||
@@ -1,45 +0,0 @@
|
||||
local scopes = {o = vim.o, b = vim.bo, w = vim.wo}
|
||||
|
||||
local function opt(scope, key, value)
|
||||
scopes[scope][key] = value
|
||||
if scope ~= "o" then
|
||||
scopes["o"][key] = value
|
||||
end
|
||||
end
|
||||
|
||||
opt("o", "hidden", true)
|
||||
opt("o", "ignorecase", true)
|
||||
opt("o", "splitbelow", true)
|
||||
opt("o", "splitright", true)
|
||||
opt("o", "termguicolors", true)
|
||||
opt("w", "number", true)
|
||||
opt("o", "numberwidth", 2)
|
||||
opt("w", "cul", true)
|
||||
|
||||
opt("o", "mouse", "a")
|
||||
|
||||
opt("w", "signcolumn", "yes")
|
||||
opt("o", "cmdheight", 1)
|
||||
|
||||
opt("o", "updatetime", 250) -- update interval for gitsigns
|
||||
opt("o", "clipboard", "unnamedplus")
|
||||
opt("o", "timeoutlen", 500)
|
||||
|
||||
-- for indenline
|
||||
opt("b", "expandtab", true)
|
||||
opt("b", "shiftwidth", 2)
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.is_buffer_empty()
|
||||
-- Check whether the current buffer is empty
|
||||
return vim.fn.empty(vim.fn.expand("%:t")) == 1
|
||||
end
|
||||
|
||||
function M.has_width_gt(cols)
|
||||
-- Check if the windows width is greater than a given number of columns
|
||||
return vim.fn.winwidth(0) / 2 > cols
|
||||
end
|
||||
-- file extension specific tabbing
|
||||
vim.cmd([[autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4]])
|
||||
return M
|
||||
@@ -1,90 +0,0 @@
|
||||
function on_attach(client, bufnr)
|
||||
local function buf_set_keymap(...)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, ...)
|
||||
end
|
||||
local function buf_set_option(...)
|
||||
vim.api.nvim_buf_set_option(bufnr, ...)
|
||||
end
|
||||
|
||||
buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||
|
||||
-- Mappings.
|
||||
local opts = {noremap = true, silent = true}
|
||||
|
||||
buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts)
|
||||
buf_set_keymap("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
||||
buf_set_keymap("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
||||
buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
|
||||
buf_set_keymap("n", "<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wa", "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wr", "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>wl", "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>", opts)
|
||||
buf_set_keymap("n", "<space>D", "<cmd>lua vim.lsp.buf.type_definition()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", opts)
|
||||
buf_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts)
|
||||
buf_set_keymap("n", "[d", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
|
||||
buf_set_keymap("n", "]d", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
|
||||
buf_set_keymap("n", "<space>q", "<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts)
|
||||
|
||||
-- Set some keybinds conditional on server capabilities
|
||||
if client.resolved_capabilities.document_formatting then
|
||||
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||
elseif client.resolved_capabilities.document_range_formatting then
|
||||
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts)
|
||||
end
|
||||
end
|
||||
|
||||
-- lspInstall + lspconfig stuff
|
||||
|
||||
local function setup_servers()
|
||||
require "lspinstall".setup()
|
||||
|
||||
local lspconf = require("lspconfig")
|
||||
local servers = require "lspinstall".installed_servers()
|
||||
|
||||
for _, lang in pairs(servers) do
|
||||
if lang ~= "lua" then
|
||||
lspconf[lang].setup {
|
||||
on_attach = on_attach,
|
||||
root_dir = vim.loop.cwd
|
||||
}
|
||||
elseif lang == "lua" then
|
||||
lspconf[lang].setup {
|
||||
root_dir = function()
|
||||
return vim.loop.cwd()
|
||||
end,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = {"vim"}
|
||||
},
|
||||
workspace = {
|
||||
library = {
|
||||
[vim.fn.expand("$VIMRUNTIME/lua")] = true,
|
||||
[vim.fn.expand("$VIMRUNTIME/lua/vim/lsp")] = true
|
||||
}
|
||||
},
|
||||
telemetry = {
|
||||
enable = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
setup_servers()
|
||||
|
||||
-- Automatically reload after `:LspInstall <server>` so we don't have to restart neovim
|
||||
require "lspinstall".post_install_hook = function()
|
||||
setup_servers() -- reload installed servers
|
||||
vim.cmd("bufdo e") -- this triggers the FileType autocmd that starts the server
|
||||
end
|
||||
|
||||
-- replace the default lsp diagnostic letters with prettier symbols
|
||||
vim.fn.sign_define("LspDiagnosticsSignError", {text = "", numhl = "LspDiagnosticsDefaultError"})
|
||||
vim.fn.sign_define("LspDiagnosticsSignWarning", {text = "", numhl = "LspDiagnosticsDefaultWarning"})
|
||||
vim.fn.sign_define("LspDiagnosticsSignInformation", {text = "", numhl = "LspDiagnosticsDefaultInformation"})
|
||||
vim.fn.sign_define("LspDiagnosticsSignHint", {text = "", numhl = "LspDiagnosticsDefaultHint"})
|
||||
@@ -1,93 +0,0 @@
|
||||
local g = vim.g
|
||||
|
||||
vim.o.termguicolors = true
|
||||
|
||||
g.nvim_tree_side = "left"
|
||||
g.nvim_tree_width = 25
|
||||
g.nvim_tree_ignore = {".git", "node_modules", ".cache"}
|
||||
g.nvim_tree_auto_open = 0
|
||||
g.nvim_tree_auto_close = 0
|
||||
g.nvim_tree_quit_on_open = 0
|
||||
g.nvim_tree_follow = 1
|
||||
g.nvim_tree_indent_markers = 1
|
||||
g.nvim_tree_hide_dotfiles = 1
|
||||
g.nvim_tree_git_hl = 1
|
||||
g.nvim_tree_root_folder_modifier = ":t"
|
||||
g.nvim_tree_tab_open = 0
|
||||
g.nvim_tree_allow_resize = 1
|
||||
|
||||
g.nvim_tree_show_icons = {
|
||||
git = 1,
|
||||
folders = 1,
|
||||
files = 1
|
||||
}
|
||||
|
||||
g.nvim_tree_icons = {
|
||||
default = " ",
|
||||
symlink = " ",
|
||||
git = {
|
||||
unstaged = "✗",
|
||||
staged = "✓",
|
||||
unmerged = "",
|
||||
renamed = "➜",
|
||||
untracked = "★",
|
||||
deleted = "",
|
||||
ignored = "◌"
|
||||
},
|
||||
folder = {
|
||||
default = "",
|
||||
open = "",
|
||||
symlink = "",
|
||||
empty = "",
|
||||
empty_open = "",
|
||||
symlink_open = ""
|
||||
}
|
||||
}
|
||||
-- Mappings for nvimtree
|
||||
|
||||
vim.api.nvim_set_keymap(
|
||||
"n",
|
||||
"<C-n>",
|
||||
":NvimTreeToggle<CR>",
|
||||
{
|
||||
noremap = true,
|
||||
silent = true
|
||||
}
|
||||
)
|
||||
|
||||
local tree_cb = require "nvim-tree.config".nvim_tree_callback
|
||||
|
||||
g.nvim_tree_bindings = {
|
||||
["u"] = ":lua require'some_module'.some_function()<cr>",
|
||||
-- default mappings
|
||||
["<CR>"] = tree_cb("edit"),
|
||||
["o"] = tree_cb("edit"),
|
||||
["<2-LeftMouse>"] = tree_cb("edit"),
|
||||
["<2-RightMouse>"] = tree_cb("cd"),
|
||||
["<C-]>"] = tree_cb("cd"),
|
||||
["<C-v>"] = tree_cb("vsplit"),
|
||||
["<C-x>"] = tree_cb("split"),
|
||||
["<C-t>"] = tree_cb("tabnew"),
|
||||
["<"] = tree_cb("prev_sibling"),
|
||||
[">"] = tree_cb("next_sibling"),
|
||||
["<BS>"] = tree_cb("close_node"),
|
||||
["<S-CR>"] = tree_cb("close_node"),
|
||||
["<Tab>"] = tree_cb("preview"),
|
||||
["I"] = tree_cb("toggle_ignored"),
|
||||
["H"] = tree_cb("toggle_dotfiles"),
|
||||
["R"] = tree_cb("refresh"),
|
||||
["a"] = tree_cb("create"),
|
||||
["d"] = tree_cb("remove"),
|
||||
["r"] = tree_cb("rename"),
|
||||
["<C-r>"] = tree_cb("full_rename"),
|
||||
["x"] = tree_cb("cut"),
|
||||
["c"] = tree_cb("copy"),
|
||||
["p"] = tree_cb("paste"),
|
||||
["y"] = tree_cb("copy_name"),
|
||||
["Y"] = tree_cb("copy_path"),
|
||||
["gy"] = tree_cb("copy_absolute_path"),
|
||||
["[c"] = tree_cb("prev_git_item"),
|
||||
["]c"] = tree_cb("next_git_item"),
|
||||
["-"] = tree_cb("dir_up"),
|
||||
["q"] = tree_cb("close")
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
local packer = require("packer")
|
||||
local use = packer.use
|
||||
|
||||
-- using { } for using different branch , loading plugin with certain commands etc
|
||||
return packer.startup(
|
||||
function()
|
||||
use "wbthomason/packer.nvim"
|
||||
|
||||
-- color related stuff
|
||||
use "siduck76/nvim-base16.lua"
|
||||
use "norcalli/nvim-colorizer.lua"
|
||||
|
||||
-- lang stuff
|
||||
use "nvim-treesitter/nvim-treesitter"
|
||||
use "neovim/nvim-lspconfig"
|
||||
use "hrsh7th/nvim-compe"
|
||||
use "onsails/lspkind-nvim"
|
||||
use "sbdchd/neoformat"
|
||||
use "nvim-lua/plenary.nvim"
|
||||
use "kabouzeid/nvim-lspinstall"
|
||||
|
||||
use "lewis6991/gitsigns.nvim"
|
||||
use "akinsho/nvim-bufferline.lua"
|
||||
use "glepnir/galaxyline.nvim"
|
||||
use "windwp/nvim-autopairs"
|
||||
use "alvan/vim-closetag"
|
||||
|
||||
-- snippet support
|
||||
use "hrsh7th/vim-vsnip"
|
||||
use "rafamadriz/friendly-snippets"
|
||||
|
||||
-- file managing , picker etc
|
||||
use "kyazdani42/nvim-tree.lua"
|
||||
use "kyazdani42/nvim-web-devicons"
|
||||
use "ryanoasis/vim-devicons"
|
||||
use "nvim-telescope/telescope.nvim"
|
||||
use "nvim-telescope/telescope-media-files.nvim"
|
||||
use "nvim-lua/popup.nvim"
|
||||
|
||||
-- misc
|
||||
use "glepnir/dashboard-nvim"
|
||||
use "tweekmonster/startuptime.vim"
|
||||
use "907th/vim-auto-save"
|
||||
use "karb94/neoscroll.nvim"
|
||||
use "kdav5758/TrueZen.nvim"
|
||||
use "folke/which-key.nvim"
|
||||
use {"lukas-reineke/indent-blankline.nvim", branch = "lua"}
|
||||
end,
|
||||
{
|
||||
display = {
|
||||
border = {"┌", "─", "┐", "│", "┘", "─", "└", "│"}
|
||||
}
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,92 @@
|
||||
local present, alpha = pcall(require, "alpha")
|
||||
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local function button(sc, txt, keybind)
|
||||
local sc_ = sc:gsub("%s", ""):gsub("SPC", "<leader>")
|
||||
|
||||
local opts = {
|
||||
position = "center",
|
||||
text = txt,
|
||||
shortcut = sc,
|
||||
cursor = 5,
|
||||
width = 36,
|
||||
align_shortcut = "right",
|
||||
hl = "AlphaButtons",
|
||||
}
|
||||
|
||||
if keybind then
|
||||
opts.keymap = { "n", sc_, keybind, { noremap = true, silent = true } }
|
||||
end
|
||||
|
||||
return {
|
||||
type = "button",
|
||||
val = txt,
|
||||
on_press = function()
|
||||
local key = vim.api.nvim_replace_termcodes(sc_, true, false, true)
|
||||
vim.api.nvim_feedkeys(key, "normal", false)
|
||||
end,
|
||||
opts = opts,
|
||||
}
|
||||
end
|
||||
|
||||
local default = {}
|
||||
|
||||
default.ascii = {
|
||||
" ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ",
|
||||
" ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ",
|
||||
" ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ",
|
||||
" ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ",
|
||||
" ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ",
|
||||
" ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ",
|
||||
" ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ",
|
||||
" ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ",
|
||||
" ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ",
|
||||
" ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ",
|
||||
" ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ",
|
||||
}
|
||||
|
||||
default.header = {
|
||||
type = "text",
|
||||
val = default.ascii,
|
||||
opts = {
|
||||
position = "center",
|
||||
hl = "AlphaHeader",
|
||||
},
|
||||
}
|
||||
|
||||
default.buttons = {
|
||||
type = "group",
|
||||
val = {
|
||||
button("SPC f f", " Find File ", ":Telescope find_files<CR>"),
|
||||
button("SPC f o", " Recent File ", ":Telescope oldfiles<CR>"),
|
||||
button("SPC f w", " Find Word ", ":Telescope live_grep<CR>"),
|
||||
button("SPC b m", " Bookmarks ", ":Telescope marks<CR>"),
|
||||
button("SPC t h", " Themes ", ":Telescope themes<CR>"),
|
||||
button("SPC e s", " Settings", ":e $MYVIMRC | :cd %:p:h <CR>"),
|
||||
},
|
||||
opts = {
|
||||
spacing = 1,
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("alpha", default)
|
||||
end
|
||||
alpha.setup {
|
||||
layout = {
|
||||
{ type = "padding", val = 9 },
|
||||
default.header,
|
||||
{ type = "padding", val = 2 },
|
||||
default.buttons,
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,148 @@
|
||||
local present, bufferline = pcall(require, "bufferline")
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
colors = require("colors").get(),
|
||||
}
|
||||
default = {
|
||||
options = {
|
||||
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
|
||||
buffer_close_icon = "",
|
||||
modified_icon = "",
|
||||
close_icon = "",
|
||||
show_close_icon = true,
|
||||
left_trunc_marker = "",
|
||||
right_trunc_marker = "",
|
||||
max_name_length = 14,
|
||||
max_prefix_length = 13,
|
||||
tab_size = 20,
|
||||
show_tab_indicators = true,
|
||||
enforce_regular_tabs = false,
|
||||
view = "multiwindow",
|
||||
show_buffer_close_icons = true,
|
||||
separator_style = "thin",
|
||||
always_show_bufferline = true,
|
||||
diagnostics = false,
|
||||
custom_filter = function(buf_number)
|
||||
-- Func to filter out our managed/persistent split terms
|
||||
local present_type, type = pcall(function()
|
||||
return vim.api.nvim_buf_get_var(buf_number, "term_type")
|
||||
end)
|
||||
|
||||
if present_type then
|
||||
if type == "vert" then
|
||||
return false
|
||||
elseif type == "hori" then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
return true
|
||||
end,
|
||||
},
|
||||
|
||||
highlights = {
|
||||
background = {
|
||||
guifg = default.colors.grey_fg,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
|
||||
-- buffers
|
||||
buffer_selected = {
|
||||
guifg = default.colors.white,
|
||||
guibg = default.colors.black,
|
||||
gui = "bold",
|
||||
},
|
||||
buffer_visible = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
|
||||
-- for diagnostics = "nvim_lsp"
|
||||
error = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
error_diagnostic = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
|
||||
-- close buttons
|
||||
close_button = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
close_button_visible = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
close_button_selected = {
|
||||
guifg = default.colors.red,
|
||||
guibg = default.colors.black,
|
||||
},
|
||||
fill = {
|
||||
guifg = default.colors.grey_fg,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
indicator_selected = {
|
||||
guifg = default.colors.black,
|
||||
guibg = default.colors.black,
|
||||
},
|
||||
|
||||
-- modified
|
||||
modified = {
|
||||
guifg = default.colors.red,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
modified_visible = {
|
||||
guifg = default.colors.red,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
modified_selected = {
|
||||
guifg = default.colors.green,
|
||||
guibg = default.colors.black,
|
||||
},
|
||||
|
||||
-- separators
|
||||
separator = {
|
||||
guifg = default.colors.black2,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
separator_visible = {
|
||||
guifg = default.colors.black2,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
separator_selected = {
|
||||
guifg = default.colors.black2,
|
||||
guibg = default.colors.black2,
|
||||
},
|
||||
|
||||
-- tabs
|
||||
tab = {
|
||||
guifg = default.colors.light_grey,
|
||||
guibg = default.colors.one_bg3,
|
||||
},
|
||||
tab_selected = {
|
||||
guifg = default.colors.black2,
|
||||
guibg = default.colors.nord_blue,
|
||||
},
|
||||
tab_close = {
|
||||
guifg = default.colors.red,
|
||||
guibg = default.colors.black,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("bufferline", default)
|
||||
end
|
||||
bufferline.setup(default)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,76 @@
|
||||
local present, cmp = pcall(require, "cmp")
|
||||
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
vim.opt.completeopt = "menuone,noselect"
|
||||
|
||||
local default = {
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
formatting = {
|
||||
format = function(entry, vim_item)
|
||||
local icons = require "plugins.configs.lspkind_icons"
|
||||
vim_item.kind = string.format("%s %s", icons[vim_item.kind], vim_item.kind)
|
||||
|
||||
vim_item.menu = ({
|
||||
nvim_lsp = "[LSP]",
|
||||
nvim_lua = "[Lua]",
|
||||
buffer = "[BUF]",
|
||||
})[entry.source.name]
|
||||
|
||||
return vim_item
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.close(),
|
||||
["<CR>"] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif require("luasnip").expand_or_jumpable() then
|
||||
vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-expand-or-jump", true, true, true), "")
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif require("luasnip").jumpable(-1) then
|
||||
vim.fn.feedkeys(vim.api.nvim_replace_termcodes("<Plug>luasnip-jump-prev", true, true, true), "")
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "buffer" },
|
||||
{ name = "nvim_lua" },
|
||||
{ name = "path" },
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_cmp", default)
|
||||
end
|
||||
cmp.setup(default)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,158 @@
|
||||
local present, icons = pcall(require, "nvim-web-devicons")
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
colors = require("colors").get(),
|
||||
}
|
||||
|
||||
default = {
|
||||
override = {
|
||||
c = {
|
||||
icon = "",
|
||||
color = default.colors.blue,
|
||||
name = "c",
|
||||
},
|
||||
css = {
|
||||
icon = "",
|
||||
color = default.colors.blue,
|
||||
name = "css",
|
||||
},
|
||||
deb = {
|
||||
icon = "",
|
||||
color = default.colors.cyan,
|
||||
name = "deb",
|
||||
},
|
||||
Dockerfile = {
|
||||
icon = "",
|
||||
color = default.colors.cyan,
|
||||
name = "Dockerfile",
|
||||
},
|
||||
html = {
|
||||
icon = "",
|
||||
color = default.colors.baby_pink,
|
||||
name = "html",
|
||||
},
|
||||
jpeg = {
|
||||
icon = "",
|
||||
color = default.colors.dark_purple,
|
||||
name = "jpeg",
|
||||
},
|
||||
jpg = {
|
||||
icon = "",
|
||||
color = default.colors.dark_purple,
|
||||
name = "jpg",
|
||||
},
|
||||
js = {
|
||||
icon = "",
|
||||
color = default.colors.sun,
|
||||
name = "js",
|
||||
},
|
||||
kt = {
|
||||
icon = "",
|
||||
color = default.colors.orange,
|
||||
name = "kt",
|
||||
},
|
||||
lock = {
|
||||
icon = "",
|
||||
color = default.colors.red,
|
||||
name = "lock",
|
||||
},
|
||||
lua = {
|
||||
icon = "",
|
||||
color = default.colors.blue,
|
||||
name = "lua",
|
||||
},
|
||||
mp3 = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "mp3",
|
||||
},
|
||||
mp4 = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "mp4",
|
||||
},
|
||||
out = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "out",
|
||||
},
|
||||
png = {
|
||||
icon = "",
|
||||
color = default.colors.dark_purple,
|
||||
name = "png",
|
||||
},
|
||||
py = {
|
||||
icon = "",
|
||||
color = default.colors.cyan,
|
||||
name = "py",
|
||||
},
|
||||
["robots.txt"] = {
|
||||
icon = "ﮧ",
|
||||
color = default.colors.red,
|
||||
name = "robots",
|
||||
},
|
||||
toml = {
|
||||
icon = "",
|
||||
color = default.colors.blue,
|
||||
name = "toml",
|
||||
},
|
||||
ts = {
|
||||
icon = "ﯤ",
|
||||
color = default.colors.teal,
|
||||
name = "ts",
|
||||
},
|
||||
ttf = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "TrueTypeFont",
|
||||
},
|
||||
rb = {
|
||||
icon = "",
|
||||
color = default.colors.pink,
|
||||
name = "rb",
|
||||
},
|
||||
rpm = {
|
||||
icon = "",
|
||||
color = default.colors.orange,
|
||||
name = "rpm",
|
||||
},
|
||||
vue = {
|
||||
icon = "﵂",
|
||||
color = default.colors.vibrant_green,
|
||||
name = "vue",
|
||||
},
|
||||
woff = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "WebOpenFontFormat",
|
||||
},
|
||||
woff2 = {
|
||||
icon = "",
|
||||
color = default.colors.white,
|
||||
name = "WebOpenFontFormat2",
|
||||
},
|
||||
xz = {
|
||||
icon = "",
|
||||
color = default.colors.sun,
|
||||
name = "xz",
|
||||
},
|
||||
zip = {
|
||||
icon = "",
|
||||
color = default.colors.sun,
|
||||
name = "zip",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_web_devicons", default)
|
||||
end
|
||||
icons.setup(default)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,41 @@
|
||||
local M = {}
|
||||
require("plugins.configs.others").lsp_handlers()
|
||||
|
||||
function M.on_attach(client, bufnr)
|
||||
local function buf_set_option(...)
|
||||
vim.api.nvim_buf_set_option(bufnr, ...)
|
||||
end
|
||||
|
||||
client.resolved_capabilities.document_formatting = false
|
||||
client.resolved_capabilities.document_range_formatting = false
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||
|
||||
require("core.mappings").lspconfig()
|
||||
end
|
||||
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities.textDocument.completion.completionItem.documentationFormat = { "markdown", "plaintext" }
|
||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
capabilities.textDocument.completion.completionItem.preselectSupport = true
|
||||
capabilities.textDocument.completion.completionItem.insertReplaceSupport = true
|
||||
capabilities.textDocument.completion.completionItem.labelDetailsSupport = true
|
||||
capabilities.textDocument.completion.completionItem.deprecatedSupport = true
|
||||
capabilities.textDocument.completion.completionItem.commitCharactersSupport = true
|
||||
capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } }
|
||||
capabilities.textDocument.completion.completionItem.resolveSupport = {
|
||||
properties = {
|
||||
"documentation",
|
||||
"detail",
|
||||
"additionalTextEdits",
|
||||
},
|
||||
}
|
||||
|
||||
-- requires a file containing user's lspconfigs
|
||||
local addlsp_confs = require("core.utils").load_config().plugins.options.lspconfig.setup_lspconf
|
||||
|
||||
if #addlsp_confs ~= 0 then
|
||||
require(addlsp_confs).setup_lsp(M.on_attach, capabilities)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,29 @@
|
||||
local icons = {
|
||||
Text = "",
|
||||
Method = "",
|
||||
Function = "",
|
||||
Constructor = "",
|
||||
Field = "ﰠ",
|
||||
Variable = "",
|
||||
Class = "ﴯ",
|
||||
Interface = "",
|
||||
Module = "",
|
||||
Property = "ﰠ",
|
||||
Unit = "塞",
|
||||
Value = "",
|
||||
Enum = "",
|
||||
Keyword = "",
|
||||
Snippet = "",
|
||||
Color = "",
|
||||
File = "",
|
||||
Reference = "",
|
||||
Folder = "",
|
||||
EnumMember = "",
|
||||
Constant = "",
|
||||
Struct = "פּ",
|
||||
Event = "",
|
||||
Operator = "",
|
||||
TypeParameter = "",
|
||||
}
|
||||
|
||||
return icons
|
||||
@@ -0,0 +1,90 @@
|
||||
-- globals must be set prior to requiring nvim-tree to function
|
||||
local g = vim.g
|
||||
|
||||
g.nvim_tree_add_trailing = 0 -- append a trailing slash to folder names
|
||||
g.nvim_tree_git_hl = 0
|
||||
g.nvim_tree_highlight_opened_files = 0
|
||||
g.nvim_tree_root_folder_modifier = table.concat { ":t:gs?$?/..", string.rep(" ", 1000), "?:gs?^??" }
|
||||
|
||||
g.nvim_tree_show_icons = {
|
||||
folders = 1,
|
||||
files = 1,
|
||||
git = 1,
|
||||
}
|
||||
|
||||
g.nvim_tree_icons = {
|
||||
default = "",
|
||||
symlink = "",
|
||||
git = {
|
||||
deleted = "",
|
||||
ignored = "◌",
|
||||
renamed = "➜",
|
||||
staged = "✓",
|
||||
unmerged = "",
|
||||
unstaged = "✗",
|
||||
untracked = "★",
|
||||
},
|
||||
folder = {
|
||||
default = "",
|
||||
empty = "",
|
||||
empty_open = "",
|
||||
open = "",
|
||||
symlink = "",
|
||||
symlink_open = "",
|
||||
},
|
||||
}
|
||||
|
||||
local present, nvimtree = pcall(require, "nvim-tree")
|
||||
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
filters = {
|
||||
dotfiles = false,
|
||||
},
|
||||
disable_netrw = true,
|
||||
hijack_netrw = true,
|
||||
ignore_ft_on_setup = { "dashboard" },
|
||||
auto_close = false,
|
||||
open_on_tab = false,
|
||||
hijack_cursor = true,
|
||||
hijack_unnamed_buffer_when_opening = false,
|
||||
update_cwd = true,
|
||||
update_focused_file = {
|
||||
enable = true,
|
||||
update_cwd = false,
|
||||
},
|
||||
view = {
|
||||
allow_resize = true,
|
||||
side = "left",
|
||||
width = 25,
|
||||
hide_root_folder = true,
|
||||
},
|
||||
git = {
|
||||
enable = false,
|
||||
ignore = false,
|
||||
},
|
||||
actions = {
|
||||
open_file = {
|
||||
resize_window = true,
|
||||
},
|
||||
},
|
||||
renderer = {
|
||||
indent_markers = {
|
||||
enable = true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local M = {}
|
||||
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_tree", default)
|
||||
end
|
||||
nvimtree.setup(default)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,196 @@
|
||||
local M = {}
|
||||
|
||||
local chadrc_config = require("core.utils").load_config()
|
||||
|
||||
M.autopairs = function(override_flag)
|
||||
local present1, autopairs = pcall(require, "nvim-autopairs")
|
||||
local present2, cmp_autopairs = pcall(require, "nvim-autopairs.completion.cmp")
|
||||
|
||||
if present1 and present2 then
|
||||
local default = { fast_wrap = {} }
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_autopairs", default)
|
||||
end
|
||||
autopairs.setup(default)
|
||||
|
||||
local cmp = require "cmp"
|
||||
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||
end
|
||||
end
|
||||
|
||||
M.better_escape = function()
|
||||
require("better_escape").setup {
|
||||
mapping = chadrc_config.mappings.plugins.better_escape.esc_insertmode,
|
||||
timeout = chadrc_config.plugins.options.esc_insertmode_timeout,
|
||||
}
|
||||
end
|
||||
|
||||
M.blankline = function(override_flag)
|
||||
local default = {
|
||||
indentLine_enabled = 1,
|
||||
char = "▏",
|
||||
filetype_exclude = {
|
||||
"help",
|
||||
"terminal",
|
||||
"alpha",
|
||||
"packer",
|
||||
"lspinfo",
|
||||
"TelescopePrompt",
|
||||
"TelescopeResults",
|
||||
"nvchad_cheatsheet",
|
||||
"lsp-installer",
|
||||
"",
|
||||
},
|
||||
buftype_exclude = { "terminal" },
|
||||
show_trailing_blankline_indent = false,
|
||||
show_first_indent_level = false,
|
||||
}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("indent_blankline", default)
|
||||
end
|
||||
require("indent_blankline").setup(default)
|
||||
end
|
||||
|
||||
M.colorizer = function(override_flag)
|
||||
local present, colorizer = pcall(require, "colorizer")
|
||||
if present then
|
||||
local default = {
|
||||
filetypes = {
|
||||
"*",
|
||||
},
|
||||
user_default_options = {
|
||||
RGB = true, -- #RGB hex codes
|
||||
RRGGBB = true, -- #RRGGBB hex codes
|
||||
names = false, -- "Name" codes like Blue
|
||||
RRGGBBAA = false, -- #RRGGBBAA hex codes
|
||||
rgb_fn = false, -- CSS rgb() and rgba() functions
|
||||
hsl_fn = false, -- CSS hsl() and hsla() functions
|
||||
css = false, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
|
||||
css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
||||
|
||||
-- Available modes: foreground, background
|
||||
mode = "background", -- Set the display mode.
|
||||
},
|
||||
}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_colorizer", default)
|
||||
end
|
||||
colorizer.setup(default["filetypes"], default["user_default_options"])
|
||||
vim.cmd "ColorizerReloadAllBuffers"
|
||||
end
|
||||
end
|
||||
|
||||
M.comment = function(override_flag)
|
||||
local present, nvim_comment = pcall(require, "Comment")
|
||||
if present then
|
||||
local default = {}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_comment", default)
|
||||
end
|
||||
nvim_comment.setup(default)
|
||||
end
|
||||
end
|
||||
|
||||
M.luasnip = function(override_flag)
|
||||
local present, luasnip = pcall(require, "luasnip")
|
||||
if present then
|
||||
local default = {
|
||||
history = true,
|
||||
updateevents = "TextChanged,TextChangedI",
|
||||
}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("luasnip", default)
|
||||
end
|
||||
luasnip.config.set_config(default)
|
||||
require("luasnip/loaders/from_vscode").load { paths = chadrc_config.plugins.options.luasnip.snippet_path }
|
||||
require("luasnip/loaders/from_vscode").load()
|
||||
end
|
||||
end
|
||||
|
||||
M.signature = function(override_flag)
|
||||
local present, lspsignature = pcall(require, "lsp_signature")
|
||||
if present then
|
||||
local default = {
|
||||
bind = true,
|
||||
doc_lines = 0,
|
||||
floating_window = true,
|
||||
fix_pos = true,
|
||||
hint_enable = true,
|
||||
hint_prefix = " ",
|
||||
hint_scheme = "String",
|
||||
hi_parameter = "Search",
|
||||
max_height = 22,
|
||||
max_width = 120, -- max_width of signature floating_window, line will be wrapped if exceed max_width
|
||||
handler_opts = {
|
||||
border = "single", -- double, single, shadow, none
|
||||
},
|
||||
zindex = 200, -- by default it will be on top of all floating windows, set to 50 send it to bottom
|
||||
padding = "", -- character to pad on left and right of signature can be ' ', or '|' etc
|
||||
}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("signature", default)
|
||||
end
|
||||
lspsignature.setup(default)
|
||||
end
|
||||
end
|
||||
|
||||
M.lsp_handlers = function()
|
||||
local function lspSymbol(name, icon)
|
||||
local hl = "DiagnosticSign" .. name
|
||||
vim.fn.sign_define(hl, { text = icon, numhl = hl, texthl = hl })
|
||||
end
|
||||
|
||||
lspSymbol("Error", "")
|
||||
lspSymbol("Info", "")
|
||||
lspSymbol("Hint", "")
|
||||
lspSymbol("Warn", "")
|
||||
|
||||
vim.diagnostic.config {
|
||||
virtual_text = {
|
||||
prefix = "",
|
||||
},
|
||||
signs = true,
|
||||
underline = true,
|
||||
update_in_insert = false,
|
||||
}
|
||||
|
||||
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||
border = "single",
|
||||
})
|
||||
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||
border = "single",
|
||||
})
|
||||
|
||||
-- suppress error messages from lang servers
|
||||
vim.notify = function(msg, log_level)
|
||||
if msg:match "exit code" then
|
||||
return
|
||||
end
|
||||
if log_level == vim.log.levels.ERROR then
|
||||
vim.api.nvim_err_writeln(msg)
|
||||
else
|
||||
vim.api.nvim_echo({ { msg } }, true, {})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
M.gitsigns = function(override_flag)
|
||||
local present, gitsigns = pcall(require, "gitsigns")
|
||||
if present then
|
||||
local default = {
|
||||
signs = {
|
||||
add = { hl = "DiffAdd", text = "│", numhl = "GitSignsAddNr" },
|
||||
change = { hl = "DiffChange", text = "│", numhl = "GitSignsChangeNr" },
|
||||
delete = { hl = "DiffDelete", text = "", numhl = "GitSignsDeleteNr" },
|
||||
topdelete = { hl = "DiffDelete", text = "‾", numhl = "GitSignsDeleteNr" },
|
||||
changedelete = { hl = "DiffChangeDelete", text = "~", numhl = "GitSignsChangeNr" },
|
||||
},
|
||||
}
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("gitsigns", default)
|
||||
end
|
||||
gitsigns.setup(default)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,438 @@
|
||||
local present, feline = pcall(require, "feline")
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
colors = require("colors").get(),
|
||||
lsp = require "feline.providers.lsp",
|
||||
lsp_severity = vim.diagnostic.severity,
|
||||
config = require("core.utils").load_config().plugins.options.statusline,
|
||||
}
|
||||
|
||||
default.icon_styles = {
|
||||
default = {
|
||||
left = "",
|
||||
right = " ",
|
||||
main_icon = " ",
|
||||
vi_mode_icon = " ",
|
||||
position_icon = " ",
|
||||
},
|
||||
arrow = {
|
||||
left = "",
|
||||
right = "",
|
||||
main_icon = " ",
|
||||
vi_mode_icon = " ",
|
||||
position_icon = " ",
|
||||
},
|
||||
|
||||
block = {
|
||||
left = " ",
|
||||
right = " ",
|
||||
main_icon = " ",
|
||||
vi_mode_icon = " ",
|
||||
position_icon = " ",
|
||||
},
|
||||
|
||||
round = {
|
||||
left = "",
|
||||
right = "",
|
||||
main_icon = " ",
|
||||
vi_mode_icon = " ",
|
||||
position_icon = " ",
|
||||
},
|
||||
|
||||
slant = {
|
||||
left = " ",
|
||||
right = " ",
|
||||
main_icon = " ",
|
||||
vi_mode_icon = " ",
|
||||
position_icon = " ",
|
||||
},
|
||||
}
|
||||
|
||||
-- statusline style
|
||||
default.statusline_style = default.icon_styles[default.config.style]
|
||||
|
||||
-- show short statusline on small screens
|
||||
default.shortline = default.config.shortline == false and true
|
||||
|
||||
-- Initialize the components table
|
||||
default.components = {
|
||||
active = {},
|
||||
}
|
||||
|
||||
default.main_icon = {
|
||||
provider = default.statusline_style.main_icon,
|
||||
|
||||
hl = {
|
||||
fg = default.colors.statusline_bg,
|
||||
bg = default.colors.nord_blue,
|
||||
},
|
||||
|
||||
right_sep = {
|
||||
str = default.statusline_style.right,
|
||||
hl = {
|
||||
fg = default.colors.nord_blue,
|
||||
bg = default.colors.lightbg,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
default.file_name = {
|
||||
provider = function()
|
||||
local filename = vim.fn.expand "%:t"
|
||||
local extension = vim.fn.expand "%:e"
|
||||
local icon = require("nvim-web-devicons").get_icon(filename, extension)
|
||||
if icon == nil then
|
||||
icon = " "
|
||||
return icon
|
||||
end
|
||||
return " " .. icon .. " " .. filename .. " "
|
||||
end,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 70
|
||||
end,
|
||||
hl = {
|
||||
fg = default.colors.white,
|
||||
bg = default.colors.lightbg,
|
||||
},
|
||||
|
||||
right_sep = {
|
||||
str = default.statusline_style.right,
|
||||
hl = { fg = default.colors.lightbg, bg = default.colors.lightbg2 },
|
||||
},
|
||||
}
|
||||
|
||||
default.dir_name = {
|
||||
provider = function()
|
||||
local dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":t")
|
||||
return " " .. dir_name .. " "
|
||||
end,
|
||||
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 80
|
||||
end,
|
||||
|
||||
hl = {
|
||||
fg = default.colors.grey_fg2,
|
||||
bg = default.colors.lightbg2,
|
||||
},
|
||||
right_sep = {
|
||||
str = default.statusline_style.right,
|
||||
hi = {
|
||||
fg = default.colors.lightbg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
default.diff = {
|
||||
add = {
|
||||
provider = "git_diff_added",
|
||||
hl = {
|
||||
fg = default.colors.grey_fg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
icon = " ",
|
||||
},
|
||||
|
||||
change = {
|
||||
provider = "git_diff_changed",
|
||||
hl = {
|
||||
fg = default.colors.grey_fg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
icon = " ",
|
||||
},
|
||||
|
||||
remove = {
|
||||
provider = "git_diff_removed",
|
||||
hl = {
|
||||
fg = default.colors.grey_fg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
icon = " ",
|
||||
},
|
||||
}
|
||||
|
||||
default.git_branch = {
|
||||
provider = "git_branch",
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 70
|
||||
end,
|
||||
hl = {
|
||||
fg = default.colors.grey_fg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
icon = " ",
|
||||
}
|
||||
|
||||
default.diagnostic = {
|
||||
error = {
|
||||
provider = "diagnostic_errors",
|
||||
enabled = function()
|
||||
return default.lsp.diagnostics_exist(default.lsp_severity.ERROR)
|
||||
end,
|
||||
|
||||
hl = { fg = default.colors.red },
|
||||
icon = " ",
|
||||
},
|
||||
|
||||
warning = {
|
||||
provider = "diagnostic_warnings",
|
||||
enabled = function()
|
||||
return default.lsp.diagnostics_exist(default.lsp_severity.WARN)
|
||||
end,
|
||||
hl = { fg = default.colors.yellow },
|
||||
icon = " ",
|
||||
},
|
||||
|
||||
hint = {
|
||||
provider = "diagnostic_hints",
|
||||
enabled = function()
|
||||
return default.lsp.diagnostics_exist(default.lsp_severity.HINT)
|
||||
end,
|
||||
hl = { fg = default.colors.grey_fg2 },
|
||||
icon = " ",
|
||||
},
|
||||
|
||||
info = {
|
||||
provider = "diagnostic_info",
|
||||
enabled = function()
|
||||
return default.lsp.diagnostics_exist(default.lsp_severity.INFO)
|
||||
end,
|
||||
hl = { fg = default.colors.green },
|
||||
icon = " ",
|
||||
},
|
||||
}
|
||||
|
||||
default.lsp_progress = {
|
||||
provider = function()
|
||||
local Lsp = vim.lsp.util.get_progress_messages()[1]
|
||||
|
||||
if Lsp then
|
||||
local msg = Lsp.message or ""
|
||||
local percentage = Lsp.percentage or 0
|
||||
local title = Lsp.title or ""
|
||||
local spinners = {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
}
|
||||
|
||||
local success_icon = {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
}
|
||||
|
||||
local ms = vim.loop.hrtime() / 1000000
|
||||
local frame = math.floor(ms / 120) % #spinners
|
||||
|
||||
if percentage >= 70 then
|
||||
return string.format(" %%<%s %s %s (%s%%%%) ", success_icon[frame + 1], title, msg, percentage)
|
||||
end
|
||||
|
||||
return string.format(" %%<%s %s %s (%s%%%%) ", spinners[frame + 1], title, msg, percentage)
|
||||
end
|
||||
|
||||
return ""
|
||||
end,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 80
|
||||
end,
|
||||
hl = { fg = default.colors.green },
|
||||
}
|
||||
|
||||
default.lsp_icon = {
|
||||
provider = function()
|
||||
if next(vim.lsp.buf_get_clients()) ~= nil then
|
||||
return " LSP"
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 70
|
||||
end,
|
||||
hl = { fg = default.colors.grey_fg2, bg = default.colors.statusline_bg },
|
||||
}
|
||||
|
||||
default.mode_colors = {
|
||||
["n"] = { "NORMAL", default.colors.red },
|
||||
["no"] = { "N-PENDING", default.colors.red },
|
||||
["i"] = { "INSERT", default.colors.dark_purple },
|
||||
["ic"] = { "INSERT", default.colors.dark_purple },
|
||||
["t"] = { "TERMINAL", default.colors.green },
|
||||
["v"] = { "VISUAL", default.colors.cyan },
|
||||
["V"] = { "V-LINE", default.colors.cyan },
|
||||
[""] = { "V-BLOCK", default.colors.cyan },
|
||||
["R"] = { "REPLACE", default.colors.orange },
|
||||
["Rv"] = { "V-REPLACE", default.colors.orange },
|
||||
["s"] = { "SELECT", default.colors.nord_blue },
|
||||
["S"] = { "S-LINE", default.colors.nord_blue },
|
||||
[""] = { "S-BLOCK", default.colors.nord_blue },
|
||||
["c"] = { "COMMAND", default.colors.pink },
|
||||
["cv"] = { "COMMAND", default.colors.pink },
|
||||
["ce"] = { "COMMAND", default.colors.pink },
|
||||
["r"] = { "PROMPT", default.colors.teal },
|
||||
["rm"] = { "MORE", default.colors.teal },
|
||||
["r?"] = { "CONFIRM", default.colors.teal },
|
||||
["!"] = { "SHELL", default.colors.green },
|
||||
}
|
||||
|
||||
default.chad_mode_hl = function()
|
||||
return {
|
||||
fg = default.mode_colors[vim.fn.mode()][2],
|
||||
bg = default.colors.one_bg,
|
||||
}
|
||||
end
|
||||
|
||||
default.empty_space = {
|
||||
provider = " " .. default.statusline_style.left,
|
||||
hl = {
|
||||
fg = default.colors.one_bg2,
|
||||
bg = default.colors.statusline_bg,
|
||||
},
|
||||
}
|
||||
|
||||
-- this matches the vi mode color
|
||||
default.empty_spaceColored = {
|
||||
provider = default.statusline_style.left,
|
||||
hl = function()
|
||||
return {
|
||||
fg = default.mode_colors[vim.fn.mode()][2],
|
||||
bg = default.colors.one_bg2,
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
default.mode_icon = {
|
||||
provider = default.statusline_style.vi_mode_icon,
|
||||
hl = function()
|
||||
return {
|
||||
fg = default.colors.statusline_bg,
|
||||
bg = default.mode_colors[vim.fn.mode()][2],
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
default.empty_space2 = {
|
||||
provider = function()
|
||||
return " " .. default.mode_colors[vim.fn.mode()][1] .. " "
|
||||
end,
|
||||
hl = default.chad_mode_hl,
|
||||
}
|
||||
|
||||
default.separator_right = {
|
||||
provider = default.statusline_style.left,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 90
|
||||
end,
|
||||
hl = {
|
||||
fg = default.colors.grey,
|
||||
bg = default.colors.one_bg,
|
||||
},
|
||||
}
|
||||
|
||||
default.separator_right2 = {
|
||||
provider = default.statusline_style.left,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 90
|
||||
end,
|
||||
hl = {
|
||||
fg = default.colors.green,
|
||||
bg = default.colors.grey,
|
||||
},
|
||||
}
|
||||
|
||||
default.position_icon = {
|
||||
provider = default.statusline_style.position_icon,
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 90
|
||||
end,
|
||||
hl = {
|
||||
fg = default.colors.black,
|
||||
bg = default.colors.green,
|
||||
},
|
||||
}
|
||||
|
||||
default.current_line = {
|
||||
provider = function()
|
||||
local current_line = vim.fn.line "."
|
||||
local total_line = vim.fn.line "$"
|
||||
|
||||
if current_line == 1 then
|
||||
return " Top "
|
||||
elseif current_line == vim.fn.line "$" then
|
||||
return " Bot "
|
||||
end
|
||||
local result, _ = math.modf((current_line / total_line) * 100)
|
||||
return " " .. result .. "%% "
|
||||
end,
|
||||
|
||||
enabled = default.shortline or function(winid)
|
||||
return vim.api.nvim_win_get_width(tonumber(winid) or 0) > 90
|
||||
end,
|
||||
|
||||
hl = {
|
||||
fg = default.colors.green,
|
||||
bg = default.colors.one_bg,
|
||||
},
|
||||
}
|
||||
|
||||
local function add_table(a, b)
|
||||
table.insert(a, b)
|
||||
end
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("feline", default)
|
||||
end
|
||||
-- components are divided in 3 sections
|
||||
default.left = {}
|
||||
default.middle = {}
|
||||
default.right = {}
|
||||
|
||||
-- left
|
||||
add_table(default.left, default.main_icon)
|
||||
add_table(default.left, default.file_name)
|
||||
add_table(default.left, default.dir_name)
|
||||
add_table(default.left, default.diff.add)
|
||||
add_table(default.left, default.diff.change)
|
||||
add_table(default.left, default.diff.remove)
|
||||
add_table(default.left, default.diagnostic.error)
|
||||
add_table(default.left, default.diagnostic.warning)
|
||||
add_table(default.left, default.diagnostic.hint)
|
||||
add_table(default.left, default.diagnostic.info)
|
||||
|
||||
add_table(default.middle, default.lsp_progress)
|
||||
|
||||
-- right
|
||||
add_table(default.right, default.lsp_icon)
|
||||
add_table(default.right, default.git_branch)
|
||||
add_table(default.right, default.empty_space)
|
||||
add_table(default.right, default.empty_spaceColored)
|
||||
add_table(default.right, default.mode_icon)
|
||||
add_table(default.right, default.empty_space2)
|
||||
add_table(default.right, default.separator_right)
|
||||
add_table(default.right, default.separator_right2)
|
||||
add_table(default.right, default.position_icon)
|
||||
add_table(default.right, default.current_line)
|
||||
|
||||
default.components.active[1] = default.left
|
||||
default.components.active[2] = default.middle
|
||||
default.components.active[3] = default.right
|
||||
|
||||
feline.setup {
|
||||
theme = {
|
||||
bg = default.colors.statusline_bg,
|
||||
fg = default.colors.fg,
|
||||
},
|
||||
components = default.components,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,73 @@
|
||||
local present, telescope = pcall(require, "telescope")
|
||||
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
defaults = {
|
||||
vimgrep_arguments = {
|
||||
"rg",
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column",
|
||||
"--smart-case",
|
||||
},
|
||||
prompt_prefix = " ",
|
||||
selection_caret = " ",
|
||||
entry_prefix = " ",
|
||||
initial_mode = "insert",
|
||||
selection_strategy = "reset",
|
||||
sorting_strategy = "ascending",
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = {
|
||||
horizontal = {
|
||||
prompt_position = "top",
|
||||
preview_width = 0.55,
|
||||
results_width = 0.8,
|
||||
},
|
||||
vertical = {
|
||||
mirror = false,
|
||||
},
|
||||
width = 0.87,
|
||||
height = 0.80,
|
||||
preview_cutoff = 120,
|
||||
},
|
||||
file_sorter = require("telescope.sorters").get_fuzzy_file,
|
||||
file_ignore_patterns = { "node_modules" },
|
||||
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
|
||||
path_display = { "truncate" },
|
||||
winblend = 0,
|
||||
border = {},
|
||||
borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" },
|
||||
color_devicons = true,
|
||||
use_less = true,
|
||||
set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
|
||||
file_previewer = require("telescope.previewers").vim_buffer_cat.new,
|
||||
grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
|
||||
-- Developer configurations: Not meant for general override
|
||||
buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("telescope", default)
|
||||
end
|
||||
|
||||
telescope.setup(default)
|
||||
|
||||
local extensions = { "themes", "terms" }
|
||||
|
||||
pcall(function()
|
||||
for _, ext in ipairs(extensions) do
|
||||
telescope.load_extension(ext)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,26 @@
|
||||
local present, ts_config = pcall(require, "nvim-treesitter.configs")
|
||||
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
local default = {
|
||||
ensure_installed = {
|
||||
"lua",
|
||||
"vim",
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
use_languagetree = true,
|
||||
},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
M.setup = function(override_flag)
|
||||
if override_flag then
|
||||
default = require("core.utils").tbl_override_req("nvim_treesitter", default)
|
||||
end
|
||||
ts_config.setup(default)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -0,0 +1,244 @@
|
||||
local plugin_settings = require("core.utils").load_config().plugins
|
||||
local present, packer = pcall(require, plugin_settings.options.packer.init_file)
|
||||
|
||||
if not present then
|
||||
return false
|
||||
end
|
||||
|
||||
local override_req = require("core.utils").override_req
|
||||
|
||||
local plugins = {
|
||||
{ "nvim-lua/plenary.nvim" },
|
||||
{ "lewis6991/impatient.nvim" },
|
||||
{ "nathom/filetype.nvim" },
|
||||
|
||||
{
|
||||
"wbthomason/packer.nvim",
|
||||
event = "VimEnter",
|
||||
},
|
||||
|
||||
{
|
||||
"NvChad/extensions",
|
||||
config = function ()
|
||||
vim.schedule_wrap(require("nvchad.terminal").init())
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
"NvChad/nvim-base16.lua",
|
||||
after = "packer.nvim",
|
||||
config = function()
|
||||
require("colors").init()
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"kyazdani42/nvim-web-devicons",
|
||||
after = "nvim-base16.lua",
|
||||
config = override_req("nvim_web_devicons", "plugins.configs.icons", "setup"),
|
||||
},
|
||||
|
||||
{
|
||||
"feline-nvim/feline.nvim",
|
||||
disable = not plugin_settings.status.feline,
|
||||
after = "nvim-web-devicons",
|
||||
config = override_req("feline", "plugins.configs.statusline", "setup"),
|
||||
},
|
||||
|
||||
{
|
||||
"akinsho/bufferline.nvim",
|
||||
branch = "main",
|
||||
disable = not plugin_settings.status.bufferline,
|
||||
after = "nvim-web-devicons",
|
||||
config = override_req("bufferline", "plugins.configs.bufferline", "setup"),
|
||||
setup = function()
|
||||
require("core.mappings").bufferline()
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
disable = not plugin_settings.status.blankline,
|
||||
event = "BufRead",
|
||||
config = override_req("indent_blankline", "plugins.configs.others", "blankline"),
|
||||
},
|
||||
|
||||
{
|
||||
"NvChad/nvim-colorizer.lua",
|
||||
disable = not plugin_settings.status.colorizer,
|
||||
event = "BufRead",
|
||||
config = override_req("nvim_colorizer", "plugins.configs.others", "colorizer"),
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
event = { "BufRead", "BufNewFile" },
|
||||
config = override_req("nvim_treesitter", "plugins.configs.treesitter", "setup"),
|
||||
run = ":TSUpdate",
|
||||
},
|
||||
|
||||
-- git stuff
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
disable = not plugin_settings.status.gitsigns,
|
||||
opt = true,
|
||||
config = override_req("gitsigns", "plugins.configs.others", "gitsigns"),
|
||||
setup = function()
|
||||
require("core.utils").packer_lazy_load "gitsigns.nvim"
|
||||
end,
|
||||
},
|
||||
|
||||
-- lsp stuff
|
||||
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
module = "lspconfig",
|
||||
opt = true,
|
||||
setup = function()
|
||||
require("core.utils").packer_lazy_load "nvim-lspconfig"
|
||||
-- reload the current file so lsp actually starts for it
|
||||
vim.defer_fn(function()
|
||||
vim.cmd 'if &ft == "packer" | echo "" | else | silent! e %'
|
||||
end, 0)
|
||||
end,
|
||||
config = override_req("lspconfig", "plugins.configs.lspconfig"),
|
||||
},
|
||||
|
||||
{
|
||||
"ray-x/lsp_signature.nvim",
|
||||
disable = not plugin_settings.status.lspsignature,
|
||||
after = "nvim-lspconfig",
|
||||
config = override_req("signature", "plugins.configs.others", "signature"),
|
||||
},
|
||||
|
||||
{
|
||||
"andymass/vim-matchup",
|
||||
disable = not plugin_settings.status.vim_matchup,
|
||||
opt = true,
|
||||
setup = function()
|
||||
require("core.utils").packer_lazy_load "vim-matchup"
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"max397574/better-escape.nvim",
|
||||
disable = not plugin_settings.status.better_escape,
|
||||
event = "InsertCharPre",
|
||||
config = override_req("better_escape", "plugins.configs.others", "better_escape"),
|
||||
},
|
||||
|
||||
-- load luasnips + cmp related in insert mode only
|
||||
|
||||
{
|
||||
"rafamadriz/friendly-snippets",
|
||||
module = "cmp_nvim_lsp",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
event = "InsertEnter",
|
||||
},
|
||||
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = "friendly-snippets",
|
||||
config = override_req("nvim_cmp", "plugins.configs.cmp", "setup"),
|
||||
},
|
||||
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
wants = "friendly-snippets",
|
||||
after = "nvim-cmp",
|
||||
config = override_req("luasnip", "plugins.configs.others", "luasnip"),
|
||||
},
|
||||
|
||||
{
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = plugin_settings.options.cmp.lazy_load and "LuaSnip",
|
||||
},
|
||||
|
||||
{
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = "cmp_luasnip",
|
||||
},
|
||||
|
||||
{
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = "cmp-nvim-lua",
|
||||
},
|
||||
|
||||
{
|
||||
"hrsh7th/cmp-buffer",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = "cmp-nvim-lsp",
|
||||
},
|
||||
|
||||
{
|
||||
"hrsh7th/cmp-path",
|
||||
disable = not plugin_settings.status.cmp,
|
||||
after = "cmp-buffer",
|
||||
},
|
||||
|
||||
-- misc plugins
|
||||
{
|
||||
"windwp/nvim-autopairs",
|
||||
disable = not plugin_settings.status.autopairs,
|
||||
after = plugin_settings.options.autopairs.loadAfter,
|
||||
config = override_req("nvim_autopairs", "plugins.configs.others", "autopairs"),
|
||||
},
|
||||
|
||||
{
|
||||
disable = not plugin_settings.status.alpha,
|
||||
"goolord/alpha-nvim",
|
||||
config = override_req("alpha", "plugins.configs.alpha", "setup"),
|
||||
},
|
||||
|
||||
{
|
||||
"numToStr/Comment.nvim",
|
||||
disable = not plugin_settings.status.comment,
|
||||
module = "Comment",
|
||||
keys = { "gcc" },
|
||||
config = override_req("nvim_comment", "plugins.configs.others", "comment"),
|
||||
setup = function()
|
||||
require("core.mappings").comment()
|
||||
end,
|
||||
},
|
||||
|
||||
-- file managing , picker etc
|
||||
{
|
||||
"kyazdani42/nvim-tree.lua",
|
||||
disable = not plugin_settings.status.nvimtree,
|
||||
-- only set "after" if lazy load is disabled and vice versa for "cmd"
|
||||
after = not plugin_settings.options.nvimtree.lazy_load and "nvim-web-devicons",
|
||||
cmd = plugin_settings.options.nvimtree.lazy_load and { "NvimTreeToggle", "NvimTreeFocus" },
|
||||
config = override_req("nvim_tree", "plugins.configs.nvimtree", "setup"),
|
||||
setup = function()
|
||||
require("core.mappings").nvimtree()
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
module = "telescope",
|
||||
cmd = "Telescope",
|
||||
config = override_req("telescope", "plugins.configs.telescope", "setup"),
|
||||
setup = function()
|
||||
require("core.mappings").telescope()
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
--label plugins for operational assistance
|
||||
plugins = require("core.utils").label_plugins(plugins)
|
||||
--remove plugins specified in chadrc
|
||||
plugins = require("core.utils").remove_default_plugins(plugins)
|
||||
--add plugins specified in chadrc
|
||||
plugins = require("core.utils").add_user_plugins(plugins)
|
||||
|
||||
return packer.startup(function(use)
|
||||
for _, v in pairs(plugins) do
|
||||
use(v)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,44 @@
|
||||
vim.cmd "packadd packer.nvim"
|
||||
|
||||
local present, packer = pcall(require, "packer")
|
||||
|
||||
if not present then
|
||||
local packer_path = vim.fn.stdpath "data" .. "/site/pack/packer/opt/packer.nvim"
|
||||
|
||||
print "Cloning packer.."
|
||||
-- remove the dir before cloning
|
||||
vim.fn.delete(packer_path, "rf")
|
||||
vim.fn.system {
|
||||
"git",
|
||||
"clone",
|
||||
"https://github.com/wbthomason/packer.nvim",
|
||||
"--depth",
|
||||
"20",
|
||||
packer_path,
|
||||
}
|
||||
|
||||
vim.cmd "packadd packer.nvim"
|
||||
present, packer = pcall(require, "packer")
|
||||
|
||||
if present then
|
||||
print "Packer cloned successfully."
|
||||
else
|
||||
error("Couldn't clone packer !\nPacker path: " .. packer_path .. "\n" .. packer)
|
||||
end
|
||||
end
|
||||
|
||||
packer.init {
|
||||
display = {
|
||||
open_fn = function()
|
||||
return require("packer.util").float { border = "single" }
|
||||
end,
|
||||
prompt_border = "single",
|
||||
},
|
||||
git = {
|
||||
clone_timeout = 6000, -- seconds
|
||||
},
|
||||
auto_clean = true,
|
||||
compile_on_sync = true,
|
||||
}
|
||||
|
||||
return packer
|
||||
@@ -1,204 +0,0 @@
|
||||
local gl = require("galaxyline")
|
||||
local gls = gl.section
|
||||
local condition = require("galaxyline.condition")
|
||||
|
||||
gl.short_line_list = {" "}
|
||||
|
||||
local colors = require "themes/onedark"
|
||||
|
||||
gls.left[1] = {
|
||||
FirstElement = {
|
||||
provider = function() return '▋' end,
|
||||
highlight = { colors.nord_blue, colors.nord_blue }
|
||||
},
|
||||
}
|
||||
|
||||
gls.left[2] = {
|
||||
statusIcon = {
|
||||
provider = function()
|
||||
return " "
|
||||
end,
|
||||
highlight = {colors.statusline_bg, colors.nord_blue},
|
||||
separator = " ",
|
||||
separator_highlight = {colors.nord_blue, colors.lightbg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[3] = {
|
||||
FileIcon = {
|
||||
provider = "FileIcon",
|
||||
condition = condition.buffer_not_empty,
|
||||
highlight = {colors.white, colors.lightbg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[4] = {
|
||||
FileName = {
|
||||
provider = {"FileName"},
|
||||
condition = condition.buffer_not_empty,
|
||||
highlight = {colors.white, colors.lightbg},
|
||||
separator = " ",
|
||||
separator_highlight = {colors.lightbg, colors.lightbg2}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[5] = {
|
||||
current_dir = {
|
||||
provider = function()
|
||||
local dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":t")
|
||||
return " " .. dir_name .. " "
|
||||
end,
|
||||
highlight = {colors.grey_fg2, colors.lightbg2},
|
||||
separator = " ",
|
||||
separator_highlight = {colors.lightbg2, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
local checkwidth = function()
|
||||
local squeeze_width = vim.fn.winwidth(0) / 2
|
||||
if squeeze_width > 30 then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
gls.left[6] = {
|
||||
DiffAdd = {
|
||||
provider = "DiffAdd",
|
||||
condition = checkwidth,
|
||||
icon = " ",
|
||||
highlight = {colors.white, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[7] = {
|
||||
DiffModified = {
|
||||
provider = "DiffModified",
|
||||
condition = checkwidth,
|
||||
icon = " ",
|
||||
highlight = {colors.grey_fg2, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[8] = {
|
||||
DiffRemove = {
|
||||
provider = "DiffRemove",
|
||||
condition = checkwidth,
|
||||
icon = " ",
|
||||
highlight = {colors.grey_fg2, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[9] = {
|
||||
DiagnosticError = {
|
||||
provider = "DiagnosticError",
|
||||
icon = " ",
|
||||
highlight = {colors.red, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.left[10] = {
|
||||
DiagnosticWarn = {
|
||||
provider = "DiagnosticWarn",
|
||||
icon = " ",
|
||||
highlight = {colors.yellow, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[1] = {
|
||||
lsp_status = {
|
||||
provider = function()
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) ~= nil then
|
||||
return " " .. " " .. " LSP "
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end,
|
||||
highlight = {colors.grey_fg2, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[2] = {
|
||||
GitIcon = {
|
||||
provider = function()
|
||||
return " "
|
||||
end,
|
||||
condition = require("galaxyline.provider_vcs").check_git_workspace,
|
||||
highlight = {colors.grey_fg2, colors.lightbg},
|
||||
separator = "",
|
||||
separator_highlight = {colors.lightbg, colors.statusline_bg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[3] = {
|
||||
GitBranch = {
|
||||
provider = "GitBranch",
|
||||
condition = require("galaxyline.provider_vcs").check_git_workspace,
|
||||
highlight = {colors.grey_fg2, colors.lightbg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[4] = {
|
||||
viMode_icon = {
|
||||
provider = function()
|
||||
return " "
|
||||
end,
|
||||
highlight = {colors.statusline_bg, colors.red},
|
||||
separator = " ",
|
||||
separator_highlight = {colors.red, colors.lightbg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[5] = {
|
||||
ViMode = {
|
||||
provider = function()
|
||||
local alias = {
|
||||
n = "Normal",
|
||||
i = "Insert",
|
||||
c = "Command",
|
||||
V = "Visual",
|
||||
[""] = "Visual",
|
||||
v = "Visual",
|
||||
R = "Replace"
|
||||
}
|
||||
local current_Mode = alias[vim.fn.mode()]
|
||||
|
||||
if current_Mode == nil then
|
||||
return " Terminal "
|
||||
else
|
||||
return " " .. current_Mode .. " "
|
||||
end
|
||||
end,
|
||||
highlight = {colors.red, colors.lightbg}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[6] = {
|
||||
some_icon = {
|
||||
provider = function()
|
||||
return " "
|
||||
end,
|
||||
separator = "",
|
||||
separator_highlight = {colors.green, colors.lightbg},
|
||||
highlight = {colors.lightbg, colors.green}
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[7] = {
|
||||
line_percentage = {
|
||||
provider = function()
|
||||
local current_line = vim.fn.line(".")
|
||||
local total_line = vim.fn.line("$")
|
||||
|
||||
if current_line == 1 then
|
||||
return " Top "
|
||||
elseif current_line == vim.fn.line("$") then
|
||||
return " Bot "
|
||||
end
|
||||
local result, _ = math.modf((current_line / total_line) * 100)
|
||||
return " " .. result .. "% "
|
||||
end,
|
||||
highlight = {colors.green, colors.lightbg}
|
||||
}
|
||||
}
|
||||
@@ -1,82 +0,0 @@
|
||||
require("telescope").setup {
|
||||
defaults = {
|
||||
vimgrep_arguments = {
|
||||
"rg",
|
||||
"--color=never",
|
||||
"--no-heading",
|
||||
"--with-filename",
|
||||
"--line-number",
|
||||
"--column",
|
||||
"--smart-case"
|
||||
},
|
||||
prompt_position = "bottom",
|
||||
prompt_prefix = " ",
|
||||
selection_caret = " ",
|
||||
entry_prefix = " ",
|
||||
initial_mode = "insert",
|
||||
selection_strategy = "reset",
|
||||
sorting_strategy = "descending",
|
||||
layout_strategy = "horizontal",
|
||||
layout_defaults = {
|
||||
horizontal = {
|
||||
mirror = false,
|
||||
preview_width = 0.5
|
||||
},
|
||||
vertical = {
|
||||
mirror = false
|
||||
}
|
||||
},
|
||||
file_sorter = require "telescope.sorters".get_fuzzy_file,
|
||||
file_ignore_patterns = {},
|
||||
generic_sorter = require "telescope.sorters".get_generic_fuzzy_sorter,
|
||||
shorten_path = true,
|
||||
winblend = 0,
|
||||
width = 0.75,
|
||||
preview_cutoff = 120,
|
||||
results_height = 1,
|
||||
results_width = 0.8,
|
||||
border = {},
|
||||
borderchars = {"─", "│", "─", "│", "╭", "╮", "╯", "╰"},
|
||||
color_devicons = true,
|
||||
use_less = true,
|
||||
set_env = {["COLORTERM"] = "truecolor"}, -- default = nil,
|
||||
file_previewer = require "telescope.previewers".vim_buffer_cat.new,
|
||||
grep_previewer = require "telescope.previewers".vim_buffer_vimgrep.new,
|
||||
qflist_previewer = require "telescope.previewers".vim_buffer_qflist.new,
|
||||
-- Developer configurations: Not meant for general override
|
||||
buffer_previewer_maker = require "telescope.previewers".buffer_previewer_maker
|
||||
},
|
||||
extensions = {
|
||||
media_files = {
|
||||
filetypes = {"png", "webp", "jpg", "jpeg"},
|
||||
find_cmd = "rg" -- find command (defaults to `fd`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
require("telescope").load_extension("media_files")
|
||||
|
||||
local opt = {noremap = true, silent = true}
|
||||
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- mappings
|
||||
vim.api.nvim_set_keymap("n", "<Leader>ff", [[<Cmd>lua require('telescope.builtin').find_files()<CR>]], opt)
|
||||
vim.api.nvim_set_keymap(
|
||||
"n",
|
||||
"<Leader>fp",
|
||||
[[<Cmd>lua require('telescope').extensions.media_files.media_files()<CR>]],
|
||||
opt
|
||||
)
|
||||
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fb", [[<Cmd>lua require('telescope.builtin').buffers()<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fh", [[<Cmd>lua require('telescope.builtin').help_tags()<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fo", [[<Cmd>lua require('telescope.builtin').oldfiles()<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fm", [[<Cmd> Neoformat<CR>]], opt)
|
||||
|
||||
-- dashboard stuff
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fw", [[<Cmd> Telescope live_grep<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fn", [[<Cmd> DashboardNewFile<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fb", [[<Cmd> DashboardJumpMarks<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fl", [[<Cmd> SessionLoad<CR>]], opt)
|
||||
vim.api.nvim_set_keymap("n", "<Leader>fs", [[<Cmd> SessionSave<CR>]], opt)
|
||||
@@ -1,33 +0,0 @@
|
||||
local colors = {
|
||||
white = "#abb2bf",
|
||||
darker_black = "#1b1f27",
|
||||
black = "#1e222a", -- nvim bg
|
||||
black2 = "#252931",
|
||||
one_bg = "#282c34", -- real bg of onedark
|
||||
one_bg2 = "#353b45",
|
||||
one_bg3 = "#30343c",
|
||||
grey = "#42464e",
|
||||
grey_fg = "#565c64",
|
||||
grey_fg2 = "#6f737b",
|
||||
light_grey = "#6f737b",
|
||||
red = "#d47d85",
|
||||
baby_pink = "#DE8C92",
|
||||
pink = "#ff75a0",
|
||||
line = "#2a2e36", -- for lines like vertsplit
|
||||
green = "#A3BE8C",
|
||||
vibrant_green = "#7eca9c",
|
||||
nord_blue = "#81A1C1",
|
||||
blue = "#61afef",
|
||||
yellow = "#e7c787",
|
||||
sun = "#EBCB8B",
|
||||
purple = "#b4bbc8",
|
||||
dark_purple = "#c882e7",
|
||||
teal = "#519ABA",
|
||||
orange = "#fca2aa",
|
||||
cyan = "#a3b8ef",
|
||||
statusline_bg = "#22262e",
|
||||
lightbg = "#2d3139",
|
||||
lightbg2 = "#262a32"
|
||||
}
|
||||
|
||||
return colors
|
||||
@@ -1,31 +0,0 @@
|
||||
require "bufferline".setup {
|
||||
options = {
|
||||
offsets = {{filetype = "NvimTree", text = "", padding = 1}},
|
||||
buffer_close_icon = "",
|
||||
modified_icon = "",
|
||||
close_icon = "",
|
||||
left_trunc_marker = "",
|
||||
right_trunc_marker = "",
|
||||
max_name_length = 14,
|
||||
max_prefix_length = 13,
|
||||
tab_size = 20,
|
||||
show_tab_indicators = true,
|
||||
enforce_regular_tabs = false,
|
||||
view = "multiwindow",
|
||||
show_buffer_close_icons = true,
|
||||
separator_style = "thin",
|
||||
mappings = "true"
|
||||
}
|
||||
}
|
||||
|
||||
local opt = {silent = true}
|
||||
local map = vim.api.nvim_set_keymap
|
||||
vim.g.mapleader = " "
|
||||
|
||||
-- MAPPINGS
|
||||
map("n", "<S-t>", [[<Cmd>tabnew<CR>]], opt) -- new tab
|
||||
map("n", "<S-x>", [[<Cmd>bdelete<CR>]], opt) -- close tab
|
||||
|
||||
-- move between tabs
|
||||
map("n", "<TAB>", [[<Cmd>BufferLineCycleNext<CR>]], opt)
|
||||
map("n", "<S-TAB>", [[<Cmd>BufferLineCyclePrev<CR>]], opt)
|
||||
@@ -1,17 +0,0 @@
|
||||
local ts_config = require("nvim-treesitter.configs")
|
||||
|
||||
ts_config.setup {
|
||||
ensure_installed = {
|
||||
"javascript",
|
||||
"html",
|
||||
"css",
|
||||
"bash",
|
||||
"lua",
|
||||
"json",
|
||||
"python"
|
||||
},
|
||||
highlight = {
|
||||
enable = true,
|
||||
use_languagetree = true
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
require("which-key").setup {
|
||||
plugins = {
|
||||
marks = true, -- shows a list of your marks on ' and `
|
||||
registers = true, -- shows your registers on " in NORMAL or <C-r> in INSERT mode
|
||||
-- the presets plugin, adds help for a bunch of default keybindings in Neovim
|
||||
-- No actual key bindings are created
|
||||
spelling = {
|
||||
enabled = false, -- enabling this will show WhichKey when pressing z= to select spelling suggestions
|
||||
suggestions = 20 -- how many suggestions should be shown in the list?
|
||||
},
|
||||
presets = {
|
||||
operators = true, -- adds help for operators like d, y, ... and registers them for motion / text object completion
|
||||
motions = true, -- adds help for motions
|
||||
text_objects = true, -- help for text objects triggered after entering an operator
|
||||
windows = true, -- default bindings on <c-w>
|
||||
nav = true, -- misc bindings to work with windows
|
||||
z = true, -- bindings for folds, spelling and others prefixed with z
|
||||
g = true -- bindings for prefixed with g
|
||||
}
|
||||
},
|
||||
-- add operators that will trigger motion and text object completion
|
||||
-- to enable all native operators, set the preset / operators plugin above
|
||||
operators = {gc = "Comments"},
|
||||
icons = {
|
||||
breadcrumb = "»", -- symbol used in the command line area that shows your active key combo
|
||||
separator = "➜", -- symbol used between a key and it's label
|
||||
group = "+" -- symbol prepended to a group
|
||||
},
|
||||
window = {
|
||||
border = "none", -- none, single, double, shadow
|
||||
position = "bottom", -- bottom, top
|
||||
margin = {1, 0, 1, 0}, -- extra window margin [top, right, bottom, left]
|
||||
padding = {2, 2, 2, 2} -- extra window padding [top, right, bottom, left]
|
||||
},
|
||||
layout = {
|
||||
height = {min = 4, max = 25}, -- min and max height of the columns
|
||||
width = {min = 20, max = 50}, -- min and max width of the columns
|
||||
spacing = 3 -- spacing between columns
|
||||
},
|
||||
ignore_missing = false, -- enable this to hide mappings for which you didn't specify a label
|
||||
hidden = {"<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate
|
||||
show_help = true, -- show help message on the command line when the popup is visible
|
||||
triggers = "auto" -- automatically setup triggers
|
||||
-- triggers = {"<leader>"} -- or specifiy a list manually
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
local true_zen = require("true-zen")
|
||||
|
||||
true_zen.setup(
|
||||
{
|
||||
true_false_commands = false,
|
||||
cursor_by_mode = false,
|
||||
before_minimalist_mode_shown = true,
|
||||
before_minimalist_mode_hidden = true,
|
||||
after_minimalist_mode_shown = true,
|
||||
after_minimalist_mode_hidden = true,
|
||||
bottom = {
|
||||
hidden_laststatus = 0,
|
||||
hidden_ruler = false,
|
||||
hidden_showmode = false,
|
||||
hidden_showcmd = false,
|
||||
hidden_cmdheight = 1,
|
||||
shown_laststatus = 2,
|
||||
shown_ruler = true,
|
||||
shown_showmode = false,
|
||||
shown_showcmd = false,
|
||||
shown_cmdheight = 1
|
||||
},
|
||||
top = {
|
||||
hidden_showtabline = 0,
|
||||
shown_showtabline = 2
|
||||
},
|
||||
left = {
|
||||
hidden_number = false,
|
||||
hidden_relativenumber = false,
|
||||
hidden_signcolumn = "no",
|
||||
shown_number = true,
|
||||
shown_relativenumber = false,
|
||||
shown_signcolumn = "yes"
|
||||
},
|
||||
ataraxis = {
|
||||
just_do_it_for_me = false,
|
||||
left_padding = 37,
|
||||
right_padding = 37,
|
||||
top_padding = 2,
|
||||
bottom_padding = 2,
|
||||
custome_bg = "#1e222a"
|
||||
},
|
||||
integrations = {
|
||||
integration_galaxyline = true
|
||||
}
|
||||
}
|
||||
)
|
||||
Reference in new issue
Block a user