mirror of
https://github.com/chylex/IntelliJ-IdeaVim.git
synced 2025-08-17 16:31:45 +02:00
Compare commits
2895 Commits
VIM-2227
...
customized
Author | SHA1 | Date | |
---|---|---|---|
f33589fbce
|
|||
35445cb730
|
|||
9cba953bf7
|
|||
eb7c1953ae
|
|||
8d4a1cd7d5
|
|||
fd33e4254b
|
|||
f242cf18d7
|
|||
ac46a45f26
|
|||
9d1e29d4bc
|
|||
8c30f802ca
|
|||
766f3f498d
|
|||
60d9c59a3e
|
|||
025bfe5aba
|
|||
2edb650830
|
|||
3d75e14dc4
|
|||
db0290d218
|
|||
36716fe849
|
|||
7cfe42688b
|
|||
1d9fb7f6a7
|
|||
8c4828a6fd
|
|||
86f11a9554
|
|||
![]() |
4614e2ad54 | ||
![]() |
077de91e01 | ||
![]() |
1ce7a97f2a | ||
![]() |
02a42843a6 | ||
![]() |
eb72762073 | ||
![]() |
43a94b3d71 | ||
![]() |
1984873b1c | ||
![]() |
4962baabad | ||
![]() |
2e550a0960 | ||
![]() |
bc48a45cd1 | ||
![]() |
a005eb0612 | ||
![]() |
63297e685c | ||
![]() |
6c9a5e1f2d | ||
![]() |
34a5ba0ba7 | ||
![]() |
2354dc9af9 | ||
![]() |
be31963a4f | ||
![]() |
277c5ae7a5 | ||
![]() |
49d03cf7f1 | ||
![]() |
f5e7459b37 | ||
![]() |
df8144fc00 | ||
![]() |
05f1d7abd7 | ||
![]() |
6ca17ae09d | ||
![]() |
f9d8b3a59e | ||
![]() |
3279325694 | ||
![]() |
b2a6d0d5c7 | ||
![]() |
e32fa6dd11 | ||
![]() |
ec3db81c6d | ||
![]() |
7062dc4860 | ||
![]() |
46619040b1 | ||
![]() |
035804860c | ||
![]() |
0f1a4d523f | ||
![]() |
5f5a97a7e1 | ||
![]() |
03996dce59 | ||
![]() |
0dd63c7b57 | ||
![]() |
94d7902ef2 | ||
![]() |
3d08170d54 | ||
![]() |
cccb23d9ee | ||
![]() |
eae3fb3ebe | ||
![]() |
7f5dce4051 | ||
![]() |
25e3988dcf | ||
![]() |
36589c5250 | ||
![]() |
f1f86b5cd2 | ||
![]() |
628b3ca89f | ||
![]() |
d2b929ddd0 | ||
![]() |
43d770ff5a | ||
![]() |
cde9bc94e6 | ||
![]() |
63f6e73223 | ||
![]() |
ad28e09fec | ||
![]() |
f616f2c3c1 | ||
![]() |
66aec26091 | ||
![]() |
1d59c49b95 | ||
![]() |
8da15b8c08 | ||
![]() |
e22c2b6473 | ||
![]() |
e293c1b786 | ||
![]() |
468ca840ed | ||
![]() |
c75e6756c0 | ||
![]() |
52737c60cf | ||
![]() |
e99c191d49 | ||
![]() |
5db2984fdd | ||
![]() |
365b58eb56 | ||
![]() |
b026144254 | ||
![]() |
0e3cda827c | ||
![]() |
ed2fe3dcf0 | ||
![]() |
791edbd29b | ||
![]() |
4f9d76ef66 | ||
![]() |
4b7381901d | ||
![]() |
6e2cb9ba11 | ||
![]() |
91cd4ab01f | ||
![]() |
34d23180bd | ||
![]() |
fc5aaa50d8 | ||
![]() |
c7bbfdcaf5 | ||
![]() |
562906fe6d | ||
![]() |
976771d11a | ||
![]() |
5fc4462b03 | ||
![]() |
5f263e7014 | ||
![]() |
4c899fcc93 | ||
![]() |
2f8fe392af | ||
![]() |
84c7e1159b | ||
![]() |
18d6f79796 | ||
![]() |
a745da9761 | ||
![]() |
5eb36ce428 | ||
![]() |
b0951f4a38 | ||
![]() |
bcf519027e | ||
![]() |
9aece44a00 | ||
![]() |
61912e2c9b | ||
![]() |
92ee271f1e | ||
![]() |
babc5daf3b | ||
![]() |
c0a10c65e1 | ||
![]() |
5145bb4193 | ||
![]() |
8825f790d4 | ||
![]() |
a0f0f71b6a | ||
![]() |
6a73f9e65a | ||
![]() |
4ee858877d | ||
![]() |
82d18cfbb9 | ||
![]() |
b0dd75f77c | ||
![]() |
727cfb36ba | ||
![]() |
a7d5c5f2d4 | ||
![]() |
1e02848a66 | ||
![]() |
9d8afc5fcb | ||
![]() |
15b2a17ae6 | ||
![]() |
39a2cdcf50 | ||
![]() |
2fd488531b | ||
![]() |
e69b30796c | ||
![]() |
790a0afdf3 | ||
![]() |
66b01b0b0d | ||
![]() |
71ea6184a0 | ||
![]() |
0b1c79d961 | ||
![]() |
6b751fae6e | ||
![]() |
152066b73c | ||
![]() |
dfe645c4eb | ||
![]() |
5024fd94da | ||
![]() |
4d3a231a35 | ||
![]() |
e1a803d310 | ||
![]() |
96b224c0d8 | ||
![]() |
8b6de3f5c6 | ||
![]() |
9014d99cde | ||
![]() |
8dfd41a891 | ||
![]() |
7e62e816a5 | ||
![]() |
9c4965581a | ||
![]() |
d1abc0c9f9 | ||
![]() |
43555ad581 | ||
![]() |
640e5ac552 | ||
![]() |
40b706bcf4 | ||
![]() |
5b355a8e95 | ||
![]() |
8ed53284e4 | ||
![]() |
1f6e124f9d | ||
![]() |
5198864f34 | ||
![]() |
ecfff61aad | ||
![]() |
26909af5de | ||
![]() |
ad762379fb | ||
![]() |
dd4f2de368 | ||
![]() |
879d191800 | ||
![]() |
9d9e38843d | ||
![]() |
f7aded99e8 | ||
![]() |
4e1de61d77 | ||
![]() |
34fe09c8f9 | ||
![]() |
10283ce2f8 | ||
![]() |
cc53b59658 | ||
![]() |
c758a79f79 | ||
![]() |
01d00d45d8 | ||
![]() |
5c7edc498f | ||
![]() |
9c403d2862 | ||
![]() |
ebbd733bba | ||
![]() |
88d1e1d24a | ||
![]() |
c19f2aeee4 | ||
![]() |
86202c846a | ||
![]() |
9a7ff442f3 | ||
![]() |
3752a97d74 | ||
![]() |
5572dfc80d | ||
![]() |
100f420d46 | ||
![]() |
3fcc4746d8 | ||
![]() |
5c5ac192da | ||
![]() |
a0a2163ba0 | ||
![]() |
02724cadce | ||
![]() |
b205f87902 | ||
![]() |
314304246a | ||
![]() |
785688b1ca | ||
![]() |
4c09ab4766 | ||
![]() |
ee447bce07 | ||
![]() |
5fb4c10f88 | ||
![]() |
ed2fcb08b0 | ||
dedd90ce13 | |||
![]() |
73326e623e | ||
![]() |
a2bc34d6ec | ||
![]() |
b652c7726a | ||
![]() |
fb7a2de07b | ||
![]() |
def9ca479b | ||
![]() |
0936e0761f | ||
![]() |
09a335bcfe | ||
![]() |
37b8d69bac | ||
![]() |
13308050a8 | ||
![]() |
a1a553ebc9 | ||
![]() |
5bb0c4f7cb | ||
![]() |
da6736f24a | ||
![]() |
4df1ce2ae8 | ||
![]() |
00fd4cd491 | ||
![]() |
d185672e2f | ||
![]() |
55fef03a4a | ||
![]() |
69b3e4f782 | ||
![]() |
6be29b0378 | ||
![]() |
9965c863a6 | ||
![]() |
3f11ae512c | ||
![]() |
1c842eb3d8 | ||
![]() |
c7fbce675b | ||
![]() |
d7e68488c8 | ||
![]() |
69d13a74e6 | ||
![]() |
5a83df34a7 | ||
![]() |
0a18c388e0 | ||
![]() |
1a3409e7df | ||
![]() |
e93db961a0 | ||
![]() |
8fd76bd08f | ||
![]() |
0eea4a5b2c | ||
![]() |
18a0c533e2 | ||
![]() |
0bd8d8f4d2 | ||
![]() |
64a89c8863 | ||
![]() |
5b17d7740e | ||
![]() |
e406885ec6 | ||
![]() |
9bbeab8062 | ||
![]() |
373bfc4eab | ||
![]() |
050f2f7b97 | ||
![]() |
e30bc14843 | ||
![]() |
76d590be11 | ||
![]() |
b005328b4a | ||
![]() |
ad20021cee | ||
![]() |
126de5c218 | ||
![]() |
0f7aef3f15 | ||
![]() |
f352b84922 | ||
![]() |
789faa7cb2 | ||
![]() |
a338f5768a | ||
![]() |
8205c74571 | ||
![]() |
def40eb409 | ||
![]() |
010e8a7541 | ||
![]() |
46c6778b3a | ||
![]() |
0977bd4400 | ||
![]() |
db092e9b0a | ||
![]() |
5cfb98e188 | ||
![]() |
3a95b62885 | ||
![]() |
93e6adf5a9 | ||
![]() |
37204398ff | ||
![]() |
b2f450d14d | ||
![]() |
61da888571 | ||
![]() |
fcda97cfb8 | ||
![]() |
1dc7ea6363 | ||
![]() |
bb507db884 | ||
![]() |
7b0482ed94 | ||
![]() |
1c79b0d59a | ||
![]() |
ff4eb31418 | ||
![]() |
cb1078cf70 | ||
![]() |
da3e40eaf6 | ||
![]() |
17f77a9639 | ||
![]() |
3d03494354 | ||
![]() |
642caddda7 | ||
![]() |
1d97c43e30 | ||
![]() |
7ed3e3b53c | ||
![]() |
aa39ca2006 | ||
![]() |
bb122903de | ||
![]() |
c84a3cf64d | ||
![]() |
f4c9464b8a | ||
![]() |
3ba14d05b4 | ||
![]() |
2189b70b87 | ||
![]() |
ea2222f9d5 | ||
![]() |
7d68d41888 | ||
![]() |
44749b6d8c | ||
![]() |
1ce4dbc569 | ||
![]() |
db59513505 | ||
![]() |
8c9ff9465f | ||
![]() |
1a2322ddec | ||
![]() |
fbbd1ebc0d | ||
![]() |
8d5df11372 | ||
![]() |
dfebe542d8 | ||
![]() |
7fde47c08b | ||
![]() |
629919f634 | ||
![]() |
43fff1c73e | ||
![]() |
d02f0e17ca | ||
![]() |
5dc860f61e | ||
![]() |
956e726c31 | ||
![]() |
446067e2fe | ||
![]() |
bd53a895c0 | ||
![]() |
e61fed2467 | ||
![]() |
f5e125759f | ||
![]() |
622eb887c8 | ||
![]() |
9fb614e16c | ||
![]() |
1e0fa07768 | ||
![]() |
bfb1d5b7f5 | ||
![]() |
2fad8790a9 | ||
![]() |
9719106a14 | ||
![]() |
870a0da2a2 | ||
![]() |
d3c315d299 | ||
![]() |
2583b6e792 | ||
![]() |
89417eb4f6 | ||
![]() |
560700c9aa | ||
![]() |
24514039e1 | ||
![]() |
ff44596c1a | ||
![]() |
b001d63fd9 | ||
![]() |
5db96bef28 | ||
![]() |
39c615cddd | ||
![]() |
961173a93b | ||
![]() |
92741c6356 | ||
![]() |
643eb2a85f | ||
![]() |
883744e4ee | ||
![]() |
66173e03be | ||
![]() |
e455722758 | ||
![]() |
823bdc1561 | ||
![]() |
f91fda2ca5 | ||
![]() |
92abd76615 | ||
![]() |
57c45ca153 | ||
![]() |
7c623ae4b5 | ||
![]() |
f2ef92cdef | ||
![]() |
e8e6eabe97 | ||
![]() |
ef1c915264 | ||
![]() |
a5e2168f7f | ||
![]() |
83e5470b3a | ||
![]() |
c446de8979 | ||
![]() |
13426915f4 | ||
![]() |
d766c3b8ee | ||
![]() |
844bc01537 | ||
![]() |
3d2d32b022 | ||
![]() |
a8677d3dd7 | ||
![]() |
7217fdf734 | ||
![]() |
0c867b3869 | ||
![]() |
b3bcab4336 | ||
![]() |
fe1b48a9b3 | ||
![]() |
b5a0862520 | ||
![]() |
babc1f54e5 | ||
![]() |
32b910a65b | ||
![]() |
2aa71a0008 | ||
![]() |
c2c0c2aba2 | ||
![]() |
6a10cf5e0d | ||
![]() |
90474a3a4f | ||
![]() |
be43f74bc6 | ||
![]() |
5916c42cd1 | ||
![]() |
a43c7ece32 | ||
![]() |
40c1070b1a | ||
![]() |
75ccdb2a4d | ||
![]() |
3de7b0ca78 | ||
![]() |
448e32a6cc | ||
![]() |
4a85058ba2 | ||
![]() |
7e28deb328 | ||
![]() |
f3767b53b7 | ||
![]() |
1026e27e64 | ||
![]() |
18d653a9ae | ||
![]() |
fcf4b44443 | ||
![]() |
907e44b1d7 | ||
![]() |
6c9b39a623 | ||
![]() |
a3cb093b42 | ||
![]() |
524e854c61 | ||
![]() |
5588c27037 | ||
![]() |
90d36eea98 | ||
![]() |
f4414de86c | ||
![]() |
d46102ccaf | ||
![]() |
82347f5f0d | ||
![]() |
c594f28acb | ||
![]() |
bf6517e58f | ||
![]() |
aec2f4c435 | ||
![]() |
8f905758d5 | ||
![]() |
80cc236f48 | ||
![]() |
e432a02a45 | ||
![]() |
d7894fa7f4 | ||
![]() |
853d7032f0 | ||
![]() |
5f9f57e1c0 | ||
![]() |
f4381c8216 | ||
![]() |
20eee7cae7 | ||
![]() |
33392c2148 | ||
![]() |
bb67564fbe | ||
![]() |
61ccbcd788 | ||
![]() |
1dbaa3be6d | ||
![]() |
872bc22830 | ||
![]() |
ce23ed814c | ||
![]() |
82cd534756 | ||
![]() |
673809d6b9 | ||
![]() |
cdbaf73b1e | ||
![]() |
7f911b7e72 | ||
![]() |
c03a2dfe7e | ||
![]() |
75935ce4d1 | ||
![]() |
f0b203409e | ||
![]() |
b3b369eb59 | ||
![]() |
96072982cf | ||
![]() |
de016fc445 | ||
![]() |
554d9b5f7b | ||
![]() |
149edefad5 | ||
![]() |
52d3840c83 | ||
![]() |
793677d4fd | ||
![]() |
2376ee4877 | ||
![]() |
68dcab6262 | ||
![]() |
f38fd3512c | ||
![]() |
e515278ba3 | ||
![]() |
9cc69e41ee | ||
![]() |
2109ff235c | ||
![]() |
d6910aa81d | ||
![]() |
8369391902 | ||
![]() |
f336807498 | ||
![]() |
14ba5d7126 | ||
![]() |
288394d25f | ||
![]() |
fb08b5fd65 | ||
![]() |
3465e11c3a | ||
![]() |
e07a16863e | ||
![]() |
64f7532510 | ||
![]() |
dd892e77fb | ||
![]() |
65aeeba521 | ||
![]() |
ca3e56d0d6 | ||
![]() |
bcbfb0dc32 | ||
![]() |
46a4a10e63 | ||
![]() |
d5bddd077f | ||
![]() |
e22fd263cc | ||
![]() |
f3902d0ae0 | ||
![]() |
f9213ee45d | ||
![]() |
281bc2573e | ||
![]() |
ae8c7f6bfa | ||
![]() |
c0419d6018 | ||
![]() |
ea98e50f65 | ||
![]() |
168174e383 | ||
![]() |
53cd4e1b88 | ||
![]() |
27e3561bb8 | ||
![]() |
9bb9cb13e3 | ||
![]() |
16455f7241 | ||
![]() |
82225aa519 | ||
![]() |
5f2baefc6c | ||
![]() |
cedcf39723 | ||
![]() |
4925d9aada | ||
![]() |
f3e6df32d0 | ||
![]() |
5aaa8752af | ||
![]() |
a1d214316c | ||
![]() |
8a1e3eb066 | ||
![]() |
75a417773f | ||
![]() |
b3b3ee4f21 | ||
![]() |
07b1db4b28 | ||
![]() |
dc775a0f22 | ||
![]() |
10228f953e | ||
![]() |
afceecadbe | ||
![]() |
b2a4e59571 | ||
![]() |
b0b944bbf3 | ||
![]() |
89a3d74b93 | ||
![]() |
f4eef04750 | ||
![]() |
e62c86b99f | ||
![]() |
82bd792da5 | ||
![]() |
a58c9065e6 | ||
![]() |
e8bf984b76 | ||
![]() |
23e1a3499f | ||
![]() |
6b4e4bacd7 | ||
![]() |
a84c04ca08 | ||
![]() |
e67c71e440 | ||
![]() |
5078ff9c7a | ||
![]() |
647510de5d | ||
![]() |
84e11e4236 | ||
![]() |
9538714af1 | ||
![]() |
ffd832d990 | ||
![]() |
8de2b8976b | ||
![]() |
a6aa26b5d9 | ||
![]() |
2505651c68 | ||
![]() |
e67c7b23ff | ||
![]() |
453cca3b0c | ||
![]() |
6cee04a4be | ||
![]() |
ae8b9b4773 | ||
![]() |
e748b7b265 | ||
![]() |
c2401ec013 | ||
![]() |
8073d7ecd0 | ||
![]() |
64f7859ba7 | ||
![]() |
f1b94d7026 | ||
![]() |
79653b6048 | ||
![]() |
b0e6b72281 | ||
![]() |
e6220e5e53 | ||
![]() |
3c064845b1 | ||
![]() |
736cb219ca | ||
![]() |
fb30e4e387 | ||
![]() |
74550ffa16 | ||
![]() |
d0a0672282 | ||
![]() |
16e92ddf60 | ||
![]() |
4d8e68d800 | ||
![]() |
bbebfaf32a | ||
![]() |
7e56331e47 | ||
![]() |
750db8e71c | ||
![]() |
4255ef68a3 | ||
![]() |
3313464214 | ||
![]() |
683ba32a15 | ||
![]() |
90a60155e5 | ||
![]() |
b25d06ed9e | ||
![]() |
706ae3dd91 | ||
![]() |
9b15ed8181 | ||
![]() |
f355bef36b | ||
![]() |
4391e69c48 | ||
![]() |
0710d80391 | ||
![]() |
cf41a3a76c | ||
![]() |
31b2cd872f | ||
![]() |
2b6945cbb2 | ||
![]() |
ae5f43918f | ||
![]() |
6b6bc2752e | ||
![]() |
4556adae3c | ||
![]() |
1b0886041b | ||
![]() |
16e18f3ca7 | ||
![]() |
ee0d67fbbb | ||
![]() |
450527f172 | ||
![]() |
135518ee39 | ||
![]() |
58715ecb5f | ||
![]() |
75e26b101d | ||
![]() |
6421a6face | ||
![]() |
948520f90a | ||
![]() |
0765118ce2 | ||
![]() |
efd4c7b617 | ||
![]() |
c5346fbece | ||
![]() |
fe8e8ccc3e | ||
![]() |
eae111bc2c | ||
![]() |
6a6c1dc6b4 | ||
![]() |
86bbb282ab | ||
![]() |
28aa156cb7 | ||
![]() |
a7814e69de | ||
![]() |
1452c116cf | ||
![]() |
23dfc4b339 | ||
![]() |
931d4be972 | ||
![]() |
7dceda587b | ||
![]() |
52a969074d | ||
![]() |
e7b87d31cf | ||
![]() |
5eb0fae08f | ||
![]() |
798d805a0f | ||
![]() |
0d4ba06e57 | ||
![]() |
4913b13a2d | ||
![]() |
b0bab992db | ||
![]() |
af5f4227b7 | ||
![]() |
fa6a694ea4 | ||
![]() |
1da7ffc052 | ||
![]() |
c673f5818c | ||
![]() |
ec78a87644 | ||
![]() |
69d14ddcf5 | ||
![]() |
f62819df00 | ||
![]() |
39a85b6bc2 | ||
![]() |
f76ae3e867 | ||
![]() |
3651e5f2f0 | ||
![]() |
89e016ef6c | ||
![]() |
e4996f4c4d | ||
![]() |
c44ed58142 | ||
![]() |
0091af2a41 | ||
![]() |
d1eea68719 | ||
![]() |
133aff7fd8 | ||
![]() |
efde94db7a | ||
![]() |
6ec072b34e | ||
![]() |
4027a21514 | ||
![]() |
3665b1ab00 | ||
![]() |
cf6b292f0c | ||
![]() |
507e4173d3 | ||
![]() |
abc3575d3e | ||
![]() |
2c0ff587e3 | ||
![]() |
26c87535d6 | ||
![]() |
6ac8e672be | ||
![]() |
04ee2dd1e7 | ||
![]() |
3106a98aee | ||
![]() |
73769a3472 | ||
![]() |
085e253d77 | ||
![]() |
b2af8f153e | ||
![]() |
37fb41fca8 | ||
![]() |
e2b05ab639 | ||
![]() |
354fd8fef0 | ||
![]() |
9b97867be1 | ||
![]() |
06685d1721 | ||
![]() |
ae4b88a06b | ||
![]() |
c83ecc46ed | ||
![]() |
c32050a208 | ||
![]() |
4a8c7227e6 | ||
![]() |
55e61a7094 | ||
![]() |
60977d05b6 | ||
![]() |
601747f720 | ||
![]() |
0c91bc3207 | ||
![]() |
f5cd2c173f | ||
![]() |
d00bd8bb25 | ||
![]() |
a66e44d835 | ||
![]() |
ce05317634 | ||
![]() |
33d88d55c9 | ||
![]() |
a31a4a8ca7 | ||
![]() |
c34d000b91 | ||
![]() |
a2bfe950fa | ||
![]() |
b44f40acd6 | ||
![]() |
5169093bbf | ||
![]() |
b15b1cd3f8 | ||
![]() |
f7b6a97435 | ||
![]() |
f64c99c406 | ||
![]() |
f552e43c5b | ||
![]() |
4798198e41 | ||
![]() |
a59de4ce05 | ||
![]() |
2dea525665 | ||
![]() |
8ecb1f7296 | ||
![]() |
9ca9530061 | ||
![]() |
54e27afc3f | ||
![]() |
5e67032655 | ||
![]() |
cb37f6df63 | ||
![]() |
ca3a18cf37 | ||
![]() |
cac36627aa | ||
![]() |
6404e1127e | ||
![]() |
e762a3093b | ||
![]() |
739ac2ae5e | ||
![]() |
77c364a2d0 | ||
![]() |
103cd9f5ce | ||
![]() |
99859fe857 | ||
![]() |
4778995f3b | ||
![]() |
0a14150840 | ||
![]() |
e8ffc0313f | ||
![]() |
7dbd3886b1 | ||
![]() |
8c83164d76 | ||
![]() |
076aab1ccf | ||
![]() |
751f51c88f | ||
![]() |
ab7359ffd3 | ||
![]() |
d795d70041 | ||
![]() |
1320034e7e | ||
![]() |
79a216043f | ||
![]() |
c508a3cc32 | ||
![]() |
d40d8f34c5 | ||
![]() |
b561a13e7c | ||
![]() |
71bcee2a07 | ||
![]() |
6c490b1baa | ||
![]() |
4ab6a36aca | ||
![]() |
c4355841ad | ||
![]() |
f163946e38 | ||
![]() |
7abb1fd630 | ||
![]() |
f78d3387a5 | ||
![]() |
69e2e3c047 | ||
![]() |
52832cbe22 | ||
![]() |
82ca2be51c | ||
![]() |
8552bb8a17 | ||
![]() |
b49a38b6d0 | ||
![]() |
ad0751677a | ||
![]() |
dd8bb20ba9 | ||
![]() |
03f5f27901 | ||
![]() |
9e3ca56afd | ||
![]() |
5379528e3e | ||
![]() |
12201359bc | ||
![]() |
ba50fcf85e | ||
![]() |
24c0db563c | ||
![]() |
33c4905dcb | ||
![]() |
9296c3f9a0 | ||
![]() |
7ecc566169 | ||
![]() |
a918da36d3 | ||
![]() |
91ff5fdb02 | ||
![]() |
4481631547 | ||
![]() |
7865388086 | ||
![]() |
26297bc5a9 | ||
![]() |
9db5cdd8e3 | ||
![]() |
2b17534a08 | ||
![]() |
4e2db68acf | ||
![]() |
ddabf8df5e | ||
![]() |
3f28e197ca | ||
![]() |
3a67524e8a | ||
![]() |
33312d95b0 | ||
![]() |
f554b21cd9 | ||
![]() |
d9fa4e4648 | ||
![]() |
e98a284d40 | ||
![]() |
38ef8c1053 | ||
![]() |
d3f560a31c | ||
![]() |
e2cb3ff284 | ||
![]() |
0f5a3953e1 | ||
![]() |
633667ed7f | ||
![]() |
656e975562 | ||
![]() |
f7fbe89de4 | ||
![]() |
509829b052 | ||
![]() |
efd61e17f2 | ||
![]() |
cf2b021d02 | ||
![]() |
67f10aece5 | ||
![]() |
9b5c777fcf | ||
![]() |
c65e5f8341 | ||
![]() |
053bb603cd | ||
![]() |
93b07bbb90 | ||
![]() |
764a115601 | ||
![]() |
1adfe53f29 | ||
![]() |
bfe0f51cb1 | ||
![]() |
ffce61906a | ||
![]() |
3843a193cb | ||
![]() |
b2410dab0b | ||
![]() |
f382544101 | ||
![]() |
a81d54eb90 | ||
![]() |
23519bbdae | ||
![]() |
73fd25773a | ||
![]() |
746d483179 | ||
![]() |
1a7e90c7d7 | ||
![]() |
8e2fd44f55 | ||
![]() |
1c84917b29 | ||
![]() |
c5522ed19d | ||
![]() |
33a5480456 | ||
![]() |
16cd05fc76 | ||
![]() |
4788dacc86 | ||
![]() |
91e54c8b0d | ||
![]() |
15ccebfe11 | ||
![]() |
5c849c9105 | ||
![]() |
9e99506223 | ||
![]() |
53ea90379f | ||
![]() |
2619d7ebb4 | ||
![]() |
8c8a7aceca | ||
![]() |
726b885b60 | ||
![]() |
a6994a09c3 | ||
![]() |
1616aff5a1 | ||
![]() |
5a82f05be8 | ||
![]() |
3020504cdc | ||
![]() |
d00e802674 | ||
![]() |
c46008dddc | ||
![]() |
755000c376 | ||
![]() |
1e4a60bfe6 | ||
![]() |
c9ee685956 | ||
![]() |
c2b1083836 | ||
![]() |
3518528f22 | ||
![]() |
9bed8fec79 | ||
![]() |
3ffbea7d42 | ||
![]() |
39b42193cb | ||
![]() |
c69e080b05 | ||
![]() |
50b42036d1 | ||
![]() |
340c40ceff | ||
![]() |
6aeffe71de | ||
![]() |
04c33d719e | ||
![]() |
07f1d1e8e6 | ||
![]() |
6c61254c50 | ||
![]() |
c6efea8c34 | ||
![]() |
80f43a7c66 | ||
![]() |
9f5d3a9a28 | ||
![]() |
8800a4f70b | ||
![]() |
990254dcac | ||
![]() |
73a1118e78 | ||
![]() |
d3bedf26cf | ||
![]() |
25b29f429a | ||
![]() |
363f821962 | ||
![]() |
8d873c0bf1 | ||
![]() |
955676ed9e | ||
![]() |
a2439a37e4 | ||
![]() |
7b6daa8e4e | ||
![]() |
fcf782296a | ||
![]() |
44889b635c | ||
![]() |
bc12ba11cd | ||
![]() |
9b08db75e3 | ||
4c3ad3f263 | |||
![]() |
598bcc7edd | ||
![]() |
b86ec03dc4 | ||
![]() |
ae75498f8a | ||
![]() |
9d0b68b0f8 | ||
![]() |
eeb5939e59 | ||
![]() |
ef235a47bf | ||
![]() |
b66da76880 | ||
![]() |
54d6119784 | ||
![]() |
0b8c081425 | ||
![]() |
209052ffa6 | ||
![]() |
fe9a6b5cfb | ||
![]() |
9c0f74369f | ||
![]() |
cd27e5229b | ||
![]() |
472732905c | ||
![]() |
485d9f81cd | ||
![]() |
8cf136ce4c | ||
![]() |
116a8ac9d2 | ||
![]() |
fda310bda6 | ||
![]() |
e55619ea33 | ||
![]() |
b952b20128 | ||
![]() |
62d1f85648 | ||
![]() |
5e3c8c0e92 | ||
![]() |
b58dddf2ff | ||
![]() |
78d351a0b0 | ||
![]() |
61dbc948cc | ||
![]() |
c4d92ebe73 | ||
![]() |
d0cf827638 | ||
![]() |
6a6a92b6b9 | ||
![]() |
9869b8a34e | ||
![]() |
60fbf88322 | ||
![]() |
fae3924062 | ||
![]() |
dc2ce64823 | ||
![]() |
d0d86d9178 | ||
![]() |
f417af6148 | ||
![]() |
2fe2860a09 | ||
![]() |
cb40426976 | ||
![]() |
423ed390a2 | ||
![]() |
7652b16ca6 | ||
![]() |
618a010c15 | ||
![]() |
d44a34ed9b | ||
![]() |
c84fc996db | ||
![]() |
43f232543b | ||
![]() |
3f65d1d99a | ||
![]() |
bfcf706ca7 | ||
![]() |
8c1103c461 | ||
![]() |
ab75ace8db | ||
![]() |
4a58e6a282 | ||
![]() |
ac9e4f69b4 | ||
![]() |
581edba7fd | ||
![]() |
58a8b96c3c | ||
![]() |
0e057ca9ae | ||
![]() |
36bf2639bb | ||
![]() |
0c1326e689 | ||
![]() |
dd74438f68 | ||
![]() |
a9ddfac782 | ||
![]() |
79437df894 | ||
![]() |
b5a04af089 | ||
![]() |
52372ae3d3 | ||
![]() |
65d755d9b2 | ||
![]() |
1f1a8f3395 | ||
![]() |
629e4e7053 | ||
![]() |
c50a299cfd | ||
![]() |
4bad129caf | ||
![]() |
1ffb28e21b | ||
![]() |
c126243367 | ||
![]() |
6da6e461a8 | ||
![]() |
103101bbcb | ||
![]() |
f737fcba1a | ||
![]() |
c5fa0678b8 | ||
![]() |
00ccddf8cf | ||
![]() |
00cbf188fb | ||
![]() |
988ea74461 | ||
![]() |
0914cda7e5 | ||
![]() |
5959e9aaa1 | ||
![]() |
434df565ae | ||
![]() |
c8f36504d8 | ||
![]() |
06e1af371e | ||
![]() |
d744987ac8 | ||
![]() |
b4eef17aaa | ||
![]() |
5c50e8607c | ||
![]() |
9a324ab448 | ||
![]() |
c3978335f5 | ||
![]() |
051296c2aa | ||
![]() |
90f2d2ff29 | ||
![]() |
4c2edab406 | ||
![]() |
76e8fd69bf | ||
![]() |
5dd458bcf7 | ||
![]() |
a94a8b8539 | ||
![]() |
261230b23a | ||
![]() |
b90317e00e | ||
![]() |
21c9dc8785 | ||
![]() |
31bbc60325 | ||
![]() |
fec6e5c189 | ||
![]() |
23c1493f17 | ||
![]() |
00808af569 | ||
![]() |
3c94091d30 | ||
![]() |
b737362aba | ||
![]() |
db722fc4e5 | ||
![]() |
7d679e68dc | ||
![]() |
bc808403fb | ||
![]() |
9d6dc317a4 | ||
![]() |
cf29c50f31 | ||
![]() |
2a3c4cc441 | ||
![]() |
bd192561ae | ||
![]() |
66ff56a05e | ||
![]() |
def86d179e | ||
![]() |
3c9a343f8b | ||
![]() |
10b6b05fab | ||
![]() |
caa4ef736a | ||
![]() |
23702345a9 | ||
![]() |
ba89babd10 | ||
![]() |
2ce3fbd677 | ||
![]() |
d8de73a06d | ||
![]() |
8094e6711a | ||
![]() |
10edccc1d6 | ||
![]() |
247aaed188 | ||
![]() |
1a4333fa1b | ||
![]() |
8eaa6df318 | ||
![]() |
7523db186f | ||
![]() |
4aac113522 | ||
![]() |
795abd77a7 | ||
![]() |
38bc914504 | ||
![]() |
c8113eea83 | ||
![]() |
924b7418e8 | ||
![]() |
a7dfef61e9 | ||
![]() |
db35c979b4 | ||
![]() |
2de933c723 | ||
![]() |
d3704d602f | ||
![]() |
ea62f227bf | ||
![]() |
23fdadc32e | ||
![]() |
e9bf06686f | ||
![]() |
7842b155c1 | ||
![]() |
74a8277e10 | ||
![]() |
ddb1b80463 | ||
![]() |
eea3336934 | ||
![]() |
f801145712 | ||
![]() |
e033b08535 | ||
![]() |
1d9514a205 | ||
![]() |
6741120f19 | ||
![]() |
c501457322 | ||
![]() |
46425a24c3 | ||
![]() |
9826f0a7f0 | ||
![]() |
43175061e0 | ||
![]() |
0ab32cac34 | ||
![]() |
e3ec9c614b | ||
![]() |
f454d60234 | ||
![]() |
19fa00837c | ||
![]() |
275c5d28e1 | ||
![]() |
15ae069f6f | ||
![]() |
00f5541dc6 | ||
![]() |
02540eb303 | ||
![]() |
282e581bdb | ||
![]() |
31e7c49608 | ||
![]() |
7966a6dc91 | ||
![]() |
5fc2f04224 | ||
![]() |
6edfd8ed22 | ||
![]() |
363db05db7 | ||
![]() |
3738012dd6 | ||
![]() |
355cfe035d | ||
![]() |
6d01b5be77 | ||
![]() |
4938957483 | ||
![]() |
46f4fa7cdd | ||
![]() |
f696135f31 | ||
![]() |
52e0fcdc7d | ||
![]() |
ac17518a23 | ||
6dd924b2b2 | |||
![]() |
f439474b73 | ||
![]() |
d6cd92e256 | ||
![]() |
3a294268d9 | ||
![]() |
9b81c7e650 | ||
![]() |
e229fb3ad7 | ||
![]() |
720eae63fa | ||
![]() |
0df96a24bd | ||
![]() |
21a1588ede | ||
![]() |
7970006e8c | ||
![]() |
418d0cff7f | ||
![]() |
7284360774 | ||
![]() |
9fc3fadee8 | ||
![]() |
3d2db56f63 | ||
![]() |
e9c7cb8670 | ||
![]() |
87d19274c5 | ||
![]() |
3161bf8ffd | ||
![]() |
b68865587e | ||
![]() |
7dc0dbe944 | ||
![]() |
f50a363525 | ||
![]() |
57ad4c70d1 | ||
![]() |
d3d93b898f | ||
![]() |
7d8973edb2 | ||
![]() |
2302b576b0 | ||
f4782630d4 | |||
![]() |
8c1a2a686f | ||
32d5e1e6fa | |||
![]() |
a381a1cacc | ||
![]() |
73c3c9f7fe | ||
![]() |
67ef0a75d5 | ||
![]() |
328bc5e95a | ||
![]() |
7f8021e37e | ||
![]() |
9701b7e79b | ||
![]() |
7a52c6fec9 | ||
![]() |
1503639d4b | ||
![]() |
e82f19c852 | ||
![]() |
edd69c9c25 | ||
![]() |
fc61e369fb | ||
![]() |
113586b59b | ||
![]() |
5dbd5e1c89 | ||
![]() |
04b7d9e2c3 | ||
![]() |
5f2743176a | ||
![]() |
3723488617 | ||
![]() |
0cc17a0791 | ||
![]() |
05a21e6091 | ||
![]() |
fc06bc7c6f | ||
![]() |
1bd005adc1 | ||
![]() |
4f208d1577 | ||
![]() |
eb6e0557a7 | ||
![]() |
cf09d66be6 | ||
![]() |
76cd127a8a | ||
![]() |
f6dd2a9968 | ||
![]() |
ae05a33e14 | ||
![]() |
b38fad323b | ||
![]() |
c6027fcf0f | ||
![]() |
f4cf06a50e | ||
![]() |
86bf8dcc60 | ||
![]() |
d37898b6d3 | ||
![]() |
1edd6a9002 | ||
![]() |
f7fa0dcbd1 | ||
![]() |
4f0a95a803 | ||
![]() |
e443cb0d3c | ||
![]() |
6fa228ee08 | ||
![]() |
fb9bfbaeeb | ||
![]() |
09668f4fcb | ||
![]() |
4c7a6165ed | ||
![]() |
12d0d2613f | ||
![]() |
42ee78cd3d | ||
![]() |
58d308c1ed | ||
![]() |
29e1bcc53d | ||
![]() |
3531574e5e | ||
![]() |
b9721218ab | ||
![]() |
a119ea6a29 | ||
![]() |
95ef5f5f32 | ||
![]() |
b81b18645b | ||
![]() |
ce591f1b43 | ||
![]() |
28afa4b3ce | ||
![]() |
89a24d71a6 | ||
f69630b668 | |||
![]() |
a2d34a883b | ||
![]() |
5c79b887d8 | ||
![]() |
d0475bf659 | ||
![]() |
85c9576699 | ||
![]() |
2483450a1f | ||
![]() |
519d5eed06 | ||
![]() |
d87965775a | ||
![]() |
8c6f81aa00 | ||
![]() |
6ea0ab0968 | ||
![]() |
70ab3ecdbe | ||
![]() |
a24ae616df | ||
![]() |
cc838f614f | ||
![]() |
ae62a9f378 | ||
![]() |
1b5778a58c | ||
![]() |
27a689e7b8 | ||
![]() |
8e6c490c62 | ||
![]() |
ccda70fe53 | ||
![]() |
26c42e4f0d | ||
![]() |
3244dd52eb | ||
![]() |
4c6807a0c2 | ||
![]() |
03a6a2749a | ||
![]() |
82f69456e9 | ||
![]() |
6beda371fb | ||
![]() |
5b9cb2efc5 | ||
![]() |
733968723c | ||
![]() |
63c81d67f2 | ||
![]() |
ad8ba1dd24 | ||
![]() |
04f821e3e1 | ||
![]() |
4937985e2c | ||
![]() |
5fd7d83a70 | ||
![]() |
699a19d202 | ||
![]() |
0b42938197 | ||
![]() |
1e2bfb6216 | ||
![]() |
f755a4b23f | ||
![]() |
4f58e12fca | ||
![]() |
588cf89531 | ||
![]() |
4fe2dd2706 | ||
![]() |
11ad605cd6 | ||
![]() |
fa9f160bd1 | ||
![]() |
dae1fad54e | ||
![]() |
52200188d4 | ||
![]() |
0d74b9ef0b | ||
![]() |
549163d274 | ||
![]() |
755018c783 | ||
![]() |
2a1c4b3a1c | ||
![]() |
aae0d825e7 | ||
![]() |
855dbfab16 | ||
![]() |
f3a357c559 | ||
![]() |
63995e8c61 | ||
![]() |
7062d9b8f8 | ||
![]() |
ede62f5c75 | ||
![]() |
6386770ff3 | ||
![]() |
b4e831a81f | ||
![]() |
9b283360ce | ||
![]() |
fabbd4d156 | ||
![]() |
9bea5bf5f7 | ||
![]() |
9fbc990493 | ||
![]() |
b05fdaaa73 | ||
![]() |
52d5d4d64c | ||
![]() |
6ec712466c | ||
![]() |
6616b8dc07 | ||
![]() |
807457c718 | ||
![]() |
13d2a40903 | ||
![]() |
022b196d6a | ||
![]() |
7a64216830 | ||
![]() |
bf7d2bd465 | ||
![]() |
6e97b591de | ||
![]() |
fc7c470966 | ||
![]() |
51492ca121 | ||
![]() |
ce1df84330 | ||
![]() |
9b43e2a715 | ||
![]() |
732cabd6aa | ||
![]() |
7c14801d5c | ||
![]() |
66df09c065 | ||
![]() |
8fd6985316 | ||
![]() |
feac001499 | ||
![]() |
4c47e3a8eb | ||
![]() |
7773b625a5 | ||
![]() |
abe1abec72 | ||
![]() |
023838a96b | ||
![]() |
f4e743acc5 | ||
![]() |
06d58cbda5 | ||
![]() |
d199dea204 | ||
![]() |
5722060ed9 | ||
![]() |
d4f7e727c1 | ||
![]() |
ba9afc3f8e | ||
![]() |
39897bd012 | ||
![]() |
575d563154 | ||
![]() |
2bf46ce2f3 | ||
![]() |
b49a185efc | ||
![]() |
e305ebd1ed | ||
![]() |
6f5c9826f4 | ||
![]() |
6025eaaca9 | ||
![]() |
b2441c3cca | ||
![]() |
a73599e9ee | ||
![]() |
58398f40fa | ||
![]() |
43f5d5a8e8 | ||
![]() |
b20cbd3558 | ||
![]() |
7f835a407c | ||
![]() |
9859974db7 | ||
![]() |
6c24ddd1a0 | ||
![]() |
bd92ef08ec | ||
![]() |
8de6107a17 | ||
![]() |
e639f03ac7 | ||
![]() |
f9aac442c1 | ||
![]() |
5fdf675168 | ||
![]() |
232f81ff48 | ||
![]() |
1c4a6b2274 | ||
![]() |
deb71f8efc | ||
![]() |
4596596d9f | ||
![]() |
bbb6d42f8d | ||
![]() |
01efd0f9f0 | ||
![]() |
2d7597d206 | ||
![]() |
221741c891 | ||
![]() |
9f69beb450 | ||
![]() |
e843d9e9c3 | ||
![]() |
008b3d94fb | ||
![]() |
6756d83c55 | ||
![]() |
b52072a2e3 | ||
![]() |
3afb00d563 | ||
![]() |
a30c94fd2f | ||
![]() |
f50c29a285 | ||
![]() |
f238b0f138 | ||
![]() |
d0a8c98040 | ||
![]() |
b3d161ad97 | ||
![]() |
fce9cf2077 | ||
![]() |
efd0e56697 | ||
![]() |
b94a9bb9d9 | ||
![]() |
c153cc5a29 | ||
![]() |
a680e9a25a | ||
![]() |
3c18c4ef22 | ||
![]() |
c4e11b5976 | ||
![]() |
65be51dd48 | ||
![]() |
9684103f97 | ||
![]() |
f4c647d430 | ||
![]() |
f1eab3b9c1 | ||
![]() |
545d52bd93 | ||
![]() |
4e42198c09 | ||
![]() |
44736a51b9 | ||
![]() |
e675ffd623 | ||
![]() |
1f14e06bd3 | ||
![]() |
9871078269 | ||
![]() |
5e7a7f4d62 | ||
![]() |
7d690c6809 | ||
![]() |
6edb4266d5 | ||
![]() |
799e82d501 | ||
![]() |
a2370bff68 | ||
![]() |
c72f3bcd12 | ||
![]() |
295964a74d | ||
![]() |
d77cda0fae | ||
![]() |
6da072d47d | ||
![]() |
471a5a1b3e | ||
![]() |
cd5da2d237 | ||
![]() |
62f67cd626 | ||
![]() |
70db96d9e5 | ||
![]() |
98470111fb | ||
![]() |
557a3bb01f | ||
![]() |
dee70acdcb | ||
![]() |
862b16879c | ||
![]() |
ed7249558e | ||
![]() |
4f6c6f4d10 | ||
![]() |
650d02d9b3 | ||
![]() |
e4041a2f69 | ||
![]() |
4c284a6d13 | ||
![]() |
e14fc801bd | ||
![]() |
0478d468e0 | ||
![]() |
4ac98710fb | ||
![]() |
f256f6417e | ||
![]() |
ca94d55b62 | ||
![]() |
c11c061113 | ||
![]() |
c15c3eb802 | ||
![]() |
0ce102b782 | ||
![]() |
cc48207a99 | ||
![]() |
353ea5fc5d | ||
![]() |
64138310cc | ||
![]() |
1c4538af72 | ||
![]() |
755b47ef19 | ||
![]() |
c78a5d3cab | ||
![]() |
b9b8d30f3b | ||
![]() |
9be93212c3 | ||
![]() |
89973809af | ||
![]() |
e324af356d | ||
![]() |
f51fc6ed47 | ||
![]() |
ecce98289a | ||
![]() |
23c14aa2e4 | ||
![]() |
678d04c5db | ||
![]() |
691ba75372 | ||
![]() |
d2d7bbc632 | ||
![]() |
b3b1a6bdb9 | ||
![]() |
310125ea01 | ||
![]() |
208d1cbba2 | ||
![]() |
e94154ba80 | ||
![]() |
582fbdd9e7 | ||
![]() |
dd175912f4 | ||
![]() |
a6a0ae7a51 | ||
![]() |
8cdac91a01 | ||
![]() |
4c89f41daa | ||
![]() |
512e826a42 | ||
![]() |
bc0d277a21 | ||
![]() |
169fe5fc5b | ||
![]() |
30867702a4 | ||
![]() |
6131f92ae6 | ||
![]() |
823a52583c | ||
![]() |
e2c6c0539f | ||
![]() |
f7f1c0e90d | ||
![]() |
eca12607dd | ||
![]() |
006e3e11f9 | ||
![]() |
a9982cbdca | ||
![]() |
0fa9c5a2a2 | ||
![]() |
cdcc9729d3 | ||
![]() |
4acf651aa7 | ||
![]() |
4bba791c65 | ||
![]() |
662688d3b9 | ||
![]() |
21a3e8fdc4 | ||
![]() |
3815a1d538 | ||
![]() |
cbe0c5cfec | ||
![]() |
15db9b30e1 | ||
![]() |
e891294c0f | ||
![]() |
f6b9e7cc26 | ||
![]() |
052fd7162f | ||
![]() |
189acb73f5 | ||
![]() |
ec7c1677b4 | ||
![]() |
a9474c8e67 | ||
![]() |
3a70dfc5f3 | ||
![]() |
669177d803 | ||
![]() |
b1f43b061c | ||
![]() |
7ff3c84deb | ||
![]() |
ee642b63ce | ||
![]() |
17315e5096 | ||
![]() |
4e9d52fc62 | ||
![]() |
d7e87f8fc8 | ||
![]() |
3efe11f393 | ||
![]() |
26c6c464d8 | ||
![]() |
4db654e653 | ||
![]() |
048759d374 | ||
![]() |
db2424057f | ||
![]() |
472a53e3b9 | ||
![]() |
9e15d91900 | ||
![]() |
d5cff281c0 | ||
![]() |
57b6c4dffb | ||
![]() |
908a2d1d8c | ||
![]() |
69bdea9273 | ||
![]() |
5b21a653ee | ||
![]() |
cfddcf1630 | ||
![]() |
f009687ddf | ||
![]() |
6ddfe29465 | ||
![]() |
715c51f673 | ||
![]() |
b443e8f06a | ||
![]() |
0bd0466c9c | ||
![]() |
ad5db3c9e5 | ||
![]() |
fa3182cb5e | ||
![]() |
3f44bed66e | ||
![]() |
2a70530d0f | ||
![]() |
7c542d5fc7 | ||
![]() |
638dfb7777 | ||
![]() |
1323536a63 | ||
![]() |
419212e2d4 | ||
![]() |
5f1c234a7d | ||
![]() |
db1e8301cd | ||
![]() |
bf94a3c68d | ||
![]() |
96baa4ffc6 | ||
![]() |
7d472afe61 | ||
![]() |
f32a4d33a7 | ||
![]() |
0722991955 | ||
![]() |
bcc740cdbc | ||
![]() |
5cf46097f7 | ||
![]() |
61dc189f8b | ||
![]() |
23c2b008c9 | ||
![]() |
db14afdf3a | ||
![]() |
b7927336d1 | ||
![]() |
ee23a3d4cd | ||
![]() |
63c0112ffb | ||
![]() |
db08d7d280 | ||
![]() |
9892525fbc | ||
![]() |
34b87ff6bf | ||
![]() |
241ad68bd5 | ||
![]() |
a0ec18921b | ||
![]() |
45e17eb0b2 | ||
![]() |
59f0e9ae67 | ||
![]() |
af24611c73 | ||
![]() |
d4502dda3f | ||
![]() |
c0efa8af5d | ||
![]() |
1c06a3fc89 | ||
![]() |
c19fb38d1c | ||
![]() |
5dc1de9daf | ||
![]() |
6774301938 | ||
![]() |
4ef6cf0428 | ||
![]() |
ca5f8e4b44 | ||
![]() |
1907f03abe | ||
![]() |
6351a4e4f3 | ||
![]() |
fa34c3937f | ||
![]() |
cdac97ebf5 | ||
![]() |
fe958d28b8 | ||
![]() |
f71982e1d5 | ||
![]() |
cb2bfcea53 | ||
![]() |
4a9d5bbceb | ||
![]() |
10809eade6 | ||
![]() |
43d63527f8 | ||
![]() |
df51eb54ed | ||
![]() |
b47109ab4d | ||
![]() |
15b2b68940 | ||
![]() |
62a239f6fe | ||
![]() |
d89bc95a0a | ||
![]() |
2a76f21b31 | ||
![]() |
f07e22d742 | ||
![]() |
058ab7a1ea | ||
![]() |
fae3baa640 | ||
![]() |
2c4da9c634 | ||
![]() |
8de0313aca | ||
![]() |
143c5b17f9 | ||
![]() |
ec32fde60d | ||
![]() |
f2ac5d4995 | ||
![]() |
716962af03 | ||
![]() |
156efde6b9 | ||
![]() |
a9b7716dfe | ||
![]() |
76a67a6715 | ||
![]() |
c3defdcda4 | ||
![]() |
d8092aa916 | ||
![]() |
8b5a3d31aa | ||
![]() |
11761b66b2 | ||
![]() |
f83f107bd1 | ||
![]() |
f1b90857ff | ||
![]() |
5aea4cdd65 | ||
![]() |
1822a59c70 | ||
![]() |
37c6934802 | ||
![]() |
90c7f747a4 | ||
![]() |
b7efa3dcd6 | ||
![]() |
da80f537ac | ||
![]() |
0119912318 | ||
![]() |
5e0b1d0161 | ||
![]() |
35145d100b | ||
![]() |
584dd0ba89 | ||
![]() |
e5f5dc56c9 | ||
![]() |
880efb012a | ||
![]() |
b95308ac24 | ||
![]() |
3b192ad357 | ||
![]() |
b04938ac5e | ||
![]() |
56410ac1f2 | ||
![]() |
45a2eadc58 | ||
![]() |
0e03151505 | ||
![]() |
3e9706e6ce | ||
![]() |
a1646a7a88 | ||
![]() |
434511658b | ||
![]() |
04230fdd9c | ||
![]() |
2e16ad8a2a | ||
![]() |
7fb59b0fa9 | ||
![]() |
24e044bcda | ||
![]() |
1093656ec5 | ||
![]() |
674e997060 | ||
![]() |
37fd124f56 | ||
![]() |
7df2e67312 | ||
![]() |
8ea1f0796c | ||
![]() |
00fb5bc6cf | ||
![]() |
5e01f726d3 | ||
![]() |
e87290aeea | ||
![]() |
e7236beedd | ||
![]() |
5a6f54c96c | ||
![]() |
7769985439 | ||
![]() |
f4afdb21b2 | ||
![]() |
cc1b9e0a50 | ||
![]() |
2c58740cbb | ||
![]() |
808533b110 | ||
![]() |
e04a15bb99 | ||
![]() |
26d4074a61 | ||
![]() |
0137de5ca2 | ||
![]() |
b0a1b2edba | ||
![]() |
355c560ddc | ||
![]() |
72f286d9c6 | ||
![]() |
db6786414a | ||
![]() |
f8f046f193 | ||
![]() |
6c9ad4ded2 | ||
![]() |
32cae8ca11 | ||
![]() |
0cb65279d9 | ||
![]() |
412da06554 | ||
![]() |
247f8a2778 | ||
![]() |
017c9a6a70 | ||
![]() |
eccb2430b5 | ||
![]() |
5c64ebf1cc | ||
![]() |
1d7796805c | ||
![]() |
3479aaf6f6 | ||
![]() |
d2071cf05c | ||
![]() |
fb75508258 | ||
![]() |
0e69168382 | ||
![]() |
9970ab8643 | ||
![]() |
7ff82010c3 | ||
![]() |
1da8cd53d2 | ||
![]() |
9337a89eac | ||
![]() |
510564dd91 | ||
![]() |
a9ededc997 | ||
![]() |
722cffbd48 | ||
![]() |
a787befd72 | ||
![]() |
8ddd71a65a | ||
![]() |
280e1ec16d | ||
![]() |
52cf10cb2e | ||
![]() |
c12082affc | ||
![]() |
c0d7d74dac | ||
![]() |
df72b24ad2 | ||
![]() |
26bdd15400 | ||
![]() |
e13310b4e0 | ||
![]() |
e9d4218705 | ||
![]() |
56b80e4e60 | ||
![]() |
679f6471e6 | ||
![]() |
984179695c | ||
![]() |
5cca484a82 | ||
![]() |
d91e2296b0 | ||
![]() |
59768c16e2 | ||
![]() |
580efeae1a | ||
![]() |
0a3b508c8a | ||
![]() |
5e2f590b76 | ||
![]() |
ee94396afa | ||
![]() |
98764b6356 | ||
![]() |
f01cc4d0d0 | ||
![]() |
4c0f17429b | ||
![]() |
6a2ae1c572 | ||
![]() |
a2681ce6cc | ||
![]() |
4e43606932 | ||
![]() |
28c0c3207a | ||
![]() |
ecfa0e2b49 | ||
![]() |
ec3122f320 | ||
![]() |
7e4b4c973c | ||
![]() |
64753df2dd | ||
![]() |
75b36ab886 | ||
![]() |
208a78c748 | ||
![]() |
027249c575 | ||
![]() |
5ceb960205 | ||
![]() |
1cea156c5a | ||
![]() |
e1efa1ecbc | ||
![]() |
517de5e179 | ||
![]() |
825b62a2a9 | ||
![]() |
5ec817776c | ||
![]() |
3ad0519add | ||
![]() |
9868522341 | ||
![]() |
5b8d8c617f | ||
![]() |
a1f66061e3 | ||
![]() |
d8811933c9 | ||
![]() |
c9864dde8d | ||
![]() |
ca849d6649 | ||
![]() |
95a2354a86 | ||
![]() |
538e0ac48c | ||
![]() |
1c17411f04 | ||
![]() |
cbe0f89548 | ||
![]() |
615b071dcb | ||
![]() |
2d74f121aa | ||
![]() |
f65c180b8f | ||
![]() |
eb389c472d | ||
![]() |
befdf08035 | ||
![]() |
7a43ac865e | ||
![]() |
c43fcf9fbf | ||
![]() |
472a633010 | ||
![]() |
fc46acb2e4 | ||
![]() |
7fde66eb40 | ||
![]() |
b3cea3997d | ||
![]() |
2f20193086 | ||
![]() |
601e207f04 | ||
![]() |
f0d3d8b276 | ||
![]() |
e02d34f023 | ||
![]() |
0504be84b6 | ||
![]() |
216f020b70 | ||
![]() |
66505eedfa | ||
![]() |
b307c7d88b | ||
![]() |
47d4445fa8 | ||
![]() |
7098d2633a | ||
![]() |
61b5393b54 | ||
![]() |
6fe2cf13b6 | ||
![]() |
cc971eb2df | ||
![]() |
a260987f5c | ||
![]() |
5eb8f44dfc | ||
![]() |
e36131b38b | ||
![]() |
b67868afde | ||
![]() |
328fdee281 | ||
![]() |
8ab43e98fe | ||
![]() |
4f407ccc03 | ||
![]() |
5f3fddd3e4 | ||
![]() |
392f3b536d | ||
![]() |
155de2b396 | ||
![]() |
6c9930ac2a | ||
![]() |
9dddf4f4bc | ||
![]() |
314506c15c | ||
673222da6c | |||
![]() |
58b97e6361 | ||
![]() |
8bc2032b07 | ||
![]() |
40d4354dfc | ||
![]() |
27f2f5bb2b | ||
![]() |
490b934269 | ||
![]() |
e2e2b4d176 | ||
![]() |
7a1763bbee | ||
![]() |
ca8904b6bb | ||
![]() |
6384b28689 | ||
![]() |
e661466558 | ||
![]() |
8faf2beba4 | ||
![]() |
fb29319ec6 | ||
![]() |
7779d7d193 | ||
![]() |
2c5246b62f | ||
![]() |
e43a3f4518 | ||
![]() |
b5716f7a6d | ||
![]() |
fac5a3cc6f | ||
![]() |
671793078a | ||
![]() |
4f5ea1696f | ||
![]() |
b3e47e3bac | ||
![]() |
d67e990065 | ||
![]() |
7fb6f4b47f | ||
![]() |
df3b435a1f | ||
![]() |
5b65f1b544 | ||
![]() |
e159866d3b | ||
![]() |
aa0ce71612 | ||
![]() |
522e547f99 | ||
![]() |
9430341d4e | ||
![]() |
95838d045d | ||
![]() |
20832f11b6 | ||
![]() |
258203f400 | ||
![]() |
3b1768fa4e | ||
![]() |
23a3085bad | ||
![]() |
78c12e0ea6 | ||
![]() |
997cb85663 | ||
![]() |
968d5eabfa | ||
![]() |
590ce1f7ed | ||
![]() |
416a8838e4 | ||
![]() |
f6c349ac31 | ||
![]() |
517c6b40b5 | ||
![]() |
1fa78935a6 | ||
![]() |
4ddcd56740 | ||
![]() |
e5a2f33584 | ||
![]() |
c17cf3256a | ||
![]() |
5415bda02d | ||
![]() |
07cbaeb7aa | ||
![]() |
9d5aa83786 | ||
![]() |
463164cb88 | ||
![]() |
4809742088 | ||
![]() |
9cf0e285b4 | ||
![]() |
a6ca6f1cf9 | ||
![]() |
bd7479e1c0 | ||
![]() |
b35b51c203 | ||
![]() |
5652774888 | ||
![]() |
836e9a2fbc | ||
![]() |
64538c255d | ||
![]() |
62a9293dcf | ||
![]() |
1faae92f33 | ||
![]() |
dee808752f | ||
![]() |
5590af6995 | ||
![]() |
5afd161fba | ||
![]() |
336efa1e8b | ||
![]() |
568d5ca4ff | ||
![]() |
a9991f2a50 | ||
![]() |
1c8096444a | ||
![]() |
f424de46e6 | ||
![]() |
8fcca05565 | ||
![]() |
ed1f3cec59 | ||
![]() |
c29a409f28 | ||
![]() |
1a46936ad6 | ||
![]() |
e82abfb948 | ||
![]() |
c3409be780 | ||
![]() |
1557ab3474 | ||
![]() |
75fdda4fbf | ||
![]() |
4d75ef2849 | ||
![]() |
a1da23d1ba | ||
![]() |
c4bc751df7 | ||
![]() |
972d89ec6e | ||
![]() |
70f040e104 | ||
![]() |
d4de0b49c8 | ||
![]() |
2a42d58361 | ||
![]() |
14308956d7 | ||
![]() |
71339a66d7 | ||
![]() |
85f0664b56 | ||
![]() |
2f86ac0dfa | ||
![]() |
79d7b7a08d | ||
![]() |
b550d1990e | ||
![]() |
22062f0c77 | ||
![]() |
515f613a53 | ||
![]() |
615ed6b713 | ||
![]() |
f6eab62c3c | ||
![]() |
7d1e00ff0d | ||
![]() |
692439953c | ||
![]() |
6960a34d02 | ||
![]() |
b3662d4e6e | ||
![]() |
50c9b7c352 | ||
![]() |
f395d3b2bf | ||
![]() |
4fbf6cbc50 | ||
![]() |
9916958d6c | ||
![]() |
184a069c7f | ||
![]() |
0b65346633 | ||
![]() |
11f23dcc9e | ||
![]() |
f80d1defcb | ||
![]() |
e95d6343cb | ||
![]() |
a9052a068f | ||
![]() |
b1323c0d67 | ||
![]() |
87ceb8fb58 | ||
![]() |
c3134b9426 | ||
![]() |
06c036d373 | ||
![]() |
2f8bd29725 | ||
![]() |
1eae211b41 | ||
![]() |
b02eb7a422 | ||
![]() |
3db31e9347 | ||
![]() |
1dc6045ae1 | ||
![]() |
2436164b1e | ||
![]() |
c13fc8a805 | ||
![]() |
41025d78de | ||
![]() |
b3ad222cdc | ||
![]() |
efd9ed0a5f | ||
![]() |
9d20061924 | ||
![]() |
ddfe8cf361 | ||
![]() |
93c83f773a | ||
![]() |
876e16fa9e | ||
![]() |
37067d5c72 | ||
![]() |
083ac8cfa3 | ||
![]() |
fe6c1ae452 | ||
![]() |
30165f5047 | ||
![]() |
3046c61447 | ||
![]() |
ced50bb2e8 | ||
![]() |
dee84bcc63 | ||
![]() |
0f0bafb66a | ||
![]() |
7cdc3611a5 | ||
![]() |
6eda6aebba | ||
![]() |
2d23c81ebb | ||
![]() |
5602058849 | ||
![]() |
b1ec021c1e | ||
![]() |
7073b2410b | ||
![]() |
ab9068bc0a | ||
![]() |
0c66fb474e | ||
![]() |
fef6c651ea | ||
![]() |
620f54344f | ||
![]() |
ef1259a87a | ||
![]() |
5ef4af6b55 | ||
![]() |
6d17304e4e | ||
![]() |
2e4062b5db | ||
![]() |
b294bdd013 | ||
![]() |
dc95c7fc2c | ||
![]() |
dfe8c43c33 | ||
![]() |
3e54ad5a68 | ||
![]() |
288c66d8a2 | ||
![]() |
44c8a97f44 | ||
![]() |
60c27b1dea | ||
![]() |
ce8b77b240 | ||
![]() |
718c5fb30e | ||
419160724c | |||
![]() |
c905dfe6d8 | ||
![]() |
70eb008412 | ||
![]() |
93feaadacf | ||
![]() |
0b7610607d | ||
![]() |
922fea5395 | ||
![]() |
1841b7c4e6 | ||
![]() |
ed966faaf4 | ||
![]() |
03efeed6ae | ||
![]() |
675c5ae480 | ||
![]() |
d575b22e2e | ||
![]() |
5e4ee1b60f | ||
![]() |
d8ce20c2f9 | ||
![]() |
b164dc1b55 | ||
![]() |
530eba3d00 | ||
![]() |
808066f2e2 | ||
![]() |
cb3e683c8e | ||
![]() |
6ff57775ed | ||
![]() |
6c07687a86 | ||
![]() |
497a8c19c5 | ||
![]() |
c13f7468ef | ||
![]() |
847872cdb6 | ||
![]() |
f0abe5d80d | ||
![]() |
465c5b9e77 | ||
fb78cdd304 | |||
![]() |
5b17fe2410 | ||
![]() |
5fd54dccd3 | ||
![]() |
1695afd915 | ||
![]() |
5ab549ae96 | ||
![]() |
35123e7c1e | ||
![]() |
1badade841 | ||
![]() |
b357625529 | ||
![]() |
9ccd39d724 | ||
![]() |
c876079e04 | ||
![]() |
162c1c59fe | ||
![]() |
06ef1c1182 | ||
![]() |
a9ba9789fd | ||
![]() |
fdd32cb954 | ||
![]() |
9fd7d86998 | ||
![]() |
5973903313 | ||
![]() |
75e4b19b88 | ||
![]() |
af7bdb55a1 | ||
![]() |
69af9aeff0 | ||
![]() |
88f4192d61 | ||
![]() |
96db8a326e | ||
![]() |
8c06767fdc | ||
![]() |
25877e369b | ||
![]() |
0271a475a2 | ||
![]() |
eef3ab5a15 | ||
![]() |
26f48c5820 | ||
![]() |
236ca36c79 | ||
![]() |
405b9ba7ea | ||
![]() |
ab9bd76d34 | ||
![]() |
677da7d80a | ||
![]() |
b3ad2fd715 | ||
![]() |
97ca6ce5b8 | ||
![]() |
e1abc4374e | ||
![]() |
9eeeb15c6c | ||
![]() |
7d4981639a | ||
![]() |
967538767a | ||
![]() |
4731eb9db8 | ||
![]() |
337f5ade59 | ||
![]() |
fe8bbcb11a | ||
![]() |
b1b6b0bf80 | ||
![]() |
1c28c138e0 | ||
![]() |
cb73111779 | ||
![]() |
6250678f61 | ||
![]() |
1821f01ef1 | ||
![]() |
350f084156 | ||
![]() |
a6c2babafb | ||
![]() |
f566aed1fe | ||
![]() |
10fb54224c | ||
![]() |
585b815472 | ||
![]() |
c37e2f4176 | ||
![]() |
626d59d3fc | ||
![]() |
ddd058a26f | ||
![]() |
32b8d03c5e | ||
![]() |
71f3e1b4f1 | ||
![]() |
aa6f53fa68 | ||
![]() |
1335e9f7f2 | ||
![]() |
c75599b6a0 | ||
![]() |
2efdfbd988 | ||
![]() |
700198d8bc | ||
![]() |
3efab5928e | ||
![]() |
93037b6866 | ||
![]() |
0f19e50c69 | ||
![]() |
66ea6ad3d4 | ||
![]() |
b6dc1f0e61 | ||
![]() |
0c1dc51db4 | ||
![]() |
74a710c5e8 | ||
![]() |
c4a773e72d | ||
![]() |
ad43fc37ab | ||
![]() |
8011c048a2 | ||
![]() |
c4ee9987bf | ||
![]() |
f70decddd1 | ||
![]() |
79a0aea065 | ||
![]() |
fe87e86721 | ||
![]() |
456055bcf0 | ||
![]() |
5ebe290424 | ||
![]() |
4532d68743 | ||
![]() |
1903e18397 | ||
![]() |
a705bf7053 | ||
![]() |
26e9bf5197 | ||
![]() |
64007b3634 | ||
![]() |
80f099220c | ||
![]() |
08615f2295 | ||
![]() |
5c02bb4f91 | ||
![]() |
ad6aee55f9 | ||
![]() |
aac4fd8e5e | ||
![]() |
c013ae7dab | ||
![]() |
57ab4b0849 | ||
![]() |
24a762504f | ||
![]() |
838bcc07a4 | ||
![]() |
0f0c996b54 | ||
![]() |
b1ad67a354 | ||
![]() |
c7a64c0c7c | ||
![]() |
5da87dbe0a | ||
![]() |
38e1a62f19 | ||
![]() |
5174a26719 | ||
![]() |
98886cb269 | ||
![]() |
e7a8b45c10 | ||
![]() |
2e0ec73d77 | ||
![]() |
b8b324cdf3 | ||
![]() |
12600d8404 | ||
![]() |
d9dfdb7e68 | ||
![]() |
07f8b2c47b | ||
![]() |
b9c4ae2fbb | ||
![]() |
2b2d78edc0 | ||
![]() |
2ad78c722a | ||
![]() |
99771babba | ||
![]() |
1b0ba48b9d | ||
![]() |
95cf32c70a | ||
![]() |
14469d1a2e | ||
![]() |
336f1c3b80 | ||
![]() |
055fd4379a | ||
![]() |
f6b5cfe1d4 | ||
![]() |
df744fe48b | ||
![]() |
9f10a4a0b7 | ||
![]() |
22ca74a1a3 | ||
![]() |
3093c9212c | ||
![]() |
6b8a4e6e63 | ||
![]() |
d256870953 | ||
![]() |
8fd8cceadb | ||
![]() |
402b532311 | ||
![]() |
8e85d35d8f | ||
![]() |
6b6794a367 | ||
![]() |
14a726b5af | ||
![]() |
3e937d234b | ||
![]() |
bf6a8a713b | ||
![]() |
b8c5e7aaba | ||
![]() |
068d610e3a | ||
![]() |
41177b91be | ||
![]() |
c2ebacdfb3 | ||
![]() |
5d4996c085 | ||
![]() |
dbafbbf66d | ||
![]() |
a46200ca17 | ||
![]() |
1fe64e69ca | ||
![]() |
a017ec9bfd | ||
![]() |
cb8385a092 | ||
![]() |
d4aa1f87e0 | ||
![]() |
41df06a48b | ||
![]() |
4188e636f3 | ||
![]() |
e2c0d59e3a | ||
![]() |
6a8c210a23 | ||
![]() |
a62cc3618c | ||
![]() |
a703afbef9 | ||
![]() |
5ce8445d5c | ||
![]() |
d112030a8e | ||
![]() |
98ca4080dd | ||
![]() |
3b9c63e781 | ||
![]() |
dd24ebf184 | ||
![]() |
7ef2be625f | ||
![]() |
e3957d2207 | ||
![]() |
8ce1307d51 | ||
![]() |
e1141dcd1c | ||
![]() |
4e33b5f351 | ||
![]() |
54dc184dd0 | ||
![]() |
1977ce3ea5 | ||
![]() |
c8c9d1729e | ||
![]() |
e6e4b81f3b | ||
![]() |
1c465f028e | ||
![]() |
12824c22c4 | ||
![]() |
64c5ad72a3 | ||
![]() |
080c2059ee | ||
![]() |
a288850010 | ||
![]() |
16811602d2 | ||
![]() |
6d94d719e3 | ||
![]() |
749d111e89 | ||
![]() |
365d8d34ce | ||
![]() |
ced25bbf28 | ||
![]() |
7e1ce5a203 | ||
![]() |
aeec754f7e | ||
![]() |
9a3fcb56a1 | ||
![]() |
aff956f4c8 | ||
![]() |
0f49fd6406 | ||
![]() |
1111770033 | ||
![]() |
6d313fc456 | ||
![]() |
0201acb5f7 | ||
![]() |
dfbefe96da | ||
![]() |
a71b35097f | ||
![]() |
acd0cf5245 | ||
![]() |
393b9b2f3d | ||
![]() |
f66bad1810 | ||
![]() |
386a81454b | ||
![]() |
deb2b7a36f | ||
![]() |
a3901c7b1c | ||
![]() |
631ee109f5 | ||
![]() |
25570e2135 | ||
![]() |
6d70044b15 | ||
![]() |
b064f94172 | ||
![]() |
721124e8c5 | ||
![]() |
85333e03a4 | ||
![]() |
bef928a20c | ||
![]() |
6967416207 | ||
![]() |
e968b3f26b | ||
![]() |
be6d8e23c8 | ||
![]() |
397effacd4 | ||
![]() |
a35738d99b | ||
![]() |
03aafdeae2 | ||
![]() |
f5529b6cce | ||
![]() |
0bd39c2826 | ||
![]() |
d335745010 | ||
![]() |
0d59843f40 | ||
![]() |
011d0a15a9 | ||
![]() |
c72b968f9b | ||
![]() |
4e7cef9402 | ||
![]() |
1868d5a202 | ||
![]() |
423fcfbda3 | ||
![]() |
be5d17457f | ||
![]() |
5033b0332e | ||
![]() |
a1cf4cc46d | ||
![]() |
838f494a85 | ||
![]() |
d55f5b1e39 | ||
![]() |
c98768dd52 | ||
![]() |
0058f81e76 | ||
![]() |
b79c384c3f | ||
![]() |
a11dae821e | ||
![]() |
b08deb518c | ||
![]() |
7ad0a8c400 | ||
![]() |
4bb33ec101 | ||
![]() |
856baec94d | ||
![]() |
09600db5f2 | ||
![]() |
810a1e252d | ||
![]() |
10b3fcdfcc | ||
![]() |
652e6eb9e8 | ||
![]() |
eea2b5f6fb | ||
![]() |
b4eb0df689 | ||
![]() |
2b26c6a5b6 | ||
![]() |
79e2134ca8 | ||
![]() |
6efa30152f | ||
![]() |
781fb476e7 | ||
![]() |
f2ed4eba3b | ||
![]() |
d2b1cd511d | ||
![]() |
1c9df39afe | ||
![]() |
f124f45604 | ||
![]() |
d3660892ae | ||
![]() |
78ea4e4e30 | ||
![]() |
5ab985a7cc | ||
![]() |
6bd1782c4b | ||
![]() |
2f5d402c61 | ||
![]() |
8fb2ea5845 | ||
![]() |
a78e21a167 | ||
![]() |
2e9b626523 | ||
![]() |
4487b8904c | ||
![]() |
1f01f915dc | ||
![]() |
4222c71a69 | ||
![]() |
1d463cde90 | ||
![]() |
834d1476ce | ||
![]() |
a769a8d1a4 | ||
![]() |
ece8c3821d | ||
![]() |
2bc0c4c41b | ||
![]() |
9e203898b6 | ||
![]() |
58ad8417e5 | ||
![]() |
9c00927089 | ||
![]() |
7c6964c6ef | ||
![]() |
31a5104205 | ||
![]() |
7bcf3858e8 | ||
![]() |
fb3eb0da8a | ||
![]() |
0e6d92dea7 | ||
![]() |
c00ffe7fc3 | ||
![]() |
02b3f8bf02 | ||
![]() |
fe7afb0141 | ||
![]() |
1ec810b981 | ||
![]() |
3a2187ebad | ||
![]() |
fef6a1b090 | ||
![]() |
2f5b39af54 | ||
![]() |
d3f942aebc | ||
![]() |
5df0db8845 | ||
![]() |
28887c1da2 | ||
![]() |
7053a225b8 | ||
![]() |
54422801c3 | ||
![]() |
56c464ba79 | ||
![]() |
2582f1e907 | ||
![]() |
13139966ea | ||
![]() |
011bb78f69 | ||
![]() |
2446ed20a6 | ||
![]() |
c376feb4d8 | ||
![]() |
fa0bcfa37a | ||
![]() |
6b70b11ffc | ||
![]() |
e474075778 | ||
![]() |
1205bb67f2 | ||
![]() |
10bcd20cd8 | ||
![]() |
3a2e6e018d | ||
![]() |
1b1680f7b0 | ||
![]() |
6cc52570ac | ||
![]() |
6425791ed9 | ||
![]() |
4c7a720447 | ||
![]() |
23ac9f3faf | ||
![]() |
0192009482 | ||
![]() |
2468c359a4 | ||
![]() |
ae1ad9fd2e | ||
![]() |
3596748059 | ||
![]() |
407806e84c | ||
![]() |
b83909da9c | ||
![]() |
dd490967d3 | ||
![]() |
391202877a | ||
![]() |
c48acd8fb7 | ||
![]() |
c8428258fe | ||
![]() |
fc4feaa78c | ||
![]() |
1855f3b43f | ||
![]() |
50b848027c | ||
![]() |
7b71af9e1d | ||
![]() |
4814f0c895 | ||
![]() |
192307ad52 | ||
![]() |
e28c57432d | ||
![]() |
911915266a | ||
![]() |
51c464f8d2 | ||
![]() |
30069564a7 | ||
![]() |
460553d8ae | ||
![]() |
cc2de42415 | ||
![]() |
b31aa57d81 | ||
![]() |
c9b9bb6cf8 | ||
![]() |
89e74b2011 | ||
![]() |
434d882314 | ||
![]() |
617d9d90ed | ||
![]() |
f456e0a8dd | ||
![]() |
2716255e22 | ||
![]() |
4d907213c3 | ||
![]() |
ee704f53c7 | ||
![]() |
74237365f1 | ||
![]() |
8aeab29303 | ||
![]() |
ff945e7b8a | ||
![]() |
9707704f57 | ||
![]() |
7491d19309 | ||
![]() |
fb74e5e731 | ||
![]() |
627c8a6eca | ||
![]() |
8094758a82 | ||
![]() |
f143b6ee9f | ||
![]() |
77cef909fb | ||
![]() |
063d3949cf | ||
![]() |
c1b87eba03 | ||
![]() |
bae52964cd | ||
![]() |
06021c1b79 | ||
![]() |
437932cd57 | ||
![]() |
6cc16aa72b | ||
![]() |
b48950ff3a | ||
![]() |
c397c77809 | ||
![]() |
e8f31bc2bd | ||
![]() |
4e7149c945 | ||
![]() |
064379b9e0 | ||
![]() |
48b18da953 | ||
![]() |
904ca5d529 | ||
![]() |
05986d017d | ||
![]() |
aabe56e8b3 | ||
![]() |
fc07ec3db3 | ||
![]() |
2e8454907d | ||
![]() |
72ed659833 | ||
![]() |
94ef9692f2 | ||
![]() |
798750bf95 | ||
![]() |
e8d9bd551f | ||
![]() |
d08ea2ee9b | ||
![]() |
52dcb2d290 | ||
![]() |
4cc883f174 | ||
![]() |
5a3c5bd761 | ||
![]() |
66830b7cb3 | ||
![]() |
b742865e8a | ||
![]() |
fd314a3288 | ||
![]() |
87a52d9592 | ||
![]() |
527b321ee0 | ||
![]() |
5122a33f30 | ||
![]() |
d89fbeea62 | ||
![]() |
e4f7700044 | ||
![]() |
a1d0c3ebf4 | ||
![]() |
2088c1ce00 | ||
![]() |
ec164daf0e | ||
![]() |
94c38cefac | ||
![]() |
2a5d218a94 | ||
![]() |
bcf10a0b8e | ||
![]() |
546137c0f5 | ||
![]() |
92bc691e1f | ||
![]() |
d834d0fdd9 | ||
![]() |
74b88d07a0 | ||
![]() |
57f5d3310a | ||
![]() |
a5495b1d92 | ||
![]() |
fb623be741 | ||
![]() |
30e69e13fd | ||
![]() |
17346c255e | ||
![]() |
6fc83b8245 | ||
![]() |
b9fb6cacbe | ||
![]() |
29bd7cbe6e | ||
![]() |
a51fc9c612 | ||
![]() |
77ad9deeba | ||
![]() |
ffa6c45b62 | ||
![]() |
957874ce2b | ||
![]() |
330d92116c | ||
![]() |
899adfc1b0 | ||
![]() |
23535a6ad5 | ||
![]() |
e8b7f00370 | ||
![]() |
3f2c5070ee | ||
![]() |
a2352525c5 | ||
![]() |
50384a526b | ||
![]() |
9ade3365ff | ||
![]() |
a6932cd5be | ||
![]() |
81d5c06ca3 | ||
![]() |
95d2adb8b8 | ||
![]() |
c91355a1e4 | ||
![]() |
a9b16ca2c0 | ||
![]() |
0fc04c3ff6 | ||
![]() |
6473ad02a0 | ||
![]() |
8107f669cd | ||
![]() |
2f55d92d83 | ||
![]() |
722ec7f8fb | ||
![]() |
63442a93e7 | ||
![]() |
1ce594fa64 | ||
![]() |
197b8d7850 | ||
![]() |
d51aec080b | ||
![]() |
0239f78889 | ||
![]() |
651cefca30 | ||
![]() |
f4be162aea | ||
![]() |
85636d91dc | ||
![]() |
7b643430d1 | ||
![]() |
499033947c | ||
![]() |
7489abc56d | ||
![]() |
c64810509f | ||
![]() |
32ccaabaa7 | ||
![]() |
a8f0145333 | ||
![]() |
6e6fc8d998 | ||
![]() |
646e34a5c7 | ||
![]() |
8d43329b6e | ||
![]() |
38aca96472 | ||
![]() |
4cd06076c7 | ||
![]() |
b485a1406e | ||
![]() |
cc0aa08d91 | ||
![]() |
4dd958a538 | ||
![]() |
83d2d1da4f | ||
![]() |
24e69bec2b | ||
![]() |
ca337dcca2 | ||
![]() |
2944c48744 | ||
![]() |
278e7d1a4d | ||
![]() |
22e090a0f4 | ||
![]() |
ac918eff16 | ||
![]() |
e8aaeac7dc | ||
![]() |
1769c1006c | ||
![]() |
920a6fe74c | ||
![]() |
bc41ce46a7 | ||
![]() |
8c2b5671f1 | ||
![]() |
d0d53d7d20 | ||
![]() |
902272f08c | ||
![]() |
a8b8b56a7e | ||
![]() |
d628db1dcc | ||
![]() |
26ed6670d5 | ||
![]() |
0aa4ea7bc8 | ||
![]() |
34fdd71f37 | ||
![]() |
4a134783b4 | ||
![]() |
bf5ce1f6a5 | ||
![]() |
00193891fa | ||
![]() |
4640c347c7 | ||
![]() |
260bb47434 | ||
![]() |
9d7872e64e | ||
![]() |
31bdc23b3c | ||
![]() |
f803c0aa72 | ||
![]() |
531b0e3537 | ||
![]() |
cbf6c30be6 | ||
![]() |
a6f62dd837 | ||
![]() |
18d52c2459 | ||
![]() |
ee55cfd2dd | ||
![]() |
3ab5fc1120 | ||
![]() |
f7f60f5079 | ||
![]() |
b7dcff79ae | ||
![]() |
c857b9d6dd | ||
![]() |
8f8c05e451 | ||
![]() |
af3ebe60f4 | ||
![]() |
be64d24c00 | ||
![]() |
8f04575efd | ||
![]() |
4e1b8f3ec4 | ||
![]() |
c8ca6671ab | ||
![]() |
88f0d2e532 | ||
![]() |
76a4499c9f | ||
![]() |
e1bd790294 | ||
![]() |
6d193ca1f8 | ||
![]() |
d932172e70 | ||
![]() |
9bbf5824fe | ||
![]() |
d042ee3058 | ||
![]() |
fe598b14a1 | ||
![]() |
24df3be8f1 | ||
![]() |
2cce67bc27 | ||
![]() |
ae6003d000 | ||
![]() |
fe8b03dc1c | ||
![]() |
977b27de90 | ||
![]() |
570cf14fe8 | ||
![]() |
7c369900ce | ||
![]() |
8464711b89 | ||
![]() |
0f07e4bdc3 | ||
![]() |
de7736ec76 | ||
![]() |
4568db387a | ||
![]() |
3661cfd4c9 | ||
![]() |
f9ac515d3d | ||
![]() |
b7f1394357 | ||
![]() |
25872ccf84 | ||
![]() |
0efd81142d | ||
![]() |
1699e8521d | ||
![]() |
f4068301ff | ||
![]() |
2a6b6f89f4 | ||
![]() |
ca459bef0d | ||
![]() |
9980ef7db9 | ||
![]() |
d6b2cdb66a | ||
![]() |
832c1c0be3 | ||
![]() |
bf0fba9c58 | ||
![]() |
ae5678128b | ||
![]() |
6395a4cefc | ||
![]() |
1a3491a50f | ||
![]() |
0f8b67e6ce | ||
![]() |
1e17db6d21 | ||
![]() |
03bd4bbeed | ||
![]() |
ff907893d0 | ||
![]() |
d104eef064 | ||
![]() |
f0505b8919 | ||
![]() |
db12fbe725 | ||
![]() |
f88580eb88 | ||
![]() |
dbfce696b9 | ||
![]() |
bca5af9c23 | ||
![]() |
381abf7c40 | ||
![]() |
1a2112daf9 | ||
![]() |
e30e194b91 | ||
![]() |
edf9962abf | ||
![]() |
fd896c4af6 | ||
![]() |
0ae57af270 | ||
![]() |
123c8ded11 | ||
![]() |
0510fe8530 | ||
![]() |
3ebaf38486 | ||
![]() |
84fc962bb0 | ||
![]() |
814bc20cf7 | ||
![]() |
6b76270d51 | ||
![]() |
35142e5204 | ||
![]() |
d313845c84 | ||
![]() |
21162ba34e | ||
![]() |
e162dc44d1 | ||
![]() |
153a36d4e9 | ||
![]() |
9271ca082c | ||
![]() |
0389ea803d | ||
![]() |
0fea44f735 | ||
![]() |
c01cad1c9d | ||
![]() |
b383706bfb | ||
![]() |
a78f66fd36 | ||
![]() |
bef57f75c0 | ||
![]() |
48ec19d9bf | ||
![]() |
f4198a0409 | ||
![]() |
9454ebcb35 | ||
![]() |
441721b63f | ||
![]() |
0eda85c95e | ||
![]() |
01e4c80adb | ||
![]() |
0e8ec4d445 | ||
![]() |
ae18ccb8cd | ||
![]() |
ad63afc242 | ||
![]() |
f48f8a9643 | ||
![]() |
eae65b6512 | ||
![]() |
02ff5cb24b | ||
![]() |
8210b122bc | ||
![]() |
a0d3cf561b | ||
![]() |
d7c1c77861 | ||
![]() |
f385c3fa21 | ||
![]() |
e07a077da9 | ||
![]() |
7768c9147d | ||
![]() |
c5c9877b40 | ||
![]() |
3ddd4a1a58 | ||
![]() |
3c85215011 | ||
![]() |
2369814092 | ||
![]() |
6970a764c4 | ||
![]() |
4c7c3dba00 | ||
![]() |
aebad12bbe | ||
![]() |
8593e7a6ac | ||
![]() |
119975c313 | ||
![]() |
27c3a95ec6 | ||
![]() |
d5eaf85473 | ||
![]() |
7f4c967a20 | ||
![]() |
8066ac2819 | ||
![]() |
66172c843d | ||
![]() |
88b3373e5c | ||
![]() |
320d91d639 | ||
![]() |
24d118e225 | ||
![]() |
c192f319d1 | ||
![]() |
097dfa06a6 | ||
![]() |
90ca544d0a | ||
![]() |
2bc9640b88 | ||
![]() |
40ffddf5ef | ||
![]() |
bd28c9da23 | ||
![]() |
11ef024779 | ||
![]() |
40d9a201ea | ||
![]() |
6e2ac21fab | ||
![]() |
7858cf57c6 | ||
![]() |
91c8e7ebda | ||
![]() |
6332ee6955 | ||
![]() |
3c3014fdc6 | ||
![]() |
d97e4c44ee | ||
![]() |
1b88c514da | ||
![]() |
96c1094a61 | ||
![]() |
b3551b4ee5 | ||
![]() |
4232d3d8a2 | ||
![]() |
73b64c19ff | ||
![]() |
15ccdb2055 | ||
![]() |
418067b077 | ||
![]() |
88b29d1a14 | ||
![]() |
b831aa8eca | ||
![]() |
4540d216cb | ||
![]() |
b345ebb366 | ||
![]() |
7a8ed2db32 | ||
![]() |
9f5ed99b79 | ||
![]() |
1bd6defc84 | ||
![]() |
181d76ae7b | ||
![]() |
31d37c218a | ||
![]() |
72be9845fa | ||
![]() |
a6a4e50479 | ||
![]() |
1f88ead837 | ||
![]() |
8303cafbc9 | ||
![]() |
00901f60dc | ||
![]() |
21aaf06a63 | ||
![]() |
d81774c9a7 | ||
![]() |
2cb6fb041e | ||
![]() |
b7d5ee9a75 | ||
![]() |
24dd84b31c | ||
![]() |
0e96819e86 | ||
![]() |
897d393342 | ||
![]() |
fc7efd5484 | ||
![]() |
834695420d | ||
![]() |
c4025c0cc1 | ||
![]() |
c80ef82f2a | ||
![]() |
b94b4eea04 | ||
![]() |
116c813988 | ||
![]() |
2c9aa8e30e | ||
![]() |
376c84c46e | ||
![]() |
a3039e05d4 | ||
![]() |
bed078213b | ||
![]() |
b413c8e715 | ||
![]() |
299890c737 | ||
![]() |
e977bee8cc | ||
![]() |
5b636b2b5e | ||
![]() |
6db4874acd | ||
![]() |
e788ea6d7f | ||
![]() |
c5f8eaf1cf | ||
![]() |
c9568b4301 | ||
![]() |
e1c712abb7 | ||
![]() |
81e8a28cc3 | ||
![]() |
e45a2b4517 | ||
![]() |
dd69d0fad2 | ||
![]() |
4f680c881c | ||
![]() |
1932d7102b | ||
![]() |
58ba9ed4be | ||
![]() |
8fe6c8bde7 | ||
![]() |
ec4684c336 | ||
![]() |
ec05ca11ba | ||
![]() |
164e3cedd6 | ||
![]() |
0d4d610b3a | ||
![]() |
7ebd604390 | ||
![]() |
7bc50df300 | ||
![]() |
3f3eb0f878 | ||
![]() |
6e854eb889 | ||
![]() |
d009ece391 | ||
![]() |
ffa7909f9f | ||
![]() |
266d164a34 | ||
![]() |
aaf957a3c2 | ||
![]() |
dd35c4907e | ||
![]() |
993986c1cf | ||
![]() |
8d47d9c015 | ||
![]() |
b4764a230a | ||
![]() |
2c703a7468 | ||
![]() |
87083e03a8 | ||
![]() |
1d22fbfae0 | ||
![]() |
cfee63d716 | ||
![]() |
d49052660f | ||
![]() |
f5299d4b75 | ||
![]() |
35b366640f | ||
![]() |
1dc3809a34 | ||
![]() |
82c883acdb | ||
![]() |
8333751482 | ||
![]() |
933070fc32 | ||
![]() |
ec80a20146 | ||
![]() |
cd46497829 | ||
![]() |
cb51a78509 | ||
![]() |
6a52d0c83a | ||
![]() |
138dc7082e | ||
![]() |
944c66c366 | ||
![]() |
0accfbd65f | ||
![]() |
86498ba317 | ||
![]() |
6016aac675 | ||
![]() |
80f8c88532 | ||
![]() |
e112d87e28 | ||
![]() |
718d73f7cc | ||
![]() |
d01e804b24 | ||
![]() |
72ca9a2297 | ||
![]() |
007a1694d7 | ||
![]() |
74dd307318 | ||
![]() |
4bf5f6dcc1 | ||
![]() |
cbf450425e | ||
![]() |
9b56fbc3ed | ||
![]() |
bdcdfda8c4 | ||
![]() |
53b2108252 | ||
![]() |
ab87a86e9d | ||
![]() |
17c248eda0 | ||
![]() |
bee82a1941 | ||
![]() |
772c574149 | ||
![]() |
d577411e72 | ||
![]() |
f901d9d3b0 | ||
![]() |
da75da6791 | ||
![]() |
052fe75183 | ||
![]() |
d50daad918 | ||
![]() |
2834e25945 | ||
![]() |
5c7190710b | ||
![]() |
dd76de2066 | ||
![]() |
1a7e3ed658 | ||
![]() |
956339115c | ||
![]() |
484a1f264b | ||
![]() |
0f739ffb50 | ||
![]() |
e79821385d | ||
![]() |
e742d089d6 | ||
![]() |
44336460c5 | ||
![]() |
46f0309171 | ||
![]() |
1ed38ec92b | ||
![]() |
04dca831e3 | ||
![]() |
308e8bfbc3 | ||
![]() |
62ecddb719 | ||
![]() |
a852b0efbc | ||
![]() |
3dd6a55727 | ||
![]() |
3993e3b9c0 | ||
![]() |
42b8b5814f | ||
![]() |
60de6f57fd | ||
![]() |
11fcb17c29 | ||
![]() |
98246e23dd | ||
![]() |
61e2e81719 | ||
![]() |
62e600443e | ||
![]() |
5bde4d75ce | ||
![]() |
9c54fbe733 | ||
![]() |
9cc206d548 | ||
![]() |
a97cf8a3ec | ||
![]() |
f0ea5f3968 | ||
![]() |
8d44afc8e6 | ||
![]() |
62ed3bd7f2 | ||
![]() |
89889924fc | ||
![]() |
dda592cb39 | ||
![]() |
bb44044956 | ||
![]() |
d95810f6e5 | ||
![]() |
26c275b0f5 | ||
![]() |
341dc6c58b | ||
![]() |
a2364b7512 | ||
![]() |
350e1c08d0 | ||
![]() |
724dc42a59 | ||
![]() |
79a62e9d37 | ||
![]() |
f73ba63133 | ||
![]() |
d2c849fceb | ||
![]() |
c4e9d5d14f | ||
![]() |
76a7d1ee69 | ||
![]() |
a8d225f812 | ||
![]() |
bdfb8c7ee4 | ||
![]() |
9ab9d88eb5 | ||
![]() |
75ff5feccd | ||
![]() |
a4c7b38b7a | ||
![]() |
ec86608aff | ||
![]() |
4010854075 | ||
![]() |
fe1ae29fa3 | ||
![]() |
8c7d0b06d1 | ||
![]() |
af497e6906 | ||
![]() |
badb61aaea | ||
![]() |
5884919350 | ||
![]() |
ce77148a38 | ||
![]() |
0ee6ce0a55 | ||
![]() |
39f0e14fee | ||
![]() |
dc09907f93 | ||
![]() |
dcec97b9b4 | ||
![]() |
0eb8615db4 | ||
![]() |
e674d8ac3a | ||
![]() |
141af4f097 | ||
![]() |
35ef9c7e68 | ||
![]() |
67e8b3e988 | ||
![]() |
896508d1fd | ||
![]() |
908c978242 | ||
![]() |
6419279514 | ||
![]() |
0ecfdc5cf3 | ||
![]() |
a357f989ad | ||
![]() |
831e335b5d | ||
![]() |
5e4afd4a7b | ||
![]() |
337c526e23 | ||
![]() |
5f25db231f | ||
![]() |
fb46993a05 | ||
![]() |
ef2738838f | ||
![]() |
b9669e452c | ||
![]() |
6196417436 | ||
![]() |
5d797f397d | ||
![]() |
3be6acf5b5 | ||
![]() |
b5619adf45 | ||
![]() |
62540fe1b2 | ||
![]() |
fd85fdf0ac | ||
![]() |
e09208c757 | ||
![]() |
753f2110c6 | ||
![]() |
7917e8417b | ||
![]() |
a0447b4840 | ||
![]() |
2e561a2af4 | ||
![]() |
a330a3e472 | ||
![]() |
229d64fcf8 | ||
![]() |
6df695f650 | ||
![]() |
d77edaa056 | ||
![]() |
4f78246c7f | ||
![]() |
8d3ccdaf9c | ||
![]() |
17e1061866 | ||
![]() |
30d4b06393 | ||
![]() |
893bf452fb | ||
![]() |
bb67584cba | ||
![]() |
e28ec93c80 | ||
![]() |
ca37019427 | ||
![]() |
3d452015ee | ||
![]() |
57a3d82649 | ||
![]() |
2845beaf8a | ||
![]() |
1e58ead126 | ||
![]() |
fafa7572d0 | ||
![]() |
4ddeb72bfe | ||
![]() |
28ba36dddb | ||
![]() |
b6c501311c | ||
![]() |
01d4ebe254 | ||
![]() |
34dd332f0b | ||
![]() |
596d0c7115 | ||
![]() |
672601b028 | ||
![]() |
e5045f28ab | ||
![]() |
12ba067db3 | ||
![]() |
5413606425 | ||
![]() |
72ae18557b | ||
![]() |
99bd119ed6 | ||
![]() |
faebf66065 | ||
![]() |
dc030d6895 | ||
![]() |
7f626005a5 | ||
![]() |
28d0741e14 | ||
![]() |
c0e17a6c61 | ||
![]() |
b5046b089e | ||
![]() |
1075112bfa | ||
![]() |
37fddacf8e | ||
![]() |
2091a59897 | ||
![]() |
d2a427b38f | ||
![]() |
c069719c1c | ||
![]() |
654a443d4b | ||
![]() |
a6ec2d5ed7 | ||
![]() |
02ac083175 | ||
![]() |
561fce5d40 | ||
![]() |
a88263874a | ||
![]() |
943ddeb5ab | ||
![]() |
216a3fedd0 | ||
![]() |
7b8c335a5b | ||
![]() |
8e8efe4862 | ||
![]() |
e64dc3cc1c | ||
![]() |
c833691cf6 | ||
![]() |
ba5e2e8613 | ||
![]() |
b154e31a28 | ||
![]() |
322b888dc5 | ||
![]() |
42eefb763b | ||
![]() |
27be351636 | ||
![]() |
8b20287f93 | ||
![]() |
50a7bdb34d | ||
![]() |
dcac3be0da | ||
![]() |
ec121fb327 | ||
![]() |
ccb260b6a7 | ||
![]() |
c994511ea5 | ||
![]() |
fb5177633a | ||
![]() |
b15fde59d1 | ||
![]() |
1958974c73 | ||
![]() |
00b1b0fea4 | ||
![]() |
743b978e6f | ||
![]() |
cbabd8b76e | ||
![]() |
1fd877c597 | ||
![]() |
4f64ed07b1 | ||
![]() |
4e537b0466 | ||
![]() |
2b1198dfd9 | ||
![]() |
8db23fba43 | ||
![]() |
0451487549 | ||
![]() |
a16faa97ec | ||
![]() |
dbf626a53e | ||
![]() |
27cc767ec4 | ||
![]() |
8d2d08a12b | ||
![]() |
7c91d97440 | ||
![]() |
0eb7b53801 | ||
![]() |
510e31584e | ||
![]() |
0efedd7fa5 | ||
![]() |
01a32705e4 | ||
![]() |
05c1b82bcf | ||
![]() |
cf04796010 | ||
![]() |
fd7e66e144 | ||
![]() |
ceaf290f5e | ||
![]() |
5df9ae57ce | ||
![]() |
04ed7d413f | ||
![]() |
f543835921 | ||
![]() |
8ae35160e7 | ||
![]() |
75516a7217 | ||
![]() |
8783fc89e6 | ||
![]() |
fd0819ca30 | ||
![]() |
650b925251 | ||
![]() |
fd3e32eaa8 | ||
![]() |
a8bebb88b1 | ||
![]() |
3294a74979 | ||
![]() |
db95804eeb | ||
![]() |
15bfc00ddb | ||
![]() |
18580e431f | ||
![]() |
98624d8701 | ||
![]() |
3c03a15831 | ||
![]() |
9710a7bfc1 | ||
![]() |
34426ae32d | ||
![]() |
c2f98ee317 | ||
![]() |
4df2abba82 | ||
![]() |
c3cd207b2b | ||
![]() |
4f6053f767 | ||
![]() |
5578fbdd4f | ||
![]() |
84a6c40e13 | ||
![]() |
3e91004660 | ||
![]() |
ac1d334bf1 | ||
![]() |
368c840177 | ||
![]() |
c3a2fd736c | ||
![]() |
741987f40b | ||
![]() |
375b025e22 | ||
![]() |
7324ee5e8d | ||
![]() |
54c2299654 | ||
![]() |
b2cfb6d6ed | ||
![]() |
e8a11b8f79 | ||
![]() |
f16890f9a7 | ||
![]() |
e881bec45d | ||
![]() |
18eea7ca2d | ||
![]() |
316410a561 | ||
![]() |
76a1a190f6 | ||
![]() |
c243ae9cef | ||
![]() |
2722ee63cc | ||
![]() |
22e7fa1cf3 | ||
![]() |
101dc355ba | ||
![]() |
f5f3d0b827 | ||
![]() |
53cb5d1fe9 | ||
![]() |
0978ca616f | ||
![]() |
bbf42c0a28 | ||
![]() |
7df04c6e2e | ||
![]() |
d3386c8097 | ||
![]() |
309197781e | ||
![]() |
5a3ee970a0 | ||
![]() |
7cbe63e484 | ||
![]() |
5342b02091 | ||
![]() |
7eeca57135 | ||
![]() |
2162985e4a | ||
![]() |
5d53f4c13a | ||
![]() |
7de2c2692d | ||
![]() |
1b9df35a1d | ||
![]() |
d5d39797bb | ||
![]() |
829a228d79 | ||
![]() |
4c589c9610 | ||
![]() |
b9fc58ec45 | ||
![]() |
193a84dafd | ||
![]() |
3880a33208 | ||
![]() |
2edf897e39 | ||
![]() |
27d1170c75 | ||
![]() |
11c850a41e | ||
![]() |
ff4ee06a1f | ||
![]() |
0549f32d6e | ||
![]() |
c5ab3490b3 | ||
![]() |
50ba1a1c4e | ||
![]() |
ee45d2fb38 | ||
![]() |
a94822b79a | ||
![]() |
b5aba454ae | ||
![]() |
a49631e986 | ||
![]() |
bb31b5f2d3 | ||
![]() |
8ad08d466e | ||
![]() |
ab31183a93 | ||
![]() |
3257cc82dc | ||
![]() |
ef73733596 | ||
![]() |
4b45d4cf09 | ||
![]() |
e0b3e1db24 | ||
![]() |
e0b51d653a | ||
![]() |
c17ebbf4d7 | ||
![]() |
44a26d59a4 | ||
![]() |
6b8f81f7eb | ||
![]() |
9a4b9419eb | ||
![]() |
89548d132a | ||
![]() |
45dbb2cd3b | ||
![]() |
a95203e2c9 | ||
![]() |
a79fc4980e | ||
![]() |
1240781503 | ||
![]() |
0875c61bc9 | ||
![]() |
da60a1c393 | ||
![]() |
785f29abf8 | ||
![]() |
2a3e96b891 | ||
![]() |
f1f6dd4c60 | ||
![]() |
b8a8403dc3 | ||
![]() |
ab5eb9c401 | ||
![]() |
74b7fc9f77 | ||
![]() |
ca87316691 | ||
![]() |
cae61587da | ||
![]() |
0238d0bf2e | ||
![]() |
5be575a078 | ||
![]() |
36fbbbf4ae | ||
![]() |
a87ab3c558 | ||
![]() |
75e22a2080 | ||
![]() |
6c89799bfb | ||
![]() |
e0d9a8d0db | ||
![]() |
3208f6a1bd | ||
![]() |
d525be33cf | ||
![]() |
64136f0b93 | ||
![]() |
238203cf35 | ||
![]() |
6b354467ab | ||
![]() |
10444e5995 | ||
![]() |
42f6ca11db | ||
![]() |
eed094103d | ||
![]() |
5051bcd607 | ||
![]() |
74e2bb2d87 | ||
![]() |
a4a6331935 | ||
![]() |
3939144128 | ||
![]() |
7791c0b7be | ||
![]() |
2cfbff5cf6 | ||
![]() |
b734153253 | ||
![]() |
3df637b265 | ||
![]() |
ea220d2514 | ||
![]() |
8bb75fc376 | ||
![]() |
d461fe555d | ||
![]() |
0bd25f2506 | ||
![]() |
2355435275 | ||
![]() |
cc04ef5869 | ||
![]() |
521d8a605d | ||
![]() |
3bff1b1ba5 | ||
![]() |
15192652f0 | ||
![]() |
85873202ca | ||
![]() |
706bde03f9 | ||
![]() |
f855f5f429 | ||
![]() |
cce557e82a | ||
![]() |
7f7d8bd771 | ||
![]() |
9a95093b44 | ||
![]() |
ddf7bbdd31 | ||
![]() |
994a811efa | ||
![]() |
06efa46f32 | ||
![]() |
66778a060c | ||
![]() |
c9697d6cc8 | ||
![]() |
b801daa240 | ||
![]() |
d2f42d67c7 | ||
![]() |
cb9d750db9 | ||
![]() |
0b966c4497 | ||
![]() |
0774a822aa | ||
![]() |
7e0cdce7ea | ||
![]() |
e2ed963af5 | ||
![]() |
4781d29d67 | ||
![]() |
f5b6ca50f4 | ||
![]() |
05852b07c6 | ||
![]() |
689aa4cf95 | ||
![]() |
56aad9200a | ||
![]() |
ac69c0d9c6 | ||
![]() |
860592291f | ||
![]() |
113597333c | ||
![]() |
a83d71aa39 | ||
![]() |
93299ae843 | ||
![]() |
4300cf5330 | ||
![]() |
92d08377ce | ||
![]() |
19a6284023 | ||
![]() |
45908f2a84 | ||
![]() |
8648220e21 | ||
![]() |
68e285b514 | ||
![]() |
5153a42b69 | ||
![]() |
42feed710c | ||
![]() |
9d049b06c3 | ||
![]() |
1105529e91 | ||
![]() |
49c1f11503 | ||
![]() |
f54fd84de3 | ||
![]() |
da3d83ecc6 | ||
![]() |
4af8e574c4 | ||
![]() |
bdcb5c4f33 | ||
![]() |
013f7a42c2 | ||
![]() |
d03398f3e8 | ||
![]() |
7a26307a2b | ||
![]() |
fa6a0369b8 | ||
![]() |
ad8cb0ba09 | ||
![]() |
8125ce5072 | ||
![]() |
6c0cc7285f | ||
![]() |
d3424021c8 | ||
![]() |
623aa40acd | ||
![]() |
c131cb338e | ||
![]() |
14d242a233 | ||
![]() |
a131b7d29a | ||
![]() |
85a1fbe89e | ||
![]() |
142550a1f8 | ||
![]() |
e3d3b73903 | ||
![]() |
45f18ff91c | ||
![]() |
2103163207 | ||
![]() |
19dd49670c | ||
![]() |
e738a1a821 | ||
![]() |
6e0f301fb8 | ||
![]() |
c76b8db293 | ||
![]() |
9fa4ca8fb3 | ||
![]() |
871b60fe8d | ||
![]() |
6715a5b61f | ||
![]() |
d7d91f1cc5 | ||
![]() |
9f00dbd6f4 | ||
![]() |
f95cf3d671 | ||
![]() |
7fbc17624f | ||
![]() |
b9c2ea37cb | ||
![]() |
ca0db15e01 | ||
![]() |
c32c62eacc | ||
![]() |
43a79dbad4 | ||
![]() |
2829a13187 | ||
![]() |
efc8c9207d | ||
![]() |
183ed10592 | ||
![]() |
926b47a31e | ||
![]() |
d272c919ea | ||
![]() |
f6e7d04fd5 | ||
![]() |
ccdff4f087 | ||
![]() |
ff14303e88 | ||
![]() |
48a592340b | ||
![]() |
da8f5f3231 | ||
![]() |
f8fa8b73fa | ||
![]() |
aee126b625 | ||
![]() |
396ac86939 | ||
![]() |
81816f903f | ||
![]() |
06a85b784b | ||
![]() |
7f1e3bb155 | ||
![]() |
241f554133 | ||
![]() |
9498d0779c | ||
![]() |
b12fd5100f | ||
![]() |
92f622430d | ||
![]() |
ef518f5b23 | ||
![]() |
7acb17ebdb | ||
![]() |
479a7dbbaf | ||
![]() |
4fd1a25557 | ||
![]() |
f32d42e625 | ||
![]() |
362b9a5c3a | ||
![]() |
e42b4d0ea3 | ||
![]() |
43767b8500 | ||
![]() |
d05098c870 | ||
![]() |
505f485568 | ||
![]() |
86f512fb91 | ||
![]() |
12903066b9 | ||
![]() |
118d0433cb | ||
![]() |
eb781c3679 | ||
![]() |
3c6bffba03 | ||
![]() |
89623b04d6 | ||
![]() |
444a96132c | ||
![]() |
c008553127 | ||
![]() |
162d7b021f | ||
![]() |
c82364c1dd | ||
![]() |
977402c6b0 | ||
![]() |
b14e59ab5b | ||
![]() |
47dcefcfbf | ||
![]() |
2b299cb422 | ||
![]() |
d0ccbb4620 | ||
![]() |
187b207271 | ||
![]() |
a3e22c844c | ||
![]() |
f8384b2732 | ||
![]() |
2dae43258c | ||
![]() |
48033ecb85 | ||
![]() |
ad8df027ac | ||
![]() |
91f580771d | ||
![]() |
9c6f0981f5 | ||
![]() |
2212569688 | ||
![]() |
6711f1dbab | ||
![]() |
0b7a883efb | ||
![]() |
8ae84c62c0 | ||
![]() |
0d168c8115 | ||
c7b51b7fa5 | |||
![]() |
86bf723791 | ||
![]() |
71f2e9de4a | ||
![]() |
33d3f270a3 | ||
![]() |
da94edd386 | ||
![]() |
90dfaefd11 | ||
![]() |
8bc616cc55 | ||
![]() |
a9e79d62c5 | ||
![]() |
1998221a0b | ||
![]() |
a9b1625749 | ||
![]() |
b411836570 | ||
![]() |
df7e0221a8 | ||
![]() |
8ff8f2b685 | ||
![]() |
65dea7e3f7 | ||
![]() |
1942f86633 | ||
![]() |
ee4ce5033a | ||
![]() |
040fe806c8 | ||
![]() |
97f5c9225e | ||
![]() |
09b86c15f9 | ||
![]() |
8f34285d8c | ||
![]() |
d3c3b71e3e | ||
![]() |
aa6f49c9b1 | ||
![]() |
c011628420 | ||
![]() |
1c9fa9d662 | ||
![]() |
7b9bc64364 | ||
![]() |
729062bfdd | ||
![]() |
bc6c726a45 | ||
![]() |
dfc3df713e | ||
![]() |
42eca1d5f2 | ||
![]() |
66245e2730 | ||
![]() |
d44b82c1d1 | ||
![]() |
5440e48fa3 | ||
![]() |
1c513cf8aa | ||
![]() |
a17c4b8d43 | ||
![]() |
15eb4ac278 | ||
![]() |
0d9b81eab3 | ||
![]() |
f02e1a20c7 | ||
![]() |
a11991dad7 | ||
![]() |
1238828bfd | ||
![]() |
ba409cb24c | ||
![]() |
d597670275 | ||
![]() |
d8540e95f8 | ||
![]() |
d35ebf00dd | ||
![]() |
2b32cb26b1 | ||
![]() |
ca95fcb658 | ||
![]() |
cc18bbd168 | ||
![]() |
8c8ea800cb | ||
![]() |
0746dcc686 | ||
![]() |
930650be9d | ||
![]() |
4e3a9ffa40 | ||
![]() |
3bf68a2bb8 | ||
![]() |
a80f6feab0 | ||
![]() |
3cf8ae52ed | ||
![]() |
62632a4514 | ||
![]() |
249bd3778a | ||
![]() |
ab9e5d7a4a | ||
![]() |
083b7dc952 | ||
![]() |
1791692d92 | ||
![]() |
ba23c9ab5e | ||
![]() |
f96ab37bcb | ||
![]() |
0da34bbb34 | ||
![]() |
51e7c745ea | ||
![]() |
8347251572 | ||
![]() |
ce8512f4e0 | ||
![]() |
a724a19d00 | ||
![]() |
7eae7a98e8 | ||
![]() |
fe9566eebd | ||
![]() |
b69756730f | ||
![]() |
6cd1a60b53 | ||
![]() |
9d935e47b5 | ||
![]() |
a7d5372d06 | ||
![]() |
a575942c81 | ||
![]() |
3cf6c53a8e | ||
![]() |
91d86680de | ||
![]() |
d1d082fb99 | ||
![]() |
2c634d1bf0 | ||
![]() |
02a6fe4dc9 | ||
![]() |
223d681526 | ||
![]() |
f42ef1c2fc | ||
![]() |
f4817b2111 | ||
![]() |
6f5def0abf | ||
![]() |
f0fcd7f133 | ||
![]() |
6115adb72e | ||
![]() |
bfd0b5fd91 | ||
![]() |
6c0a52155b | ||
![]() |
c7ebce39bf | ||
![]() |
a0dc7a792f | ||
![]() |
fdb09a8f1f | ||
![]() |
4ac2aa2339 | ||
![]() |
ebbc20692a | ||
![]() |
5c82d112c9 | ||
![]() |
40fd50d7f1 | ||
![]() |
f7b948fee2 | ||
![]() |
6cdcf133bb | ||
![]() |
f3025757b6 | ||
![]() |
a49811a3f9 | ||
![]() |
2ac4b265d1 | ||
![]() |
46e994b563 | ||
![]() |
81482bd298 | ||
![]() |
f1a239c085 | ||
![]() |
a48e38de7b | ||
![]() |
0aaacee117 | ||
![]() |
b8373af69f | ||
![]() |
e99b2ee73d | ||
![]() |
705022331a | ||
![]() |
bf62d444bf | ||
![]() |
5dcff5657b | ||
![]() |
7e79d5a960 | ||
![]() |
c1b480976d | ||
![]() |
ddabbe6891 | ||
![]() |
ffa3052b50 | ||
![]() |
654ea88851 | ||
![]() |
4dc7982baa | ||
![]() |
ae2fc1cd85 | ||
![]() |
78bc8666e6 | ||
![]() |
9c2de2cfc7 | ||
![]() |
71e81465f3 | ||
![]() |
885031e086 | ||
![]() |
d77c5bb5cf | ||
![]() |
781bce0000 | ||
![]() |
a3ca1b965b | ||
![]() |
dd20b480a7 | ||
![]() |
38292e97af | ||
![]() |
46ea752164 | ||
![]() |
194b744361 | ||
b50197f7ce | |||
![]() |
c00703d1d0 | ||
![]() |
6e12377116 | ||
![]() |
b0c4391ad8 | ||
![]() |
f43ac2538a | ||
![]() |
9eaf8b5d2d | ||
![]() |
e365d0b07c | ||
![]() |
69c273c4a5 | ||
![]() |
f7950e7adb | ||
![]() |
7c1ae9812e | ||
![]() |
5c794ac40e |
@@ -7,3 +7,4 @@ indent_style = space
|
||||
[*.kt]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
ktlint_standard_no-wildcard-imports = disabled
|
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* text=auto eol=lf
|
32
.github/workflows/checkNewPlugins.yml
vendored
Normal file
32
.github/workflows/checkNewPlugins.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
|
||||
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
|
||||
|
||||
# This workflow syncs changes from the docs folder of IdeaVim to the IdeaVim.wiki repository
|
||||
|
||||
name: Check new plugin dependencies
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- name: Fetch origin repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- name: Check new plugins
|
||||
run: ./gradlew scripts:checkNewPluginDependencies
|
50
.github/workflows/closeYoutrackOnCommit.yml
vendored
Normal file
50
.github/workflows/closeYoutrackOnCommit.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
|
||||
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
|
||||
|
||||
name: Close YouTrack on commit
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 300
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
# The last successful job was marked with a tag
|
||||
- name: Get commit with last workflow
|
||||
run: |
|
||||
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-close-youtrack)" >> $GITHUB_ENV
|
||||
|
||||
- name: Update YouTrack
|
||||
run: ./gradlew --no-configuration-cache updateYoutrackOnCommit
|
||||
env:
|
||||
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
|
||||
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}
|
||||
|
||||
- name: Update tags
|
||||
run: |
|
||||
git tag --delete workflow-close-youtrack || true
|
||||
git push origin :refs/tags/workflow-close-youtrack || true
|
||||
git tag workflow-close-youtrack
|
||||
git push origin workflow-close-youtrack
|
11
.github/workflows/codeql-analysis.yml
vendored
11
.github/workflows/codeql-analysis.yml
vendored
@@ -20,6 +20,11 @@ on:
|
||||
schedule:
|
||||
- cron: '44 12 * * 4'
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
@@ -39,7 +44,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -50,7 +55,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -64,4 +69,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
33
.github/workflows/integrationsTest.yml
vendored
Normal file
33
.github/workflows/integrationsTest.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
|
||||
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
|
||||
|
||||
name: Testing CI integrations
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 300
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- name: Run tests
|
||||
run: ./gradlew --no-configuration-cache integrationsTest
|
||||
env:
|
||||
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}
|
||||
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
|
36
.github/workflows/kover.yml
vendored
Normal file
36
.github/workflows/kover.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
|
||||
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
|
||||
|
||||
name: Kover
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 300
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- name: Run tests
|
||||
run: ./gradlew koverXmlReport
|
||||
|
||||
|
||||
# Upload Kover report to CodeCov
|
||||
- uses: codecov/codecov-action@v3
|
||||
with:
|
||||
files: ${{ github.workspace }}/build/reports/kover/xml/report.xml
|
17
.github/workflows/mergeDependabotPR.yml
vendored
Normal file
17
.github/workflows/mergeDependabotPR.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Dependabot auto-merge
|
||||
on: pull_request
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
dependabot:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.actor == 'dependabot[bot]' && github.repository == 'JetBrains/ideavim' }}
|
||||
steps:
|
||||
- name: Auto-merge Dependabot PR
|
||||
run: gh pr merge --auto --rebase "$PR_URL"
|
||||
env:
|
||||
PR_URL: ${{github.event.pull_request.html_url}}
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
23
.github/workflows/mergePr.yml
vendored
23
.github/workflows/mergePr.yml
vendored
@@ -4,39 +4,42 @@
|
||||
name: Update Changelog On PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
pull_request_target:
|
||||
types: [ closed ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
if: github.event.pull_request.merged == true
|
||||
if: false
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 50
|
||||
- name: Set up JDK 11
|
||||
# See end of file updateChangeslog.yml for explanation of this secret
|
||||
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '11'
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- name: Update authors
|
||||
id: update_authors
|
||||
run: ./gradlew updateMergedPr -PprId=${{ github.event.number }}
|
||||
run: ./gradlew --no-configuration-cache updateMergedPr -PprId=${{ github.event.number }}
|
||||
env:
|
||||
GITHUB_OAUTH: ${{ secrets.AUTOMATION_TOKEN }}
|
||||
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
branch: master
|
||||
commit_message: Update changelog after merging PR
|
||||
commit_user_name: Alex Plate
|
||||
commit_user_email: aleksei.plate@jetbrains.com
|
||||
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
|
||||
commit_message: Update changelog after merging PR
|
||||
commit_user_name: IdeaVim Bot
|
||||
commit_user_email: maintainers@ideavim.dev
|
||||
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
|
||||
file_pattern: CHANGES.md
|
||||
|
81
.github/workflows/runUiOctopusTests.yml
vendored
Normal file
81
.github/workflows/runUiOctopusTests.yml
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
name: Run Non Octopus UI Tests
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 12 * * *'
|
||||
jobs:
|
||||
build-for-ui-test-mac-os:
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 17
|
||||
- name: Setup FFmpeg
|
||||
run: brew install ffmpeg
|
||||
# - name: Setup Gradle
|
||||
# uses: gradle/gradle-build-action@v2.4.2
|
||||
- name: Build Plugin
|
||||
run: gradle :buildPlugin
|
||||
- name: Run Idea
|
||||
run: |
|
||||
mkdir -p build/reports
|
||||
gradle --no-configuration-cache runIdeForUiTests -Doctopus.handler=false > build/reports/idea.log &
|
||||
- name: Wait for Idea started
|
||||
uses: jtalk/url-health-check-action@v3
|
||||
with:
|
||||
url: http://127.0.0.1:8082
|
||||
max-attempts: 20
|
||||
retry-delay: 10s
|
||||
- name: Tests
|
||||
run: gradle :tests:ui-ij-tests:testUi
|
||||
- name: Move video
|
||||
if: always()
|
||||
run: mv tests/ui-ij-tests/video build/reports
|
||||
- name: Move sandbox logs
|
||||
if: always()
|
||||
run: mv build/idea-sandbox/IC-2024.1.2/log_runIdeForUiTests idea-sandbox-log
|
||||
- name: Save report
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ui-test-fails-report-mac
|
||||
path: |
|
||||
build/reports
|
||||
tests/ui-ij-tests/build/reports
|
||||
idea-sandbox-log
|
||||
# build-for-ui-test-linux:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2
|
||||
# - name: Setup Java
|
||||
# uses: actions/setup-java@v2.1.0
|
||||
# with:
|
||||
# distribution: zulu
|
||||
# java-version: 11
|
||||
# - name: Build Plugin
|
||||
# run: gradle :buildPlugin
|
||||
# - name: Run Idea
|
||||
# run: |
|
||||
# export DISPLAY=:99.0
|
||||
# Xvfb -ac :99 -screen 0 1920x1080x16 &
|
||||
# mkdir -p build/reports
|
||||
# gradle :runIdeForUiTests #> build/reports/idea.log
|
||||
# - name: Wait for Idea started
|
||||
# uses: jtalk/url-health-check-action@1.5
|
||||
# with:
|
||||
# url: http://127.0.0.1:8082
|
||||
# max-attempts: 15
|
||||
# retry-delay: 30s
|
||||
# - name: Tests
|
||||
# run: gradle :testUi
|
||||
# - name: Save fails report
|
||||
# if: ${{ failure() }}
|
||||
# uses: actions/upload-artifact@v2
|
||||
# with:
|
||||
# name: ui-test-fails-report-linux
|
||||
# path: |
|
||||
# ui-test-example/build/reports
|
52
.github/workflows/runUiPyTests.yml
vendored
Normal file
52
.github/workflows/runUiPyTests.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
name: Run UI PyCharm Tests
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 12 * * *'
|
||||
jobs:
|
||||
build-for-ui-test-mac-os:
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 17
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Setup FFmpeg
|
||||
run: brew install ffmpeg
|
||||
# - name: Setup Gradle
|
||||
# uses: gradle/gradle-build-action@v2.4.2
|
||||
- name: Build Plugin
|
||||
run: gradle :buildPlugin
|
||||
- name: Run Idea
|
||||
run: |
|
||||
mkdir -p build/reports
|
||||
gradle --no-configuration-cache :runIdeForUiTests -PideaType=PC > build/reports/idea.log &
|
||||
- name: Wait for Idea started
|
||||
uses: jtalk/url-health-check-action@v3
|
||||
with:
|
||||
url: http://127.0.0.1:8082
|
||||
max-attempts: 20
|
||||
retry-delay: 10s
|
||||
- name: Tests
|
||||
run: gradle :tests:ui-py-tests:testUi
|
||||
- name: Move video
|
||||
if: always()
|
||||
run: mv tests/ui-py-tests/video build/reports
|
||||
- name: Move sandbox logs
|
||||
if: always()
|
||||
run: mv build/idea-sandbox/PC-2024.1.2/log_runIdeForUiTests idea-sandbox-log
|
||||
- name: Save report
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ui-test-fails-report-mac
|
||||
path: |
|
||||
build/reports
|
||||
tests/ui-py-tests/build/reports
|
||||
idea-sandbox-log
|
38
.github/workflows/runUiTests.yml
vendored
38
.github/workflows/runUiTests.yml
vendored
@@ -5,44 +5,48 @@ on:
|
||||
- cron: '0 12 * * *'
|
||||
jobs:
|
||||
build-for-ui-test-mac-os:
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v2.1.0
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: zulu
|
||||
java-version: 11
|
||||
java-version: 17
|
||||
- name: Setup FFmpeg
|
||||
uses: FedericoCarboni/setup-ffmpeg@v1
|
||||
with:
|
||||
# Not strictly necessary, but it may prevent rate limit
|
||||
# errors especially on GitHub-hosted macos machines.
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: brew install ffmpeg
|
||||
# - name: Setup Gradle
|
||||
# uses: gradle/gradle-build-action@v2.4.2
|
||||
- name: Build Plugin
|
||||
run: gradle :buildPlugin
|
||||
- name: Run Idea
|
||||
run: |
|
||||
mkdir -p build/reports
|
||||
gradle :runIdeForUiTests > build/reports/idea.log &
|
||||
gradle --no-configuration-cache runIdeForUiTests > build/reports/idea.log &
|
||||
- name: Wait for Idea started
|
||||
uses: jtalk/url-health-check-action@1.5
|
||||
uses: jtalk/url-health-check-action@v3
|
||||
with:
|
||||
url: http://127.0.0.1:8082
|
||||
max-attempts: 20
|
||||
retry-delay: 10s
|
||||
- name: Tests
|
||||
run: gradle :testUi
|
||||
run: gradle :tests:ui-ij-tests:testUi
|
||||
- name: Move video
|
||||
if: ${{ failure() }}
|
||||
run: mv video build/reports
|
||||
- name: Save fails report
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
run: mv tests/ui-ij-tests/video build/reports
|
||||
- name: Move sandbox logs
|
||||
if: always()
|
||||
run: mv build/idea-sandbox/IC-2024.1.2/log_runIdeForUiTests idea-sandbox-log
|
||||
- name: Save report
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ui-test-fails-report-mac
|
||||
path: |
|
||||
build/reports
|
||||
tests/ui-ij-tests/build/reports
|
||||
idea-sandbox-log
|
||||
# build-for-ui-test-linux:
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
@@ -74,4 +78,4 @@ jobs:
|
||||
# with:
|
||||
# name: ui-test-fails-report-linux
|
||||
# path: |
|
||||
# ui-test-example/build/reports
|
||||
# ui-test-example/build/reports
|
||||
|
59
.github/workflows/syncDoc.yml
vendored
Normal file
59
.github/workflows/syncDoc.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
|
||||
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
|
||||
|
||||
# This workflow syncs changes from the docs folder of IdeaVim to the IdeaVim.wiki repository
|
||||
|
||||
name: Sync docs
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- name: Fetch origin repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: origin
|
||||
# See end of file updateChangeslog.yml for explanation of this secret
|
||||
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
|
||||
|
||||
- name: Fetch docs repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: JetBrains/ideavim.wiki
|
||||
path: docs
|
||||
|
||||
- name: Sync docs
|
||||
id: update_authors
|
||||
run: cp -a origin/doc/. docs
|
||||
|
||||
# The Wiki for github should have no `.md` in references
|
||||
# Otherwise, such links will lead to the raw text.
|
||||
# However, the `.md` should exist to have a navigation in GitHub code.
|
||||
- name: Replace `.md)` with `)`
|
||||
run: |
|
||||
# Define the directory you want to process
|
||||
DIRECTORY="docs"
|
||||
|
||||
# Find all files in the directory and perform the replacement
|
||||
find $DIRECTORY -type f -exec sed -i 's/\.md)/)/g' {} +
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
branch: master
|
||||
repository: docs
|
||||
commit_message: Update docs
|
||||
commit_user_name: IdeaVim Bot
|
||||
commit_user_email: maintainers@ideavim.dev
|
||||
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
|
47
.github/workflows/updateAuthors.yml
vendored
47
.github/workflows/updateAuthors.yml
vendored
@@ -5,45 +5,58 @@ name: Update Authors
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '0 9 * * *'
|
||||
# Workflow run on push is disabled to avoid conflicts when merging PR
|
||||
# push:
|
||||
# branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 300
|
||||
- name: Set up JDK 11
|
||||
# See end of file updateChangeslog.yml for explanation of this secret
|
||||
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '11'
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- uses: nrwl/last-successful-commit-action@v1
|
||||
id: last_successful_commit
|
||||
with:
|
||||
branch: 'master'
|
||||
workflow_id: 'updateAuthors.yml'
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# The last successful job was marked with a tag
|
||||
- name: Get commit with last workflow
|
||||
run: |
|
||||
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-authors)" >> $GITHUB_ENV
|
||||
|
||||
- name: Update authors
|
||||
id: update_authors
|
||||
run: ./gradlew updateAuthors --stacktrace
|
||||
run: ./gradlew --no-configuration-cache updateAuthors --stacktrace
|
||||
env:
|
||||
SUCCESS_COMMIT: ${{ steps.last_successful_commit.outputs.commit_hash }}
|
||||
GITHUB_OAUTH: ${{ secrets.AUTOMATION_TOKEN }}
|
||||
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
|
||||
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Add ${{ steps.update_authors.outputs.authors }} to contributors list
|
||||
commit_user_name: Alex Plate
|
||||
commit_user_email: aleksei.plate@jetbrains.com
|
||||
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
|
||||
commit_user_name: IdeaVim Bot
|
||||
commit_user_email: maintainers@ideavim.dev
|
||||
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
|
||||
file_pattern: AUTHORS.md
|
||||
|
||||
- name: Update tags
|
||||
run: |
|
||||
git tag --delete workflow-authors || true
|
||||
git push origin :refs/tags/workflow-authors || true
|
||||
git tag workflow-authors
|
||||
git push origin workflow-authors
|
||||
|
52
.github/workflows/updateChangelog.yml
vendored
52
.github/workflows/updateChangelog.yml
vendored
@@ -5,43 +5,59 @@ name: Update Changelog
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '0 10 * * *'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: false
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 300
|
||||
- name: Set up JDK 11
|
||||
# See end of file updateChangeslog.yml for explanation of this secret
|
||||
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
|
||||
- name: Get tags
|
||||
run: git fetch --tags origin
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '11'
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- uses: nrwl/last-successful-commit-action@v1
|
||||
id: last_successful_commit
|
||||
with:
|
||||
branch: 'master'
|
||||
workflow_id: 'updateChangelog.yml'
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# The last successful job was marked with a tag
|
||||
- name: Get commit with last workflow
|
||||
run: |
|
||||
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-changelog)" >> $GITHUB_ENV
|
||||
|
||||
- name: Update changelog
|
||||
run: ./gradlew updateChangelog
|
||||
run: ./gradlew --no-configuration-cache updateChangelog
|
||||
env:
|
||||
SUCCESS_COMMIT: ${{ steps.last_successful_commit.outputs.commit_hash }}
|
||||
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Update changelog
|
||||
commit_user_name: Alex Plate
|
||||
commit_user_email: aleksei.plate@jetbrains.com
|
||||
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
|
||||
file_pattern: CHANGES.md
|
||||
commit_message: Update changelog. Action id - ${{ github.run_id }}
|
||||
commit_user_name: IdeaVim Bot
|
||||
commit_user_email: maintainers@ideavim.dev
|
||||
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
|
||||
file_pattern: CHANGES.md
|
||||
|
||||
- name: Update tags
|
||||
run: |
|
||||
git tag --delete workflow-changelog || true
|
||||
git push origin :refs/tags/workflow-changelog || true
|
||||
git tag workflow-changelog
|
||||
git push origin workflow-changelog
|
||||
|
||||
# Regarding secrets.PUSH_TO_PROTECTED_BRANCH_SECRET - we use branch protection rules to automate merges of the
|
||||
# dependabot updates. See mergeDependatobPR.yml file.
|
||||
# However, it turned out that GitHub accepts pushes from the actions as a PR and requires checks, that are always
|
||||
# false for pushing from actions.
|
||||
# This secret is created to implement the workaround described in https://stackoverflow.com/a/76135647/3124227
|
||||
|
19
.github/workflows/updateFormatting.yml
vendored
19
.github/workflows/updateFormatting.yml
vendored
@@ -12,26 +12,31 @@ jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'JetBrains/ideavim'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 50
|
||||
- name: Set up JDK 11
|
||||
# See end of file updateChangeslog.yml for explanation of this secret
|
||||
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '11'
|
||||
java-version: '17'
|
||||
distribution: 'adopt'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
|
||||
- name: Format files
|
||||
run: ./gradlew ktlintFormat
|
||||
- uses: findologic/intellij-format-action@1.0.1
|
||||
with:
|
||||
include-glob: '*.kt,*.java'
|
||||
path: .
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: Update formatting
|
||||
commit_user_name: Alex Plate
|
||||
commit_user_email: aleksei.plate@jetbrains.com
|
||||
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
|
||||
commit_user_name: IdeaVim Bot
|
||||
commit_user_email: maintainers@ideavim.dev
|
||||
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
|
||||
|
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
*.swp
|
||||
/.gradle/
|
||||
/.intellijPlatform/
|
||||
|
||||
/.idea/
|
||||
!/.idea/scopes
|
||||
@@ -9,6 +10,9 @@
|
||||
!/.idea/fileTemplates
|
||||
!/.idea/runConfigurations
|
||||
!/.idea/codeStyles
|
||||
!/.idea/vcs.xml
|
||||
!/.idea/misc.xml
|
||||
!/.idea/.name
|
||||
|
||||
**/build/
|
||||
**/out/
|
||||
@@ -21,7 +25,10 @@
|
||||
.teamcity/*.iml
|
||||
|
||||
# Generated by gradle task "generateGrammarSource"
|
||||
src/main/java/com/maddyhome/idea/vim/vimscript/parser/generated
|
||||
vim-engine/src/main/java/com/maddyhome/idea/vim/parser/generated
|
||||
vim-engine/src/main/java/com/maddyhome/idea/vim/regexp/parser/generated
|
||||
|
||||
# Created by github automation
|
||||
settings.xml
|
||||
|
||||
.kotlin
|
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
||||
IdeaVim
|
5
.idea/codeStyles/Project.xml
generated
5
.idea/codeStyles/Project.xml
generated
@@ -6,6 +6,7 @@
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="LINE_SEPARATOR" value=" " />
|
||||
<JavaCodeStyleSettings>
|
||||
<option name="FIELD_NAME_PREFIX" value="my" />
|
||||
<option name="STATIC_FIELD_NAME_PREFIX" value="our" />
|
||||
@@ -191,6 +192,10 @@
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="kotlin">
|
||||
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
2
.idea/copyright/IdeaVim.xml
generated
2
.idea/copyright/IdeaVim.xml
generated
@@ -1,6 +1,6 @@
|
||||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="notice" value="IdeaVim - Vim emulator for IDEs based on the IntelliJ platform Copyright (C) 2003-&#36;today.year The IdeaVim authors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>." />
|
||||
<option name="notice" value="Copyright 2003-&#36;today.year The IdeaVim authors Use of this source code is governed by an MIT-style license that can be found in the LICENSE.txt file or at https://opensource.org/licenses/MIT." />
|
||||
<option name="myName" value="IdeaVim" />
|
||||
</copyright>
|
||||
</component>
|
14
.idea/inspectionProfiles/Qodana.xml
generated
14
.idea/inspectionProfiles/Qodana.xml
generated
@@ -33,9 +33,11 @@
|
||||
<option name="ignoreToString" value="false" />
|
||||
<option name="nonNlsCommentPattern" value="NON-NLS" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="MagicConstant" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="MissortedModifiers" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="m_requireAnnotationsFirst" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="SameParameterValue" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="SameReturnValue" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
||||
<option name="processCode" value="true" />
|
||||
@@ -44,5 +46,17 @@
|
||||
</inspection_tool>
|
||||
<inspection_tool class="SuperTearDownInFinally" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="UnstableApiUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="unused" enabled="false" level="WARNING" enabled_by_default="false" checkParameterExcludingHierarchy="false">
|
||||
<option name="LOCAL_VARIABLE" value="true" />
|
||||
<option name="FIELD" value="true" />
|
||||
<option name="METHOD" value="true" />
|
||||
<option name="CLASS" value="true" />
|
||||
<option name="PARAMETER" value="true" />
|
||||
<option name="REPORT_PARAMETER_FOR_PUBLIC_METHODS" value="true" />
|
||||
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
22
.idea/misc.xml
generated
Normal file
22
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="EntryPointsManager">
|
||||
<list size="3">
|
||||
<item index="0" class="java.lang.String" itemvalue="com.intellij.vim.annotations.CommandOrMotion" />
|
||||
<item index="1" class="java.lang.String" itemvalue="com.intellij.vim.annotations.ExCommand" />
|
||||
<item index="2" class="java.lang.String" itemvalue="com.intellij.vim.annotations.VimscriptFunction" />
|
||||
</list>
|
||||
</component>
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/.teamcity/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
|
||||
</project>
|
@@ -12,7 +12,7 @@
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="check" />
|
||||
<option value="runPluginVerifier" />
|
||||
<option value="verifyPlugin" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
@@ -20,6 +20,7 @@
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
25
.idea/runConfigurations/Start_IJ_with_IdeaVim__Split_Mode_.xml
generated
Normal file
25
.idea/runConfigurations/Start_IJ_with_IdeaVim__Split_Mode_.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Start IJ with IdeaVim (Split Mode)" type="GradleRunConfiguration" factoryName="Gradle">
|
||||
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
|
||||
<ExternalSystemSettings>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="runIdeSplitMode" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" value="" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
2
.idea/scopes/Copyright.xml
generated
2
.idea/scopes/Copyright.xml
generated
@@ -1,3 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="Copyright" pattern="(file[IdeaVIM.main]:*/||file[IdeaVIM.test]:*/)&&!file[IdeaVIM.main]:resources//*" />
|
||||
<scope name="Copyright" pattern="file:*/&&!file:.github//*&&!file:.idea//*&&!file:.teamcity//*&&!file:assets//*&&!file:config//*&&!file:doc//*&&!file:gradle//*&&!file:gradlew&&!file:gradlew.bat&&!file:src/main/resources//*&&!file:antlr//*&&!file:java/com/maddyhome/idea/vim/regexp/RegExp.kt&&!file:java/com/maddyhome/idea/vim/ui/Tutor.kt&&!file:java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt" />
|
||||
</component>
|
16
.idea/vcs.xml
generated
Normal file
16
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="IssueNavigationConfiguration">
|
||||
<option name="links">
|
||||
<list>
|
||||
<IssueNavigationLink>
|
||||
<option name="issueRegexp" value="[A-Z]+\-\d+" />
|
||||
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$0" />
|
||||
</IssueNavigationLink>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
17
.teamcity/_Self/Constants.kt
vendored
17
.teamcity/_Self/Constants.kt
vendored
@@ -5,15 +5,12 @@ object Constants {
|
||||
const val EAP_CHANNEL = "eap"
|
||||
const val DEV_CHANNEL = "Dev"
|
||||
|
||||
const val VERSION = "1.10.3"
|
||||
const val DEV_VERSION = "1.11.0"
|
||||
const val NVIM_TESTS = "2024.2.1"
|
||||
const val PROPERTY_TESTS = "2024.2.1"
|
||||
const val LONG_RUNNING_TESTS = "2024.2.1"
|
||||
const val QODANA_TESTS = "2024.2.1"
|
||||
const val RELEASE = "2024.2.1"
|
||||
|
||||
const val GITHUB_TESTS = "LATEST-EAP-SNAPSHOT"
|
||||
const val NVIM_TESTS = "LATEST-EAP-SNAPSHOT"
|
||||
const val PROPERTY_TESTS = "LATEST-EAP-SNAPSHOT"
|
||||
const val LONG_RUNNING_TESTS = "LATEST-EAP-SNAPSHOT"
|
||||
const val QODANA_TESTS = "LATEST-EAP-SNAPSHOT"
|
||||
const val RELEASE = "2021.3"
|
||||
const val RELEASE_DEV = "LATEST-EAP-SNAPSHOT"
|
||||
const val RELEASE_EAP = "LATEST-EAP-SNAPSHOT"
|
||||
const val RELEASE_DEV = "2024.2.1"
|
||||
const val RELEASE_EAP = "2024.2.1"
|
||||
}
|
||||
|
112
.teamcity/_Self/Project.kt
vendored
112
.teamcity/_Self/Project.kt
vendored
@@ -1,91 +1,65 @@
|
||||
package _Self
|
||||
|
||||
import _Self.buildTypes.*
|
||||
import _Self.buildTypes.Compatibility
|
||||
import _Self.buildTypes.LongRunning
|
||||
import _Self.buildTypes.Nvim
|
||||
import _Self.buildTypes.PluginVerifier
|
||||
import _Self.buildTypes.PropertyBased
|
||||
import _Self.buildTypes.Qodana
|
||||
import _Self.buildTypes.TestingBuildType
|
||||
import _Self.subprojects.GitHub
|
||||
import _Self.subprojects.OldTests
|
||||
import _Self.subprojects.Releases
|
||||
import _Self.vcsRoots.Branch_181
|
||||
import _Self.vcsRoots.Branch_183
|
||||
import _Self.vcsRoots.Branch_191_193
|
||||
import _Self.vcsRoots.Branch_201
|
||||
import _Self.vcsRoots.Branch_202
|
||||
import _Self.vcsRoots.Branch_203_212
|
||||
import _Self.vcsRoots.Branch_Release
|
||||
import _Self.vcsRoots.GitHubPullRequest
|
||||
import _Self.vcsRoots.ReleasesVcsRoot
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
|
||||
|
||||
object Project : Project({
|
||||
description = "Vim emulation plugin for the IntelliJ platform products"
|
||||
description = "Vim engine for JetBrains IDEs"
|
||||
|
||||
subProjects(Releases, OldTests, GitHub)
|
||||
subProjects(Releases, GitHub)
|
||||
|
||||
// VCS roots
|
||||
vcsRoot(Branch_183)
|
||||
vcsRoot(Branch_181)
|
||||
vcsRoot(Branch_191_193)
|
||||
vcsRoot(Branch_201)
|
||||
vcsRoot(Branch_202)
|
||||
vcsRoot(Branch_203_212)
|
||||
vcsRoot(Branch_Release)
|
||||
vcsRoot(GitHubPullRequest)
|
||||
vcsRoot(ReleasesVcsRoot)
|
||||
|
||||
// Builds
|
||||
buildType(TestsForIntelliJ20213)
|
||||
buildType(TestsForIntelliJEAP)
|
||||
// Active tests
|
||||
buildType(TestingBuildType("Latest EAP", "<default>", version = "LATEST-EAP-SNAPSHOT"))
|
||||
buildType(TestingBuildType("2024.2.1", "<default>"))
|
||||
buildType(TestingBuildType("Latest EAP With Xorg", "<default>", version = "LATEST-EAP-SNAPSHOT"))
|
||||
|
||||
buildType(PropertyBased)
|
||||
buildType(LongRunning)
|
||||
|
||||
buildType(Nvim)
|
||||
buildType(PluginVerifier)
|
||||
buildType(Compatibility)
|
||||
|
||||
buildType(Qodana)
|
||||
|
||||
// Unknown staff generated by TeamCity
|
||||
features {
|
||||
feature {
|
||||
type = "CloudImage"
|
||||
id = "PROJECT_EXT_768"
|
||||
param("agent_pool_id", "41")
|
||||
param("amazon-id", "ami-0d1a6a32faa92923e")
|
||||
param("ebs-optimized", "false")
|
||||
param("image-instances-limit", "")
|
||||
param("image-name-prefix", "BuildAgentsIdeaVim")
|
||||
param("instance-type", "c5d.xlarge")
|
||||
param("key-pair-name", "teamcity-prod-pub")
|
||||
param("profileId", "amazon-48")
|
||||
param("security-group-ids", "sg-eda08696,sg-7332cf0f,")
|
||||
param("source-id", "BuildAgentsIdeaVim")
|
||||
param("spot-instance-price", "0.12")
|
||||
param("subnet-id", "subnet-58839511")
|
||||
param("use-spot-instances", "true")
|
||||
param("user-tags", "project=idea-vim")
|
||||
param("key-pair-name", "")
|
||||
param("spot-instance-price", "")
|
||||
}
|
||||
feature {
|
||||
type = "CloudProfile"
|
||||
id = "amazon-48"
|
||||
param("agentPushPreset", "")
|
||||
param("cloud-code", "amazon")
|
||||
param("description", "")
|
||||
param("enabled", "true")
|
||||
param("max-running-instances", "10")
|
||||
param("name", "Cloud Agents")
|
||||
param("next-hour", "")
|
||||
param("not-checked", "")
|
||||
param("profileId", "amazon-48")
|
||||
param("profileServerUrl", "")
|
||||
param("region", "eu-west-1")
|
||||
param("secure:access-id", "credentialsJSON:dbcdb2a2-de5f-4bc9-9421-292b19e83947")
|
||||
param("secure:secret-key", "credentialsJSON:65a87fe7-0977-4af9-96f1-344f2b82d269")
|
||||
param("system.cloud.profile_id", "amazon-48")
|
||||
param("terminate-idle-time", "15")
|
||||
param("total-work-time", "")
|
||||
param("user-script", "")
|
||||
param("spot-fleet-config", "")
|
||||
param("terminate-after-build", "true")
|
||||
param("name", "Cloud Agents - Single Build")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// Common build type for all configurations
|
||||
abstract class IdeaVimBuildType(init: BuildType.() -> Unit) : BuildType({
|
||||
artifactRules = """
|
||||
+:build/reports => build/reports
|
||||
+:tests/java-tests/build/reports => java-tests/build/reports
|
||||
+:tests/long-running-tests/build/reports => long-running-tests/build/reports
|
||||
+:tests/property-tests/build/reports => property-tests/build/reports
|
||||
+:/mnt/agent/temp/buildTmp/ => /mnt/agent/temp/buildTmp/
|
||||
""".trimIndent()
|
||||
|
||||
init()
|
||||
|
||||
requirements {
|
||||
// These requirements define Linux-Medium configuration.
|
||||
// Unfortunately, requirement by name (teamcity.agent.name) doesn't work
|
||||
// IDK the reason for it, but on our agents this property is empty
|
||||
equals("teamcity.agent.hardware.cpuCount", "16")
|
||||
equals("teamcity.agent.os.family", "Linux")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
// Disable detection of the java OOM
|
||||
javaCrash = false
|
||||
}
|
||||
})
|
66
.teamcity/_Self/buildTypes/Compatibility.kt
vendored
Normal file
66
.teamcity/_Self/buildTypes/Compatibility.kt
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.golang
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
|
||||
object Compatibility : IdeaVimBuildType({
|
||||
id("IdeaVimCompatibility")
|
||||
name = "IdeaVim compatibility with external plugins"
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Load Verifier"
|
||||
scriptContent = """
|
||||
mkdir verifier1
|
||||
curl -f -L -o verifier1/verifier-cli-dev-all-1.jar "https://packages.jetbrains.team/files/p/ideavim/plugin-verifier/verifier-cli-dev-all-1.jar"
|
||||
""".trimIndent()
|
||||
}
|
||||
script {
|
||||
name = "Check"
|
||||
scriptContent = """
|
||||
# We use a custom build of verifier that downloads IdeaVim from dev channel
|
||||
# To create a custom build: Download plugin verifier repo, add an if that switches to dev channel for IdeaVim repo
|
||||
# At the moment it's com.jetbrains.pluginverifier.repository.repositories.marketplace.MarketplaceRepository#getLastCompatibleVersionOfPlugin
|
||||
# Build using gradlew :intellij-plugin-verifier:verifier-cli:shadowJar
|
||||
# Upload verifier-cli-dev-all.jar artifact to the repo in IdeaVim space repo
|
||||
|
||||
java --version
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}org.jetbrains.IdeaVim-EasyMotion' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}eu.theblob42.idea.whichkey' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}IdeaVimExtension' [latest-IU] -team-city
|
||||
# Outdated java -jar verifier/verifier-cli-dev-all.jar check-plugin '${'$'}github.zgqq.intellij-enhance' [latest-IU] -team-city
|
||||
# java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.github.copilot' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.github.dankinsoid.multicursor' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.joshestein.ideavim-quickscope' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.julienphalip.ideavim.peekaboo' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.julienphalip.ideavim.switch' [latest-IU] -team-city
|
||||
java -jar verifier1/verifier-cli-dev-all-1.jar check-plugin '${'$'}com.julienphalip.ideavim.functiontextobj' [latest-IU] -team-city
|
||||
""".trimIndent()
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
schedule {
|
||||
schedulingPolicy = daily {
|
||||
hour = 4
|
||||
}
|
||||
branchFilter = ""
|
||||
triggerBuild = always()
|
||||
withPendingChangesOnly = false
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
golang {
|
||||
testFormat = "json"
|
||||
}
|
||||
}
|
||||
})
|
72
.teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt
vendored
Normal file
72
.teamcity/_Self/buildTypes/CreateNewReleaseBranchFromMaster.kt
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright 2003-2024 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
|
||||
object CreateNewReleaseBranchFromMaster : IdeaVimBuildType({
|
||||
name = "EXP: Create new release branch from master"
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Calculate next potential release version"
|
||||
scriptContent = """
|
||||
#!/bin/bash
|
||||
|
||||
# Fetch all remote branches
|
||||
git fetch --all
|
||||
|
||||
# Get a list of all branches matching the pattern releases/x.y.z
|
||||
branches=${'$'}(git branch -r | grep -oE 'releases/[0-9]+\.[0-9]+\.x')
|
||||
|
||||
# If no matching branches are found, print a message and exit
|
||||
if [[ -z "${'$'}branches" ]]; then
|
||||
echo "No release branches found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Find the largest release version
|
||||
largest_release=${'$'}(echo "${'$'}branches" | sort -V | tail -n 1)
|
||||
|
||||
# Print the largest release
|
||||
echo "Largest release branch: ${'$'}largest_release"
|
||||
echo "##teamcity[setParameter name='env.POTENTIAL_VERSION' value='${'$'}largest_release']"
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
script {
|
||||
name = "Show potential release version"
|
||||
scriptContent = """
|
||||
#!/bin/bash
|
||||
echo "Calculated or user-provided parameter value is: %env.POTENTIAL_VERSION%"
|
||||
""".trimIndent()
|
||||
}
|
||||
}
|
||||
|
||||
params {
|
||||
param("env.POTENTIAL_VERSION", "")
|
||||
}
|
||||
|
||||
features {
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
})
|
77
.teamcity/_Self/buildTypes/GithubTests.kt
vendored
77
.teamcity/_Self/buildTypes/GithubTests.kt
vendored
@@ -1,77 +0,0 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.GITHUB_TESTS
|
||||
import _Self.vcsRoots.GitHubPullRequest
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.PullRequests
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.commitStatusPublisher
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.pullRequests
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object GithubTests : Github("clean test", "Tests")
|
||||
|
||||
sealed class Github(command: String, desc: String) : BuildType({
|
||||
name = "GitHub Pull Requests $desc"
|
||||
description = "Test GitHub pull requests $desc"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", GITHUB_TESTS)
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(GitHubPullRequest)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
branchFilter = """
|
||||
+:*
|
||||
-:<default>
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = command
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
pullRequests {
|
||||
provider = github {
|
||||
authType = token {
|
||||
token = "credentialsJSON:43afd6e5-6ad5-4d12-a218-cf1547717a7f"
|
||||
}
|
||||
filterTargetBranch = "refs/heads/master"
|
||||
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
|
||||
}
|
||||
}
|
||||
commitStatusPublisher {
|
||||
vcsRootExtId = "${GitHubPullRequest.id}"
|
||||
publisher = github {
|
||||
githubUrl = "https://api.github.com"
|
||||
authType = personalToken {
|
||||
token = "credentialsJSON:43afd6e5-6ad5-4d12-a218-cf1547717a7f"
|
||||
}
|
||||
}
|
||||
param("github_oauth_user", "AlexPl292")
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
})
|
22
.teamcity/_Self/buildTypes/LongRunning.kt
vendored
22
.teamcity/_Self/buildTypes/LongRunning.kt
vendored
@@ -1,13 +1,14 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.LONG_RUNNING_TESTS
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object LongRunning : BuildType({
|
||||
object LongRunning : IdeaVimBuildType({
|
||||
name = "Long running tests"
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
@@ -17,26 +18,29 @@ object LongRunning : BuildType({
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean testLongRunning"
|
||||
tasks = "clean :tests:long-running-tests:testLongRunning"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
enabled = false
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
schedule {
|
||||
enabled = true
|
||||
schedulingPolicy = daily {
|
||||
hour = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
})
|
16
.teamcity/_Self/buildTypes/Nvim.kt
vendored
16
.teamcity/_Self/buildTypes/Nvim.kt
vendored
@@ -1,7 +1,7 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.NVIM_TESTS
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
@@ -10,7 +10,7 @@ import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailu
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object Nvim : BuildType({
|
||||
object Nvim : IdeaVimBuildType({
|
||||
name = "Tests with nvim"
|
||||
description = "Running tests with nvim integration"
|
||||
|
||||
@@ -23,6 +23,7 @@ object Nvim : BuildType({
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
@@ -31,30 +32,25 @@ object Nvim : BuildType({
|
||||
script {
|
||||
name = "Set up NeoVim"
|
||||
scriptContent = """
|
||||
wget https://github.com/neovim/neovim/releases/download/v0.4.4/nvim-linux64.tar.gz
|
||||
wget https://github.com/neovim/neovim/releases/download/v0.7.2/nvim-linux64.tar.gz
|
||||
tar xzf nvim-linux64.tar.gz
|
||||
cd nvim-linux64/bin
|
||||
chmod +x nvim
|
||||
""".trimIndent()
|
||||
}
|
||||
gradle {
|
||||
tasks = "clean testWithNeovim"
|
||||
tasks = "clean test -Dnvim"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
|
14
.teamcity/_Self/buildTypes/PluginVerifier.kt
vendored
14
.teamcity/_Self/buildTypes/PluginVerifier.kt
vendored
@@ -1,12 +1,12 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object PluginVerifier : BuildType({
|
||||
object PluginVerifier : IdeaVimBuildType({
|
||||
name = "Plugin verification"
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
@@ -15,26 +15,22 @@ object PluginVerifier : BuildType({
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean runPluginVerifier"
|
||||
tasks = "clean verifyPlugin"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
})
|
||||
|
42
.teamcity/_Self/buildTypes/PrintReleaseBranch.kt
vendored
Normal file
42
.teamcity/_Self/buildTypes/PrintReleaseBranch.kt
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2003-2024 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.IdeaVimBuildType
|
||||
import _Self.vcsRoots.ReleasesVcsRoot
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
|
||||
object PrintReleaseBranch : IdeaVimBuildType({
|
||||
name = "EXP: Print release branch"
|
||||
|
||||
vcs {
|
||||
root(ReleasesVcsRoot)
|
||||
branchFilter = "+:heads/releases/*"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
|
||||
script {
|
||||
name = "Print current branch"
|
||||
scriptContent = """
|
||||
echo "Current branch is: %teamcity.build.branch%"
|
||||
""".trimIndent()
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
})
|
14
.teamcity/_Self/buildTypes/PropertyBased.kt
vendored
14
.teamcity/_Self/buildTypes/PropertyBased.kt
vendored
@@ -1,13 +1,13 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.PROPERTY_TESTS
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object PropertyBased : BuildType({
|
||||
object PropertyBased : IdeaVimBuildType({
|
||||
name = "Property based tests"
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
@@ -17,26 +17,22 @@ object PropertyBased : BuildType({
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean testPropertyBased"
|
||||
tasks = "clean :tests:property-tests:testPropertyBased"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
})
|
||||
|
63
.teamcity/_Self/buildTypes/PublishVimEngine.kt
vendored
Normal file
63
.teamcity/_Self/buildTypes/PublishVimEngine.kt
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
|
||||
object PublishVimEngine : IdeaVimBuildType({
|
||||
name = "Publish vim-engine"
|
||||
description = "Build and publish vim-engine library"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
buildNumberPattern = "0.0.%build.counter%"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_engineVersion", "%build.number%")
|
||||
param("env.ORG_GRADLE_PROJECT_uploadUrl", "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies")
|
||||
password("env.ORG_GRADLE_PROJECT_spacePassword", "credentialsJSON:5ea56f8c-efe7-4e1e-83de-0c02bcc39d0b", display = ParameterDisplay.HIDDEN)
|
||||
param("env.ORG_GRADLE_PROJECT_spaceUsername", "a121c67e-39ac-40e6-bf82-649855ec27b6")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:fleet"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = ":vim-engine:publish"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
schedule {
|
||||
enabled = true
|
||||
schedulingPolicy = weekly {
|
||||
dayOfWeek = ScheduleTrigger.DAY.Sunday
|
||||
}
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
|
||||
threshold = 5
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.DIFF
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
62
.teamcity/_Self/buildTypes/Qodana.kt
vendored
62
.teamcity/_Self/buildTypes/Qodana.kt
vendored
@@ -1,17 +1,18 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.QODANA_TESTS
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.Qodana
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.qodana
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object Qodana : BuildType({
|
||||
object Qodana : IdeaVimBuildType({
|
||||
name = "Qodana checks"
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
@@ -21,45 +22,47 @@ object Qodana : BuildType({
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
name = "Generate grammar"
|
||||
tasks = "generateGrammarSource"
|
||||
}
|
||||
qodana {
|
||||
name = "Qodana"
|
||||
/*
|
||||
reportAsTestsEnable = ""
|
||||
failBuildOnErrors = ""
|
||||
codeInspectionXmlConfig = "Custom"
|
||||
codeInspectionCustomXmlConfigPath = ".idea/inspectionProfiles/Qodana.xml"
|
||||
reportAsTestsEnable = "true"
|
||||
*/
|
||||
clearConditions()
|
||||
param("licenseaudit-enable", "true")
|
||||
param("clonefinder-languages", "Java")
|
||||
param("clonefinder-mode", "")
|
||||
param("report-version", "")
|
||||
param("clonefinder-languages-container", "Java Kotlin")
|
||||
param("namesAndTagsCustom", "repo.labs.intellij.net/static-analyser/qodana")
|
||||
param("clonefinder-queried-project", "src")
|
||||
param("clonefinder-enable", "true")
|
||||
param("clonefinder-reference-projects", "src")
|
||||
param("yaml-configuration", "")
|
||||
param("clonefinder-languages", "")
|
||||
param("collect-anonymous-statistics", "")
|
||||
param("licenseaudit-enable", "")
|
||||
param("clonefinder-languages-container", "")
|
||||
param("linterVersion", "")
|
||||
param("clonefinder-queried-project", "")
|
||||
param("clonefinder-enable", "")
|
||||
param("clonefinder-reference-projects", "")
|
||||
linter = jvm {
|
||||
version = Qodana.JVMVersion.LATEST
|
||||
}
|
||||
reportAsTests = true
|
||||
additionalQodanaArguments = "--baseline qodana.sarif.json"
|
||||
cloudToken = "credentialsJSON:6b79412e-9198-4862-9223-c5019488f903"
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
enabled = false
|
||||
branchFilter = ""
|
||||
branchFilter = "+:<default>"
|
||||
}
|
||||
schedule {
|
||||
schedulingPolicy = weekly {
|
||||
dayOfWeek = ScheduleTrigger.DAY.Tuesday
|
||||
schedulingPolicy = daily {
|
||||
hour = 12
|
||||
minute = 0
|
||||
timezone = "SERVER"
|
||||
}
|
||||
branchFilter = ""
|
||||
triggerBuild = always()
|
||||
param("dayOfWeek", "Sunday")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,11 +73,8 @@ object Qodana : BuildType({
|
||||
comparison = BuildFailureOnMetric.MetricComparison.MORE
|
||||
compareTo = value()
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_FAILED_COUNT
|
||||
param("metricKey", "QodanaProblemsTotal")
|
||||
param("metricKey", "QodanaProblemsNew")
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
})
|
||||
|
76
.teamcity/_Self/buildTypes/Release.kt
vendored
76
.teamcity/_Self/buildTypes/Release.kt
vendored
@@ -1,76 +0,0 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.DEFAULT_CHANNEL
|
||||
import _Self.Constants.DEV_CHANNEL
|
||||
import _Self.Constants.EAP_CHANNEL
|
||||
import _Self.Constants.RELEASE
|
||||
import _Self.Constants.VERSION
|
||||
import _Self.vcsRoots.Branch_Release
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.vcsLabeling
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
|
||||
object Release : BuildType({
|
||||
name = "Publish Release"
|
||||
description = "Build and publish IdeaVim plugin"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
buildNumberPattern = VERSION
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_publishToken",
|
||||
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
|
||||
label = "Password"
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_publishChannels", "$DEFAULT_CHANNEL,$EAP_CHANNEL,$DEV_CHANNEL")
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_slackUrl",
|
||||
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
|
||||
label = "Slack Token"
|
||||
)
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(Branch_Release)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean publishPlugin slackNotification"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
vcsLabeling {
|
||||
vcsRootId = "${DslContext.settingsRoot.id}"
|
||||
labelingPattern = "%system.build.number%"
|
||||
successfulOnly = true
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
|
||||
threshold = 5
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.DIFF
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
38
.teamcity/_Self/buildTypes/ReleaseDev.kt
vendored
38
.teamcity/_Self/buildTypes/ReleaseDev.kt
vendored
@@ -1,22 +1,22 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.DEV_CHANNEL
|
||||
import _Self.Constants.DEV_VERSION
|
||||
import _Self.Constants.RELEASE_DEV
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
|
||||
object ReleaseDev : BuildType({
|
||||
object ReleaseDev : IdeaVimBuildType({
|
||||
name = "Publish Dev Build"
|
||||
description = "Build and publish Dev of IdeaVim plugin"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
buildNumberPattern = "$DEV_VERSION-dev.%build.counter%"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_DEV)
|
||||
@@ -25,23 +25,35 @@ object ReleaseDev : BuildType({
|
||||
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
|
||||
label = "Password"
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_publishChannels", DEV_CHANNEL)
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Pull git tags"
|
||||
scriptContent = "git fetch --tags origin"
|
||||
}
|
||||
script {
|
||||
name = "Pull git history"
|
||||
scriptContent = "git fetch --unshallow"
|
||||
}
|
||||
gradle {
|
||||
tasks = "clean publishPlugin"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
name = "Calculate new dev version"
|
||||
tasks = "scripts:calculateNewDevVersion"
|
||||
}
|
||||
gradle {
|
||||
name = "Set TeamCity build number"
|
||||
tasks = "scripts:setTeamCityBuildNumber"
|
||||
}
|
||||
gradle {
|
||||
tasks = "publishPlugin"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +67,12 @@ object ReleaseDev : BuildType({
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
|
||||
|
76
.teamcity/_Self/buildTypes/ReleaseEap.kt
vendored
76
.teamcity/_Self/buildTypes/ReleaseEap.kt
vendored
@@ -1,22 +1,22 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.DEV_VERSION
|
||||
import _Self.Constants.EAP_CHANNEL
|
||||
import _Self.Constants.RELEASE_EAP
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.vcsLabeling
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
|
||||
object ReleaseEap : BuildType({
|
||||
object ReleaseEap : IdeaVimBuildType({
|
||||
name = "Publish EAP Build"
|
||||
description = "Build and publish EAP of IdeaVim plugin"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
buildNumberPattern = "$DEV_VERSION-eap.%build.counter%"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_EAP)
|
||||
@@ -25,37 +25,73 @@ object ReleaseEap : BuildType({
|
||||
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
|
||||
label = "Password"
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_publishChannels", EAP_CHANNEL)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_slackUrl",
|
||||
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
|
||||
label = "Slack Token"
|
||||
)
|
||||
password(
|
||||
"env.YOUTRACK_TOKEN",
|
||||
"credentialsJSON:2479995b-7b60-4fbb-b095-f0bafae7f622",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Pull git tags"
|
||||
scriptContent = "git fetch --tags origin"
|
||||
}
|
||||
script {
|
||||
name = "Pull git history"
|
||||
scriptContent = "git fetch --unshallow"
|
||||
}
|
||||
gradle {
|
||||
tasks = "clean publishPlugin"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
name = "Calculate new eap version"
|
||||
tasks = "scripts:calculateNewEapVersion"
|
||||
}
|
||||
gradle {
|
||||
name = "Set TeamCity build number"
|
||||
tasks = "scripts:setTeamCityBuildNumber"
|
||||
}
|
||||
gradle {
|
||||
name = "Add release tag"
|
||||
tasks = "scripts:addReleaseTag"
|
||||
}
|
||||
gradle {
|
||||
name = "Publish plugin"
|
||||
tasks = "publishPlugin"
|
||||
}
|
||||
script {
|
||||
name = "Push changes to the repo"
|
||||
scriptContent = """
|
||||
branch=$(git branch --show-current)
|
||||
echo current branch is ${'$'}branch
|
||||
if [ "master" != "${'$'}branch" ];
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git push origin %build.number%
|
||||
""".trimIndent()
|
||||
}
|
||||
gradle {
|
||||
name = "YouTrack post release actions"
|
||||
tasks = "scripts:eapReleaseActions"
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
vcsLabeling {
|
||||
vcsRootId = "${DslContext.settingsRoot.id}"
|
||||
labelingPattern = "%system.build.number%"
|
||||
successfulOnly = true
|
||||
branchFilter = ""
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,4 +106,12 @@ object ReleaseEap : BuildType({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
// These requirements define Linux-XLarge configuration.
|
||||
// Unfortunately, requirement by name (teamcity.agent.name) doesn't work
|
||||
// IDK the reason for it, but on our agents this property is empty
|
||||
// equals("teamcity.agent.hardware.cpuCount", "16")
|
||||
// equals("teamcity.agent.os.family", "Linux")
|
||||
}
|
||||
})
|
||||
|
106
.teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt
vendored
Normal file
106
.teamcity/_Self/buildTypes/ReleaseEapFromBranch.kt
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.EAP_CHANNEL
|
||||
import _Self.Constants.RELEASE_EAP
|
||||
import _Self.IdeaVimBuildType
|
||||
import _Self.vcsRoots.ReleasesVcsRoot
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
|
||||
object ReleaseEapFromBranch : IdeaVimBuildType({
|
||||
name = "EXP: Publish EAP Build from branch"
|
||||
description = "Build and publish EAP of IdeaVim plugin"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_EAP)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_publishToken",
|
||||
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
|
||||
label = "Password"
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_publishChannels", EAP_CHANNEL)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_slackUrl",
|
||||
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
|
||||
label = "Slack Token"
|
||||
)
|
||||
password(
|
||||
"env.YOUTRACK_TOKEN",
|
||||
"credentialsJSON:2479995b-7b60-4fbb-b095-f0bafae7f622",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(ReleasesVcsRoot)
|
||||
branchFilter = """
|
||||
+:heads/releases/*
|
||||
""".trimIndent()
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Pull git tags"
|
||||
scriptContent = "git fetch --tags origin"
|
||||
}
|
||||
script {
|
||||
name = "Pull git history"
|
||||
scriptContent = "git fetch --unshallow"
|
||||
}
|
||||
gradle {
|
||||
name = "Calculate new eap version from branch"
|
||||
tasks = "scripts:calculateNewEapVersionFromBranch"
|
||||
}
|
||||
gradle {
|
||||
name = "Set TeamCity build number"
|
||||
tasks = "scripts:setTeamCityBuildNumber"
|
||||
}
|
||||
gradle {
|
||||
name = "Add release tag"
|
||||
tasks = "scripts:addReleaseTag"
|
||||
}
|
||||
gradle {
|
||||
name = "Publish plugin"
|
||||
tasks = "publishPlugin"
|
||||
}
|
||||
script {
|
||||
name = "Push changes to the repo"
|
||||
scriptContent = """
|
||||
branch=$(git branch --show-current)
|
||||
echo current branch is ${'$'}branch
|
||||
git push origin %build.number%
|
||||
""".trimIndent()
|
||||
}
|
||||
gradle {
|
||||
name = "YouTrack post release actions"
|
||||
tasks = "scripts:eapReleaseActions"
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
|
||||
threshold = 5
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.DIFF
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
160
.teamcity/_Self/buildTypes/ReleasePlugin.kt
vendored
Normal file
160
.teamcity/_Self/buildTypes/ReleasePlugin.kt
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import _Self.Constants.DEFAULT_CHANNEL
|
||||
import _Self.Constants.DEV_CHANNEL
|
||||
import _Self.Constants.EAP_CHANNEL
|
||||
import _Self.Constants.RELEASE
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
|
||||
|
||||
object ReleaseMajor : ReleasePlugin("major")
|
||||
object ReleaseMinor : ReleasePlugin("minor")
|
||||
object ReleasePatch : ReleasePlugin("patch")
|
||||
|
||||
sealed class ReleasePlugin(private val releaseType: String) : IdeaVimBuildType({
|
||||
name = "Publish $releaseType release"
|
||||
description = "Build and publish IdeaVim plugin"
|
||||
|
||||
artifactRules = "build/distributions/*"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_publishToken",
|
||||
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
|
||||
label = "Password"
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_publishChannels", "$DEFAULT_CHANNEL,$EAP_CHANNEL,$DEV_CHANNEL")
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_slackUrl",
|
||||
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
|
||||
label = "Slack Token"
|
||||
)
|
||||
password(
|
||||
"env.ORG_GRADLE_PROJECT_youtrackToken",
|
||||
"credentialsJSON:7bc0eb3a-b86a-4ebd-b622-d4ef12d7e1d3",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
param("env.ORG_GRADLE_PROJECT_releaseType", releaseType)
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:<default>"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
script {
|
||||
name = "Pull git tags"
|
||||
scriptContent = "git fetch --tags origin"
|
||||
}
|
||||
script {
|
||||
name = "Pull git history"
|
||||
scriptContent = "git fetch --unshallow"
|
||||
}
|
||||
script {
|
||||
name = "Reset release branch"
|
||||
scriptContent = """
|
||||
if [ "major" = "$releaseType" ] || [ "minor" = "$releaseType" ]
|
||||
then
|
||||
echo Resetting the release branch because the release type is $releaseType
|
||||
git checkout master
|
||||
latest_eap=${'$'}(git describe --tags --match="[0-9].[0-9]*.[0-9]-eap.[0-9]*" --abbrev=0 HEAD)
|
||||
echo Latest EAP: ${'$'}latest_eap
|
||||
commit_of_latest_eap=${'$'}(git rev-list -n 1 ${'$'}latest_eap)
|
||||
echo Commit of latest EAP: ${'$'}commit_of_latest_eap
|
||||
git checkout release
|
||||
git reset --hard ${'$'}commit_of_latest_eap
|
||||
else
|
||||
git checkout release
|
||||
echo Do not reset the release branch because the release type is $releaseType
|
||||
fi
|
||||
echo Checked out release branch
|
||||
""".trimIndent()
|
||||
}
|
||||
gradle {
|
||||
name = "Calculate new version"
|
||||
tasks = "scripts:calculateNewVersion"
|
||||
}
|
||||
gradle {
|
||||
name = "Set TeamCity build number"
|
||||
tasks = "scripts:setTeamCityBuildNumber"
|
||||
}
|
||||
// gradle {
|
||||
// name = "Update change log"
|
||||
// tasks = "scripts:changelogUpdateUnreleased"
|
||||
// }
|
||||
// gradle {
|
||||
// name = "Commit preparation changes"
|
||||
// tasks = "scripts:commitChanges"
|
||||
// }
|
||||
gradle {
|
||||
name = "Add release tag"
|
||||
tasks = "scripts:addReleaseTag"
|
||||
}
|
||||
script {
|
||||
name = "Run tests"
|
||||
scriptContent = "./gradlew test"
|
||||
}
|
||||
gradle {
|
||||
name = "Publish release"
|
||||
tasks = "publishPlugin"
|
||||
}
|
||||
// script {
|
||||
// name = "Checkout master branch"
|
||||
// scriptContent = """
|
||||
// echo Checkout master
|
||||
// git checkout master
|
||||
// """.trimIndent()
|
||||
// }
|
||||
// gradle {
|
||||
// name = "Update change log in master"
|
||||
// tasks = "scripts:changelogUpdateUnreleased"
|
||||
// }
|
||||
// gradle {
|
||||
// name = "Commit preparation changes in master"
|
||||
// tasks = "scripts:commitChanges"
|
||||
// }
|
||||
script {
|
||||
name = "Push changes to the repo"
|
||||
scriptContent = """
|
||||
git checkout release
|
||||
echo checkout release branch
|
||||
git branch --set-upstream-to=origin/release release
|
||||
git push origin --force
|
||||
# Push tag
|
||||
git push origin %build.number%
|
||||
""".trimIndent()
|
||||
}
|
||||
gradle {
|
||||
name = "Run Integrations"
|
||||
tasks = "releaseActions"
|
||||
gradleParams = "--no-configuration-cache"
|
||||
}
|
||||
// gradle {
|
||||
// name = "Slack Notification"
|
||||
// tasks = "slackNotification"
|
||||
// }
|
||||
}
|
||||
|
||||
features {
|
||||
sshAgent {
|
||||
teamcitySshKey = "IdeaVim ssh keys"
|
||||
}
|
||||
}
|
||||
})
|
@@ -1,6 +1,8 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import _Self.IdeaVimBuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
@@ -8,39 +10,49 @@ import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailu
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class ActiveTests(buildName: String, ijVersion: String) : BuildType({
|
||||
name = buildName
|
||||
open class TestingBuildType(
|
||||
private val testName: String,
|
||||
private val branch: String,
|
||||
private val version: String = testName,
|
||||
private val javaVersion: String? = null,
|
||||
private val javaPlugin: Boolean = true,
|
||||
) : IdeaVimBuildType({
|
||||
id("IdeaVimTests_${testName.vanish()}")
|
||||
name = "Tests for IntelliJ $testName"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", ijVersion)
|
||||
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", javaPlugin.not().toString())
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", version)
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
if (javaVersion != null) {
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", javaVersion)
|
||||
}
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(DslContext.settingsRoot)
|
||||
branchFilter = "+:$branch"
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean check -x ktlintMainSourceSetCheck -x ktlintTestSourceSetCheck"
|
||||
clearConditions()
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
jdkHome = "/usr/lib/jvm/java-17-amazon-corretto"
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
branchFilter = "+:$branch"
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
@@ -54,5 +66,9 @@ sealed class ActiveTests(buildName: String, ijVersion: String) : BuildType({
|
||||
}
|
||||
})
|
||||
|
||||
object TestsForIntelliJEAP : ActiveTests("Tests for IntelliJ Latest EAP", "LATEST-EAP-SNAPSHOT")
|
||||
object TestsForIntelliJ20213 : ActiveTests("Tests for IntelliJ 2021.3", "2021.3.2")
|
||||
private fun String.vanish(): String {
|
||||
return this
|
||||
.replace(' ', '_')
|
||||
.replace('.', '_')
|
||||
.replace('-', '_')
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object TestsForIntelliJ20183 : BuildType({
|
||||
name = "Tests for IntelliJ 2018.3"
|
||||
description = "branch 183"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2018.3")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_183)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
@@ -1,61 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class TestsForIntelliJ_181_branch(private val version: String) : BuildType({
|
||||
name = "Tests for IntelliJ $version"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_181)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
object TestsForIntelliJ20181 : TestsForIntelliJ_181_branch("2018.1")
|
||||
object TestsForIntelliJ20182 : TestsForIntelliJ_181_branch("2018.2")
|
@@ -1,63 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class TestsForIntelliJ_191_193_branch(private val version: String) : BuildType({
|
||||
name = "Tests for IntelliJ $version"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_191_193)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
object TestsForIntelliJ20191 : TestsForIntelliJ_191_193_branch("2019.1")
|
||||
object TestsForIntelliJ20192 : TestsForIntelliJ_191_193_branch("2019.2")
|
||||
object TestsForIntelliJ20193 : TestsForIntelliJ_191_193_branch("2019.3")
|
@@ -1,60 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class TestsForIntelliJ_201_branch(private val version: String) : BuildType({
|
||||
name = "Tests for IntelliJ $version"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_201)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
object TestsForIntelliJ20201 : TestsForIntelliJ_201_branch("2020.1")
|
@@ -1,60 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class TestsForIntelliJ_202_branch(private val version: String) : BuildType({
|
||||
name = "Tests for IntelliJ $version"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_202)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
object TestsForIntelliJ20202 : TestsForIntelliJ_202_branch("2020.2")
|
@@ -1,64 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
sealed class TestsForIntelliJ_203_212_branch(private val version: String) : BuildType({
|
||||
name = "Tests for IntelliJ $version"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
|
||||
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(_Self.vcsRoots.Branch_203_212)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = "clean test"
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
requirements {
|
||||
noLessThanVer("teamcity.agent.jvm.version", "1.8")
|
||||
}
|
||||
|
||||
failureConditions {
|
||||
failOnMetricChange {
|
||||
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
|
||||
threshold = 20
|
||||
units = BuildFailureOnMetric.MetricUnit.PERCENTS
|
||||
comparison = BuildFailureOnMetric.MetricComparison.LESS
|
||||
compareTo = build {
|
||||
buildRule = lastSuccessful()
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
object TestsForIntelliJ20212 : TestsForIntelliJ_203_212_branch("2021.2.2")
|
||||
object TestsForIntelliJ20211 : TestsForIntelliJ_203_212_branch("2021.1")
|
||||
object TestsForIntelliJ20203 : TestsForIntelliJ_203_212_branch("2020.3")
|
69
.teamcity/_Self/subprojects/GitHub.kt
vendored
69
.teamcity/_Self/subprojects/GitHub.kt
vendored
@@ -1,11 +1,76 @@
|
||||
package _Self.subprojects
|
||||
|
||||
import _Self.buildTypes.GithubTests
|
||||
import _Self.IdeaVimBuildType
|
||||
import _Self.vcsRoots.GitHubPullRequest
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.PullRequests
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.commitStatusPublisher
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.pullRequests
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
|
||||
object GitHub : Project({
|
||||
name = "Pull Requests checks"
|
||||
description = "Automatic checking of GitHub Pull Requests"
|
||||
|
||||
buildType(GithubTests)
|
||||
buildType(GithubBuildType("clean test", "Tests"))
|
||||
})
|
||||
|
||||
class GithubBuildType(command: String, desc: String) : IdeaVimBuildType({
|
||||
name = "GitHub Pull Requests $desc"
|
||||
description = "Test GitHub pull requests $desc"
|
||||
|
||||
params {
|
||||
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
|
||||
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
|
||||
}
|
||||
|
||||
vcs {
|
||||
root(GitHubPullRequest)
|
||||
|
||||
checkoutMode = CheckoutMode.AUTO
|
||||
branchFilter = """
|
||||
+:*
|
||||
-:<default>
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
steps {
|
||||
gradle {
|
||||
tasks = command
|
||||
buildFile = ""
|
||||
enableStacktrace = true
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
vcs {
|
||||
quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
|
||||
features {
|
||||
pullRequests {
|
||||
provider = github {
|
||||
authType = token {
|
||||
token = "credentialsJSON:90f3b439-6e91-40f7-a086-d4dd8e0ea9b8"
|
||||
}
|
||||
filterTargetBranch = "refs/heads/master"
|
||||
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
|
||||
}
|
||||
}
|
||||
commitStatusPublisher {
|
||||
vcsRootExtId = "${GitHubPullRequest.id}"
|
||||
publisher = github {
|
||||
githubUrl = "https://api.github.com"
|
||||
authType = personalToken {
|
||||
token = "credentialsJSON:90f3b439-6e91-40f7-a086-d4dd8e0ea9b8"
|
||||
}
|
||||
}
|
||||
param("github_oauth_user", "AlexPl292")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
31
.teamcity/_Self/subprojects/OldTests.kt
vendored
31
.teamcity/_Self/subprojects/OldTests.kt
vendored
@@ -1,31 +0,0 @@
|
||||
package _Self.subprojects
|
||||
|
||||
import _Self.buildTypes.TestsForIntelliJ20181
|
||||
import _Self.buildTypes.TestsForIntelliJ20182
|
||||
import _Self.buildTypes.TestsForIntelliJ20183
|
||||
import _Self.buildTypes.TestsForIntelliJ20191
|
||||
import _Self.buildTypes.TestsForIntelliJ20192
|
||||
import _Self.buildTypes.TestsForIntelliJ20193
|
||||
import _Self.buildTypes.TestsForIntelliJ20201
|
||||
import _Self.buildTypes.TestsForIntelliJ20202
|
||||
import _Self.buildTypes.TestsForIntelliJ20203
|
||||
import _Self.buildTypes.TestsForIntelliJ20211
|
||||
import _Self.buildTypes.TestsForIntelliJ20212
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
|
||||
|
||||
object OldTests : Project({
|
||||
name = "Old IdeaVim tests"
|
||||
description = "Tests for older versions of IJ"
|
||||
|
||||
buildType(TestsForIntelliJ20181)
|
||||
buildType(TestsForIntelliJ20182)
|
||||
buildType(TestsForIntelliJ20183)
|
||||
buildType(TestsForIntelliJ20191)
|
||||
buildType(TestsForIntelliJ20192)
|
||||
buildType(TestsForIntelliJ20193)
|
||||
buildType(TestsForIntelliJ20201)
|
||||
buildType(TestsForIntelliJ20202)
|
||||
buildType(TestsForIntelliJ20203)
|
||||
buildType(TestsForIntelliJ20211)
|
||||
buildType(TestsForIntelliJ20212)
|
||||
})
|
37
.teamcity/_Self/subprojects/Releases.kt
vendored
37
.teamcity/_Self/subprojects/Releases.kt
vendored
@@ -1,15 +1,48 @@
|
||||
package _Self.subprojects
|
||||
|
||||
import _Self.buildTypes.Release
|
||||
import _Self.buildTypes.CreateNewReleaseBranchFromMaster
|
||||
import _Self.buildTypes.PrintReleaseBranch
|
||||
import _Self.buildTypes.PublishVimEngine
|
||||
import _Self.buildTypes.ReleaseDev
|
||||
import _Self.buildTypes.ReleaseEap
|
||||
import _Self.buildTypes.ReleaseEapFromBranch
|
||||
import _Self.buildTypes.ReleaseMajor
|
||||
import _Self.buildTypes.ReleaseMinor
|
||||
import _Self.buildTypes.ReleasePatch
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
|
||||
|
||||
object Releases : Project({
|
||||
name = "IdeaVim releases"
|
||||
description = "Stable and EAP releases for IdeaVim"
|
||||
|
||||
buildType(Release)
|
||||
params {
|
||||
password(
|
||||
"env.CERTIFICATE_CHAIN",
|
||||
"credentialsJSON:1bab4a88-10e7-4bf9-856c-e6253499dc95",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
password(
|
||||
"env.PRIVATE_KEY_PASSWORD",
|
||||
"credentialsJSON:7c12c867-fe09-4a2f-884d-6fd0ec0a1e79",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
password(
|
||||
"env.PRIVATE_KEY",
|
||||
"credentialsJSON:5d8b553d-fd7e-4347-abd2-51d8d0f2b3f7",
|
||||
display = ParameterDisplay.HIDDEN
|
||||
)
|
||||
}
|
||||
|
||||
// buildType(Release)
|
||||
buildType(ReleaseMajor)
|
||||
buildType(ReleaseMinor)
|
||||
buildType(ReleasePatch)
|
||||
buildType(ReleaseEap)
|
||||
buildType(ReleaseDev)
|
||||
buildType(PublishVimEngine)
|
||||
|
||||
buildType(CreateNewReleaseBranchFromMaster)
|
||||
buildType(PrintReleaseBranch)
|
||||
buildType(ReleaseEapFromBranch)
|
||||
})
|
||||
|
12
.teamcity/_Self/vcsRoots/Branch_181.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_181.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_181 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 181)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "181"
|
||||
useMirrors = false
|
||||
})
|
12
.teamcity/_Self/vcsRoots/Branch_183.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_183.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_183 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 183)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "183"
|
||||
useMirrors = false
|
||||
})
|
12
.teamcity/_Self/vcsRoots/Branch_191_193.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_191_193.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_191_193 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 191-193)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "191-193"
|
||||
useMirrors = false
|
||||
})
|
12
.teamcity/_Self/vcsRoots/Branch_201.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_201.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_201 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 201)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "201"
|
||||
useMirrors = false
|
||||
})
|
12
.teamcity/_Self/vcsRoots/Branch_202.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_202.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_202 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 202)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "202"
|
||||
useMirrors = false
|
||||
})
|
12
.teamcity/_Self/vcsRoots/Branch_203_212.kt
vendored
12
.teamcity/_Self/vcsRoots/Branch_203_212.kt
vendored
@@ -1,12 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_203_212 : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch 203-212)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "203-212"
|
||||
useMirrors = false
|
||||
})
|
11
.teamcity/_Self/vcsRoots/Branch_Release.kt
vendored
11
.teamcity/_Self/vcsRoots/Branch_Release.kt
vendored
@@ -1,11 +0,0 @@
|
||||
@file:Suppress("ClassName")
|
||||
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object Branch_Release : GitVcsRoot({
|
||||
name = "https://github.com/JetBrains/ideavim (branch release)"
|
||||
url = "https://github.com/JetBrains/ideavim.git"
|
||||
branch = "release"
|
||||
})
|
@@ -7,6 +7,6 @@ object GitHubPullRequest : GitVcsRoot({
|
||||
url = "git@github.com:JetBrains/ideavim.git"
|
||||
branchSpec = "+:refs/(pull/*)/head"
|
||||
authMethod = uploadedKey {
|
||||
uploadedKey = "Alex Plate TeamCity key"
|
||||
uploadedKey = "IdeaVim ssh keys"
|
||||
}
|
||||
})
|
||||
|
13
.teamcity/_Self/vcsRoots/Releases.kt
vendored
Normal file
13
.teamcity/_Self/vcsRoots/Releases.kt
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
package _Self.vcsRoots
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
|
||||
|
||||
object ReleasesVcsRoot : GitVcsRoot({
|
||||
name = "IdeaVim Releases"
|
||||
url = "git@github.com:JetBrains/ideavim.git"
|
||||
branch = "refs/heads/master"
|
||||
branchSpec = "+:refs/(*)"
|
||||
authMethod = uploadedKey {
|
||||
uploadedKey = "IdeaVim ssh keys"
|
||||
}
|
||||
})
|
20
.teamcity/patches/buildTypes/IdeaVimTests_Latest_EAP_With_Xorg.kts
vendored
Normal file
20
.teamcity/patches/buildTypes/IdeaVimTests_Latest_EAP_With_Xorg.kts
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
package patches.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.*
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
|
||||
|
||||
/*
|
||||
This patch script was generated by TeamCity on settings change in UI.
|
||||
To apply the patch, change the buildType with id = 'IdeaVimTests_Latest_EAP_With_Xorg'
|
||||
accordingly, and delete the patch script.
|
||||
*/
|
||||
changeBuildType(RelativeId("IdeaVimTests_Latest_EAP_With_Xorg")) {
|
||||
requirements {
|
||||
add {
|
||||
matches("teamcity.agent.jvm.os.family", "Linux")
|
||||
}
|
||||
add {
|
||||
exists("env.DISPLAY")
|
||||
}
|
||||
}
|
||||
}
|
25
.teamcity/patches/buildTypes/Nvim.kts
vendored
25
.teamcity/patches/buildTypes/Nvim.kts
vendored
@@ -1,25 +0,0 @@
|
||||
package patches.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.*
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
|
||||
|
||||
/*
|
||||
This patch script was generated by TeamCity on settings change in UI.
|
||||
To apply the patch, change the buildType with id = 'Nvim'
|
||||
accordingly, and delete the patch script.
|
||||
*/
|
||||
changeBuildType(RelativeId("Nvim")) {
|
||||
triggers {
|
||||
val trigger1 = find<VcsTrigger> {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
trigger1.apply {
|
||||
enabled = false
|
||||
|
||||
}
|
||||
}
|
||||
}
|
25
.teamcity/patches/buildTypes/PluginVerifier.kts
vendored
25
.teamcity/patches/buildTypes/PluginVerifier.kts
vendored
@@ -1,25 +0,0 @@
|
||||
package patches.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.*
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
|
||||
|
||||
/*
|
||||
This patch script was generated by TeamCity on settings change in UI.
|
||||
To apply the patch, change the buildType with id = 'PluginVerifier'
|
||||
accordingly, and delete the patch script.
|
||||
*/
|
||||
changeBuildType(RelativeId("PluginVerifier")) {
|
||||
triggers {
|
||||
val trigger1 = find<VcsTrigger> {
|
||||
vcs {
|
||||
branchFilter = ""
|
||||
}
|
||||
}
|
||||
trigger1.apply {
|
||||
enabled = false
|
||||
|
||||
}
|
||||
}
|
||||
}
|
60
.teamcity/patches/buildTypes/Qodana.kts
vendored
60
.teamcity/patches/buildTypes/Qodana.kts
vendored
@@ -1,60 +0,0 @@
|
||||
package patches.buildTypes
|
||||
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.*
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.Qodana
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.qodana
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
|
||||
|
||||
/*
|
||||
This patch script was generated by TeamCity on settings change in UI.
|
||||
To apply the patch, change the buildType with id = 'Qodana'
|
||||
accordingly, and delete the patch script.
|
||||
*/
|
||||
changeBuildType(RelativeId("Qodana")) {
|
||||
expectSteps {
|
||||
qodana {
|
||||
name = "Qodana"
|
||||
reportAsTests = true
|
||||
inspectionProfile = customProfile {
|
||||
path = ".idea/inspectionProfiles/Qodana.xml"
|
||||
}
|
||||
param("clonefinder-enable", "true")
|
||||
param("clonefinder-languages", "Java")
|
||||
param("clonefinder-languages-container", "Java Kotlin")
|
||||
param("clonefinder-mode", "")
|
||||
param("clonefinder-queried-project", "src")
|
||||
param("clonefinder-reference-projects", "src")
|
||||
param("fail-build-on-errors", "")
|
||||
param("licenseaudit-enable", "true")
|
||||
param("namesAndTagsCustom", "repo.labs.intellij.net/static-analyser/qodana")
|
||||
param("report-version", "")
|
||||
param("yaml-configuration", "")
|
||||
}
|
||||
}
|
||||
steps {
|
||||
update<Qodana>(0) {
|
||||
clearConditions()
|
||||
linter = jvm {
|
||||
version = Qodana.JVMVersion.LATEST
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
triggers {
|
||||
val trigger1 = find<ScheduleTrigger> {
|
||||
schedule {
|
||||
schedulingPolicy = weekly {
|
||||
dayOfWeek = ScheduleTrigger.DAY.Tuesday
|
||||
}
|
||||
branchFilter = ""
|
||||
triggerBuild = always()
|
||||
}
|
||||
}
|
||||
trigger1.apply {
|
||||
enabled = false
|
||||
|
||||
}
|
||||
}
|
||||
}
|
2
.teamcity/pom.xml
vendored
2
.teamcity/pom.xml
vendored
@@ -22,7 +22,7 @@
|
||||
</repository>
|
||||
<repository>
|
||||
<id>teamcity-server</id>
|
||||
<url>https://teamcity.jetbrains.com/app/dsl-plugins-repository</url>
|
||||
<url>https://ideavim.teamcity.com/app/dsl-plugins-repository</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
|
7
.teamcity/settings.kts
vendored
7
.teamcity/settings.kts
vendored
@@ -1,4 +1,5 @@
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.*
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.project
|
||||
import jetbrains.buildServer.configs.kotlin.v2019_2.version
|
||||
|
||||
/*
|
||||
The settings script is an entry point for defining a single
|
||||
@@ -29,5 +30,5 @@ node (Plugins -> teamcity-configs -> teamcity-configs:generate),
|
||||
the 'Debug' option is available in the context menu for the task.
|
||||
*/
|
||||
|
||||
version = "2020.2"
|
||||
project(_Self.Project)
|
||||
version = "2024.03"
|
||||
project(_Self.Project)
|
||||
|
219
AUTHORS.md
219
AUTHORS.md
@@ -32,16 +32,48 @@ Contributors:
|
||||
[![icon][github]](https://github.com/yole)
|
||||
|
||||
Dmitry Jemerov
|
||||
* [![icon][mail]](mailto:tony.kay@gmail.com)
|
||||
[![icon][github]](https://github.com/awkay)
|
||||
|
||||
Tony Kay
|
||||
* [![icon][mail]](mailto:jamescmartinez@gmail.com)
|
||||
[![icon][github]](https://github.com/jamescmartinez)
|
||||
|
||||
James Martinez
|
||||
* [![icon][mail]](mailto:almas337519@gmail.com)
|
||||
[![icon][github]](https://github.com/strogiyotec)
|
||||
|
||||
strogiyotec
|
||||
* [![icon][mail]](mailto:raimon49@hotmail.com)
|
||||
[![icon][github]](https://github.com/raimon49)
|
||||
|
||||
raimon
|
||||
* [![icon][mail]](mailto:agrsbm@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
|
||||
Alexander Griesbaum
|
||||
* [![icon][mail]](mailto:manwe64@gmail.com)
|
||||
[![icon][github]](https://github.com/baldrs)
|
||||
|
||||
Baldrs
|
||||
* [![icon][mail]](mailto:yury@shurup.com)
|
||||
[![icon][github]](https://github.com/zyv)
|
||||
|
||||
Yury V. Zaytsev
|
||||
* [![icon][mail]](mailto:jflorian@doubledog.org)
|
||||
[![icon][github]](https://github.com/jflorian)
|
||||
|
||||
John Florian
|
||||
* [![icon][mail]](mailto:marquis@marquiswang.com)
|
||||
[![icon][github]](https://github.com/marquiswang)
|
||||
|
||||
Marquis Wang
|
||||
* [![icon][mail]](mailto:madgnome@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/madgnome)
|
||||
|
||||
Julien Hoarau
|
||||
* [![icon][mail]](mailto:masanobu.imai@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/masanobuimai)
|
||||
|
||||
Masanobu Imai
|
||||
* [![icon][mail]](mailto:poxvuibr@gmail.com)
|
||||
@@ -57,7 +89,7 @@ Contributors:
|
||||
|
||||
John Lindquist
|
||||
* [![icon][mail]](mailto:iklotzko@ltech.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/iklotzko)
|
||||
|
||||
Ira Klotzko
|
||||
* [![icon][mail]](mailto:alex@selesse.com)
|
||||
@@ -65,7 +97,7 @@ Contributors:
|
||||
|
||||
Alex Selesse
|
||||
* [![icon][mail]](mailto:dbennett@palantir.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/dathanb)
|
||||
|
||||
Dathan Bennett
|
||||
* [![icon][mail]](mailto:kphayen@gmail.com)
|
||||
@@ -77,11 +109,11 @@ Contributors:
|
||||
|
||||
Alexey Shmalko
|
||||
* [![icon][mail]](mailto:a.m.brookins@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/abrookins)
|
||||
|
||||
Andrew Brookins
|
||||
* [![icon][mail]](mailto:changwang83@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/changwang)
|
||||
|
||||
Chang Wang
|
||||
* [![icon][mail]](mailto:josejaime.sanchez@gmail.com)
|
||||
@@ -89,19 +121,19 @@ Contributors:
|
||||
|
||||
Jaime Sanchez
|
||||
* [![icon][mail]](mailto:thomas@homburg.dk)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/homburg)
|
||||
|
||||
Thomas B Homburg
|
||||
* [![icon][mail]](mailto:smartbomb@server.fake)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/smartbomb)
|
||||
|
||||
smartbomb
|
||||
* [![icon][mail]](mailto:tuomas.tynkkynen@iki.fi)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/dezgeg)
|
||||
|
||||
Tuomas Tynkkynen
|
||||
* [![icon][mail]](mailto:jackson@donorschoose.org)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/jdpopkin)
|
||||
|
||||
Jackson Popkin
|
||||
* [![icon][mail]](mailto:yuyuyu1999@gmail.com)
|
||||
@@ -109,7 +141,7 @@ Contributors:
|
||||
|
||||
Teruo Kunihiro
|
||||
* [![icon][mail]](mailto:lubashka.994@mail.ru)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/lubba)
|
||||
|
||||
Liubov Paina
|
||||
* [![icon][mail]](mailto:me@dhleong.net)
|
||||
@@ -133,11 +165,11 @@ Contributors:
|
||||
|
||||
Pavel Fatin
|
||||
* [![icon][mail]](mailto:tietyt@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github-off]](https://github.com/DanKaplanSES)
|
||||
|
||||
tieTYT
|
||||
* [![icon][mail]](mailto:nickgieschen@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/nickgieschen)
|
||||
|
||||
Nick Gieschen
|
||||
* [![icon][mail]](mailto:ikenox@gmail.com)
|
||||
@@ -149,11 +181,11 @@ Contributors:
|
||||
|
||||
Maximilian Luz
|
||||
* [![icon][mail]](mailto:vparfinenko@excelsior-usa.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/cypok)
|
||||
|
||||
Vladimir Parfinenko
|
||||
* [![icon][mail]](mailto:hassmann@hwdev.de)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github-off]](https://github.com/lumie1337)
|
||||
|
||||
Florian Hassmann
|
||||
* [![icon][mail]](mailto:jpalus@fastmail.com)
|
||||
@@ -161,7 +193,7 @@ Contributors:
|
||||
|
||||
Jan Palus
|
||||
* [![icon][mail]](mailto:kpetrov@ripe.net)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github-off]](https://github.com/constpetrov)
|
||||
|
||||
Konstantin Petrov
|
||||
* [![icon][mail]](mailto:ya-ikmik2012@yandex.ru)
|
||||
@@ -188,12 +220,8 @@ Contributors:
|
||||
[![icon][github]](https://github.com/johngrib)
|
||||
|
||||
John Grib
|
||||
* [![icon][mail]](mailto:hild@b4mad.net)
|
||||
[![icon][github-off]](#)
|
||||
|
||||
Marcel Hild
|
||||
* [![icon][mail]](mailto:vedranb@gmail.com)
|
||||
[![icon][github-off]](#)
|
||||
[![icon][github]](https://github.com/vedran)
|
||||
|
||||
Vedran Budimcic
|
||||
* [![icon][mail]](mailto:andreigasparovici1@gmail.com)
|
||||
@@ -208,10 +236,13 @@ Contributors:
|
||||
[![icon][github]](https://github.com/TonyArra)
|
||||
|
||||
Tony Arra
|
||||
* [![icon][mail]](mailto:bradziolko@gmail.com)
|
||||
[![icon][github]](https://github.com/bradziolko)
|
||||
* [![icon][mail]](mailto:mj@ziolko.dev)
|
||||
[![icon][github]](https://github.com/mjziolko)
|
||||
|
||||
Brad Ziolko
|
||||
Madeline Ziolko
|
||||
[Original contribution from:
|
||||
[![icon][mail]](mailto:bradziolko@gmail.com)
|
||||
[![icon][github]](https://github.com/bradziolko)]
|
||||
* [![icon][mail]](mailto:sumoooru2@gmail.com)
|
||||
[![icon][github]](https://github.com/sumoooru2)
|
||||
|
||||
@@ -284,10 +315,6 @@ Contributors:
|
||||
[![icon][github]](https://github.com/angelbot)
|
||||
|
||||
John Weigel
|
||||
* [![icon][mail]](mailto:kevinz@weghst.com)
|
||||
[![icon][github]](https://github.com/kevin70)
|
||||
|
||||
kk
|
||||
* [![icon][mail]](mailto:runforprogram@163.com)
|
||||
[![icon][github]](https://github.com/runforprogram)
|
||||
|
||||
@@ -416,6 +443,142 @@ Contributors:
|
||||
[![icon][github]](https://github.com/Vvalter)
|
||||
|
||||
Simon Rainer
|
||||
* [![icon][mail]](mailto:filipp.vakhitov@jetbrains.com)
|
||||
[![icon][github]](https://github.com/lippfi)
|
||||
|
||||
lippfi
|
||||
* [![icon][mail]](mailto:3237686+Runinho@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/Runinho)
|
||||
|
||||
Runinho
|
||||
* [![icon][mail]](mailto:me@yuhaowen.com)
|
||||
[![icon][github]](https://github.com/adaext)
|
||||
|
||||
Ada
|
||||
* [![icon][mail]](mailto:dominic.palmer@outlook.com)
|
||||
[![icon][github]](https://github.com/dominicpalmer)
|
||||
|
||||
Dominic Palmer
|
||||
* [![icon][mail]](mailto:kawagh.dev@gmail.com)
|
||||
[![icon][github]](https://github.com/kawagh)
|
||||
|
||||
kawagh
|
||||
* [![icon][mail]](mailto:78074243+danisevas@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/danisevas)
|
||||
|
||||
Dani Sevastianov
|
||||
* [![icon][mail]](mailto:oskar.persson@polken.se)
|
||||
[![icon][github]](https://github.com/oskarpersson/)
|
||||
|
||||
Oskar Persson
|
||||
* [![icon][mail]](mailto:silence.m@hotmail.com)
|
||||
[![icon][github]](https://github.com/Stzx)
|
||||
|
||||
Silence Tai
|
||||
* [![icon][mail]](mailto:tszsumng90@gmail.com)
|
||||
[![icon][github]](https://github.com/samabcde)
|
||||
|
||||
Sam Ng
|
||||
* [![icon][mail]](mailto:ludwig.valda.vasquez@jetbrains.com)
|
||||
[![icon][github]](https://github.com/ludwig-jb)
|
||||
|
||||
ludwig-jb
|
||||
* [![icon][mail]](mailto:pvydmuch@gmail.com)
|
||||
[![icon][github]](https://github.com/pWydmuch)
|
||||
|
||||
pWydmuch
|
||||
* [![icon][mail]](mailto:leonid989@gmail.com)
|
||||
[![icon][github]](https://github.com/Infonautica)
|
||||
|
||||
Leonid Danilov
|
||||
* [![icon][mail]](mailto:emanuel-367@hotmail.com)
|
||||
[![icon][github]](https://github.com/emanuelgestosa)
|
||||
|
||||
Emanuel Gestosa
|
||||
* [![icon][mail]](mailto:81118900+lippfi@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/lippfi)
|
||||
|
||||
lippfi,
|
||||
* [![icon][mail]](mailto:fillipser143@gmail.com)
|
||||
[![icon][github]](https://github.com/Parker7123)
|
||||
|
||||
FilipParker
|
||||
* [![icon][mail]](mailto:7138209+duhaesbaert@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/duhaesbaert)
|
||||
|
||||
Eduardo Haesbaert
|
||||
* [![icon][mail]](mailto:nikolaevsky.egor@gmail.com)
|
||||
[![icon][github]](https://github.com/Aisper)
|
||||
|
||||
Egor Nikolaevsky
|
||||
* [![icon][mail]](mailto:77796630+throwaway69420-69420@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/kun-codes)
|
||||
|
||||
Bishwa Saha,
|
||||
* [![icon][mail]](mailto:alexfu@fastmail.com)
|
||||
[![icon][github]](https://github.com/alexfu)
|
||||
|
||||
Alex Fu
|
||||
* [![icon][mail]](mailto:jakepeters199@hotmail.com)
|
||||
[![icon][github]](https://github.com/LazyScaper)
|
||||
|
||||
Jake
|
||||
* [![icon][mail]](mailto:the1xdeveloper@gmail.com)
|
||||
[![icon][github]](https://github.com/The1xDeveloper)
|
||||
|
||||
The1xDeveloper
|
||||
* [![icon][mail]](mailto:shaunewilliams@gmail.com)
|
||||
[![icon][github]](https://github.com/shaunlebron)
|
||||
|
||||
shaun
|
||||
* [![icon][mail]](mailto:i.i.babko@gmail.com)
|
||||
[![icon][github]](https://github.com/igorbabko)
|
||||
|
||||
Igor Babko
|
||||
* [![icon][mail]](mailto:533601+felixwiemuth@users.noreply.github.com)
|
||||
[![icon][github]](https://github.com/felixwiemuth)
|
||||
|
||||
Felix Wiemuth
|
||||
* [![icon][mail]](mailto:kirill.karnaukhov@jetbrains.com)
|
||||
[![icon][github]](https://github.com/kkarnauk)
|
||||
|
||||
Kirill Karnaukhov,
|
||||
* [![icon][mail]](mailto:sander.hestvik@gmail.com)
|
||||
[![icon][github]](https://github.com/SanderHestvik)
|
||||
|
||||
SanderHestvik
|
||||
* [![icon][mail]](mailto:gregory.shrago@jetbrains.com)
|
||||
[![icon][github]](https://github.com/gregsh)
|
||||
|
||||
Greg Shrago
|
||||
* [![icon][mail]](mailto:jphalip@gmail.com)
|
||||
[![icon][github]](https://github.com/jphalip)
|
||||
|
||||
Julien Phalip
|
||||
* [![icon][mail]](mailto:j.trimailovas@gmail.com)
|
||||
[![icon][github]](https://github.com/trimailov)
|
||||
|
||||
Justas Trimailovas,
|
||||
* [![icon][mail]](mailto:justast@wix.com)
|
||||
[![icon][github]](https://github.com/justast-wix)
|
||||
|
||||
Justas Trimailovas
|
||||
|
||||
Previous contributors:
|
||||
|
||||
* [![icon][mail]](mailto:hild@b4mad.net)
|
||||
[![icon][github-off]](#)
|
||||
|
||||
Marcel Hild
|
||||
* [![icon][mail]](mailto:kevinz@weghst.com)
|
||||
[![icon][github]](https://github.com/kevin70)
|
||||
|
||||
kk
|
||||
* [![icon][mail]](mailto:gregory.shrago@jetbrains.com)
|
||||
[![icon][github]](https://github.com/gregsh)
|
||||
|
||||
Greg Shrago
|
||||
|
||||
|
||||
If you are a contributor and your name is not listed here, feel free to
|
||||
contact the maintainers.
|
||||
|
242
CHANGES.md
242
CHANGES.md
@@ -23,7 +23,234 @@ It is important to distinguish EAP from traditional pre-release software.
|
||||
Please note that the quality of EAP versions may at times be way below even
|
||||
usual beta standards.
|
||||
|
||||
## To Be Released
|
||||
## End of changelog file maintenance
|
||||
|
||||
Since version 2.9.0, the changelog can be found on YouTrack
|
||||
|
||||
* [To Be Released](https://youtrack.jetbrains.com/issues/VIM?q=%23%7BReady%20To%20Release%7D%20)
|
||||
* [Version Fixes](https://youtrack.jetbrains.com/issues/VIM?q=State:%20Fixed%20sort%20by:%20%7BFix%20versions%7D%20asc)
|
||||
|
||||
## 2.9.0, 2024-02-20
|
||||
|
||||
### Fixes:
|
||||
* [VIM-3055](https://youtrack.jetbrains.com/issue/VIM-3055) Fix the issue with double deleting after dot
|
||||
|
||||
### Merged PRs:
|
||||
* [805](https://github.com/JetBrains/ideavim/pull/805) by [chylex](https://github.com/chylex): VIM-3238 Fix recording a macro that replays another macro
|
||||
|
||||
## 2.8.0, 2024-01-30
|
||||
|
||||
### Fixes:
|
||||
* [VIM-3130](https://youtrack.jetbrains.com/issue/VIM-3130) Change the build version to 2023.1.2
|
||||
* [VIM-3168](https://youtrack.jetbrains.com/issue/VIM-3168) Do not switch to block caret after enter if the IdeaVim is disabled
|
||||
* [VIM-3165](https://youtrack.jetbrains.com/issue/VIM-3165) Do not process enter key as IdeaVim shortcut if it's not an actual keypress
|
||||
* [VIM-3159](https://youtrack.jetbrains.com/issue/VIM-3159) Shift-enter now works in normal mode again
|
||||
* [VIM-3157](https://youtrack.jetbrains.com/issue/VIM-3157) Do not invoke enter in invokeLater for python console
|
||||
* [VIM-3195](https://youtrack.jetbrains.com/issue/VIM-3195) Fix escape in injected editor
|
||||
* [VIM-3190](https://youtrack.jetbrains.com/issue/VIM-3190) Do not use octopus handler if the enter key is used with modifiers like shift or control
|
||||
* [VIM-3203](https://youtrack.jetbrains.com/issue/VIM-3203) Split action not works in normal mode
|
||||
* [VIM-3184](https://youtrack.jetbrains.com/issue/VIM-3184) Revert "VIM-3184: Temporally disable new handlers for the thin client"
|
||||
* [VIM-3186](https://youtrack.jetbrains.com/issue/VIM-3186) Do not multiply the enter action by the amount of carets
|
||||
* [VIM-3177](https://youtrack.jetbrains.com/issue/VIM-3177) Formatting of commit message works again
|
||||
* [VIM-1611](https://youtrack.jetbrains.com/issue/VIM-1611) actions related to resolving conflicts doesn't seem to work
|
||||
* [VIM-3204](https://youtrack.jetbrains.com/issue/VIM-3204) Add checker that verifies the configuratin of the keymap
|
||||
* [VIM-3084](https://youtrack.jetbrains.com/issue/VIM-3084) Double update for the status bar icon
|
||||
* [VIM-3176](https://youtrack.jetbrains.com/issue/VIM-3176) Reselecting visual selection after pasting above it select wrong lines
|
||||
* [VIM-3206](https://youtrack.jetbrains.com/issue/VIM-3206) Disable both copilot suggestion and insert mode on a single escape
|
||||
* [VIM-3090](https://youtrack.jetbrains.com/issue/VIM-3090) Cmd line mode saves the visual mode
|
||||
* [VIM-3085](https://youtrack.jetbrains.com/issue/VIM-3085) Open access to VimTypedActionHandler and VimShortcutKeyAction
|
||||
* [VIM-3260](https://youtrack.jetbrains.com/issue/VIM-3260) Processing the offsets at the file end
|
||||
* [VIM-3183](https://youtrack.jetbrains.com/issue/VIM-3183) Execute .ideavimrc on pooled thread
|
||||
|
||||
### Merged PRs:
|
||||
* [763](https://github.com/JetBrains/ideavim/pull/763) by [Sam Ng](https://github.com/samabcde): Fix(VIM-3176) add test for restore selection after pasting in/below s…
|
||||
* [772](https://github.com/JetBrains/ideavim/pull/772) by [chylex](https://github.com/chylex): Prevent code completion popup from appearing after running a macro
|
||||
* [787](https://github.com/JetBrains/ideavim/pull/787) by [Leonid Danilov](https://github.com/Infonautica): Added "Which-Key" to Plugins
|
||||
* [778](https://github.com/JetBrains/ideavim/pull/778) by [lippfi](https://github.com/lippfi): Showmode
|
||||
* [788](https://github.com/JetBrains/ideavim/pull/788) by [Matt Ellis](https://github.com/citizenmatt): Refactor VimOptionGroupBase
|
||||
|
||||
## 2.7.0, 2023-11-07
|
||||
|
||||
### Fixes:
|
||||
* [VIM-2933](https://youtrack.jetbrains.com/issue/VIM-2933) Reloading/sourcing .ideavimrc does not initialize new plugins
|
||||
* [VIM-3138](https://youtrack.jetbrains.com/issue/VIM-3138) Do not try to register disposer if the caret is already disposed
|
||||
|
||||
### Merged PRs:
|
||||
* [734](https://github.com/JetBrains/ideavim/pull/734) by [Matt Ellis](https://github.com/citizenmatt): Support `~/` on Windows
|
||||
* [736](https://github.com/JetBrains/ideavim/pull/736) by [chylex](https://github.com/chylex): Fix(VIM-2933): Reloading/sourcing .ideavimrc does not initialize new plugins
|
||||
|
||||
## 2.6.3, 2023-10-30
|
||||
|
||||
### Changes:
|
||||
- 2.6.0 and 2.6.1 releases are broken. Version 2.6.3 reverts IdeaVim plugin to the working state as for 2.5.1.
|
||||
|
||||
## 2.6.0, 2023-10-27
|
||||
|
||||
This version of IdeaVim contains a lot of issues. Version 2.6.3 reverts these changes.
|
||||
|
||||
### Features:
|
||||
|
||||
* `ShowHoverInfo` action can be used in mappings to open a tooltip that is shown by
|
||||
mouse hovering | [VIM-2106](https://youtrack.jetbrains.com/issue/VIM-2106)
|
||||
* `has` Vim Script function supports the most common OS checks: win32, win64, linux, mac, macunix, osx, osxdarwin, bsd, sun, unix
|
||||
* See https://github.com/JetBrains/ideavim#vim-script for details about Vim Script
|
||||
|
||||
### Fixes:
|
||||
* [VIM-3060](https://youtrack.jetbrains.com/issue/VIM-3060) Clipboard interaction stopped working
|
||||
* [VIM-3095](https://youtrack.jetbrains.com/issue/VIM-3095) Fix missing ellipsis digraph
|
||||
* [VIM-2562](https://youtrack.jetbrains.com/issue/VIM-2562) Fix hang with multi-width chars in command line
|
||||
* [VIM-696](https://youtrack.jetbrains.com/issue/VIM-696) Vim selection issue after undo
|
||||
* [VIM-1639](https://youtrack.jetbrains.com/issue/VIM-1639) Ctrl-o and Ctrl-i jumping in files of different projects
|
||||
|
||||
### Merged PRs:
|
||||
* [697](https://github.com/JetBrains/ideavim/pull/697) by [Matt Ellis](https://github.com/citizenmatt): Support per-window "global" values for local-to-window options
|
||||
* [717](https://github.com/JetBrains/ideavim/pull/717) by [Matt Ellis](https://github.com/citizenmatt): Fix(VIM-2562): Fix hang with multi-width chars in command line
|
||||
* [732](https://github.com/JetBrains/ideavim/pull/732) by [pWydmuch](https://github.com/pWydmuch): Fix md links in doc
|
||||
* [733](https://github.com/JetBrains/ideavim/pull/733) by [Matt Ellis](https://github.com/citizenmatt): Add support for ShowHoverInfo action to 2023.1 and 2023.2
|
||||
* [729](https://github.com/JetBrains/ideavim/pull/729) by [chylex](https://github.com/chylex): Add operating system type to `has()` function
|
||||
* [726](https://github.com/JetBrains/ideavim/pull/726) by [Matt Ellis](https://github.com/citizenmatt): Fix range for fall back comment mode
|
||||
|
||||
## 2.5.0, 2023-09-01
|
||||
|
||||
### Fixes:
|
||||
* [VIM-802](https://youtrack.jetbrains.com/issue/VIM-802) IdeaVim vs. Vim: discrepancies in using registers
|
||||
* [VIM-2246](https://youtrack.jetbrains.com/issue/VIM-2246) X11/Xorg Primary selection register "* not supported
|
||||
* [VIM-2313](https://youtrack.jetbrains.com/issue/VIM-2313)
|
||||
[VIM-2318](https://youtrack.jetbrains.com/issue/VIM-2318)
|
||||
[VIM-2666](https://youtrack.jetbrains.com/issue/VIM-2666)
|
||||
[VIM-2951](https://youtrack.jetbrains.com/issue/VIM-2951)
|
||||
IdeaVim works correctly in read-only editors like log or tests output.
|
||||
|
||||
### Merged PRs:
|
||||
* [666](https://github.com/JetBrains/ideavim/pull/666) by [Matt Ellis](https://github.com/citizenmatt): Improve formatting of `:set` command output
|
||||
* [667](https://github.com/JetBrains/ideavim/pull/667) by [Matt Ellis](https://github.com/citizenmatt): Eagerly initialise local options and introduce option scope
|
||||
* [672](https://github.com/JetBrains/ideavim/pull/672) by [Matt Ellis](https://github.com/citizenmatt): Fix issue adding back hidden status bar widget
|
||||
* [668](https://github.com/JetBrains/ideavim/pull/668) by [ludwig-jb](https://github.com/ludwig-jb): Handle unicode grapheme clusters
|
||||
|
||||
## 2.4.0, 2023-07-18
|
||||
|
||||
### Fixes:
|
||||
* [VIM-2975](https://youtrack.jetbrains.com/issue/VIM-2975) Fix the offset after the rendered docs
|
||||
* [VIM-2685](https://youtrack.jetbrains.com/issue/VIM-2685) Register command outputs different values for same registers
|
||||
* [VIM-1294](https://youtrack.jetbrains.com/issue/VIM-1294) unvoluntary unfolding when using ideavim
|
||||
* [VIM-2818](https://youtrack.jetbrains.com/issue/VIM-2818) Wrong caret position after multicaret paste
|
||||
|
||||
### Merged PRs:
|
||||
* [662](https://github.com/JetBrains/ideavim/pull/662) by [ludwig-jb](https://github.com/ludwig-jb): Update VimMessages#updateStatusBar to accept VimEditor
|
||||
* [659](https://github.com/JetBrains/ideavim/pull/659) by [Sam Ng](https://github.com/samabcde): VIM-2920 fix select block expansion when enclose boundary is line break
|
||||
|
||||
## 2.3.0, 2023-06-14
|
||||
|
||||
### Features:
|
||||
* Matchit now supports PHP files | [VIM-2678](https://youtrack.jetbrains.com/issue/VIM-2678)
|
||||
|
||||
### Fixes:
|
||||
* [VIM-2909](https://youtrack.jetbrains.com/issue/VIM-2909) Fix incorrect file detection while closing diff window
|
||||
* [VIM-2912](https://youtrack.jetbrains.com/issue/VIM-2912) Fix focus after :q
|
||||
* [VIM-2930](https://youtrack.jetbrains.com/issue/VIM-2930) vim-multiple-cursors + ReplaceWithRegister issue
|
||||
* [VIM-2945](https://youtrack.jetbrains.com/issue/VIM-2945) %-movement mismatches braces
|
||||
* [VIM-2953](https://youtrack.jetbrains.com/issue/VIM-2953) The previous fix for :q command caused weird behavior of tab closing
|
||||
* [VIM-2964](https://youtrack.jetbrains.com/issue/VIM-2964) Fix an issue with leaking caret instance
|
||||
|
||||
### Merged PRs:
|
||||
* [616](https://github.com/JetBrains/ideavim/pull/616) by [Matt Ellis](https://github.com/citizenmatt): Refactor/option delegated properties
|
||||
* [626](https://github.com/JetBrains/ideavim/pull/626) by [Martin Yzeiri](https://github.com/myzeiri): Matchit bug fixes
|
||||
* [619](https://github.com/JetBrains/ideavim/pull/619) by [Matt Ellis](https://github.com/citizenmatt): Fix some local options being used as global options
|
||||
* [638](https://github.com/JetBrains/ideavim/pull/638) by [Sam Ng](https://github.com/samabcde): VIM-2615 add support to sort u command
|
||||
* [646](https://github.com/JetBrains/ideavim/pull/646) by [Sam Ng](https://github.com/samabcde): VIM-1990 fix repeat delete find or till wrong MotionType
|
||||
* [649](https://github.com/JetBrains/ideavim/pull/649) by [Martin Yzeiri](https://github.com/myzeiri): Add Matchit support for PHP
|
||||
|
||||
## 2.2.0, 2023-04-20
|
||||
|
||||
### Features:
|
||||
* Now every secondary caret has its own marks. You can use marks and `gv` in multiple-caret mode now.
|
||||
|
||||
### Fixes:
|
||||
* [VIM-1829](https://youtrack.jetbrains.com/issue/VIM-1829/key-combinations-are-not-working-in-visual-mode-IdeaVim) Fix marks when moving lines up/down
|
||||
* [VIM-2130](https://youtrack.jetbrains.com/issue/VIM-2130/Vim-visual-mode-mapping-isnt-behaving-correctly-in-ideavim-it-leaves-visual-mode-after-its-executed) Fix marks when moving lines up/down
|
||||
* [VIM-2428](https://youtrack.jetbrains.com/issue/VIM-2428/The-gv-command-doesnt-work) Fix marks when moving lines up/down
|
||||
* [VIM-2686](https://youtrack.jetbrains.com/issue/VIM-2686/Multiple-caret-marks) Add individual mark storage for each secondary caret
|
||||
* [VIM-2840](https://youtrack.jetbrains.com/issue/VIM-2840) Replace with register does not work with count
|
||||
* [VIM-658](https://youtrack.jetbrains.com/issue/VIM-658) Stop macro on error
|
||||
* [VIM-2787](https://youtrack.jetbrains.com/issue/VIM-2787) Save ideavimrc loading
|
||||
* [VIM-2850](https://youtrack.jetbrains.com/issue/VIM-2850) Marks exception during IDE startup
|
||||
* [VIM-2804](https://youtrack.jetbrains.com/issue/VIM-2804) IdeaVim multiple-cursors copy and paste issue when "set clipboard+=unnamed"
|
||||
* [VIM-1768](https://youtrack.jetbrains.com/issue/VIM-1768) Delete surrounding character while in multiple cursors mode
|
||||
* [VIM-282](https://youtrack.jetbrains.com/issue/VIM-282) Cursor line wrapping support (whichwrap)
|
||||
* [VIM-2315](https://youtrack.jetbrains.com/issue/VIM-2315) Fix overlapping mappings execution
|
||||
* [VIM-44](https://youtrack.jetbrains.com/issue/VIM-44) Unify navigation history between ideavim and idea
|
||||
* [VIM-1735](https://youtrack.jetbrains.com/issue/VIM-1735) Fix enabling mulple carets after line selection
|
||||
* [VIM-2881](https://youtrack.jetbrains.com/issue/VIM-2881) ReplaceRegister does no longer worker with MultiCursor
|
||||
* [VIM-2244](https://youtrack.jetbrains.com/issue/VIM-2244) nnoremap mapping doesn't work correctly
|
||||
* [VIM-2885](https://youtrack.jetbrains.com/issue/VIM-2885) "v:searchforward" does't work for IdeaVim
|
||||
* [VIM-2733](https://youtrack.jetbrains.com/issue/VIM-2733) vim-surround emulation interacts incorrectly with unmatched quotes on previous lines
|
||||
* [VIM-2884](https://youtrack.jetbrains.com/issue/VIM-2884) Moving multiple lines in visual mode is not working
|
||||
* [VIM-2868](https://youtrack.jetbrains.com/issue/VIM-2868) Pasting in visual mode with P should not replace yank register like when pasting with p
|
||||
* [VIM-2819](https://youtrack.jetbrains.com/issue/VIM-2819) Move command works incorrectly
|
||||
* [VIM-795](https://youtrack.jetbrains.com/issue/VIM-795) Ctrl-w + h doesn't alway work (window navigation to the left window)
|
||||
* [VIM-1551](https://youtrack.jetbrains.com/issue/VIM-1551) Surround: line surround not working
|
||||
* [VIM-1746](https://youtrack.jetbrains.com/issue/VIM-1746) IdeaVim Surround removes unwanted characters
|
||||
* [VIM-1750](https://youtrack.jetbrains.com/issue/VIM-1750) Surround with tag wrong position
|
||||
* [VIM-2286](https://youtrack.jetbrains.com/issue/VIM-2286) Set surround not working for me as expected
|
||||
* [VIM-2433](https://youtrack.jetbrains.com/issue/VIM-2433) Do not clear clipboard after inserting with ideaput
|
||||
* [VIM-2896](https://youtrack.jetbrains.com/issue/VIM-2896) Correct ordering of handlers
|
||||
* [VIM-2912](https://youtrack.jetbrains.com/issue/VIM-2912) Fix focus after :q
|
||||
* [VIM-2909](https://youtrack.jetbrains.com/issue/VIM-2909) Fix incorrect file detection while closing diff window
|
||||
|
||||
### Merged PRs:
|
||||
* [589](https://github.com/JetBrains/ideavim/pull/589) by [Matt Ellis](https://github.com/citizenmatt): Refactor option usage and introduce accessor API
|
||||
* [604](https://github.com/JetBrains/ideavim/pull/604) by [Dominic Palmer](https://github.com/dominicpalmer): VIM-2773: Include empty lines in the selection when dragging backwards from EOL
|
||||
* [603](https://github.com/JetBrains/ideavim/pull/603) by [Dominic Palmer](https://github.com/dominicpalmer): VIM-2773: Prevent viewport displacement on undo
|
||||
* [602](https://github.com/JetBrains/ideavim/pull/602) by [Matt Ellis](https://github.com/citizenmatt): Refactor options service
|
||||
* [612](https://github.com/JetBrains/ideavim/pull/612) by [Dani Sevastianov](https://github.com/danisevas): Fix quick-scope setup documentation
|
||||
* [617](https://github.com/JetBrains/ideavim/pull/617) by [Silence Tai](https://github.com/Stzx): Fix dispose operation
|
||||
|
||||
## 2.1.0, 2023-01-10
|
||||
|
||||
### Features:
|
||||
* Add IdeaVim tutor. You can access it via the status bar icon.
|
||||
|
||||
### Fixes:
|
||||
* [VIM-2797](https://youtrack.jetbrains.com/issue/VIM-2797) Introduce variable to mute default argtextobj mappings
|
||||
* [VIM-758](https://youtrack.jetbrains.com/issue/VIM-758) Support d mappings
|
||||
* [VIM-2577](https://youtrack.jetbrains.com/issue/VIM-2577) Fix paste at the end of notebook cell
|
||||
* [VIM-2813](https://youtrack.jetbrains.com/issue/VIM-2813) Migrate update checker to VimStandalonePluginUpdateChecker
|
||||
* [VIM-2833](https://youtrack.jetbrains.com/issue/VIM-2833) Fix rare deadlock during put in insert mode from clipboard
|
||||
|
||||
### Merged PRs:
|
||||
* [558](https://github.com/JetBrains/ideavim/pull/558) by [Matt Ellis](https://github.com/citizenmatt): Fix incorrect normalising for trailing inlay
|
||||
* [554](https://github.com/JetBrains/ideavim/pull/554) by [Matt Ellis](https://github.com/citizenmatt): Refactor "last column" calculations
|
||||
* [553](https://github.com/JetBrains/ideavim/pull/553) by [Matt Ellis](https://github.com/citizenmatt): Rearrange and rename some code in engine
|
||||
* [560](https://github.com/JetBrains/ideavim/pull/560) by [Runinho](https://github.com/Runinho): Fix(VIM-2577) paste not working at end of notebook cell
|
||||
* [571](https://github.com/JetBrains/ideavim/pull/571) by [Ada](https://github.com/adaext): Remove the redundant quotation mark at the end of "packadd matchit" command
|
||||
* [561](https://github.com/JetBrains/ideavim/pull/561) by [Matt Ellis](https://github.com/citizenmatt): Fix incremental search not scrolling to current match
|
||||
* [559](https://github.com/JetBrains/ideavim/pull/559) by [Runinho](https://github.com/Runinho): Fix(VIM-2760) notebookCommandMode detection
|
||||
* [579](https://github.com/JetBrains/ideavim/pull/579) by [Martin Yzeiri](https://github.com/myzeiri): VIM-2799: Add Matchit support for cshtml files
|
||||
* [580](https://github.com/JetBrains/ideavim/pull/580) by [Martin Yzeiri](https://github.com/myzeiri): Matchit: Add more Rider file types
|
||||
* [583](https://github.com/JetBrains/ideavim/pull/583) by [Matt Ellis](https://github.com/citizenmatt): Introduce ScrollGroup
|
||||
* [586](https://github.com/JetBrains/ideavim/pull/586) by [Patrick Elmquist](https://github.com/patrick-elmquist): Fixed number references in Tutor
|
||||
|
||||
## 2.0.0, 2022-11-01
|
||||
|
||||
### Changes:
|
||||
* IdeaVim changes license from GPL-2.0 or later to MIT. [VIM-2782](https://youtrack.jetbrains.com/issue/VIM-2782)
|
||||
|
||||
## 1.12.0, 2022-11-01
|
||||
|
||||
### Fixes:
|
||||
* [VIM-1758](https://youtrack.jetbrains.com/issue/VIM-1758) Commentary plugin in rider
|
||||
* [VIM-1903](https://youtrack.jetbrains.com/issue/VIM-1903) Autoindent now works in rider
|
||||
* [VIM-2744](https://youtrack.jetbrains.com/issue/VIM-2744) Fix undo from ex line
|
||||
* [VIM-2749](https://youtrack.jetbrains.com/issue/VIM-2749) Fix :tabn and :tabN commands
|
||||
* [VIM-2718](https://youtrack.jetbrains.com/issue/VIM-2718) Fixed case where the primary caret was changed
|
||||
* [VIM-2766](https://youtrack.jetbrains.com/issue/VIM-2766) Move NERDTree update to background thread
|
||||
* [VIM-2768](https://youtrack.jetbrains.com/issue/VIM-2768) Refactor listeners
|
||||
* [VIM-2776](https://youtrack.jetbrains.com/issue/VIM-2776) Use filename index for file search
|
||||
|
||||
### Merged PRs:
|
||||
* [550](https://github.com/JetBrains/ideavim/pull/550) by [Matt Ellis](https://github.com/citizenmatt): Fix(VIM-2778) Remove override of editor scroll setting
|
||||
|
||||
## 1.11.0, 2022-08-09
|
||||
|
||||
### Features:
|
||||
* Add `gcu` command for Commentary plugin
|
||||
@@ -36,6 +263,7 @@ usual beta standards.
|
||||
E.g. `<Plug>Commentary` instead of `<Plug>(CommentMotion)`. Old mappings are maintained for compatibility.
|
||||
* If you open `~/.ideavimrc` in IDE, remove a mapping, and reload the config using the reload button,
|
||||
the mapping will actually be unmapped.
|
||||
* New vim (and IdeaVim) behaviour: `ci(`& friends searches for the brackets in the line.
|
||||
|
||||
### Fixes:
|
||||
* [VIM-2587](https://youtrack.jetbrains.com/issue/VIM-2587) Use ctrl-6 as ctrl-^
|
||||
@@ -52,9 +280,14 @@ usual beta standards.
|
||||
* [VIM-2595](https://youtrack.jetbrains.com/issue/VIM-2595) Support plugins in macro execution
|
||||
* [VIM-2671](https://youtrack.jetbrains.com/issue/VIM-2671) Fix using plugins from mappings
|
||||
* [VIM-2675](https://youtrack.jetbrains.com/issue/VIM-2675) Fix numbering register in visual mode
|
||||
* [VIM-696](https://youtrack.jetbrains.com/issue/VIM-696/vim-selection-issue-after-undo) Fix selection after undo
|
||||
* [VIM-744](https://youtrack.jetbrains.com/issue/VIM-744/Use-undoredo-with-count-modifier) Add count to undo/redo
|
||||
* [VIM-1862](https://youtrack.jetbrains.com/issue/VIM-1862/Ex-commands-executed-in-keymaps-and-macros-are-added-to-the-command-history) Fix command history
|
||||
* [VIM-2227](https://youtrack.jetbrains.com/issue/VIM-2227) Wrong behavior when deleting / changing surround with invalid character
|
||||
* [VIM-2691](https://youtrack.jetbrains.com/issue/VIM-2691) Save file on :w
|
||||
* [VIM-2710](https://youtrack.jetbrains.com/issue/VIM-2710) Show options value on `set opt`
|
||||
* [VIM-913](https://youtrack.jetbrains.com/issue/VIM-913) Partially fix the issue with macros and autocompletion
|
||||
* [VIM-2723](https://youtrack.jetbrains.com/issue/VIM-2723) Move focus to editor after :q
|
||||
* [VIM-2728](https://youtrack.jetbrains.com/issue/VIM-2728) Give access to global variables
|
||||
|
||||
### Merged PRs:
|
||||
* [468](https://github.com/JetBrains/ideavim/pull/468) by [Thomas Schouten](https://github.com/PHPirates): Implement UserDataHolder for EditorDataContext
|
||||
@@ -63,6 +296,11 @@ usual beta standards.
|
||||
* [493](https://github.com/JetBrains/ideavim/pull/493) by [Matt Ellis](https://github.com/citizenmatt): Improvements to Commentary extension
|
||||
* [494](https://github.com/JetBrains/ideavim/pull/494) by [Matt Ellis](https://github.com/citizenmatt): Cleanup pre-212 CaretVisualAttributes compatibility code
|
||||
* [504](https://github.com/JetBrains/ideavim/pull/504) by [Matt Ellis](https://github.com/citizenmatt): Minor bug fixes
|
||||
* [519](https://github.com/JetBrains/ideavim/pull/519) by [chylex](https://github.com/chylex): Fix(VIM-2227): Wrong behavior when deleting / changing surround with invalid character
|
||||
* [525](https://github.com/JetBrains/ideavim/pull/525) by [Matt Ellis](https://github.com/citizenmatt): Improve handling of fractional width fonts
|
||||
* [526](https://github.com/JetBrains/ideavim/pull/526) by [Alex Pláte](https://github.com/AlexPl292): Create gradle.properties
|
||||
* [528](https://github.com/JetBrains/ideavim/pull/528) by [chylex](https://github.com/chylex): Implement partial code completion support in macros
|
||||
* [531](https://github.com/JetBrains/ideavim/pull/531) by [Matt Ellis](https://github.com/citizenmatt): Consolidate doTest methods
|
||||
|
||||
## 1.10.0, 2022-02-17
|
||||
|
||||
|
@@ -5,7 +5,7 @@ IdeaVim is an open source project created by 80+ contributors. Would you like to
|
||||
This page is created to help you start contributing. And who knows, maybe in a few days this project will be brighter than ever!
|
||||
|
||||
:warning: The plugin is currently under a huge refactoring aiming to split into vim-engine and IdeaVim in order to
|
||||
support the new [Fleet IDE](https://www.jetbrains.com/fleet/).
|
||||
support the new [Fleet IDE](https://www.jetbrains.com/fleet/). Please see [Fleet refactoring](#Fleet-refactoring).
|
||||
|
||||
## Before you begin
|
||||
|
||||
@@ -32,7 +32,11 @@ OK, ready to do some coding?
|
||||
Yoo hoo! You’re all set to begin contributing.
|
||||
We've prepared some useful configurations for you:
|
||||
|
||||

|
||||
- `Start IJ with IdeaVim`
|
||||
- `IdeaVim tests`
|
||||
- `IdeaVim full verification`
|
||||
|
||||

|
||||
|
||||
And here are useful gradle commands:
|
||||
|
||||
@@ -58,12 +62,16 @@ for a few days or send it to a friend for testing.
|
||||
If you are looking for:
|
||||
|
||||
- Vim commands (`w`, `<C-O>`, `p`, etc.):
|
||||
- Any particular command: `package-info.java`.
|
||||
- Any particular command:
|
||||
- [Commands common for Fleet and IdeaVim](vim-engine/src/main/resources/ksp-generated/engine_commands.json)
|
||||
- [IdeaVim only commands](src/main/resources/ksp-generated/intellij_commands.json)
|
||||
- How commands are executed in common: `EditorActionHandlerBase`.
|
||||
- Key mapping: `KeyHandler.handleKey()`.
|
||||
|
||||
- Ex commands (`:set`, `:s`, `:nohlsearch`):
|
||||
- Any particular ex command: package `com.maddyhome.idea.vim.ex.handler`.
|
||||
- Any particular command:
|
||||
- [Commands common for Fleet and IdeaVim](vim-engine/src/main/resources/ksp-generated/engine_ex_commands.json)
|
||||
- [IdeaVim only commands](src/main/resources/ksp-generated/intellij_ex_commands.json)
|
||||
- Vim script grammar: `Vimscript.g4`.
|
||||
- Vim script parsing: package `com.maddyhome.idea.vim.vimscript.parser`.
|
||||
- Vim script executor: `Executor`.
|
||||
@@ -87,9 +95,16 @@ Here are some guides for testing:
|
||||
|
||||
1. Read the javadoc for the `@VimBehaviorDiffers` annotation in the source code.
|
||||
|
||||
2. Please avoid senseless text like "dhjkwaldjwa", "asdasdasd", "123 123 123 123", etc. Try to choose an example
|
||||
text that is easy to read and understand what is wrong if the test fails. For example, take a few lines from your
|
||||
favorite poem, or use Vladimir Nabokov’s “A Discovery" if you don't have one.
|
||||
2. Please avoid senseless text like "dhjkwaldjwa", "asdasdasd", "123 123 123 123", etc. Use a few lines of code or
|
||||
the following template:
|
||||
```text
|
||||
Lorem Ipsum
|
||||
|
||||
Lorem ipsum dolor sit amet,
|
||||
consectetur adipiscing elit
|
||||
Sed in orci mauris.
|
||||
Cras id tellus in ex imperdiet egestas.
|
||||
```
|
||||
|
||||
3. Don't forget to test your functionality with line start, line end, file start, file end, empty line, multiple
|
||||
carets, dollar motion, etc.
|
||||
@@ -120,6 +135,17 @@ so you can reuse your `.vimrc` settings.
|
||||
We also support proper command mappings (functions are mapped to `<Plug>...`), the operator function (`OperatorFunction`), and so on.
|
||||
- Magic is supported as well. See `Magic`.
|
||||
|
||||
|
||||
## Fleet refactoring
|
||||
At the moment, IdeaVim is under an active refactoring aiming to split IdeaVim into two modules: vim-engine and IdeaVim.
|
||||
|
||||
If you develop a plugin that depends on IdeaVim: We have an instrument to check that our changes don't affect
|
||||
the plugins in the marketplace. Also, we commit to support currently used API at least till the end of 2022.
|
||||
If you still encounter any issues with the newer versions of IdeaVim, please [contact maintainers](https://github.com/JetBrains/ideavim#contact-maintainers).
|
||||
We kindly ask you not to use anything from the new API (like `VimEditor`, `injector`) because at the moment we don't
|
||||
guarantee the compatibility of this API in the future versions.
|
||||
|
||||
|
||||
-----
|
||||
|
||||
### I read the whole page but something is still unclear.
|
||||
@@ -138,7 +164,7 @@ This is just terrible. [You know what to do](https://github.com/JetBrains/ideavi
|
||||
|
||||
### Resources:
|
||||
|
||||
* [Continuous integration builds](https://teamcity.jetbrains.com/project.html?projectId=IdeaVim&guest=1)
|
||||
* [Continuous integration builds](https://ideavim.teamcity.com/)
|
||||
* [Bug tracker](https://youtrack.jetbrains.com/issues/VIM)
|
||||
* [Chat on gitter](https://gitter.im/JetBrains/ideavim)
|
||||
* [IdeaVim Channel](https://jb.gg/bi6zp7) on [JetBrains Server](https://discord.gg/jetbrains)
|
||||
@@ -146,5 +172,5 @@ This is just terrible. [You know what to do](https://github.com/JetBrains/ideavi
|
||||
* [Changelog](CHANGES.md)
|
||||
* [Contributors listing](AUTHORS.md)
|
||||
|
||||
[teamcity-build-status]: https://teamcity.jetbrains.com/viewType.html?buildTypeId=IdeaVim_TestsForIntelliJEAP&guest=1
|
||||
[teamcity-build-status-svg]: https://teamcity.jetbrains.com/app/rest/builds/buildType:(id:IdeaVim_TestsForIntelliJEAP)/statusIcon.svg?guest=1
|
||||
[teamcity-build-status]: https://ideavim.teamcity.com/viewType.html?buildTypeId=Ideavim_IdeaVimTests_Latest_EAP&guest=1
|
||||
[teamcity-build-status-svg]: https://ideavim.teamcity.com/app/rest/builds/buildType:(id:Ideavim_IdeaVimTests_Latest_EAP)/statusIcon.svg?guest=1
|
||||
|
352
LICENSE.txt
352
LICENSE.txt
@@ -1,339 +1,21 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
MIT License
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
Copyright (c) 2003-present The IdeaVim authors
|
||||
|
||||
Preamble
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
63
README.md
63
README.md
@@ -9,9 +9,10 @@ IdeaVim
|
||||
[![Rating][plugin-rating-svg]][plugin-repo]
|
||||
[![Version][plugin-version-svg]][plugin-repo]
|
||||
[![Gitter][gitter-svg]][gitter]
|
||||
[](https://codecov.io/gh/JetBrains/ideavim)
|
||||
[![Twitter][twitter-svg]][twitter]
|
||||
|
||||
IdeaVim is a Vim emulation plugin for IntelliJ Platform-based IDEs.
|
||||
IdeaVim is a Vim engine for JetBrains IDEs.
|
||||
|
||||
##### Contact maintainers:
|
||||
* [Bug tracker](https://youtrack.jetbrains.com/issues/VIM)
|
||||
@@ -21,9 +22,10 @@ IdeaVim is a Vim emulation plugin for IntelliJ Platform-based IDEs.
|
||||
|
||||
##### Resources:
|
||||
|
||||
* [Plugin homepage](https://plugins.jetbrains.com/plugin/164-ideavim)
|
||||
* [Plugin homepage](https://lp.jetbrains.com/ideavim/)
|
||||
* [Plugin on Marketplace](https://plugins.jetbrains.com/plugin/164-ideavim)
|
||||
* [Changelog](CHANGES.md)
|
||||
* [Continuous integration builds](https://teamcity.jetbrains.com/project.html?projectId=IdeaVim&guest=1)
|
||||
* [Continuous integration builds](https://ideavim.teamcity.com/)
|
||||
|
||||
#### Compatibility
|
||||
|
||||
@@ -36,7 +38,7 @@ Setup
|
||||
- IdeaVim can be installed via `Settings | Plugins`.
|
||||
See the [detailed instructions](https://www.jetbrains.com/help/idea/managing-plugins.html#).
|
||||
|
||||
- Use `Tools | Vim Emulator` in the menu to enable or disable emulation.
|
||||
- Use `Tools | Vim` in the menu to enable or disable vim.
|
||||
|
||||
- Use the `~/.ideavimrc` file as an analog of `~/.vimrc` ([learn more](#Files)). The XDG standard is supported, as well.
|
||||
|
||||
@@ -52,7 +54,7 @@ Would you like to try new features and fixes? Join the Early Access Program and
|
||||
receive EAP builds as updates!
|
||||
|
||||
1. Click the IdeaVim icon <img src="src/main/resources/META-INF/pluginIcon_noBorders.svg" width="16" height="16" alt="icon"/>
|
||||
in the status bar | `Early Access Program` | `Subscibe to EAP`
|
||||
in the status bar | `Early Access Program` | `Subscribe to EAP`
|
||||
|
||||
|
||||
Or subscribe to EAP updates manually:
|
||||
@@ -88,7 +90,7 @@ Here are some examples of supported vim features and commands:
|
||||
* Vim web help
|
||||
* `~/.ideavimrc` configuration file
|
||||
|
||||
[Emulated Vim plugins](https://github.com/JetBrains/ideavim/wiki/Emulated-plugins):
|
||||
[IdeaVim plugins](https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins):
|
||||
|
||||
* vim-easymotion
|
||||
* NERDTree
|
||||
@@ -102,11 +104,11 @@ Here are some examples of supported vim features and commands:
|
||||
* vim-highlightedyank
|
||||
* vim-paragraph-motion
|
||||
* vim-indent-object
|
||||
* match.it
|
||||
* match.it
|
||||
etc
|
||||
|
||||
See also:
|
||||
|
||||
* [The list of all supported commands](src/main/java/com/maddyhome/idea/vim/package-info.java)
|
||||
* [Top feature requests and bugs](https://youtrack.jetbrains.com/issues/VIM?q=%23Unresolved+sort+by%3A+votes)
|
||||
* [Vimscript support roadmap](vimscript-info/VIMSCRIPT_ROADMAP.md)
|
||||
* [List of supported in-build functions](vimscript-info/FUNCTIONS_INFO.MD)
|
||||
@@ -198,10 +200,10 @@ Alternatively, you can set up initialization commands using [XDG](https://specif
|
||||
Put your settings to `$XDG_CONFIG_HOME/ideavim/ideavimrc` file.
|
||||
|
||||
|
||||
Emulated Vim Plugins
|
||||
IdeaVim Plugins
|
||||
--------------------
|
||||
|
||||
See [doc/emulated-plugins.md](https://github.com/JetBrains/ideavim/wiki/Emulated-plugins)
|
||||
See [doc/IdeaVim Plugins.md](https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins)
|
||||
|
||||
Executing IDE Actions
|
||||
---------------------
|
||||
@@ -210,23 +212,26 @@ IdeaVim adds various commands for listing and executing arbitrary IDE actions as
|
||||
Ex commands or via `:map` command mappings:
|
||||
|
||||
### Executing actions:
|
||||
* `:action {action_id}`
|
||||
* Execute an action by `{action_id}`. Works from Ex command line.
|
||||
* Please don't use `:action` in mappings. Use `<Action>` instead.
|
||||
* `<Action>({action_id})`
|
||||
* For the mappings you can use a special `<Action>` keyword. Don't forget the parentheses.
|
||||
* E.g. `map gh <Action>(ShowErrorDescription)` <- execute hover on `gh`.
|
||||
* :warning: Mappings to `<Action>` don't work with `noremap`.
|
||||
If you know the case when it's needed, please [let us know](https://github.com/JetBrains/ideavim#contact-maintainers).
|
||||
* `:action {action_id}`
|
||||
* Execute an action by `{action_id}`. Works from Ex command line.
|
||||
* Please don't use `:action` in mappings. Use `<Action>` instead.
|
||||
|
||||
### Finding action ids:
|
||||
### Finding action IDs:
|
||||
|
||||
* IJ provides `IdeaVim: track action Ids` command to show the id of the executed actions.
|
||||
* IJ provides `IdeaVim: track action IDs` command to show the id of the executed actions.
|
||||
This command can be found in "Search everywhere" (double `shift`).
|
||||
|
||||
<details>
|
||||
<summary><strong>"Track action Ids" Details</strong> (click to see)</summary>
|
||||
<img src="assets/readme/track_action_id.gif" alt="track action ids"/>
|
||||
<summary><strong>"Track action IDs" Details</strong> (click to see)</summary>
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="assets/readme/track_action_dark.gif">
|
||||
<img src="assets/readme/track_action_light.gif" alt="track action ids"/>
|
||||
</picture>
|
||||
</details>
|
||||
|
||||
|
||||
@@ -249,8 +254,7 @@ Ex commands or via `:map` command mappings:
|
||||
##### Some popular actions:
|
||||
|
||||
```
|
||||
QuickJavaDoc - Quick Documentation (not only for java, all languages)
|
||||
ShowErrorDescription - Show description of the error under the caret (cursor hovering)
|
||||
ShowHoverInfo - Quick Documentation and Error Description
|
||||
QuickImplementations - Quick Definition
|
||||
```
|
||||
|
||||
@@ -319,7 +323,7 @@ IdeaVim tips and tricks
|
||||
- Use the power of IJ and Vim:
|
||||
- `set ideajoin` to enable join via the IDE. See the [examples](https://jb.gg/f9zji9).
|
||||
- Make sure `ideaput` is enabled for `clipboard` to enable native IJ insertion in Vim.
|
||||
- Sync IJ bookmarks and Vim marks: `set ideamarks`
|
||||
- Sync IJ bookmarks and IdeaVim global marks: `set ideamarks` (works for marks with capital letters only)
|
||||
- Check out more [ex commands](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands).
|
||||
|
||||
- Use your vim settings with IdeaVim. Put `source ~/.vimrc` in `~/.ideavimrc`.
|
||||
@@ -347,9 +351,12 @@ is the source of this knowledge.
|
||||
[Here](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/normal.c#L5365)
|
||||
is the full list of synonyms.
|
||||
|
||||
- You can read a [post](https://github.com/JetBrains/ideavim/wiki/how-many-modes-does-vim-have) about how modes work in Vim and IdeaVim.
|
||||
|
||||
- Have you ever used `U` after `dd`? [Don't even try](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/ops.c#L874).
|
||||
|
||||
- A lot of variables that refers to visual mode start with two uppercase letters, e.g. `VIsual_active`. [Some examples](https://github.com/vim/vim/blob/master/src/normal.c#L17).
|
||||
- A lot of variables that refer to visual mode start with two uppercase letters, e.g. `VIsual_active`. [Some examples](https://github.com/vim/vim/blob/master/src/normal.c#L17).
|
||||
As mentioned [here](https://vi.stackexchange.com/a/42885/12441), this was done this way to avoid the clash with X11.
|
||||
|
||||
- Other [strange things](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/ex_docmd.c#L1845) from vi:
|
||||
* ":3" jumps to line 3
|
||||
@@ -358,11 +365,21 @@ is the full list of synonyms.
|
||||
|
||||
- Vim script doesn't skip white space before comma. `F(a ,b)` => E475.
|
||||
|
||||
- Fancy constants for [undolevels](https://vimhelp.org/options.txt.html#%27undolevels%27):
|
||||
> The local value is set to -123456 when the global value is to be used.
|
||||
|
||||
- Vi (not Vim) is a POSIX standard, and [has a spec](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html)! Vim is mostly POSIX compliant when Vi compatibility is selected with the `'compatible'` option, but there are still some differences that can be changed with `'copoptions'`. The spec is interesting because it documents the behaviour of different commands in a stricter style than the user documentation, describing the current line and column after the command, for example. [More details can be found by reading `:help posix`](https://vimhelp.org/vi_diff.txt.html#posix).
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
IdeaVim is licensed under the terms of the GNU Public License version 2
|
||||
or any later version.
|
||||
IdeaVim is licensed under the MIT license.
|
||||
|
||||
Third-party components and licenses are listed in [ThirdPartyLicenses.md](ThirdPartyLicenses.md).
|
||||
|
||||
All releases before 2.0.0 were licensed under terms of GPL-2.0 or later.
|
||||
The last commit before switch to MIT is 05852b07c6090ad40fde7d3cafe0b074604f7ac5.
|
||||
You can read more about the license change here: https://github.com/JetBrains/ideavim/discussions/543
|
||||
|
||||
|
||||
<!-- Badges -->
|
||||
|
90
ThirdPartyLicenses.md
Normal file
90
ThirdPartyLicenses.md
Normal file
@@ -0,0 +1,90 @@
|
||||
IdeaVim project is licensed under MIT license except the following parts of it:
|
||||
|
||||
* File [ScrollViewHelper.kt](com/maddyhome/idea/vim/helper/ScrollViewHelper.kt) is licensed under Vim License.
|
||||
* File [Tutor.kt](src/main/java/com/maddyhome/idea/vim/ui/Tutor.kt) is licensed under Vim License.
|
||||
|
||||
```
|
||||
VIM LICENSE
|
||||
|
||||
I) There are no restrictions on distributing unmodified copies of Vim except
|
||||
that they must include this license text. You can also distribute
|
||||
unmodified parts of Vim, likewise unrestricted except that they must
|
||||
include this license text. You are also allowed to include executables
|
||||
that you made from the unmodified Vim sources, plus your own usage
|
||||
examples and Vim scripts.
|
||||
|
||||
II) It is allowed to distribute a modified (or extended) version of Vim,
|
||||
including executables and/or source code, when the following four
|
||||
conditions are met:
|
||||
1) This license text must be included unmodified.
|
||||
2) The modified Vim must be distributed in one of the following five ways:
|
||||
a) If you make changes to Vim yourself, you must clearly describe in
|
||||
the distribution how to contact you. When the maintainer asks you
|
||||
(in any way) for a copy of the modified Vim you distributed, you
|
||||
must make your changes, including source code, available to the
|
||||
maintainer without fee. The maintainer reserves the right to
|
||||
include your changes in the official version of Vim. What the
|
||||
maintainer will do with your changes and under what license they
|
||||
will be distributed is negotiable. If there has been no negotiation
|
||||
then this license, or a later version, also applies to your changes.
|
||||
The current maintainers are listed here: https://github.com/orgs/vim/people.
|
||||
If this changes it will be announced in appropriate places (most likely
|
||||
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
|
||||
impossible to contact the maintainer, the obligation to send him
|
||||
your changes ceases. Once the maintainer has confirmed that he has
|
||||
received your changes they will not have to be sent again.
|
||||
b) If you have received a modified Vim that was distributed as
|
||||
mentioned under a) you are allowed to further distribute it
|
||||
unmodified, as mentioned at I). If you make additional changes the
|
||||
text under a) applies to those changes.
|
||||
c) Provide all the changes, including source code, with every copy of
|
||||
the modified Vim you distribute. This may be done in the form of a
|
||||
context diff. You can choose what license to use for new code you
|
||||
add. The changes and their license must not restrict others from
|
||||
making their own changes to the official version of Vim.
|
||||
d) When you have a modified Vim which includes changes as mentioned
|
||||
under c), you can distribute it without the source code for the
|
||||
changes if the following three conditions are met:
|
||||
- The license that applies to the changes permits you to distribute
|
||||
the changes to the Vim maintainer without fee or restriction, and
|
||||
permits the Vim maintainer to include the changes in the official
|
||||
version of Vim without fee or restriction.
|
||||
- You keep the changes for at least three years after last
|
||||
distributing the corresponding modified Vim. When the maintainer
|
||||
or someone who you distributed the modified Vim to asks you (in
|
||||
any way) for the changes within this period, you must make them
|
||||
available to him.
|
||||
- You clearly describe in the distribution how to contact you. This
|
||||
contact information must remain valid for at least three years
|
||||
after last distributing the corresponding modified Vim, or as long
|
||||
as possible.
|
||||
e) When the GNU General Public License (GPL) applies to the changes,
|
||||
you can distribute the modified Vim under the GNU GPL version 2 or
|
||||
any later version.
|
||||
3) A message must be added, at least in the output of the ":version"
|
||||
command and in the intro screen, such that the user of the modified Vim
|
||||
is able to see that it was modified. When distributing as mentioned
|
||||
under 2)e) adding the message is only required for as far as this does
|
||||
not conflict with the license used for the changes.
|
||||
4) The contact information as required under 2)a) and 2)d) must not be
|
||||
removed or changed, except that the person himself can make
|
||||
corrections.
|
||||
|
||||
III) If you distribute a modified version of Vim, you are encouraged to use
|
||||
the Vim license for your changes and make them available to the
|
||||
maintainer, including the source code. The preferred way to do this is
|
||||
by e-mail or by uploading the files to a server and e-mailing the URL.
|
||||
If the number of changes is small (e.g., a modified Makefile) e-mailing a
|
||||
context diff will do. The e-mail address to be used is
|
||||
<maintainer@vim.org>
|
||||
|
||||
IV) It is not allowed to remove this license from the distribution of the Vim
|
||||
sources, parts of it or from a modified version. You may use this
|
||||
license for previous Vim releases instead of the license that they came
|
||||
with, at your option.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
File [sneakIcon.png](doc/images/sneakIcon.svg), which is originally an icon of the ideavim-sneak plugin,
|
||||
is merged icons of IdeaVim plugin and a random sneaker by FreePic from flaticon.com.
|
42
annotation-processors/.gitignore
vendored
Normal file
42
annotation-processors/.gitignore
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
30
annotation-processors/build.gradle.kts
Normal file
30
annotation-processors/build.gradle.kts
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
kotlin("plugin.serialization") version "2.0.0"
|
||||
}
|
||||
|
||||
val kotlinxSerializationVersion: String by project
|
||||
|
||||
group = "com.intellij"
|
||||
version = "SNAPSHOT"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly("com.google.devtools.ksp:symbol-processing-api:2.1.0-1.0.29")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:$kotlinxSerializationVersion") {
|
||||
// kotlin stdlib is provided by IJ, so there is no need to include it into the distribution
|
||||
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
|
||||
exclude("org.jetbrains.kotlin", "kotlin-stdlib-common")
|
||||
}
|
||||
}
|
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.annotations
|
||||
|
||||
// TODO support numpad keys parsing, see :keycodes
|
||||
/**
|
||||
* It's not necessary a Vim command
|
||||
* This annotation may be used for:
|
||||
* - commands
|
||||
* - motions
|
||||
*/
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class CommandOrMotion(val keys: Array<String>, vararg val modes: Mode)
|
||||
|
||||
annotation class TextObject(val keys: String)
|
||||
|
||||
|
||||
enum class Mode(val abbrev: Char) {
|
||||
/**
|
||||
* Indicates this key mapping applies to Normal mode
|
||||
*/
|
||||
NORMAL('N'),
|
||||
|
||||
/**
|
||||
* Indicates this key mapping applies to Visual mode
|
||||
*/
|
||||
VISUAL('X'),
|
||||
|
||||
/**
|
||||
* Indicates this key mapping applies to Select mode
|
||||
*/
|
||||
SELECT('S'),
|
||||
|
||||
/**
|
||||
* Indicates this key mapping applies to Operator Pending mode
|
||||
*/
|
||||
OP_PENDING('O'),
|
||||
|
||||
/**
|
||||
* Indicates this key mapping applies to Insert or Replace modes
|
||||
*/
|
||||
INSERT('I'),
|
||||
|
||||
/**
|
||||
* Indicates this key mapping applies to Command Line mode
|
||||
*/
|
||||
CMD_LINE('C'),
|
||||
}
|
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.annotations
|
||||
|
||||
/**
|
||||
* [command] is formatted the same way it is formatted in Vim (with optional part in square brackets).
|
||||
*/
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class ExCommand(val command: String)
|
@@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.annotations
|
||||
|
||||
@Target(AnnotationTarget.CLASS)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class VimscriptFunction(val name: String)
|
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.processors
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class CommandBean(val keys: String, val `class`: String, val modes: String)
|
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.processors
|
||||
|
||||
import com.google.devtools.ksp.KspExperimental
|
||||
import com.google.devtools.ksp.getAnnotationsByType
|
||||
import com.google.devtools.ksp.processing.Resolver
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.symbol.KSAnnotated
|
||||
import com.google.devtools.ksp.symbol.KSClassDeclaration
|
||||
import com.google.devtools.ksp.symbol.KSFile
|
||||
import com.google.devtools.ksp.symbol.KSVisitorVoid
|
||||
import com.intellij.vim.annotations.CommandOrMotion
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.Path
|
||||
import kotlin.io.path.writeText
|
||||
|
||||
class CommandOrMotionProcessor(private val environment: SymbolProcessorEnvironment): SymbolProcessor {
|
||||
private val visitor = CommandOrMotionVisitor()
|
||||
private val commands = mutableListOf<CommandBean>()
|
||||
|
||||
private val json = Json { prettyPrint = true }
|
||||
|
||||
override fun process(resolver: Resolver): List<KSAnnotated> {
|
||||
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
|
||||
|
||||
val generatedDirPath = Path(environment.options["generated_directory"]!!)
|
||||
Files.createDirectories(generatedDirPath)
|
||||
|
||||
val filePath = generatedDirPath.resolve(environment.options["commands_file"]!!)
|
||||
val sortedCommands = commands.sortedWith(compareBy({ it.keys }, { it.`class` }))
|
||||
val fileContent = json.encodeToString(sortedCommands)
|
||||
filePath.writeText(fileContent)
|
||||
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
private inner class CommandOrMotionVisitor : KSVisitorVoid() {
|
||||
@OptIn(KspExperimental::class)
|
||||
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
|
||||
val commandAnnotation = classDeclaration.getAnnotationsByType(CommandOrMotion::class).firstOrNull() ?: return
|
||||
for (key in commandAnnotation.keys) {
|
||||
commands.add(
|
||||
CommandBean(key, classDeclaration.qualifiedName!!.asString(), commandAnnotation.modes.map { it.abbrev }.joinToString(separator = ""))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitFile(file: KSFile, data: Unit) {
|
||||
file.declarations.forEach { it.accept(this, Unit) }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.processors
|
||||
|
||||
import com.google.devtools.ksp.KspExperimental
|
||||
import com.google.devtools.ksp.getAnnotationsByType
|
||||
import com.google.devtools.ksp.processing.Resolver
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.symbol.KSAnnotated
|
||||
import com.google.devtools.ksp.symbol.KSClassDeclaration
|
||||
import com.google.devtools.ksp.symbol.KSFile
|
||||
import com.google.devtools.ksp.symbol.KSVisitorVoid
|
||||
import com.intellij.vim.annotations.ExCommand
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.Path
|
||||
import kotlin.io.path.writeText
|
||||
|
||||
class ExCommandProcessor(private val environment: SymbolProcessorEnvironment): SymbolProcessor {
|
||||
private val visitor = EXCommandVisitor()
|
||||
private val commandToClass = mutableMapOf<String, String>()
|
||||
|
||||
private val json = Json { prettyPrint = true }
|
||||
|
||||
override fun process(resolver: Resolver): List<KSAnnotated> {
|
||||
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
|
||||
|
||||
val generatedDirPath = Path(environment.options["generated_directory"]!!)
|
||||
Files.createDirectories(generatedDirPath)
|
||||
|
||||
val filePath = generatedDirPath.resolve(environment.options["ex_commands_file"]!!)
|
||||
val sortedCommandToClass = commandToClass.toList().sortedWith(compareBy({ it.first }, { it.second })).toMap()
|
||||
val fileContent = json.encodeToString(sortedCommandToClass)
|
||||
filePath.writeText(fileContent)
|
||||
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
private inner class EXCommandVisitor : KSVisitorVoid() {
|
||||
@OptIn(KspExperimental::class)
|
||||
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
|
||||
val exCommandAnnotation = classDeclaration.getAnnotationsByType(ExCommand::class).firstOrNull() ?: return
|
||||
val commands = exCommandAnnotation.command.split(",")
|
||||
for (command in commands) {
|
||||
commandToClass[command] = classDeclaration.qualifiedName!!.asString()
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitFile(file: KSFile, data: Unit) {
|
||||
file.declarations.forEach { it.accept(this, Unit) }
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.processors
|
||||
|
||||
import com.google.devtools.ksp.KspExperimental
|
||||
import com.google.devtools.ksp.getAnnotationsByType
|
||||
import com.google.devtools.ksp.processing.Resolver
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.symbol.KSAnnotated
|
||||
import com.google.devtools.ksp.symbol.KSClassDeclaration
|
||||
import com.google.devtools.ksp.symbol.KSFile
|
||||
import com.google.devtools.ksp.symbol.KSVisitorVoid
|
||||
import com.intellij.vim.annotations.VimscriptFunction
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.Path
|
||||
import kotlin.io.path.writeText
|
||||
|
||||
class VimscriptFunctionProcessor(private val environment: SymbolProcessorEnvironment) : SymbolProcessor {
|
||||
private val visitor = VimscriptFunctionVisitor()
|
||||
private val nameToClass = mutableMapOf<String, String>()
|
||||
|
||||
private val json = Json { prettyPrint = true }
|
||||
|
||||
override fun process(resolver: Resolver): List<KSAnnotated> {
|
||||
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
|
||||
|
||||
val generatedDirPath = Path(environment.options["generated_directory"]!!)
|
||||
Files.createDirectories(generatedDirPath)
|
||||
|
||||
val filePath = generatedDirPath.resolve(environment.options["vimscript_functions_file"]!!)
|
||||
val sortedNameToClass = nameToClass.toList().sortedWith(compareBy({ it.first }, { it.second })).toMap()
|
||||
val fileContent = json.encodeToString(sortedNameToClass)
|
||||
filePath.writeText(fileContent)
|
||||
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
// todo inspection that annotation is properly used on proper classes
|
||||
private inner class VimscriptFunctionVisitor : KSVisitorVoid() {
|
||||
@OptIn(KspExperimental::class)
|
||||
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
|
||||
val vimscriptFunctionAnnotation = classDeclaration.getAnnotationsByType(VimscriptFunction::class).firstOrNull() ?: return
|
||||
val functionName = vimscriptFunctionAnnotation.name
|
||||
nameToClass[functionName] = classDeclaration.qualifiedName!!.asString()
|
||||
}
|
||||
|
||||
override fun visitFile(file: KSFile, data: Unit) {
|
||||
file.declarations.forEach { it.accept(this, Unit) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.providers
|
||||
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorProvider
|
||||
import com.intellij.vim.processors.CommandOrMotionProcessor
|
||||
|
||||
class CommandOrMotionProcessorProvider : SymbolProcessorProvider {
|
||||
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
|
||||
return CommandOrMotionProcessor(environment)
|
||||
}
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.providers
|
||||
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorProvider
|
||||
import com.intellij.vim.processors.ExCommandProcessor
|
||||
|
||||
class ExCommandProcessorProvider : SymbolProcessorProvider {
|
||||
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
|
||||
return ExCommandProcessor(environment)
|
||||
}
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2003-2023 The IdeaVim authors
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style
|
||||
* license that can be found in the LICENSE.txt file or at
|
||||
* https://opensource.org/licenses/MIT.
|
||||
*/
|
||||
|
||||
package com.intellij.vim.providers
|
||||
|
||||
import com.google.devtools.ksp.processing.SymbolProcessor
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
|
||||
import com.google.devtools.ksp.processing.SymbolProcessorProvider
|
||||
import com.intellij.vim.processors.VimscriptFunctionProcessor
|
||||
|
||||
class VimscriptFunctionProcessorProvider : SymbolProcessorProvider {
|
||||
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
|
||||
return VimscriptFunctionProcessor(environment)
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
com.intellij.vim.providers.CommandOrMotionProcessorProvider
|
||||
com.intellij.vim.providers.ExCommandProcessorProvider
|
||||
com.intellij.vim.providers.VimscriptFunctionProcessorProvider
|
BIN
assets/contributing/configs-dark.png
Normal file
BIN
assets/contributing/configs-dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
BIN
assets/contributing/configs-light.png
Normal file
BIN
assets/contributing/configs-light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
BIN
assets/readme/track_action_dark.gif
Normal file
BIN
assets/readme/track_action_dark.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
Before Width: | Height: | Size: 2.1 MiB |
BIN
assets/readme/track_action_light.gif
Normal file
BIN
assets/readme/track_action_light.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 981 KiB |
1225
build.gradle.kts
1225
build.gradle.kts
File diff suppressed because it is too large
Load Diff
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<baseline version="1.0">
|
||||
<file name="src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt">
|
||||
<error line="1" column="1" source="filename" />
|
||||
</file>
|
||||
</baseline>
|
@@ -1,248 +0,0 @@
|
||||
Emulated Vim Plugins
|
||||
--------------------
|
||||
|
||||
IdeaVim extensions emulate plugins of the original Vim. In order to use
|
||||
IdeaVim extensions, you have to enable them via this command in your `~/.ideavimrc`:
|
||||
|
||||
```
|
||||
Plug '<extension-github-reference>'
|
||||
```
|
||||
|
||||
If you reuse your existing `.vimrc` file using `source ~/.vimrc`, IdeaVim can parse and enable plugins that are defined
|
||||
using [vim-plug](https://github.com/junegunn/vim-plug) or [vundle](https://github.com/VundleVim/Vundle.vim).
|
||||
No additional set commands in `~/.ideavimrc` are required.
|
||||
If you'd like to disable some plugin that's enabled in `.vimrc`, you can use `set no<extension-name>`
|
||||
in `~/.ideavimrc`. E.g. `set nosurround`.
|
||||
|
||||
Available extensions:
|
||||
|
||||
## easymotion
|
||||
|
||||
* Setup:
|
||||
* Install [IdeaVim-EasyMotion](https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/)
|
||||
and [AceJump](https://plugins.jetbrains.com/plugin/7086-acejump/) plugins.
|
||||
* `Plug 'easymotion/vim-easymotion'`
|
||||
* <details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plug 'https://github.com/easymotion/vim-easymotion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-easymotion'</code>
|
||||
<br/>
|
||||
<code>set easymotion</code>
|
||||
</details>
|
||||
* Emulates [vim-easymotion](https://github.com/easymotion/vim-easymotion)
|
||||
* Commands: All commands with the mappings are supported. See the [full list of supported commands](https://github.com/AlexPl292/IdeaVim-EasyMotion#supported-commands).
|
||||
|
||||
## NERDTree
|
||||
* Setup: `Plug 'preservim/nerdtree'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/preservim/nerdtree'</code>
|
||||
<br/>
|
||||
<code>Plug 'nerdtree'</code>
|
||||
<br/>
|
||||
<code>set NERDTree</code>
|
||||
</details>
|
||||
* Emulates [NERDTree](https://github.com/preservim/nerdtree)
|
||||
* Commands: [[see here|NERDTree-support]]
|
||||
|
||||
## surround
|
||||
|
||||
* Setup: `Plug 'tpope/vim-surround'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/tpope/vim-surround'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-surround'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=1697'</code>
|
||||
<br/>
|
||||
<code>set surround</code>
|
||||
</details>
|
||||
* Emulates [vim-surround](https://github.com/tpope/vim-surround)
|
||||
* Commands: `ys`, `cs`, `ds`, `S`
|
||||
|
||||
## multiple-cursors
|
||||
|
||||
* Setup: `Plug 'terryma/vim-multiple-cursors'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/terryma/vim-multiple-cursors'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-multiple-cursors'</code>
|
||||
<br/>
|
||||
<code>set multiple-cursors</code>
|
||||
</details>
|
||||
* Emulates [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
|
||||
* Commands: `<A-n>`, `<A-x>`, `<A-p>`, `g<A-n>`
|
||||
|
||||
## commentary
|
||||
|
||||
* Setup: `Plug 'tpope/vim-commentary'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/tpope/vim-commentary'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-commentary'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=3695'</code>
|
||||
<br/>
|
||||
<code>Plug 'tomtom/tcomment_vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'tcomment_vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=1173'</code>
|
||||
<br/>
|
||||
<code>set commentary</code>
|
||||
</details>
|
||||
* Emulates [commentary.vim](https://github.com/tpope/vim-commentary)
|
||||
* Commands: `gcc`, `gc + motion`, `v_gc`
|
||||
* By [Daniel Leong](https://github.com/dhleong)
|
||||
|
||||
## ReplaceWithRegister
|
||||
|
||||
* Setup: `Plug 'vim-scripts/ReplaceWithRegister'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/vim-scripts/ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/inkarkat/vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'inkarkat/vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2703'</code>
|
||||
<br/>
|
||||
<code>set ReplaceWithRegister</code>
|
||||
</details>
|
||||
* Emulates [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister)
|
||||
* Commands: `gr`, `grr`
|
||||
* By [igrekster](https://github.com/igrekster)
|
||||
|
||||
## argtextobj
|
||||
|
||||
* Setup:
|
||||
* `Plug 'vim-scripts/argtextobj.vim'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/vim-scripts/argtextobj.vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'argtextobj.vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2699'</code>
|
||||
<br/>
|
||||
<code>set argtextobj</code>
|
||||
</details>
|
||||
* By default, only the arguments inside parenthesis are considered. To extend the functionality
|
||||
to other types of brackets, set `g:argtextobj_pairs` variable to a comma-separated
|
||||
list of colon-separated pairs (same as VIM's `matchpairs` option), like
|
||||
`let g:argtextobj_pairs="(:),{:},<:>"`. The order of pairs matters when
|
||||
handling symbols that can also be operators: `func(x << 5, 20) >> 17`. To handle
|
||||
this syntax parenthesis, must come before angle brackets in the list.
|
||||
* Emulates [argtextobj.vim](https://www.vim.org/scripts/script.php?script_id=2699)
|
||||
* Additional text objects: `aa`, `ia`
|
||||
|
||||
## exchange
|
||||
|
||||
* Setup: `Plug 'tommcdo/vim-exchange'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/tommcdo/vim-exchange'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-exchange'</code>
|
||||
<br/>
|
||||
<code>set exchange</code>
|
||||
</details>
|
||||
* Emulates [vim-exchange](https://github.com/tommcdo/vim-exchange)
|
||||
* Commands: `cx`, `cxx`, `X`, `cxc`
|
||||
* By [fan-tom](https://github.com/fan-tom)
|
||||
|
||||
## textobj-entire
|
||||
|
||||
* Setup: `Plug 'kana/vim-textobj-entire'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/kana/vim-textobj-entire'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-textobj-entire'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2610'</code>
|
||||
<br/>
|
||||
<code>set textobj-entire</code>
|
||||
</details>
|
||||
* Emulates [vim-textobj-entire](https://github.com/kana/vim-textobj-entire)
|
||||
* Additional text objects: `ae`, `ie`
|
||||
* By [Alexandre Grison](https://github.com/agrison)
|
||||
|
||||
## highlightedyank
|
||||
|
||||
* Setup:
|
||||
* `Plug 'machakann/vim-highlightedyank'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/machakann/vim-highlightedyank'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-highlightedyank'</code>
|
||||
<br/>
|
||||
<code>set highlightedyank</code>
|
||||
</details>
|
||||
* if you want to optimize highlight duration, assign a time in milliseconds:
|
||||
`let g:highlightedyank_highlight_duration = "1000"`
|
||||
A negative number makes the highlight persistent.
|
||||
`let g:highlightedyank_highlight_duration = "-1"`
|
||||
* if you want to change background color of highlight you can provide the rgba of the color you want e.g.
|
||||
`let g:highlightedyank_highlight_color = "rgba(160, 160, 160, 155)"`
|
||||
* Emulates [vim-highlightedyank](https://github.com/machakann/vim-highlightedyank)
|
||||
* By [KostkaBrukowa](https://github.com/KostkaBrukowa)
|
||||
|
||||
## vim-paragraph-motion
|
||||
|
||||
* Setup: `Plug 'dbakker/vim-paragraph-motion'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/dbakker/vim-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/vim-scripts/Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-scripts/Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>set vim-paragraph-motion</code>
|
||||
</details>
|
||||
* Emulates [vim-paragraph-motion](https://github.com/dbakker/vim-paragraph-motion)
|
||||
|
||||
## vim-indent-object
|
||||
|
||||
* Setup: `Plug 'michaeljsmith/vim-indent-object'`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'https://github.com/michaeljsmith/vim-indent-object'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-indent-object'</code>
|
||||
<br/>
|
||||
<code>set textobj-indent</code>
|
||||
</details>
|
||||
* Emulates [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object)
|
||||
* Additional text objects: `ai`, `ii`, `aI`
|
||||
* By [Shrikant Sharat Kandula](https://github.com/sharat87)
|
||||
|
||||
## matchit.vim
|
||||
|
||||
* Setup: `packadd matchit`
|
||||
* <details>
|
||||
<summary>Alternative vim-plug / vundle syntax</summary>
|
||||
<code>Plug 'vim-matchit'</code>
|
||||
<br/>
|
||||
<code>Plug 'chrisbra/matchit'</code>
|
||||
<br/>
|
||||
<code>set matchit</code>
|
||||
</details>
|
||||
* Emulates [matchit.vim](https://github.com/chrisbra/matchit)
|
||||
* Currently works for HTML/XML and ruby
|
||||
* By [Martin Yzeiri](https://github.com/myzeiri)
|
@@ -1,6 +1,6 @@
|
||||
Welcome to the IdeaVim wiki!
|
||||
|
||||
- List of emulated plugins: [[plugins|Emulated-plugins]]
|
||||
- Examples of `ideajoin` option (also known as "smart join"): [["ideajoin" examples|"ideajoin"-examples]]
|
||||
- List of "set" commands: [["set" commands|"set"-commands]]
|
||||
- Docs about "select" mode in vim: [[select mode|Select-mode]]
|
||||
- List of IdeaVim plugins: [plugins](IdeaVim%20Plugins.md)
|
||||
- Examples of `ideajoin` option (also known as "smart join"): ["ideajoin" examples](ideajoin-examples.md)
|
||||
- List of "set" commands: ["set" commands](set-commands.md)
|
||||
- Docs about "select" mode in vim: [select mode](Select-mode.md)
|
||||
|
487
doc/IdeaVim Plugins.md
Normal file
487
doc/IdeaVim Plugins.md
Normal file
@@ -0,0 +1,487 @@
|
||||
IdeaVim Plugins
|
||||
--------------------
|
||||
|
||||
IdeaVim plugins work like the original Vim plugins. If you want to turn any of them on, you have to enable it via this command in your `~/.ideavimrc`:
|
||||
|
||||
```
|
||||
Plug '<plugin-github-reference>'
|
||||
```
|
||||
|
||||
If you reuse your existing `.vimrc` file using `source ~/.vimrc`, IdeaVim can parse and enable plugins that are defined
|
||||
using [vim-plug](https://github.com/junegunn/vim-plug) or [vundle](https://github.com/VundleVim/Vundle.vim).
|
||||
No additional set commands in `~/.ideavimrc` are required.
|
||||
If you'd like to disable some plugin that's enabled in `.vimrc`, you can use `set no<extension-name>`
|
||||
in `~/.ideavimrc`. E.g. `set nosurround`.
|
||||
|
||||
Available plugins:
|
||||
|
||||
<details>
|
||||
<summary><h2>easymotion</h2></summary>
|
||||
|
||||
Original plugin: [vim-easymotion](https://github.com/easymotion/vim-easymotion).
|
||||
|
||||
### Setup:
|
||||
- Install [IdeaVim-EasyMotion](https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/)
|
||||
and [AceJump](https://plugins.jetbrains.com/plugin/7086-acejump/) plugins.
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'easymotion/vim-easymotion'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'easymotion/vim-easymotion'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/easymotion/vim-easymotion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-easymotion'</code>
|
||||
<br/>
|
||||
<code>set easymotion</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
All commands with the mappings are supported. See the [full list of supported commands](https://github.com/AlexPl292/IdeaVim-EasyMotion#supported-commands).
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>sneak</h2></summary>
|
||||
|
||||
<img src="images/sneakIcon.svg" width="80" height="80" alt="icon"/>
|
||||
|
||||
By [Mikhail Levchenko](https://github.com/Mishkun)
|
||||
Original repository with the plugin: https://github.com/Mishkun/ideavim-sneak
|
||||
Original plugin: [vim-sneak](https://github.com/justinmk/vim-sneak).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'justinmk/vim-sneak'`
|
||||
|
||||
### Instructions
|
||||
|
||||
* Type `s` and two chars to start sneaking in forward direction
|
||||
* Type `S` and two chars to start sneaking in backward direction
|
||||
* Type `;` or `,` to proceed with sneaking just as if you were using `f` or `t` commands
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>NERDTree</h2></summary>
|
||||
|
||||
Original plugin: [NERDTree](https://github.com/preservim/nerdtree).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'preservim/nerdtree'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'preservim/nerdtree'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/preservim/nerdtree'</code>
|
||||
<br/>
|
||||
<code>Plug 'nerdtree'</code>
|
||||
<br/>
|
||||
<code>set NERDTree</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
[See here](NERDTree-support.md).
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>surround</h2></summary>
|
||||
|
||||
Original plugin: [vim-surround](https://github.com/tpope/vim-surround).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'tpope/vim-surround'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'tpope/vim-surround'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=1697'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-surround'</code>
|
||||
<br/>
|
||||
<code>set surround</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/tpope/vim-surround/blob/master/doc/surround.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>multiple-cursors</h2></summary>
|
||||
|
||||
Original plugin: [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'terryma/vim-multiple-cursors'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'terryma/vim-multiple-cursors'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/terryma/vim-multiple-cursors'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-multiple-cursors'</code>
|
||||
<br/>
|
||||
<code>set multiple-cursors</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
At the moment, the default key binds for this plugin do not get mapped correctly in IdeaVim (see [VIM-2178](https://youtrack.jetbrains.com/issue/VIM-2178)). To enable the default key binds, add the following to your `.ideavimrc` file...
|
||||
|
||||
```
|
||||
" Remap multiple-cursors shortcuts to match terryma/vim-multiple-cursors
|
||||
nmap <C-n> <Plug>NextWholeOccurrence
|
||||
xmap <C-n> <Plug>NextWholeOccurrence
|
||||
nmap g<C-n> <Plug>NextOccurrence
|
||||
xmap g<C-n> <Plug>NextOccurrence
|
||||
xmap <C-x> <Plug>SkipOccurrence
|
||||
xmap <C-p> <Plug>RemoveOccurrence
|
||||
|
||||
" Note that the default <A-n> and g<A-n> shortcuts don't work on Mac due to dead keys.
|
||||
" <A-n> is used to enter accented text e.g. ñ
|
||||
" Feel free to pick your own mappings that are not affected. I like to use <leader>
|
||||
nmap <leader><C-n> <Plug>AllWholeOccurrences
|
||||
xmap <leader><C-n> <Plug>AllWholeOccurrences
|
||||
nmap <leader>g<C-n> <Plug>AllOccurrences
|
||||
xmap <leader>g<C-n> <Plug>AllOccurrences
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>commentary</h2></summary>
|
||||
|
||||
By [Daniel Leong](https://github.com/dhleong)
|
||||
Original plugin: [commentary.vim](https://github.com/tpope/vim-commentary).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'tpope/vim-commentary'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'tpope/vim-commentary'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/tpope/vim-commentary'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-commentary'</code>
|
||||
<br/>
|
||||
<code>Plug 'tcomment_vim'</code>
|
||||
<br/>
|
||||
<code>set commentary</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/tpope/vim-commentary/blob/master/doc/commentary.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>ReplaceWithRegister</h2></summary>
|
||||
|
||||
By [igrekster](https://github.com/igrekster)
|
||||
Original plugin: [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'vim-scripts/ReplaceWithRegister'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'vim-scripts/ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/inkarkat/vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'inkarkat/vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-ReplaceWithRegister'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2703'</code>
|
||||
<br/>
|
||||
<code>set ReplaceWithRegister</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/vim-scripts/ReplaceWithRegister/blob/master/doc/ReplaceWithRegister.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>argtextobj</h2></summary>
|
||||
|
||||
Original plugin: [argtextobj.vim](https://www.vim.org/scripts/script.php?script_id=2699).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'vim-scripts/argtextobj.vim'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'vim-scripts/argtextobj.vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/vim-scripts/argtextobj.vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'argtextobj.vim'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2699'</code>
|
||||
<br/>
|
||||
<code>set argtextobj</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
By default, only the arguments inside parenthesis are considered. To extend the functionality
|
||||
to other types of brackets, set `g:argtextobj_pairs` variable to a comma-separated
|
||||
list of colon-separated pairs (same as VIM's `matchpairs` option), like
|
||||
`let g:argtextobj_pairs="(:),{:},<:>"`. The order of pairs matters when
|
||||
handling symbols that can also be operators: `func(x << 5, 20) >> 17`. To handle
|
||||
this syntax parenthesis, must come before angle brackets in the list.
|
||||
|
||||
https://www.vim.org/scripts/script.php?script_id=2699
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>exchange</h2></summary>
|
||||
|
||||
By [fan-tom](https://github.com/fan-tom)
|
||||
Original plugin: [vim-exchange](https://github.com/tommcdo/vim-exchange).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'tommcdo/vim-exchange'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'tommcdo/vim-exchange'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/tommcdo/vim-exchange'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-exchange'</code>
|
||||
<br/>
|
||||
<code>set exchange</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/tommcdo/vim-exchange/blob/master/doc/exchange.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>textobj-entire</h2></summary>
|
||||
|
||||
By [Alexandre Grison](https://github.com/agrison)
|
||||
Original plugin: [vim-textobj-entire](https://github.com/kana/vim-textobj-entire).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'kana/vim-textobj-entire'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'kana/vim-textobj-entire'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-textobj-entire'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2610'</code>
|
||||
<br/>
|
||||
<code>set textobj-entire</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/kana/vim-textobj-entire/blob/master/doc/textobj-entire.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>highlightedyank</h2></summary>
|
||||
|
||||
By [KostkaBrukowa](https://github.com/KostkaBrukowa)
|
||||
Original plugin: [vim-highlightedyank](https://github.com/machakann/vim-highlightedyank).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'machakann/vim-highlightedyank'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'machakann/vim-highlightedyank'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/machakann/vim-highlightedyank'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-highlightedyank'</code>
|
||||
<br/>
|
||||
<code>set highlightedyank</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
If you want to optimize highlight duration, assign a time in milliseconds:
|
||||
`let g:highlightedyank_highlight_duration = "1000"`
|
||||
A negative number makes the highlight persistent.
|
||||
|
||||
If you want to change background color of highlight you can provide the rgba of the color you want e.g.
|
||||
`let g:highlightedyank_highlight_color = "rgba(160, 160, 160, 155)"`
|
||||
|
||||
If you want to change text color of highlight you can provide the rgba of the color you want e.g.
|
||||
`let g:highlightedyank_highlight_foreground_color = "rgba(0, 0, 0, 255)"`
|
||||
|
||||
https://github.com/machakann/vim-highlightedyank/blob/master/doc/highlightedyank.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>vim-paragraph-motion</h2></summary>
|
||||
|
||||
Original plugin: [vim-paragraph-motion](https://github.com/dbakker/vim-paragraph-motion).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'dbakker/vim-paragraph-motion'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'dbakker/vim-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/dbakker/vim-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/vim-scripts/Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-scripts/Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>Plug 'Improved-paragraph-motion'</code>
|
||||
<br/>
|
||||
<code>set vim-paragraph-motion</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/dbakker/vim-paragraph-motion#vim-paragraph-motion
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>vim-indent-object</h2></summary>
|
||||
|
||||
By [Shrikant Sharat Kandula](https://github.com/sharat87)
|
||||
Original plugin: [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `Plug 'michaeljsmith/vim-indent-object'`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plugin 'michaeljsmith/vim-indent-object'</code>
|
||||
<br/>
|
||||
<code>Plug 'https://github.com/michaeljsmith/vim-indent-object'</code>
|
||||
<br/>
|
||||
<code>Plug 'vim-indent-object'</code>
|
||||
<br/>
|
||||
<code>set textobj-indent</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/michaeljsmith/vim-indent-object/blob/master/doc/indent-object.txt
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>matchit.vim</h2></summary>
|
||||
|
||||
By [Martin Yzeiri](https://github.com/myzeiri)
|
||||
Original plugin: [matchit.vim](https://github.com/chrisbra/matchit).
|
||||
|
||||
### Setup:
|
||||
- Add the following command to `~/.ideavimrc`: `packadd matchit`
|
||||
<details>
|
||||
<summary>Alternative syntax</summary>
|
||||
<code>Plug 'vim-matchit'</code>
|
||||
<br/>
|
||||
<code>Plug 'chrisbra/matchit'</code>
|
||||
<br/>
|
||||
<code>set matchit</code>
|
||||
</details>
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/adelarsq/vim-matchit/blob/master/doc/matchit.txt
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>IdeaVim-Quickscope</h2></summary>
|
||||
|
||||
Original plugin: [quick-scope](https://github.com/unblevable/quick-scope).
|
||||
|
||||
### Setup:
|
||||
- Install [IdeaVim-Quickscope](https://plugins.jetbrains.com/plugin/19417-ideavim-quickscope) plugin.
|
||||
- Add the following command to `~/.ideavimrc`: `set quickscope`
|
||||
|
||||
### Instructions
|
||||
|
||||
https://plugins.jetbrains.com/plugin/19417-ideavim-quickscope
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>Which-Key</h2></summary>
|
||||
|
||||
Original plugin: [vim-which-key](https://github.com/liuchengxu/vim-which-key).
|
||||
|
||||
### Setup:
|
||||
- Install [Which-Key](https://plugins.jetbrains.com/plugin/15976-which-key) plugin.
|
||||
- Add the following command to `~/.ideavimrc`: `set which-key`
|
||||
|
||||
### Instructions
|
||||
|
||||
https://github.com/TheBlob42/idea-which-key?tab=readme-ov-file#installation
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary><h2>Vim Peekaboo</h2></summary>
|
||||
|
||||
By Julien Phalip
|
||||
Original plugin: [vim-peekaboo](https://github.com/junegunn/vim-peekaboo).
|
||||
|
||||
### Setup
|
||||
|
||||
Add `set peekaboo` to your `~/.ideavimrc` file, then run `:source ~/.ideavimrc`
|
||||
or restart the IDE.
|
||||
|
||||
### Instructions
|
||||
|
||||
https://plugins.jetbrains.com/plugin/25776-vim-peekaboo
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>FunctionTextObj</h2></summary>
|
||||
|
||||
By Julien Phalip
|
||||
|
||||
### Setup
|
||||
|
||||
Add `set functiontextobj` to your `~/.ideavimrc` file, then run `:source ~/.ideavimrc`
|
||||
or restart the IDE.
|
||||
|
||||
### Instructions
|
||||
|
||||
https://plugins.jetbrains.com/plugin/25897-vim-functiontextobj
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h2>Switch</h2></summary>
|
||||
|
||||
By Julien Phalip
|
||||
Original plugin: [switch.vim](https://github.com/AndrewRadev/switch.vim).
|
||||
|
||||
### Setup
|
||||
|
||||
Add `set switch` to your `~/.ideavimrc` file, then run `:source ~/.ideavimrc`
|
||||
or restart the IDE.
|
||||
|
||||
### Instructions
|
||||
|
||||
https://plugins.jetbrains.com/plugin/25899-vim-switch
|
||||
|
||||
</details>
|
@@ -1,8 +1,8 @@
|
||||
# NERDTree
|
||||
|
||||
IdeaVim supports emulation of the NERDTree plugin. Update your `~/.ideavimrc` to turn it on:
|
||||
IdeaVim supports the NERDTree plugin. Update your `~/.ideavimrc` to turn it on:
|
||||
```vim
|
||||
Plug 'preservim/nerdtree`
|
||||
Plug 'preservim/nerdtree'
|
||||
```
|
||||
or
|
||||
```vim
|
||||
@@ -15,7 +15,7 @@ Use `set noNERDTree` to disable this extension.
|
||||
|
||||
```vim
|
||||
set NERDTree
|
||||
Plug 'preservim/nerdtree`
|
||||
Plug 'preservim/nerdtree'
|
||||
Plug 'https://github.com/preservim/nerdtree'
|
||||
Plug 'https://github.com/scrooloose/nerdtree'
|
||||
Plug 'scrooloose/nerdtree'
|
||||
@@ -27,7 +27,7 @@ Plug 'nerdtree'
|
||||
### Preview
|
||||
|
||||
<details>
|
||||
<summary>Click to the the preview</summary>
|
||||
<summary>Click for the preview</summary>
|
||||
<img src="images/nerdtree.gif" alt="NERDTree example"/>
|
||||
</details>
|
||||
|
||||
@@ -40,30 +40,33 @@ Plug 'nerdtree'
|
||||
- `:NERDTreeFind`
|
||||
- `:NERDTreeRefreshRoot`
|
||||
|
||||
| Key | Description | Map Setting |
|
||||
|---------|---------------------------------------------------------|--------------------------------|
|
||||
| `o` | Open files, directories and bookmarks | `g:NERDTreeMapActivateNode` |
|
||||
| `go` | Open selected file, but leave cursor in the NERDTree | `g:NERDTreeMapPreview` |
|
||||
| `t` | Open selected node/bookmark in a new tab | `g:NERDTreeMapOpenInTab` |
|
||||
| `T` | Same as 't' but keep the focus on the current tab | `g:NERDTreeMapOpenInTabSilent` |
|
||||
| `i` | Open selected file in a split window | `g:NERDTreeMapOpenSplit` |
|
||||
| `gi` | Same as i, but leave the cursor on the NERDTree | `g:NERDTreeMapPreviewSplit` |
|
||||
| `s` | Open selected file in a new vsplit | `g:NERDTreeMapOpenVSplit` |
|
||||
| `gs` | Same as s, but leave the cursor on the NERDTree | `g:NERDTreeMapPreviewVSplit` |
|
||||
| `O` | Recursively open the selected directory | `g:NERDTreeMapOpenRecursively` |
|
||||
| `x` | Close the current nodes parent | `g:NERDTreeMapCloseDir` |
|
||||
| `X` | Recursively close all children of the current node | `g:NERDTreeMapCloseChildren` |
|
||||
| `P` | Jump to the root node | `g:NERDTreeMapJumpRoot` |
|
||||
| `p` | Jump to current nodes parent | `g:NERDTreeMapJumpParent` |
|
||||
| `K` | Jump up inside directories at the current tree depth | `g:NERDTreeMapJumpFirstChild` |
|
||||
| `J` | Jump down inside directories at the current tree depth | `g:NERDTreeMapJumpLastChild` |
|
||||
| `<C-J>` | Jump down to next sibling of the current directory | `g:NERDTreeMapJumpNextSibling` |
|
||||
| `<C-K>` | Jump up to previous sibling of the current directory | `g:NERDTreeMapJumpPrevSibling` |
|
||||
| `r` | Recursively refresh the current directory | `g:NERDTreeMapRefresh` |
|
||||
| `R` | Recursively refresh the current root | `g:NERDTreeMapRefreshRoot` |
|
||||
| `m` | Display the NERDTree menu | `g:NERDTreeMapMenu` |
|
||||
| `q` | Close the NERDTree window | `g:NERDTreeMapQuit` |
|
||||
| `A` | Zoom (maximize/minimize) the NERDTree window | `g:NERDTreeMapToggleZoom` |
|
||||
| Key | Description | Map Setting |
|
||||
|---------|--------------------------------------------------------|--------------------------------|
|
||||
| `o` | Open files, directories and bookmarks | `g:NERDTreeMapActivateNode` |
|
||||
| `go` | Open selected file, but leave cursor in the NERDTree | `g:NERDTreeMapPreview` |
|
||||
| `t` | Open selected node/bookmark in a new tab | `g:NERDTreeMapOpenInTab` |
|
||||
| `T` | Same as 't' but keep the focus on the current tab | `g:NERDTreeMapOpenInTabSilent` |
|
||||
| `i` | Open selected file in a split window | `g:NERDTreeMapOpenSplit` |
|
||||
| `gi` | Same as i, but leave the cursor on the NERDTree | `g:NERDTreeMapPreviewSplit` |
|
||||
| `s` | Open selected file in a new vsplit | `g:NERDTreeMapOpenVSplit` |
|
||||
| `gs` | Same as s, but leave the cursor on the NERDTree | `g:NERDTreeMapPreviewVSplit` |
|
||||
| `O` | Recursively open the selected directory | `g:NERDTreeMapOpenRecursively` |
|
||||
| `x` | Close the current nodes parent | `g:NERDTreeMapCloseDir` |
|
||||
| `X` | Recursively close all children of the current node | `g:NERDTreeMapCloseChildren` |
|
||||
| `P` | Jump to the root node | `g:NERDTreeMapJumpRoot` |
|
||||
| `p` | Jump to current nodes parent | `g:NERDTreeMapJumpParent` |
|
||||
| `K` | Jump up inside directories at the current tree depth | `g:NERDTreeMapJumpFirstChild` |
|
||||
| `J` | Jump down inside directories at the current tree depth | `g:NERDTreeMapJumpLastChild` |
|
||||
| `<C-J>` | Jump down to next sibling of the current directory | `g:NERDTreeMapJumpNextSibling` |
|
||||
| `<C-K>` | Jump up to previous sibling of the current directory | `g:NERDTreeMapJumpPrevSibling` |
|
||||
| `r` | Recursively refresh the current directory | `g:NERDTreeMapRefresh` |
|
||||
| `R` | Recursively refresh the current root | `g:NERDTreeMapRefreshRoot` |
|
||||
| `m` | Display the NERDTree menu | `g:NERDTreeMapMenu` |
|
||||
| `q` | Close the NERDTree window | `g:NERDTreeMapQuit` |
|
||||
| `A` | Zoom (maximize/minimize) the NERDTree window | `g:NERDTreeMapToggleZoom` |
|
||||
| `d` | Delete file or directory | `g:NERDTreeMapDelete` |
|
||||
| `n` | Create File | `g:NERDTreeMapNewFile` |
|
||||
| `N` | Create Directory | `g:NERDTreeMapNewDir` |
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
|
@@ -3,6 +3,11 @@ Put `set ideajoin` to your `~/.ideavimrc` to enable this functionality.
|
||||
|
||||
Now, you can press `J` (`shift+j`) on a line or a selected block of text to join the lines together.
|
||||
|
||||
:warning: This feature is language-specific. This means that the IDE should implement this feature for a particular
|
||||
language in order for the IDE to work as described below. If any of the examples provided below don't match your case,
|
||||
please file an issue in the project related to your IDE: https://youtrack.jetbrains.com/.
|
||||
Here is a list of known requests: https://youtrack.jetbrains.com/issues?q=links:VIM-3214.
|
||||
|
||||
* Automatic join concatenated lines:
|
||||
|
||||
```
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user