1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-08-17 07:31:47 +02:00

Compare commits

..

2936 Commits

Author SHA1 Message Date
1afd0d3c37 Set plugin version to chylex-18 2023-10-20 00:58:13 +02:00
547bd08c7e Set minimum IDEA version to 2023.2 2023-10-20 00:58:13 +02:00
0c4154547f Reset insert mode when switching active editor 2023-10-20 00:58:12 +02:00
92d8be1ba4 Revert "Add VimScript 'renaming()' function"
This reverts commit a8a822b58e.
2023-10-20 00:58:12 +02:00
080dbe9c0e Prevent IdeaVIM from stealing key binding that confirms in-place refactoring 2023-10-20 00:58:12 +02:00
ff7e6bf053 Set plugin version to chylex-17 2023-10-19 06:13:47 +02:00
f19ce34311 Add operating system type to has() function 2023-10-18 22:14:42 +02:00
8bcb0d116d Set plugin version to chylex-16 2023-09-29 01:39:49 +02:00
d9ae9fa40d Remove update checker 2023-09-29 01:39:48 +02:00
c19f88e5c0 [VIM-696] Restore visual mode after undo/redo, and disable incompatible actions 2023-09-29 01:39:48 +02:00
03f4fb288d Change matchit plugin to use HTML patterns in unrecognized files 2023-09-29 01:39:48 +02:00
ef27579277 Fix vim-surround not working with multiple cursors
Fixes multiple cursors with vim-surround commands `cs, ds, S` (but not `ys`).
2023-09-29 01:39:48 +02:00
a8a822b58e Add VimScript 'renaming()' function 2023-09-29 01:39:48 +02:00
9752bd5bbb Add support for repeatable actions with ':raction' 2023-09-29 01:39:48 +02:00
240d9e0be4 Disable taking over arrow keys and Home/End 2023-09-29 01:39:48 +02:00
328442544d Set custom plugin version 2023-09-29 01:39:48 +02:00
aleksei.plate@jetbrains.com
7d4981639a TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish patch release' build configuration were updated 2023-09-15 11:49:05 +00:00
Alex Plate
967538767a Push only a specific tag on EAP 2023-09-15 14:20:21 +03:00
Alex Plate
4731eb9db8 Bring back removed functions 2023-09-14 16:50:52 +03:00
Alex Plate
337f5ade59 Get rid of deprecated method 2023-09-14 16:31:26 +03:00
Alex Plate
fe8bbcb11a Bring back a method to keep the compatibility 2023-09-14 16:26:14 +03:00
Alex Plate
b1b6b0bf80 Add links to the new page about modes 2023-09-14 15:44:00 +03:00
Alex Plate
1c28c138e0 Add post about modes in vim 2023-09-14 15:41:23 +03:00
dependabot[bot]
cb73111779 Bump io.ktor:ktor-client-cio from 2.3.3 to 2.3.4
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.4/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-cio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-13 15:47:28 +00:00
dependabot[bot]
6250678f61 Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.3 to 2.3.4
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.4/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-13 18:35:41 +03:00
Alex Plate
1821f01ef1 Fix detecting the commit by tag 2023-09-13 16:33:16 +03:00
Alex Plate
350f084156 Update changeslog 2023-09-12 14:41:13 +03:00
Alex Plate
a6c2babafb Fix issue with GitHub CI changes pushing 2023-09-12 14:40:08 +03:00
IdeaVim Bot
f566aed1fe Update changelog. Action id - 6158816999 2023-09-12 11:34:46 +00:00
Alex Plate
10fb54224c Use a deploy key to pull the changes 2023-09-12 14:29:20 +03:00
Matt Ellis
585b815472 Only notify changes if the value is different
This is primarily to avoid instantiating inactive extensions when
resetting all options back to default values, which sets extensions
inactive.
It applies to global and local options, but not to global-local. The
notifications for global-local options are already complex, as they can
be reacting to changes to both the global and local value, and only
notifying editors that are affected.
2023-09-11 11:04:09 +03:00
Matt Ellis
c37e2f4176 Update fallback window when all windows close 2023-09-11 11:04:09 +03:00
Matt Ellis
626d59d3fc Only use fallback for first initialisation
Subsequent initialisation will be treated like EDIT
2023-09-11 11:04:09 +03:00
Matt Ellis
ddd058a26f Fix name of usage statistic 2023-09-11 11:04:09 +03:00
Matt Ellis
32b8d03c5e Improve modifying string and string list options 2023-09-11 11:04:09 +03:00
Matt Ellis
71f3e1b4f1 Support per-window global values
For local-to-window options
2023-09-11 11:04:09 +03:00
Matt Ellis
aa6f53fa68 Require editor when getting/setting global option 2023-09-11 11:04:09 +03:00
Matt Ellis
1335e9f7f2 Improve detection of editor open scenarios 2023-09-11 11:04:09 +03:00
Matt Ellis
c75599b6a0 Refactor editor options initialisation 2023-09-11 11:04:09 +03:00
Matt Ellis
2efdfbd988 Remove unnecessary calls from tests 2023-09-11 11:04:09 +03:00
Matt Ellis
700198d8bc Remove test only vimscript execute method 2023-09-11 11:04:09 +03:00
Matt Ellis
3efab5928e Evaluate ideavimrc in the fallback window context 2023-09-11 11:04:09 +03:00
Matt Ellis
93037b6866 Add fallback window to capture local option state 2023-09-11 11:04:09 +03:00
Matt Ellis
0f19e50c69 Improve hierarchy of option accessors
Getting the effective IJ options would allow access to Vim global and IJ global, but not Vim effective. IntelliJ specific options are now a separate hierarchy, so the Vim effective and IJ effective accessors now simply access all Vim or all IJ options.
2023-09-11 11:04:09 +03:00
Matt Ellis
66ea6ad3d4 Rename OptionScope to OptionAccessScope 2023-09-11 11:04:09 +03:00
Alex Plate
b6dc1f0e61 Add new harpoon plugin as a dependent plugin 2023-09-11 10:42:39 +03:00
filipp
0c1dc51db4 Fix(VIM-3060): Clipboard interaction stopped working
Fix for Windows
2023-09-07 14:42:00 +03:00
filipp
74a710c5e8 VIM-3060 Clipboard interaction stopped working
Fixed issue and tests (for Linux)
2023-09-07 02:39:23 +03:00
dependabot[bot]
c4a773e72d Bump io.ktor:ktor-client-auth from 2.3.3 to 2.3.4
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.4/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-06 16:15:12 +00:00
dependabot[bot]
ad43fc37ab Bump io.ktor:ktor-client-content-negotiation from 2.3.3 to 2.3.4
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.4/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-06 19:00:07 +03:00
dependabot[bot]
8011c048a2 Bump io.ktor:ktor-client-core from 2.3.3 to 2.3.4
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.3 to 2.3.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.4/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.3...2.3.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-06 15:48:02 +00:00
dependabot[bot]
c4ee9987bf Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps org.eclipse.jgit:org.eclipse.jgit.ssh.apache from 6.6.0.202305301015-r to 6.7.0.202309050840-r.

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit.ssh.apache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-06 15:47:47 +00:00
Alex Pláte
f70decddd1 Update README.md
Fix type
2023-09-06 08:29:54 +03:00
Alex Plate
79a0aea065 Remove bunny plugin 2023-09-04 09:38:37 +03:00
Alex Plate
fe87e86721 Fix typo in wiki 2023-09-01 19:09:14 +03:00
Alex Plate
456055bcf0 Do not run multiple carets from ChangeEditorActionHandler and instead pass this information to EditorActionHandlerBase
This is needed for the new way we register handlers. As we can't be sure that this commands won't be called from the `runForEachCaret` context, we have to avoid this method
2023-09-01 17:25:14 +03:00
Alex Plate
5ebe290424 Check if the caret if valid 2023-09-01 15:27:27 +03:00
Alex Plate
4532d68743 Convert change group to kotlin 2023-09-01 14:29:51 +03:00
Alex Plate
1903e18397 Rename .java to .kt 2023-09-01 14:13:57 +03:00
Alex Plate
a705bf7053 Get rid of the exception suppression
This suppression existed for a very long time. Now it hid one of the exceptions I expected.
2023-09-01 13:58:11 +03:00
Alex Plate
26e9bf5197 Detect if we run the action in runForEachCaret scope or not 2023-09-01 13:25:15 +03:00
Alex Plate
64007b3634 Update changelog to version 2.5.0 2023-09-01 13:04:48 +03:00
Alex Plate
80f099220c Add pushing the branch 2023-09-01 13:03:53 +03:00
Alex Plate
08615f2295 Remove deprecated release workflow 2023-09-01 12:49:47 +03:00
Alex Plate
5c02bb4f91 Use bash script in release workflow 2023-09-01 12:48:44 +03:00
Alex Plate
ad6aee55f9 Add comment 2023-09-01 12:41:25 +03:00
Alex Plate
aac4fd8e5e Use shell to push 2023-09-01 12:29:23 +03:00
Alex Plate
c013ae7dab Fix incorrect gradle config 2023-09-01 11:45:24 +03:00
Alex Plate
57ab4b0849 Cleanup push code 2023-09-01 11:41:23 +03:00
Alex Plate
24a762504f Do not push release branch on EAP or patch release 2023-09-01 11:40:34 +03:00
Alex Plate
838bcc07a4 Update usages of jgit in repository 2023-09-01 11:40:32 +03:00
Alex Plate
0f0c996b54 Update usages of jgit in repository 2023-09-01 11:31:22 +03:00
dependabot[bot]
b1ad67a354 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.0-1.0.13 to 1.9.10-1.0.13.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.0-1.0.13...1.9.10-1.0.13)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp:symbol-processing-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-30 15:50:58 +00:00
dependabot[bot]
c7a64c0c7c Bump org.jetbrains.changelog from 2.1.2 to 2.2.0
Bumps org.jetbrains.changelog from 2.1.2 to 2.2.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-30 15:40:47 +00:00
dependabot[bot]
5da87dbe0a Bump org.jetbrains.kotlin:kotlin-stdlib from 1.8.21 to 1.9.10
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.8.21 to 1.9.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.9.10/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.8.21...v1.9.10)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-stdlib
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-30 15:37:36 +00:00
dependabot[bot]
38e1a62f19 Bump org.jetbrains.kotlinx:kotlinx-serialization-json-jvm
Bumps [org.jetbrains.kotlinx:kotlinx-serialization-json-jvm](https://github.com/Kotlin/kotlinx.serialization) from 1.5.1 to 1.6.0.
- [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kotlin/kotlinx.serialization/compare/v1.5.1...v1.6.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json-jvm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-30 18:36:38 +03:00
Alex Plate
5174a26719 Comment out TC requirements because they don't override 2023-08-25 19:05:42 +03:00
Alex Pláte
98886cb269 Update README.md
Add reference to stackoverflow answer about names of VIsual mode
2023-08-25 11:48:26 +03:00
Alex Plate
e7a8b45c10 [VIM-3051] Refactor the way we store modes in IdeaVim
Now we have a single variable with current mode instead of stack of modes.
2023-08-25 11:38:21 +03:00
Alex Plate
2e0ec73d77 Remove some deprecated methods 2023-08-25 11:17:28 +03:00
dependabot[bot]
b8b324cdf3 Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.0 to 2.3.3
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.0 to 2.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.0...2.3.3)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-23 19:08:49 +03:00
dependabot[bot]
12600d8404 Bump org.mockito.kotlin:mockito-kotlin from 4.1.0 to 5.1.0
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 4.1.0 to 5.1.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/4.1.0...5.1.0)

---
updated-dependencies:
- dependency-name: org.mockito.kotlin:mockito-kotlin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-23 18:56:25 +03:00
dependabot[bot]
d9dfdb7e68 Bump org.jetbrains.intellij from 1.14.2 to 1.15.0
Bumps org.jetbrains.intellij from 1.14.2 to 1.15.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.intellij
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-23 18:55:44 +03:00
dependabot[bot]
07f8b2c47b Bump io.ktor:ktor-client-cio from 2.2.4 to 2.3.3
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.2.4 to 2.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.2.4...2.3.3)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-cio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-23 15:55:25 +00:00
Alex Plate
b9c4ae2fbb Update the external Vim license
RIP Bram Moolenaar
https://twitter.com/ideavim/status/1688541894979051520

This change follows the update of the original Vim license: e978b4534a
2023-08-18 17:04:58 +03:00
filipp.vakhitov
2b2d78edc0 TeamCity change in 'Ideavim' project: requirements of 'Tests for IntelliJ Latest EAP With Xorg' build configuration were updated 2023-08-18 08:46:59 +00:00
filipp.vakhitov
2ad78c722a TeamCity change in 'Ideavim' project: requirements of 'Tests for IntelliJ Latest EAP With Xorg' build configuration were updated 2023-08-18 08:46:45 +00:00
filipp.vakhitov
99771babba TeamCity change in 'Ideavim' project: requirements of 'Tests for IntelliJ Latest EAP With Xorg' build configuration were updated 2023-08-18 08:46:12 +00:00
filipp.vakhitov
1b0ba48b9d TeamCity change in 'Ideavim' project: requirements of 'Tests for IntelliJ Latest EAP With Xorg' build configuration were updated 2023-08-18 08:39:02 +00:00
filipp
95cf32c70a Add build configuration 2023-08-18 11:34:43 +03:00
dependabot[bot]
14469d1a2e Bump org.jetbrains.changelog from 2.0.0 to 2.1.2
Bumps org.jetbrains.changelog from 2.0.0 to 2.1.2.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-17 09:11:54 +03:00
dependabot[bot]
336f1c3b80 Bump org.jetbrains.kotlinx:kotlinx-serialization-json-jvm
Bumps [org.jetbrains.kotlinx:kotlinx-serialization-json-jvm](https://github.com/Kotlin/kotlinx.serialization) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/Kotlin/kotlinx.serialization/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.serialization/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Kotlin/kotlinx.serialization/compare/v1.5.0...v1.5.1)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx:kotlinx-serialization-json-jvm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 16:21:36 +00:00
dependabot[bot]
055fd4379a Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.8.21-1.0.11 to 1.9.0-1.0.13.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.8.21-1.0.11...1.9.0-1.0.13)

---
updated-dependencies:
- dependency-name: com.google.devtools.ksp:symbol-processing-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 16:04:23 +00:00
dependabot[bot]
f6b5cfe1d4 Bump io.ktor:ktor-client-core from 2.2.4 to 2.3.3
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.2.4 to 2.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.2.4...2.3.3)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 16:04:09 +00:00
dependabot[bot]
df744fe48b Bump com.squareup.okhttp3:okhttp from 4.10.0 to 4.11.0
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 4.10.0 to 4.11.0.
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okhttp/compare/parent-4.10.0...parent-4.11.0)

---
updated-dependencies:
- dependency-name: com.squareup.okhttp3:okhttp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 19:02:17 +03:00
Alex Plate
9f10a4a0b7 Revert "Temporally disable some tests"
This reverts commit bf6a8a71
2023-08-14 16:17:47 +03:00
Alex Plate
22ca74a1a3 Use a different approach for switching to visual mode. The previous way caused "recursive runForEachCaret exception" 2023-08-14 16:17:47 +03:00
Alex Plate
3093c9212c Add note about visual type in text objects 2023-08-14 16:17:46 +03:00
dependabot[bot]
6b8a4e6e63 Bump org.junit.jupiter:junit-jupiter-engine from 5.9.2 to 5.10.0
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.9.2 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 11:28:23 +03:00
dependabot[bot]
d256870953 Bump org.junit.jupiter:junit-jupiter-api from 5.9.2 to 5.10.0
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.9.2 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 08:16:59 +00:00
dependabot[bot]
8fd8cceadb Bump io.ktor:ktor-client-auth from 2.2.4 to 2.3.3
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.2.4 to 2.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.2.4...2.3.3)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-auth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 11:09:38 +03:00
dependabot[bot]
402b532311 Bump org.junit.jupiter:junit-jupiter-params from 5.9.2 to 5.10.0
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.9.2 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 11:05:11 +03:00
Alex Plate
8e85d35d8f Disable the failed test again 2023-08-14 10:53:17 +03:00
Alex Plate
6b6794a367 Check if test will fail on server 2023-08-14 10:36:44 +03:00
Alex Plate
14a726b5af Add a note 2023-08-14 10:35:54 +03:00
dependabot[bot]
3e937d234b Bump io.ktor:ktor-client-content-negotiation from 2.2.4 to 2.3.3
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.2.4 to 2.3.3.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.2.4...2.3.3)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 10:29:17 +03:00
Alex Plate
bf6a8a713b Temporally disable some tests 2023-08-14 10:08:36 +03:00
IdeaVim Bot
b8c5e7aaba Update changelog after merging PR 2023-08-14 06:07:23 +00:00
Ludwig Valda Vasquez
068d610e3a Add grapheme cluster handling tests
GraphemeBreakTest.txt was downloaded from the Unicode Character Database [0].

Changes to build.gradle.kts were required to stop `gradlew test` from
regenerating the resources with empty JSON objects. And adding a
dependency.

[0]: https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt
2023-08-14 09:04:41 +03:00
Ludwig Valda Vasquez
41177b91be Handle unicode grapheme clusters
Some characters that render as a single symbol can span over a sequence
of several unicode code points (e.g., flag emojis, combination of a
letter and a diacritic, Hangul syllables, etc.).

Such composites are called grapheme clusters in the unicode standard,
and this patch introduces recognition of extended grapheme cluster
boundaries, allowing to iterate over rendered characters. Without this,
user may observe the cursor being "stuck" inside a character for several
keystrokes, while it's making its way through each code point in the
grapheme cluster.

The implementation follows the boundaries search algorithm outlined in
the technical report 29 of the Unicode standard[1]. The implementation was
tested against the set of test cases provided by the unicode character
database[2].

Additionally to the grapheme cluster boundaries search itself, this
patch adds `isExtendedPictographic` function, that answers whether the
given code point has a unicode "Extended_Pictographic" property, which
is required to correctly determine grapheme cluster boundaries. This
method is implemented natively in the JDK 21 and can be removed once we
start targeting that version.

Extended_Pictographic property is stored as a bitmap. I was considering
making a similar map for the code point classification in the grapheme
cluster boundary search implementation, which could yield better
performance, but that would require adding another half a megabyte (at
least) of data into the JAR and I've settled for the bunch of `if`s way.

That is something that can be reconsidered and shouldn't be difficult to
change if the impact on performance would be noticeable (in my simple
tests it didn't show).

A few functions in the vim-engine were adjusted to handle grapheme
clusters (such as getting the horizontal offset and adjusting the cursor
to not reach over the end of the line).

[1]: https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
[2]: https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt
2023-08-14 09:04:41 +03:00
Filipp Vakhitov
c2ebacdfb3 Better annotations 2023-08-11 15:57:09 +03:00
Alex Plate
5d4996c085 Optimize imports on the project 2023-08-11 11:54:38 +03:00
Alex Plate
dbafbbf66d Add a small interesting facts about undolevels 2023-08-11 11:47:36 +03:00
Filipp Vakhitov
a46200ca17 Introduce TestForLinux annotation 2023-08-11 00:22:43 +03:00
filipp
1fe64e69ca Support running tests if headless 2023-08-04 19:00:47 +03:00
IdeaVim Bot
a017ec9bfd Update changelog after merging PR 2023-08-03 12:03:00 +00:00
Matt Ellis
cb8385a092 Fix issue adding back hidden status bar widget 2023-08-03 15:00:28 +03:00
Matt Ellis
d4aa1f87e0 Fix read-only stdin when running application 2023-08-03 14:58:47 +03:00
filipp
41df06a48b Fix failing tests second attempt
(please please)
2023-08-03 14:00:03 +03:00
filipp
4188e636f3 Fix failing tests
(please)
2023-08-03 13:39:33 +03:00
filipp
e2c0d59e3a Fix default register for unnamedplus without X 2023-08-03 11:24:29 +03:00
Alex Plate
6a8c210a23 Fix incorrect tic in docs 2023-08-02 16:43:53 +03:00
Alex Plate
a62cc3618c Fix an issue with disposed caret when moving up
There was an issue that when we enter visual block, move up, then try to switch to the visual line, we get a disposed caret issue.
This was caused by the fact that we get the list of carets, then process them one by one. However, as we update the first caret, the second gets disposed.
2023-08-01 16:17:39 +03:00
Alex Plate
a703afbef9 Update changelog 2023-08-01 12:25:38 +03:00
Alex Plate
5ce8445d5c Update GH jobs to use the IdeaVim Bot git account 2023-08-01 12:25:38 +03:00
Matt Ellis
d112030a8e Add explanatory comment about InsertExitModeAction 2023-08-01 12:22:26 +03:00
Matt Ellis
98ca4080dd Do not enter INSERT mode for read-only editors
It's not enough that the document is writable, the editor needs to be non-read-only, too.

Fixes VIM-2313, fixes VIM-2318, fixes VIM-2666, fixes VIM-2951
2023-08-01 12:22:26 +03:00
Alex Plate
3b9c63e781 Update changelog after merging PR 2023-07-31 08:31:19 +00:00
Matt Ellis
dd24ebf184 Rename OptionsScope.AUTO to EFFECTIVE 2023-07-31 11:28:32 +03:00
Matt Ellis
7ef2be625f Refactor parseOptionLine for readability 2023-07-31 11:28:32 +03:00
Matt Ellis
e3957d2207 Minor updates from code review 2023-07-31 11:28:32 +03:00
Matt Ellis
8ce1307d51 Fix tests under latest SDK 2023-07-31 11:28:32 +03:00
Matt Ellis
e1141dcd1c Remove old option listener API 2023-07-31 11:28:32 +03:00
Matt Ellis
4e33b5f351 Migrate to effective value change listeners 2023-07-31 11:28:32 +03:00
Matt Ellis
54dc184dd0 Introduce option effective value change listener 2023-07-31 11:28:32 +03:00
Matt Ellis
1977ce3ea5 Add simple one to many collection 2023-07-31 11:28:32 +03:00
Matt Ellis
c8c9d1729e Introduce listener for global option changes 2023-07-31 11:28:32 +03:00
Matt Ellis
e6e4b81f3b Simplify guicursor caret attributes cache 2023-07-31 11:28:32 +03:00
Matt Ellis
1c465f028e Fix option scopes for :let command 2023-07-31 11:28:32 +03:00
Matt Ellis
12824c22c4 Add :setglobal command 2023-07-31 11:28:32 +03:00
Matt Ellis
64c5ad72a3 Use accessor API to set global-local value 2023-07-31 11:28:32 +03:00
Matt Ellis
080c2059ee Format unset global-local toggle options 2023-07-31 11:28:32 +03:00
Matt Ellis
a288850010 Add support for resetting option to global value 2023-07-31 11:28:32 +03:00
Matt Ellis
16811602d2 Support global-local options 2023-07-31 11:28:32 +03:00
Matt Ellis
6d94d719e3 Only notify change if option has changed 2023-07-31 11:28:32 +03:00
Matt Ellis
749d111e89 Reset options for current editor only
Matches Vim behaviour for `:set all&`
2023-07-31 11:28:32 +03:00
Matt Ellis
365d8d34ce Introduce AUTO scope for effective option values 2023-07-31 11:28:32 +03:00
Matt Ellis
ced25bbf28 Initialise options when opening windows/buffers
Note that this temporarily changes the semantics of `:set` to always set the local option, instead of setting the global option (because we now eagerly initialise local values). Neither is correct, but we don't yet have a way to support the proper behaviour.
2023-07-31 11:28:32 +03:00
Matt Ellis
7e1ce5a203 Use Vim terminology in storage service 2023-07-31 11:28:32 +03:00
Matt Ellis
aeec754f7e Override IjVimEditor.toString for better debugging 2023-07-31 11:28:32 +03:00
Matt Ellis
9a3fcb56a1 Support local-to-buffer options
Previously, all local options were treated as local-to-window
2023-07-31 11:28:32 +03:00
Matt Ellis
aff956f4c8 Update parsed value cache for declared scope 2023-07-31 11:28:32 +03:00
Matt Ellis
0f49fd6406 Introduce declared scope for all options 2023-07-31 11:28:32 +03:00
IdeaVim Bot
1111770033 Update changelog. Action id - 5699821393 2023-07-29 10:07:18 +00:00
Filipp Vakhitov
6d313fc456 Update gradle plugin 2023-07-28 20:14:03 +03:00
Filipp Vakhitov
0201acb5f7 Fix test 2023-07-28 20:09:09 +03:00
Filipp Vakhitov
dfbefe96da Fix(VIM-802): IdeaVim vs. Vim: discrepancies in using registers 2023-07-28 19:58:51 +03:00
filipp
a71b35097f Fix(VIM-2246): X11/Xorg Primary selection register "* not supported 2023-07-28 19:56:42 +03:00
Alex Plate
acd0cf5245 [TC] Smart checkout of the branch 2023-07-27 14:32:27 +03:00
Alex Plate
393b9b2f3d [TC] Create branch when checkout 2023-07-27 14:16:21 +03:00
Alex Plate
f66bad1810 Revert "[TC] Enable stack trace for all gradle tasks"
This reverts commit 386a81454b.
2023-07-27 14:05:42 +03:00
Alex Plate
386a81454b [TC] Enable stack trace for all gradle tasks 2023-07-27 14:00:24 +03:00
Alex Plate
deb2b7a36f [TC] Update name on the job 2023-07-27 13:58:01 +03:00
Alex Plate
a3901c7b1c [TC] Enable other build steps and disable old release job 2023-07-27 13:43:45 +03:00
Alex Plate
631ee109f5 [TC] Add unshallow fetch for other builds 2023-07-27 13:35:36 +03:00
Alex Plate
25570e2135 [TC] Change git pull to fetch 2023-07-27 13:31:15 +03:00
Alex Plate
6d70044b15 [TC] Pull git history 2023-07-27 13:24:22 +03:00
Alex Plate
b064f94172 [TC] Print the log size 2023-07-27 13:05:43 +03:00
Alex Plate
721124e8c5 [TC] Add git pull for dev task 2023-07-27 13:01:32 +03:00
Alex Plate
85333e03a4 [TC] Add additional git pull 2023-07-27 12:57:01 +03:00
Alex Plate
bef928a20c [TC] Add some logging 2023-07-27 12:49:40 +03:00
Alex Plate
6967416207 [TC] Print the last version 2023-07-27 12:40:41 +03:00
Alex Plate
e968b3f26b [TC] Add SSH agent to dev release 2023-07-27 12:33:10 +03:00
Alex Plate
be6d8e23c8 [TC] Set teamcity build number from job 2023-07-27 12:29:54 +03:00
Alex Plate
397effacd4 [TC] Remove dev_version constant 2023-07-27 12:26:08 +03:00
Alex Plate
a35738d99b [TC] Make tagging available for any job 2023-07-27 12:24:46 +03:00
Alex Plate
03aafdeae2 [TC] Update dev version of job 2023-07-27 11:55:00 +03:00
Alex Plate
f5529b6cce [TC] Add function to calculate dev version 2023-07-27 11:52:23 +03:00
Alex Plate
0bd39c2826 [TC] Update release EAP job 2023-07-27 11:40:25 +03:00
Alex Plate
d335745010 [TC] Add task to calculate new EAP version 2023-07-27 11:36:52 +03:00
Alex Plate
0d59843f40 [TC] Reformat version calculation 2023-07-27 11:28:09 +03:00
Alex Plate
011d0a15a9 [TC] Clean up release process 2023-07-27 11:17:41 +03:00
Alex Plate
c72b968f9b [TC] Add other job types 2023-07-27 11:12:47 +03:00
Alex Plate
4e7cef9402 [TC] Prepare to other types of release 2023-07-27 11:08:36 +03:00
Alex Plate
1868d5a202 [TC] Move steps to release package 2023-07-27 11:03:57 +03:00
Alex Plate
423fcfbda3 [TC] Update pushing step to work with any branch 2023-07-27 11:02:40 +03:00
Alex Plate
be5d17457f [TC] Add more release steps 2023-07-27 11:00:11 +03:00
Alex Plate
5033b0332e [TC] Add step with updating release branch 2023-07-27 10:42:15 +03:00
Alex Plate
a1cf4cc46d [TC] Add function to add release tag 2023-07-27 09:54:48 +03:00
Alex Plate
838f494a85 [TC] Commit changes before release 2023-07-27 09:37:23 +03:00
Alex Plate
d55f5b1e39 [TC] Set up job with release type 2023-07-27 09:12:26 +03:00
Alex Plate
c98768dd52 [TC] Add release type to the config 2023-07-27 09:05:46 +03:00
filipp
0058f81e76 VIM-3022 Search is broken in folded regions 2023-07-27 01:03:12 +03:00
Alex Plate
b79c384c3f [TC] Set the version for the next task 2023-07-26 17:08:43 +03:00
Alex Plate
a11dae821e [TC] Add task to update the changelog 2023-07-26 17:02:31 +03:00
aleksei.plate@jetbrains.com
b08deb518c TeamCity change in 'Ideavim / IdeaVim releases' project: build features of 'Publish Minor Release' build configuration were updated 2023-07-26 13:33:51 +00:00
aleksei.plate@jetbrains.com
7ad0a8c400 TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Minor Release' build configuration were updated 2023-07-26 13:19:44 +00:00
aleksei.plate@jetbrains.com
4bb33ec101 TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Minor Release' build configuration were updated 2023-07-26 13:19:31 +00:00
Alex Plate
856baec94d [TC] Try to find reason why this doesn't work on TC 2023-07-26 16:14:45 +03:00
Alex Plate
09600db5f2 [TC] Remove additional pull for the job 2023-07-26 16:09:54 +03:00
aleksei.plate@jetbrains.com
810a1e252d TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'Publish Minor Release' build configuration were updated 2023-07-26 13:09:46 +00:00
Alex Plate
10b3fcdfcc [TC] Add additional pull for the job 2023-07-26 16:04:20 +03:00
Alex Plate
652e6eb9e8 [TC] Do not specify build number pattern for job 2023-07-26 15:59:09 +03:00
Alex Plate
eea2b5f6fb [TC] Calculate the rootDir of the root project 2023-07-26 15:56:26 +03:00
Alex Plate
b4eb0df689 [TC] Add "ReleaseMinor" job that prints the version of the next minor release 2023-07-26 15:46:50 +03:00
Alex Plate
2b26c6a5b6 Use XLarge agents for releases
We'll use them as usualy we make releases manually and need to wait till it finishes
2023-07-26 15:06:29 +03:00
Alex Plate
79e2134ca8 Apply TeamCity patch 2023-07-26 15:02:10 +03:00
aleksei.plate@jetbrains.com
6efa30152f TeamCity change in 'Ideavim' project: 'Qodana checks' build configuration settings were updated 2023-07-24 13:13:53 +00:00
aleksei.plate@jetbrains.com
781fb476e7 TeamCity change in 'Ideavim' project: 'Qodana checks' build configuration settings were updated 2023-07-21 09:46:26 +00:00
aleksei.plate@jetbrains.com
f2ed4eba3b TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2023-07-20 14:06:10 +00:00
aleksei.plate@jetbrains.com
d2b1cd511d TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2023-07-20 14:04:12 +00:00
aleksei.plate@jetbrains.com
1c9df39afe TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2023-07-20 14:03:48 +00:00
aleksei.plate@jetbrains.com
f124f45604 TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2023-07-20 14:03:06 +00:00
Alex Plate
d3660892ae Move publishing to a TC job 2023-07-20 17:00:40 +03:00
Alex Plate
78ea4e4e30 Set up publishing of the vim-engine library 2023-07-20 16:50:14 +03:00
Alex Plate
5ab985a7cc Update changelog after merging PR 2023-07-19 15:06:47 +00:00
Matt Ellis
6bd1782c4b Fix OS specific values in tests 2023-07-19 18:04:02 +03:00
Matt Ellis
2f5d402c61 Support :set! to output as a single column 2023-07-19 18:04:02 +03:00
Matt Ellis
8fb2ea5845 Output options in column order, not row order
This means that the last column might not be full, rather than the last row. Same as Vim.
2023-07-19 18:04:02 +03:00
Matt Ellis
a78e21a167 Use soft wraps instead of hard wraps in ex output
Hard wraps require figuring out the width of the panel, and all we have is the width of the associated editor, which excludes gutter, etc. Easier to let the UI toolkit handle it
2023-07-19 18:04:02 +03:00
Matt Ellis
2e9b626523 Fix formatting of value pair options 2023-07-19 18:04:02 +03:00
Matt Ellis
4487b8904c Sort options output before formatting
Sorts on option name, not including "no" prefix for toggle options
2023-07-19 18:04:02 +03:00
Matt Ellis
1f01f915dc Remove trailing padding from options list 2023-07-19 18:04:02 +03:00
Filipp Vakhitov
4222c71a69 Pre-release tasks 2023-07-18 11:48:56 +03:00
IdeaVim Bot
1d463cde90 Update changelog. Action id - 5561661508 2023-07-15 10:07:05 +00:00
Alex Plate
834d1476ce Replace VimDataContext with a dataContextWrapper
This should fix some issues like
https://jb-web.exa.aws.intellij.net/report/16130069
https://jb-web.exa.aws.intellij.net/report/16092668
2023-07-14 16:58:26 +03:00
filipp
a769a8d1a4 Fix(VIM-2818): Wrong caret position after multicaret paste 2023-07-14 16:24:36 +03:00
filipp
ece8c3821d Add test for VIM-481 2023-07-14 16:00:54 +03:00
filipp
2bc0c4c41b Better buffer storage 2023-07-14 15:06:03 +03:00
filipp
9e203898b6 Support more registers for secondary carets 2023-07-14 13:42:43 +03:00
filipp
58ad8417e5 Fix vim logger 2023-07-14 13:22:32 +03:00
Alex Plate
9c00927089 Use different commit format 2023-07-07 13:41:11 +03:00
Alex Plate
7c6964c6ef Use different commit format 2023-07-07 13:40:47 +03:00
Alex Plate
31a5104205 Remove incorrect item in changelog 2023-07-07 13:36:12 +03:00
Alex Plate
7bcf3858e8 Add ludwig-jb to contributors list 2023-07-07 10:31:44 +00:00
Alex Plate
fb3eb0da8a Use tags for workflows 2023-07-07 13:28:01 +03:00
Alex Plate
0e6d92dea7 Update changelog job 2023-07-07 13:23:46 +03:00
Alex Plate
c00ffe7fc3 Try to use tags to get last commit 2023-07-07 13:15:26 +03:00
Alex Plate
02b3f8bf02 Disable changelog update 2023-07-07 13:03:00 +03:00
Alex Plate
fe7afb0141 Try to use tags in the workflow 2023-07-07 12:56:31 +03:00
Alex Plate
1ec810b981 Switch to custom last-successful-commit-action 2023-07-07 12:36:59 +03:00
Alex Plate
3a2187ebad Try to use modified action 2023-07-07 12:24:42 +03:00
Alex Plate
fef6a1b090 Bring back the plugin in devendencies check 2023-07-07 12:24:42 +03:00
Alex Plate
2f5b39af54 Update changelog after merging PR 2023-07-07 08:49:32 +00:00
samabcde
d3f942aebc VIM-2920 fix select block expansion when enclose boundary is line break 2023-07-07 11:46:41 +03:00
Alex Plate
5df0db8845 Update changelog after merging PR 2023-07-07 08:01:10 +00:00
Ludwig Valda Vasquez
28887c1da2 Update VimMessages#updateStatusBar to accept VimEditor
This is required for vim support in Fleet.
2023-07-07 10:57:56 +03:00
Alex Plate
7053a225b8 Update the branch name 2023-06-30 14:25:58 +03:00
Alex Plate
54422801c3 Try to migrate to a different way to get last successful action 2023-06-30 14:22:53 +03:00
Alex Plate
56c464ba79 Update changelog 2023-06-30 10:07:38 +00:00
filipp
2582f1e907 Fix(VIM-1294): unvoluntary unfolding when using ideavim 2023-06-30 12:32:41 +03:00
Alex Plate
13139966ea Implement UserDataHolder for out VimDataContext
This is needed for fix Rider issues with put: https://youtrack.jetbrains.com/issue/RIDER-94213/StackOverflowError-when-using-GotoDeclaration-action-or-gd-with-IdeaVIM-plugin-in-Rider-2023.2#focus=Comments-27-7617177.0-0
2023-06-30 10:50:38 +03:00
Alex Plate
011bb78f69 Update changelog 2023-06-28 10:08:02 +00:00
Alex Pláte
2446ed20a6 Update README.md 2023-06-28 12:51:22 +03:00
filipp
c376feb4d8 Fix(VIM-2685): Register command outputs different values for same registers 2023-06-27 17:40:56 +03:00
filipp
fa0bcfa37a Remove duplicate file 2023-06-23 17:19:37 +03:00
filipp
6b70b11ffc Focus active tab after :tabclose 2023-06-23 17:05:09 +03:00
filipp
e474075778 Basic support for commands that were not added to grammar 2023-06-23 15:18:57 +03:00
filipp
1205bb67f2 VIM-2973 Multiline editing like "ciw" doesn't work well when have remappings to stop c and d from using the default register 2023-06-21 01:20:46 +03:00
filipp
10bcd20cd8 Retire obsolete commands
With all the gratefulness for 20 years of service. Thank you, pioneers of our plugin's legacy.
2023-06-20 15:59:09 +03:00
filipp
3a2e6e018d Add missing command tests 2023-06-20 15:59:09 +03:00
filipp
1b1680f7b0 Fix typo 2023-06-20 15:59:09 +03:00
filipp
6cc52570ac Add missing ExCommand annotations 2023-06-20 15:59:09 +03:00
filipp
6425791ed9 Attempt to avoid broken jsons after partial compilation 2023-06-20 15:59:09 +03:00
Alex Plate
4c7a720447 Update changelog 2023-06-17 10:07:41 +00:00
Alex Plate
23ac9f3faf Update changelog 2023-06-16 10:08:08 +00:00
Alex Plate
0192009482 Fix(VIM-2975): Fix the offset after the rendered docs 2023-06-15 14:25:09 +03:00
Alex Plate
2468c359a4 Disable test warning 2023-06-15 13:23:00 +03:00
Alex Plate
ae1ad9fd2e Update changelog 2023-06-14 10:07:36 +00:00
Alex Plate
3596748059 Prepare to 2.3.0 release 2023-06-14 09:25:02 +03:00
Alex Plate
407806e84c Update changelog 2023-06-14 09:25:02 +03:00
Alex Plate
b83909da9c Update changelog after merging PR 2023-06-12 07:42:26 +00:00
Martin Yzeiri
dd490967d3 Add Matchit PHP patterns 2023-06-12 10:39:45 +03:00
Martin Yzeiri
391202877a Extract tagNamePattern to an argument
Providing a custom tagNamePattern makes it easier to interop with
languages like PHP.
2023-06-12 10:39:45 +03:00
Martin Yzeiri
c48acd8fb7 Simplify JavaScript PSI checks
The less than/greater than operators are the only binary expressions in
the JS patterns, so the extra PSI checks are redundant.
2023-06-12 10:39:45 +03:00
Martin Yzeiri
c8428258fe Switch to linkedMapOf
mapOf happens to give us LinkedHashMaps, but we'll use the explicit
constructor since insertion order matters for PatternsTables.
2023-06-12 10:39:45 +03:00
Alex Plate
fc4feaa78c Update changelog 2023-06-07 10:07:42 +00:00
Alex Plate
1855f3b43f Disable detection of the java OOM on TeamCity
With the new version of gradle intellij plugin, it started to print a message that some configuration may cause OOM exception
Funny thing is that TeamCity has an automatic detection of OOM based on the text output.
So, the builds started to fail because TC used to thing that the OOM happened
2023-06-06 17:33:35 +03:00
aleksei.plate@jetbrains.com
50b848027c TeamCity change in 'Ideavim' project: general settings of 'Plugin verification' build configuration were updated 2023-06-06 14:29:49 +00:00
Alex Plate
7b71af9e1d Fix(VIM-2964): Fix an issue with leaking caret instance
Now I use the subscription to the disposer, but I think we can update it to the flow
2023-06-06 16:12:54 +03:00
Alex Plate
4814f0c895 Switch to the previous version of intellij gradle plugin
I've got a lot of OOM, trying to find a culprit
2023-06-06 14:53:32 +03:00
Alex Plate
192307ad52 Update verion of TC config 2023-06-06 14:42:23 +03:00
Alex Plate
e28c57432d Set stable IJ for releases as the current EAP frezes with the buildSearchableOption task 2023-06-06 14:39:31 +03:00
Alex Plate
911915266a Inline the writeFile function 2023-06-06 12:16:14 +03:00
Alex Plate
51c464f8d2 Fix out of bounds exception 2023-06-06 12:07:33 +03:00
filipp
30069564a7 Remove class 2023-06-06 10:42:42 +03:00
filipp
460553d8ae Avoid dependency to annotation-processors 2023-06-06 10:42:42 +03:00
filipp
cc2de42415 Moving from gorgeous YAML to good old JSON 2023-06-06 10:42:42 +03:00
filipp
b31aa57d81 build.gradle.kts cleanup 2023-06-06 10:42:42 +03:00
filipp
c9b9bb6cf8 Remove generated files for tests 2023-06-06 10:42:42 +03:00
filipp
89e74b2011 Remove unused import 2023-06-06 10:42:42 +03:00
filipp
434d882314 Add vimscriptfunctionannotation option 2023-06-06 10:42:42 +03:00
filipp
617d9d90ed Add excommandannotation option 2023-06-06 10:42:42 +03:00
filipp
f456e0a8dd Fix tests 2023-06-06 10:42:42 +03:00
filipp
2716255e22 Better paths 2023-06-06 10:42:42 +03:00
filipp
4d907213c3 Split ex-commands in YAML 2023-06-06 10:42:42 +03:00
filipp
ee704f53c7 Support lazy ex command classloading 2023-06-06 10:42:42 +03:00
filipp
74237365f1 Fix LazyVimscriptFunction 2023-06-06 10:42:42 +03:00
filipp
8aeab29303 Annotate ex-commands 2023-06-06 10:42:42 +03:00
filipp
ff945e7b8a Add ExCommand annotation 2023-06-06 10:42:42 +03:00
filipp
9707704f57 Minor refactoring 2023-06-06 10:42:42 +03:00
filipp
7491d19309 Add yaml files 2023-06-06 10:42:42 +03:00
filipp
fb74e5e731 Fix tests 2023-06-06 10:42:42 +03:00
filipp
627c8a6eca Move some functions to engine 2023-06-06 10:42:42 +03:00
filipp
8094758a82 Add function providers 2023-06-06 10:42:42 +03:00
filipp
f143b6ee9f Rename KSP options 2023-06-06 10:42:42 +03:00
filipp
77cef909fb Add comment to YAML 2023-06-06 10:42:42 +03:00
filipp
063d3949cf Better YAML 2023-06-06 10:42:42 +03:00
filipp
c1b87eba03 Annotate functions 2023-06-06 10:42:42 +03:00
filipp
bae52964cd Add VimscriptFunction annotation 2023-06-06 10:42:42 +03:00
Alex Plate
06021c1b79 Update changelog after merging PR 2023-06-01 07:39:37 +00:00
samabcde
437932cd57 VIM-1990 fix repeat delete find or till wrong MotionType 2023-06-01 10:36:28 +03:00
Alex Plate
6cc16aa72b Update changelog 2023-05-31 10:08:03 +00:00
Alex Plate
b48950ff3a Fix(VIM-2953): The previous fix for :q command caused weird behavior of tab closing
The initial change was caused by VIM-2912 in a8f0145333, but when I took the old function back, it seems that both issues are fixed.
2023-05-31 11:41:25 +03:00
Alex Plate
c397c77809 Add Sam Ng to contributors list 2023-05-30 09:03:46 +00:00
Alex Plate
e8f31bc2bd Update changelog after merging PR 2023-05-29 11:43:45 +00:00
samabcde
4e7149c945 VIM-2615 add support to sort u command, fix natural sort issue when both string not contain number 2023-05-29 14:41:06 +03:00
Alex Plate
064379b9e0 Add names of run confugrations so they can be started right from IJ 2023-05-19 18:03:09 +03:00
Alex Plate
48b18da953 Get text object parameters from the operatorArguments 2023-05-19 10:21:18 +03:00
Alex Plate
904ca5d529 Remove argument argument from text object 2023-05-19 10:16:23 +03:00
Alex Plate
05986d017d Remove deprecated function 2023-05-19 09:52:06 +03:00
Alex Plate
aabe56e8b3 Disable alternative context resolve during copy because of binary incompatibility with the newer version of EAP 2023-05-17 13:08:07 +03:00
Alex Plate
fc07ec3db3 Fix compilation for the new version of EAP 2023-05-17 12:39:39 +03:00
Alex Plate
2e8454907d Fix esc for replace in octopus mode
VIM-2938
2023-05-17 12:39:39 +03:00
Alex Plate
72ed659833 Update changelog after merging PR 2023-05-17 08:56:53 +00:00
Matt Ellis
94ef9692f2 Fix typo in ideajoin notification 2023-05-17 10:54:13 +02:00
Matt Ellis
798750bf95 Use options API for more cached values 2023-05-17 10:54:13 +02:00
Matt Ellis
e8d9bd551f Add helper functions to storage service 2023-05-17 10:54:13 +02:00
Matt Ellis
d08ea2ee9b Introduce simple cache for parsed option values 2023-05-17 10:54:13 +02:00
Matt Ellis
52dcb2d290 Treat 'iskeyword' as a local-to-buffer option 2023-05-17 10:54:13 +02:00
Matt Ellis
4cc883f174 Refactor search helper companion to interface
Helper functions now take the editor rather than the text, ready for search to rely on per-editor options (i.e. '`iskeyword'`). Also standardises on `Int` for search parameters. While the file size is a `Long`, the editor returns a `CharSequence`, which is indexed by `Int`.
2023-05-17 10:54:13 +02:00
Matt Ellis
5a3c5bd761 Treat 'virtualedit' as a global-local option 2023-05-17 10:54:13 +02:00
Matt Ellis
66830b7cb3 Treat 'idearefactor' as a global-local option 2023-05-17 10:54:13 +02:00
Matt Ellis
b742865e8a Treat 'ideajoin' as a global-local option 2023-05-17 10:54:13 +02:00
Matt Ellis
fd314a3288 Treat 'matchpairs' as a local option 2023-05-17 10:54:13 +02:00
Alex Plate
87a52d9592 Update changelog 2023-05-14 10:08:42 +00:00
filipp
527b321ee0 Fix(VIM-2945): %-movement mismatches braces 2023-05-14 00:09:00 +03:00
Alex Plate
5122a33f30 Update changelog 2023-05-08 10:08:22 +00:00
filipp
d89fbeea62 Fix(VIM-2930): vim-multiple-cursors + ReplaceWithRegister issue 2023-05-07 23:51:05 +03:00
filipp
e4f7700044 Refactoring
Update method signatures and return types:
- Getting rid of "magic constants" (e.g. -1) and replacing them with nullable
- Replacing direction Int with Enum
- JetBrains annotations
2023-05-05 09:41:27 +03:00
filipp
a1d0c3ebf4 Remove println 2023-05-05 09:41:27 +03:00
filipp
2088c1ce00 Move more methods to engine 2023-05-05 09:41:27 +03:00
Alex Plate
ec164daf0e Update codeql version 2023-05-02 09:17:05 +03:00
Alex Plate
94c38cefac Remove bunny plugin from compatibility checks 2023-05-02 09:09:26 +03:00
Alex Plate
2a5d218a94 Update changelog after merging PR 2023-04-26 08:17:39 +00:00
Martin Yzeiri
bcf10a0b8e Matchit: Ignore JS comparison operators
In files that mix HTML and JavaScript, arrow functions or forms like (x > y)
conflict with the brackets on HTML tags. We can ignore those JS elements
using PSI checks like we do for some Ruby keywords.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
546137c0f5 Matchit: Correct HTML regex
A final closing > is required on the search pair, otherwise tags with a
shared prefix in their names will conflict.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
92bc691e1f Matchit: Improve comment handling
Since the cursor can come before the start of the matching pair, we need
to check the PSI element at the first match offset, not the caret offset,
when deciding if we need to skip comments.

This fix makes the special isHtmlAttribute check unnecessary. If the caret
is in an HTML attribute, the first match offset will point to the start
of the tag.
2023-04-26 11:14:06 +03:00
Martin Yzeiri
d834d0fdd9 Move a unit test 2023-04-26 11:14:06 +03:00
dependabot[bot]
74b88d07a0 Bump org.mockito.kotlin:mockito-kotlin from 4.0.0 to 4.1.0
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/4.0.0...4.1.0)

---
updated-dependencies:
- dependency-name: org.mockito.kotlin:mockito-kotlin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 11:11:04 +03:00
Alex Plate
57f5d3310a Update gradle version to 8 2023-04-26 11:09:39 +03:00
Alex Plate
a5495b1d92 Update intellij gradle plugin version 2023-04-26 10:59:05 +03:00
Alex Plate
fb623be741 Remove ktlint baseline 2023-04-26 10:57:55 +03:00
Alex Plate
30e69e13fd Update kotlin version to 1.8.21 2023-04-26 10:57:54 +03:00
dependabot[bot]
17346c255e Bump org.jetbrains:annotations from 23.0.0 to 24.0.1
Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 23.0.0 to 24.0.1.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/23.0.0...24.0.1)

---
updated-dependencies:
- dependency-name: org.jetbrains:annotations
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 10:46:14 +03:00
dependabot[bot]
6fc83b8245 Bump io.ktor:ktor-serialization-kotlinx-json from 2.1.3 to 2.3.0
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.1.3 to 2.3.0.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/commits)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-serialization-kotlinx-json
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 10:46:00 +03:00
Alex Plate
b9fb6cacbe Update changelog after merging PR 2023-04-26 07:27:50 +00:00
Matt Ellis
29bd7cbe6e Update note to include how to add an option 2023-04-26 10:26:06 +03:00
Matt Ellis
a51fc9c612 Add extra notes about the history of refactorings 2023-04-26 10:26:06 +03:00
Matt Ellis
77ad9deeba Use interface for IJ specific options 2023-04-26 10:26:06 +03:00
Matt Ellis
ffa6c45b62 Reset test injector after each test 2023-04-26 10:26:06 +03:00
Matt Ellis
957874ce2b Remove unused @JvmField annotations 2023-04-26 10:26:06 +03:00
Matt Ellis
330d92116c Refine inheritance of IJ specific option classes 2023-04-26 10:26:06 +03:00
Matt Ellis
899adfc1b0 More refactoring to use new API 2023-04-26 10:26:06 +03:00
Matt Ellis
23535a6ad5 Remove OptionValueAccessor 2023-04-26 10:26:06 +03:00
Matt Ellis
e8b7f00370 Remove accessor from new API 2023-04-26 10:26:06 +03:00
Matt Ellis
3f2c5070ee Migrate local option access to new API 2023-04-26 10:26:06 +03:00
Matt Ellis
a2352525c5 Migrate global option access to new API
Also fixes some incorrect usages of local options as global, e.g. 'ideajoin' and 'scroll'. There are some options that should be local that are only ever accessed at global scope. These need fixing in the future, e.g. 'iskeyword', 'matchpairs' and 'virtualedit'
2023-04-26 10:26:06 +03:00
Matt Ellis
50384a526b Introduce option accessor delegated properties
Also migrates tests to use new properties
2023-04-26 10:26:06 +03:00
Matt Ellis
9ade3365ff Extract StringListOption
While it is conceptually very similar to StringOption, the implementation of list vs not-list operations are very different, and having a separate type will allow us to do more interesting things with overloading when we introduce delegate properties
2023-04-26 10:26:06 +03:00
Alex Plate
a6932cd5be Remove XML configurations 2023-04-25 10:23:20 +03:00
aleksei.plate@jetbrains.com
81d5c06ca3 TeamCity change in 'Ideavim' project: Synchronization with own VCS root is enabled 2023-04-25 07:20:11 +00:00
Alex Plate
95d2adb8b8 Update changelog 2023-04-20 10:06:32 +00:00
Alex Plate
c91355a1e4 Dumb change: add new line 2023-04-20 11:52:05 +03:00
Alex Plate
a9b16ca2c0 Add to be released section 2023-04-20 11:49:27 +03:00
Alex Plate
0fc04c3ff6 Preparations for 2.2.0 release 2023-04-20 09:43:22 +03:00
filipp
6473ad02a0 Add test for next paragraph motion 2023-04-19 15:25:44 +03:00
filipp
8107f669cd Fix ReplaceWithRegister with single caret 2023-04-19 15:22:49 +03:00
filipp
2f55d92d83 Move more methods to engine 2023-04-19 15:07:06 +03:00
Alex Plate
722ec7f8fb Update configurations 2023-04-15 00:00:52 +03:00
aleksei.plate@jetbrains.com
63442a93e7 TeamCity change in 'Ideavim' project: copy of 'IdeaVim Repository' VCS root was created 2023-04-14 20:58:08 +00:00
aleksei.plate@jetbrains.com
1ce594fa64 TeamCity change in 'Ideavim' project: 'IdeaVim Pull Requests' VCS root was updated 2023-04-14 20:57:04 +00:00
Alex Plate
197b8d7850 Use correct GH publisher 2023-04-14 23:40:51 +03:00
Alex Plate
d51aec080b Use old github configuration 2023-04-14 23:39:37 +03:00
Alex Plate
0239f78889 Update GH configuration 2023-04-14 23:36:19 +03:00
Alex Plate
651cefca30 Update .teamcity dsl 2023-04-14 23:34:00 +03:00
Alex Plate
f4be162aea Fix issue with missing key-repeat dialog on new mac machine 2023-04-14 23:14:01 +03:00
Alex Plate
85636d91dc Update changelog 2023-04-14 10:06:44 +00:00
aleksei.plate@jetbrains.com
7b643430d1 TeamCity change in 'Ideavim / Pull Requests checks' project: triggers of 'GitHub Pull Requests Tests' build configuration were updated 2023-04-13 13:33:25 +00:00
aleksei.plate@jetbrains.com
499033947c TeamCity change in 'Ideavim / Pull Requests checks' project: build features of 'GitHub Pull Requests Tests' build configuration were updated 2023-04-13 13:19:58 +00:00
Alex Plate
7489abc56d Update GH configuration 2023-04-13 16:17:03 +03:00
Alex Plate
c64810509f Fix(VIM-2909): Fix incorrect file detection while closing diff window 2023-04-13 15:58:56 +03:00
Alex Plate
32ccaabaa7 Update changelog 2023-04-12 10:06:44 +00:00
Alex Plate
a8f0145333 Fix(VIM-2912): Fix focus after :q 2023-04-12 11:01:03 +03:00
Alex Plate
6e6fc8d998 Update links to TeamCity 2023-04-05 23:05:27 +03:00
Alex Plate
646e34a5c7 Use better name for tests 2023-04-05 22:57:48 +03:00
Alex Plate
8d43329b6e Another character vanish 2023-04-05 22:48:15 +03:00
Alex Plate
38aca96472 Vanish build ids 2023-04-05 22:46:32 +03:00
Alex Plate
4cd06076c7 Fix incorrect test names 2023-04-05 22:43:35 +03:00
Alex Plate
b485a1406e Define ids for tests 2023-04-05 22:36:32 +03:00
Alex Plate
cc0aa08d91 Another refactoring 2023-04-05 22:31:39 +03:00
Alex Plate
4dd958a538 Cleanup testing configurations 2023-04-05 22:20:13 +03:00
Alex Plate
83d2d1da4f Use medium agents for all build configurations 2023-04-05 22:03:30 +03:00
Alex Plate
24e69bec2b Make abstract build type 2023-04-05 21:58:35 +03:00
Alex Plate
ca337dcca2 Define agent requirements on the project level 2023-04-05 21:52:06 +03:00
Alex Plate
2944c48744 Remove name requirement 2023-04-05 21:42:48 +03:00
Alex Plate
278e7d1a4d Add CPU requirement 2023-04-05 21:39:15 +03:00
Alex Plate
22e090a0f4 Update agent requirement 2023-04-05 21:33:32 +03:00
Alex Plate
ac918eff16 Use correct requirement 2023-04-05 21:26:39 +03:00
Alex Plate
e8aaeac7dc Use different agent name 2023-04-05 21:20:19 +03:00
Alex Plate
1769c1006c Try to use different param 2023-04-05 21:18:21 +03:00
Alex Plate
920a6fe74c Specify medium agents for dev builds 2023-04-05 21:14:17 +03:00
Alex Plate
bc41ce46a7 Fix incorrect branch for dev builds 2023-04-05 20:57:27 +03:00
Alex Plate
8c2b5671f1 Cleanup vcs source roots for TC 2023-04-05 20:52:30 +03:00
Alex Plate
d0d53d7d20 Update TC configurations 2023-04-05 20:13:04 +03:00
Alex Plate
902272f08c Update changelog 2023-04-04 09:06:47 +03:00
Alex Plate
a8b8b56a7e Update GH actions to avoid conflicts 2023-04-04 09:04:26 +03:00
Alex Plate
d628db1dcc Add Silence Tai to contributors list 2023-04-04 05:03:35 +00:00
Stzx
26ed6670d5 Fix dispose operation 2023-04-04 08:02:03 +03:00
Alex Pláte
0aa4ea7bc8 Update updateAffectedRate.yml 2023-04-04 07:59:34 +03:00
dependabot[bot]
34fdd71f37 Bump com.dorongold.task-tree from 2.1.0 to 2.1.1
Bumps com.dorongold.task-tree from 2.1.0 to 2.1.1.

---
updated-dependencies:
- dependency-name: com.dorongold.task-tree
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 19:40:50 +03:00
Alex Pláte
4a134783b4 Update updateAffectedRate.yml 2023-04-01 16:34:22 +03:00
Alex Plate
bf5ce1f6a5 Try to use different token to youtrack 2023-04-01 10:57:08 +03:00
Alex Plate
00193891fa Add missing youtrack token 2023-04-01 10:51:04 +03:00
Alex Plate
4640c347c7 Set affected rate field on YouTrack automatically 2023-04-01 10:47:59 +03:00
Alex Plate
260bb47434 Different approach for getting editor during bookmarks initialization in order to get rid of slow operations exception 2023-04-01 09:01:19 +03:00
Alex Plate
9d7872e64e Update initialization instructions 2023-03-31 17:39:06 +03:00
filipp
31bdc23b3c Add support for variables in exists function 2023-03-31 17:37:57 +03:00
Matt Ellis
f803c0aa72 Add deterministic initialisation of options 2023-03-31 17:37:48 +03:00
Matt Ellis
531b0e3537 Provide an API to override option default value
This is specifically to support ideaput in 'clipboard'
2023-03-31 17:37:48 +03:00
Matt Ellis
cbf6c30be6 Make option value accessor more strongly typed 2023-03-31 17:37:48 +03:00
Matt Ellis
a6f62dd837 Remove unnecessary assert
checkIfValueValid will check datatype is correct
2023-03-31 17:37:48 +03:00
Matt Ellis
18d52c2459 Make addListener more strongly typed 2023-03-31 17:37:48 +03:00
Matt Ellis
ee55cfd2dd Improve handling of variance with setOptionValue
With the `out` modifier, the compiler won't report a problem trying to assign `VimInt` to an `Option<VimString>`
2023-03-31 17:37:48 +03:00
Matt Ellis
3ab5fc1120 Improve handling of variance 2023-03-31 17:37:48 +03:00
Matt Ellis
f7f60f5079 Fix warnings 2023-03-31 17:37:48 +03:00
Matt Ellis
b7dcff79ae Improve modifyOptionValue 2023-03-31 17:37:48 +03:00
Matt Ellis
c857b9d6dd Make functions private to SetCommand 2023-03-31 17:37:48 +03:00
Matt Ellis
8f8c05e451 Remove string based option helper functions 2023-03-31 17:37:48 +03:00
Matt Ellis
af3ebe60f4 Use strongly typed options instead of constants 2023-03-31 17:37:48 +03:00
Matt Ellis
be64d24c00 Introduce strongly typed properties for options 2023-03-31 17:37:48 +03:00
Matt Ellis
8f04575efd Extract IJ specific options to own file 2023-03-31 17:37:48 +03:00
Matt Ellis
4e1b8f3ec4 Extract IJ specific options to own class 2023-03-31 17:37:48 +03:00
Matt Ellis
c8ca6671ab Remove unused functions 2023-03-31 17:37:48 +03:00
Matt Ellis
88f0d2e532 Replace constants with strongly typed properties 2023-03-31 17:37:48 +03:00
Matt Ellis
76a4499c9f Introduce properties for option definitions 2023-03-31 17:37:48 +03:00
Matt Ellis
e1bd790294 Add tests to ensure ideaput is added or required 2023-03-31 17:37:48 +03:00
Matt Ellis
6d193ca1f8 Extract option definitions to own file 2023-03-31 17:37:48 +03:00
Matt Ellis
d932172e70 Extract option definitions to own class 2023-03-31 17:37:48 +03:00
Matt Ellis
9bbf5824fe Use lazy property delegate 2023-03-31 17:37:48 +03:00
Matt Ellis
d042ee3058 Move octopushandler option out of vim-engine 2023-03-31 17:37:48 +03:00
Alex Plate
fe598b14a1 Modify update authors job 2023-03-31 17:14:28 +03:00
Alex Plate
24df3be8f1 Print more logging in case the vim shortcut is disabled 2023-03-31 17:13:25 +03:00
filipp.vakhitov
2cce67bc27 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Merge Dependabot PR' build configuration was removed 2023-03-31 13:26:44 +00:00
filipp.vakhitov
ae6003d000 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'Merge Dependabot PR' build configuration were updated 2023-03-31 13:09:03 +00:00
filipp.vakhitov
fe8b03dc1c TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: general settings of 'Merge Dependabot PR' build configuration were updated 2023-03-31 12:55:28 +00:00
filipp.vakhitov
977b27de90 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 1 build step(s) were added to 'Merge Dependabot PR' build configuration 2023-03-31 12:49:58 +00:00
filipp.vakhitov
570cf14fe8 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build configuration was created from URL 2023-03-31 12:48:32 +00:00
dependabot[bot]
7c369900ce Bump io.ktor:ktor-client-cio from 2.1.3 to 2.2.4
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.1.3 to 2.2.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.1.3...2.2.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-cio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-31 09:49:32 +00:00
Alex Plate
8464711b89 Update changelog 2023-03-31 09:47:27 +00:00
Alex Plate
0f07e4bdc3 Fix(VIM-2896): Correct ordering of handlers 2023-03-31 12:45:54 +03:00
dependabot[bot]
de7736ec76 Bump io.ktor:ktor-client-core from 2.1.3 to 2.2.4
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.1.3 to 2.2.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.1.3...2.2.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-31 09:45:37 +00:00
dependabot[bot]
4568db387a Bump io.ktor:ktor-client-auth from 2.1.3 to 2.2.4
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.1.3 to 2.2.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.1.3...2.2.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-auth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-31 09:45:16 +00:00
dependabot[bot]
3661cfd4c9 Bump io.ktor:ktor-client-content-negotiation from 2.1.3 to 2.2.4
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.1.3 to 2.2.4.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.1.3...2.2.4)

---
updated-dependencies:
- dependency-name: io.ktor:ktor-client-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-31 09:44:21 +00:00
filipp
f9ac515d3d Replace merge with rebase 2023-03-31 12:42:44 +03:00
filipp
b7f1394357 Add action to automatically merge Dependabot PR 2023-03-31 12:38:18 +03:00
Alex Plate
25872ccf84 Remove ktlint from build configuration 2023-03-31 11:26:38 +03:00
Alex Plate
0efd81142d Remove ktlint from configurations 2023-03-31 11:22:41 +03:00
Alex Plate
1699e8521d Add new plugin that has a dependency on IdeaVim 2023-03-31 11:22:41 +03:00
filipp
f4068301ff Add information about text range in original script for executable 2023-03-31 11:00:39 +03:00
aleksei.plate
2a6b6f89f4 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project parameters were changed 2023-03-30 04:55:46 +00:00
aleksei.plate
ca459bef0d TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project parameters were changed 2023-03-30 04:55:10 +00:00
aleksei.plate
9980ef7db9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project parameters were changed 2023-03-30 04:53:54 +00:00
Alex Plate
d6b2cdb66a Add plugin sign variables 2023-03-30 07:50:56 +03:00
Alex Plate
832c1c0be3 Revert "Update formatting"
This reverts commit bf0fba9c58.
2023-03-27 11:32:59 +03:00
Alex Plate
bf0fba9c58 Update formatting 2023-03-27 08:27:13 +00:00
Alex Plate
ae5678128b Fix an incorrect version of github action 2023-03-27 11:24:58 +03:00
Alex Plate
6395a4cefc Fix an incorrect version of github action 2023-03-27 11:23:13 +03:00
Alex Plate
1a3491a50f Try to use IJ formatter instead of ktlint 2023-03-27 11:21:10 +03:00
Alex Plate
0f8b67e6ce Reformat files 2023-03-27 11:14:00 +03:00
Alex Plate
1e17db6d21 Add lorem ipsum tests to dictionary 2023-03-20 17:42:28 +02:00
Alex Plate
03bd4bbeed Use Lorem Ipsum for tests 2023-03-20 17:31:31 +02:00
Alex Pláte
ff907893d0 Update README.md 2023-03-20 15:50:46 +02:00
Alex Plate
d104eef064 Update changelog 2023-03-17 11:28:14 +00:00
Alex Plate
f0505b8919 Fix(VIM-2433): Do not clear clipboard after inserting with ideaput 2023-03-17 13:26:13 +02:00
Alex Plate
db12fbe725 Get rid of test clipboard manager 2023-03-17 11:56:50 +02:00
Alex Plate
f88580eb88 Get rid of editor setup function 2023-03-17 10:21:10 +02:00
Alex Plate
dbfce696b9 Make some multicaret tests more stable 2023-03-16 18:05:39 +02:00
Alex Plate
bca5af9c23 Enable some tests with missing @Test annotation 2023-03-16 14:55:05 +02:00
Alex Plate
381abf7c40 Simple fix for the code 2023-03-16 13:36:09 +02:00
Alex Plate
1a2112daf9 Fix code compilation 2023-03-16 13:18:47 +02:00
Alex Plate
e30e194b91 Code cleanup 2023-03-16 13:05:37 +02:00
Alex Plate
edf9962abf Introduce new mechanizm for options testing 2023-03-16 13:01:42 +02:00
Alex Plate
fd896c4af6 Pass testInfo to tear down 2023-03-16 10:52:53 +02:00
Alex Plate
0ae57af270 Do not track action ids for vim actions 2023-03-16 10:52:53 +02:00
Alex Plate
123c8ded11 Rename product function 2023-03-16 10:52:53 +02:00
Alex Plate
0510fe8530 Ktlint format 2023-03-16 10:52:52 +02:00
Alex Plate
3ebaf38486 Fix bug in nerdtree 2023-03-16 10:52:51 +02:00
filipp
84fc962bb0 ReplaceWithRegister 2023-03-15 18:42:22 +02:00
filipp
814bc20cf7 Add more VimScript tests 2023-03-15 14:20:33 +02:00
Alex Plate
6b76270d51 Reformat code 2023-03-15 07:59:25 +02:00
dependabot[bot]
35142e5204 Bump junit-jupiter-engine from 5.8.1 to 5.9.2
Bumps [junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.8.1 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.8.1...r5.9.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 18:28:02 +02:00
Alex Plate
d313845c84 Update changelog 2023-03-14 13:26:22 +00:00
filipp
21162ba34e Fix(VIM-2286): Set surround not working for me as expected 2023-03-14 15:24:11 +02:00
Alex Plate
e162dc44d1 Enable JUnit5 in all types of tests 2023-03-14 14:33:06 +02:00
Alex Plate
153a36d4e9 Rename method 2023-03-14 14:08:39 +02:00
Alex Plate
9271ca082c Migration of tests to JUnit 5 2023-03-14 14:05:35 +02:00
Alex Plate
0389ea803d Update changelog 2023-03-13 23:16:52 +00:00
filipp
0fea44f735 Fix(VIM-1750): Surround with tag wrong position 2023-03-14 01:14:35 +02:00
Alex Plate
c01cad1c9d Update changelog 2023-03-13 22:25:37 +00:00
filipp
b383706bfb Fix(VIM-1746): IdeaVim Surround removes unwanted characters 2023-03-14 00:23:45 +02:00
filipp
a78f66fd36 Better multiple caret support for surround 2023-03-14 00:23:44 +02:00
Alex Plate
bef57f75c0 Update changelog 2023-03-13 21:55:49 +00:00
filipp
48ec19d9bf Fix(VIM-1551): Surround: line surround not working 2023-03-13 23:45:05 +02:00
filipp
f4198a0409 Add Oskar Persson to contributors list 2023-03-13 19:57:56 +02:00
filipp
9454ebcb35 Move some methods to engine 2023-03-13 19:34:14 +02:00
Alex Plate
441721b63f Reformat source code 2023-03-13 11:44:02 +02:00
Alex Plate
0eda85c95e Enable explicitApiMode for vim-engine 2023-03-13 11:39:50 +02:00
Alex Plate
01e4c80adb Remove traces of the experimental API 2023-03-13 10:29:09 +02:00
Alex Plate
0e8ec4d445 Set visibility for classes in vim-engine 2023-03-13 10:22:53 +02:00
Alex Plate
ae18ccb8cd Add new word to the doc 2023-03-13 09:35:24 +02:00
Alex Plate
ad63afc242 Add more info to the issue report 2023-03-13 09:35:24 +02:00
Alex Plate
f48f8a9643 Add Dani Sevastianov to contributors list 2023-03-13 07:08:20 +00:00
Alex Plate
eae65b6512 Update changelog after merging PR 2023-03-13 07:05:21 +00:00
Dani Sevastianov
02ff5cb24b Fix quick-scope setup documentation 2023-03-13 09:03:37 +02:00
Alex Plate
8210b122bc Update version of kt lint and reformat files 2023-03-13 09:01:38 +02:00
Alex Plate
a0d3cf561b Apply ktlint reformat 2023-03-13 08:43:52 +02:00
Alex Plate
d7c1c77861 Update changelog 2023-03-11 22:22:11 +00:00
filipp
f385c3fa21 Fix(VIM-795): Ctrl-w + h doesn't alway work (window navigation to the left window) 2023-03-12 00:20:08 +02:00
Alex Plate
e07a077da9 Update changelog 2023-03-11 18:03:45 +00:00
filipp
7768c9147d Fix(VIM-2819): Move command works incorrectly 2023-03-11 20:01:55 +02:00
Alex Plate
c5c9877b40 Update changelog 2023-03-10 21:48:13 +00:00
filipp
3ddd4a1a58 Fix(VIM-2868): Pasting in visual mode with P should not replace yank register like when pasting with p 2023-03-10 23:30:35 +02:00
Alex Plate
3c85215011 Update changelog 2023-03-10 20:50:08 +00:00
filipp
2369814092 Fix(VIM-2884): Moving multiple lines in visual mode is not working 2023-03-10 22:48:16 +02:00
Alex Plate
6970a764c4 Update changelog 2023-03-10 19:22:34 +00:00
filipp
4c7c3dba00 Fix(VIM-2733): vim-surround emulation interacts incorrectly with unmatched quotes on previous lines 2023-03-10 21:20:18 +02:00
filipp
aebad12bbe Add some useful methods to work with strings 2023-03-10 20:39:13 +02:00
Alex Plate
8593e7a6ac Small reformat of kotlin script 2023-03-10 19:03:35 +02:00
Alex Plate
119975c313 Remove experimental API 2023-03-10 18:30:07 +02:00
Alex Plate
27c3a95ec6 Provide visibility for some classes 2023-03-10 18:15:48 +02:00
Alex Plate
d5eaf85473 Better support for esc in octopus mode 2023-03-10 14:33:31 +02:00
Alex Plate
7f4c967a20 Fix compilation in tests 2023-03-10 13:34:19 +02:00
Alex Plate
8066ac2819 Enable explicit api mode for vim-engine
But without fixes as there are 3000 violations
2023-03-10 13:23:24 +02:00
Alex Plate
66172c843d Enable explicit api mode for IdeaVim 2023-03-10 13:20:29 +02:00
Alex Plate
88b3373e5c Add option to enable octopus handler 2023-03-10 12:11:17 +02:00
Alex Plate
320d91d639 Add esc to octopus handler 2023-03-10 12:00:41 +02:00
Alex Plate
24d118e225 Update changelog after merging PR 2023-03-10 08:19:21 +00:00
Matt Ellis
c192f319d1 Simplify setting known options a little 2023-03-10 10:17:45 +02:00
Matt Ellis
097dfa06a6 Add a couple of convenience functions 2023-03-10 10:17:45 +02:00
Matt Ellis
90ca544d0a Move getter helpers out of the options interface
The interface now has a simple setter and getter, as well as other functions for managing options. More friendly functions for getting and setting values are available as extension functions
2023-03-10 10:17:45 +02:00
Matt Ellis
2bc9640b88 Remove last of 'set' validation code 2023-03-10 10:17:45 +02:00
Matt Ellis
40ffddf5ef Push toggle option validation into ':set' command 2023-03-10 10:17:45 +02:00
Matt Ellis
bd28c9da23 Push more ':set' command validation into command 2023-03-10 10:17:45 +02:00
Matt Ellis
11ef024779 Move ':set' command validation out of interface
Moves functions that require validation parameters to extension functions. Core interface should not require additional user facing paramter
2023-03-10 10:17:45 +02:00
Matt Ellis
40d9a201ea Use bundle for exception messages 2023-03-10 10:17:45 +02:00
Matt Ellis
6e2ac21fab Refactor getDefaultValue into property 2023-03-10 10:17:45 +02:00
Matt Ellis
7858cf57c6 Fix number operations for set command 2023-03-10 10:17:45 +02:00
Matt Ellis
91c8e7ebda Rename getOptionByNameOrAbbrev 2023-03-10 10:17:45 +02:00
Matt Ellis
6332ee6955 Remove unnecessary argument text 2023-03-10 10:17:45 +02:00
Matt Ellis
3c3014fdc6 Remove unused getAbbrevs function 2023-03-10 10:17:45 +02:00
Matt Ellis
d97e4c44ee Rename "token" and remove default argument 2023-03-10 10:17:45 +02:00
Matt Ellis
1b88c514da Move IjVimOptionGroup to correct package & rename 2023-03-10 10:17:45 +02:00
Matt Ellis
96c1094a61 Replace OptionService with VimOptionGroup
Leaves a skeleton, deprecated implementation of OptionService for existing external use by plugins
2023-03-10 10:17:45 +02:00
Matt Ellis
b3551b4ee5 Remove empty file 2023-03-10 10:17:45 +02:00
Matt Ellis
4232d3d8a2 Remove unused local options types 2023-03-10 10:17:45 +02:00
Matt Ellis
73b64c19ff Move OptionValueAccessor to options package 2023-03-10 10:17:45 +02:00
Matt Ellis
15ccdb2055 Remove unnecessary getOptionServiceImpl 2023-03-10 10:17:45 +02:00
Matt Ellis
418067b077 Remove unused deprecated method
No external usages
2023-03-10 10:17:45 +02:00
Matt Ellis
88b29d1a14 Isolate and remove deprecated code
Moves ToggleOption to the proper package, leaving behind a skeleton class to keep ideavim-sneak and IdeaVim-EasyMotion happy.

Removes NumberOption and related number OptionsManager properties which are only used by which-key 0.6.2, because this plugin is already broken due to a separate API change. (The plugin is expecting the command trie to use `CommandPartNode<ActionBeanClass>`, but it's actually using `CommandPartNode<VimActionsInitiator>`). Also removes `ToggleOption.value`, used by which-key
2023-03-10 10:17:45 +02:00
Matt Ellis
b831aa8eca Fix incorrect type parameter in cast
Cast succeeds, but only due to erasure
2023-03-10 10:17:45 +02:00
Matt Ellis
4540d216cb Move StrictMode out of options package 2023-03-10 10:17:45 +02:00
Alex Plate
b345ebb366 Add test for escaped pairs 2023-03-10 09:42:49 +02:00
Alex Plate
7a8ed2db32 Add kawagh to contributors list 2023-03-10 07:39:23 +00:00
kawagh
9f5ed99b79 Add tests to secure % motion behavior with escaped parentheses 2023-03-10 09:37:46 +02:00
kawagh
1bd6defc84 Include escaped character in search target 2023-03-10 09:37:46 +02:00
Alex Plate
181d76ae7b Improvements for octopus handler 2023-03-09 16:45:06 +02:00
Alex Plate
31d37c218a Update changelog 2023-03-09 13:58:42 +00:00
filipp
72be9845fa Fix(VIM-2885): "v:searchforward" does't work for IdeaVim 2023-03-09 15:56:34 +02:00
filipp
a6a4e50479 Add ` mark to jumplist 2023-03-09 15:29:13 +02:00
Alex Plate
1f88ead837 Update changelog 2023-03-09 12:03:39 +00:00
filipp
8303cafbc9 Fix(VIM-2244): nnoremap mapping doesn't work correctly 2023-03-09 14:01:35 +02:00
filipp
00901f60dc Add get() function 2023-03-08 20:06:43 +02:00
filipp
21aaf06a63 Add split function 2023-03-08 19:21:02 +02:00
Alex Plate
d81774c9a7 Add octopus connector that attaches IdeaVim to IJ using EditorActionHandlers 2023-03-08 13:56:31 +02:00
Alex Plate
2cb6fb041e Use injector to create execution context 2023-03-08 13:06:36 +02:00
Alex Plate
b7d5ee9a75 Add doc why we can move to project activity at the moment 2023-03-08 12:59:48 +02:00
Alex Plate
24dd84b31c Revert "Migrate to project activity"
This reverts commit fc7efd5484.
2023-03-08 12:57:13 +02:00
Alex Plate
0e96819e86 Update creation of execution context 2023-03-08 11:35:01 +02:00
Alex Plate
897d393342 Add delay in UI test 2023-03-08 09:45:25 +02:00
Alex Plate
fc7efd5484 Migrate to project activity 2023-03-08 09:30:33 +02:00
Alex Plate
834695420d Update UI tests 2023-03-08 09:18:45 +02:00
Alex Plate
c4025c0cc1 Set larget expand timeout for UI tests 2023-03-08 08:44:42 +02:00
Alex Plate
c80ef82f2a Remove unnecessary curly braces 2023-03-08 08:34:11 +02:00
filipp
b94b4eea04 Better per caret register storage 2023-03-07 22:31:08 +02:00
Alex Plate
116c813988 Update changelog 2023-03-07 15:26:26 +00:00
filipp
2c9aa8e30e FIX(VIM-2881): ReplaceRegister does no longer worker with MultiCursor 2023-03-07 17:24:19 +02:00
Alex Plate
376c84c46e Update changelog 2023-03-07 07:46:14 +00:00
Alex Plate
a3039e05d4 Fix(VIM-1735): Fix enabling mulple carets after line selection 2023-03-07 09:44:01 +02:00
Alex Plate
bed078213b Fix some qodana issues 2023-03-07 09:44:01 +02:00
Alex Plate
b413c8e715 Update formatting 2023-03-05 00:20:18 +00:00
Alex Plate
299890c737 Update gradle plugin 2023-03-03 18:17:59 +02:00
Alex Plate
e977bee8cc Remove unused task from configuration 2023-03-03 18:08:09 +02:00
Alex Plate
5b636b2b5e Perform code cleanup 2023-03-03 17:57:42 +02:00
Alex Plate
6db4874acd Migrate NerdTree to new startup activity 2023-03-03 17:57:41 +02:00
Alex Plate
e788ea6d7f Remove unused deprecated field 2023-03-03 17:57:41 +02:00
Alex Plate
c5f8eaf1cf Run ktlinter 2023-03-03 17:57:41 +02:00
Alex Plate
c9568b4301 Switch to AnActionWrapper instead of deprecated EmptyAction 2023-03-03 17:57:41 +02:00
Alex Plate
e1c712abb7 Include the original editor context into our custom editor context
Bug reference: https://youtrack.jetbrains.com/issue/VIM-2315/Bug-in-leader-key-handling-in-ideavim#focus=Comments-27-6918383.0-0
2023-03-03 17:57:41 +02:00
filipp
81e8a28cc3 Marketplace plugin mapping tutorial 2023-03-03 16:47:46 +02:00
Alex Plate
e45a2b4517 Update changelog after merging PR 2023-03-01 15:44:18 +00:00
Dominic Palmer
dd69d0fad2 Prevent viewport displacement on undo 2023-03-01 17:41:59 +02:00
filipp
4f680c881c Fix deprecated method in Changelog plugin 2023-03-01 11:25:51 +02:00
filipp
1932d7102b Fix typo 2023-03-01 11:17:25 +02:00
Alex Plate
58ba9ed4be Fix qodana inspections 2023-02-28 17:41:48 +02:00
filipp
8fe6c8bde7 Jumps refactoring 2023-02-28 13:11:08 +02:00
Alex Plate
ec4684c336 Fix qodana inspections 2023-02-28 10:10:24 +02:00
Alex Plate
ec05ca11ba Fix possible NPE 2023-02-28 10:00:42 +02:00
Alex Plate
164e3cedd6 Add Dominic Palmer to contributors list 2023-02-28 07:57:55 +00:00
Alex Plate
0d4d610b3a Update changelog after merging PR 2023-02-28 07:54:03 +00:00
Dominic Palmer
7ebd604390 Include empty lines in the selection when dragging backwards from EOL 2023-02-28 09:52:23 +02:00
Alex Plate
7bc50df300 Fix possible npe 2023-02-28 09:31:38 +02:00
aleksei.plate
3f3eb0f878 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'Qodana checks' build configuration were updated 2023-02-28 07:09:26 +00:00
Alex Plate
6e854eb889 Update formatting 2023-02-26 00:19:08 +00:00
filipp
d009ece391 Fix jumps 2023-02-24 15:22:31 +02:00
Alex Plate
ffa7909f9f Update changelog 2023-02-24 12:51:35 +00:00
filipp
266d164a34 Add option to turn off using IDE jumps by JumpService 2023-02-24 14:48:50 +02:00
filipp
aaf957a3c2 Fix(VIM-44): Unify navigation history between ideavim and idea 2023-02-24 14:44:53 +02:00
Alex Plate
dd35c4907e Update minimal version of IJ
Build based on 231 has tons of incompatibilities with 223
2023-02-23 10:26:30 +02:00
Alex Plate
993986c1cf Add mark test 2023-02-23 09:59:55 +02:00
Alex Plate
8d47d9c015 Cleanup broken tests 2023-02-23 09:37:18 +02:00
Alex Plate
b4764a230a Fix small bug 2023-02-23 08:58:29 +02:00
Alex Plate
2c703a7468 Use more stable YouTrack tests 2023-02-23 08:29:58 +02:00
Alex Plate
87083e03a8 Update formatting 2023-02-19 00:18:26 +00:00
Alex Plate
1d22fbfae0 Update qodana baseline 2023-02-15 10:17:30 +02:00
Alex Plate
cfee63d716 Update changelog 2023-02-15 08:11:24 +00:00
Alex Plate
d49052660f Fix(VIM-2315): Fix overlapping mappings execution 2023-02-15 10:09:37 +02:00
Alex Plate
f5299d4b75 Extract processing of the mappings into the separate file 2023-02-15 09:39:30 +02:00
Alex Plate
35b366640f Fix compilation 2023-02-15 09:23:44 +02:00
aleksei.plate
1dc3809a34 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Qodana checks' build configuration settings were updated 2023-02-13 15:29:22 +00:00
aleksei.plate
82c883acdb TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2023-02-13 14:12:19 +00:00
Alex Plate
8333751482 Update changelog 2023-02-13 11:09:48 +00:00
filipp
933070fc32 Update formatting 2023-02-13 13:06:31 +02:00
filipp
ec80a20146 Rename method 2023-02-13 13:05:34 +02:00
filipp
cd46497829 Fix(VIM-282): Cursor line wrapping support (whichwrap) 2023-02-13 13:04:53 +02:00
Alex Plate
cb51a78509 Update formatting 2023-02-12 00:18:06 +00:00
filipp
6a52d0c83a Fix visual marks if put text with multiple carets 2023-02-07 19:28:37 +02:00
Alex Plate
138dc7082e Update formatting 2023-02-05 00:18:21 +00:00
Alex Plate
944c66c366 Update changelog 2023-02-01 21:08:38 +00:00
filipp
0accfbd65f Fix(VIM-1768): Delete surrounding character while in multiple cursors mode 2023-02-01 23:06:25 +02:00
Alex Plate
86498ba317 Update changelog 2023-02-01 19:11:39 +00:00
filipp
6016aac675 Fix(VIM-2804): IdeaVim multiple-cursors copy and paste issue when "set clipboard+=unnamed" 2023-02-01 21:08:55 +02:00
filipp
80f8c88532 Update changelog 2023-02-01 21:08:54 +02:00
filipp
e112d87e28 Register FunctionStorage as service 2023-02-01 21:08:35 +02:00
Alex Plate
718d73f7cc Update changelog 2023-02-01 18:49:33 +00:00
Alex Plate
d01e804b24 Fix(VIM-658): Stop macro on error 2023-02-01 20:47:15 +02:00
Alex Plate
72ca9a2297 Reuse potemkin progress for internal macros 2023-02-01 20:26:06 +02:00
Alex Plate
007a1694d7 Remove useless parameter 2023-02-01 19:50:48 +02:00
Alex Plate
74dd307318 Convert macro group to kotlin 2023-02-01 19:46:09 +02:00
Alex Plate
4bf5f6dcc1 Rename .java to .kt 2023-02-01 19:46:08 +02:00
Alex Plate
cbf450425e Add some docs 2023-02-01 19:45:19 +02:00
Alex Plate
9b56fbc3ed Convert more tests from java to kotlin 2023-01-28 08:48:23 +02:00
Alex Plate
bdcdfda8c4 Rename .java to .kt 2023-01-28 08:48:22 +02:00
Alex Plate
53b2108252 Convert some tests to java 2023-01-28 08:28:40 +02:00
Alex Plate
ab87a86e9d Rename .java to .kt 2023-01-28 08:28:39 +02:00
Alex Plate
17c248eda0 Fix(VIM-2787): Save ideavimrc loading 2023-01-27 10:55:51 +02:00
Alex Plate
bee82a1941 Adding experimental inspection 2023-01-27 10:55:49 +02:00
filipp
772c574149 VimMarkServiceImpl refactoring 2023-01-27 00:20:40 +02:00
filipp
d577411e72 Fix(VIM-2850) 2023-01-27 00:20:40 +02:00
Alex Plate
f901d9d3b0 Use stable version of IJ for build 2023-01-25 08:28:44 +02:00
filipp
da75da6791 Fix easymotion compatibility 2023-01-23 14:36:31 +02:00
filipp
052fe75183 Fix dropLastJump 2023-01-23 13:02:35 +02:00
filipp
d50daad918 Fix easymotion compatibility 2023-01-23 12:57:44 +02:00
Alex Pláte
2834e25945 Update README.md 2023-01-23 10:07:12 +02:00
dependabot[bot]
5c7190710b Bump junit-jupiter-api from 5.8.1 to 5.9.2
Bumps [junit-jupiter-api](https://github.com/junit-team/junit5) from 5.8.1 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.8.1...r5.9.2)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 10:01:10 +02:00
Alex Plate
dd76de2066 Source vimrc in template only if it exists 2023-01-23 09:34:18 +02:00
Alex Plate
1a7e3ed658 Add some fixes 2023-01-23 08:53:24 +02:00
Alex Plate
956339115c Rename .java to .kt 2023-01-23 08:53:23 +02:00
Alex Plate
484a1f264b Update formatting 2023-01-22 00:18:31 +00:00
nikita.koshcheev
0f739ffb50 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2023-01-20 17:29:32 +00:00
filipp
e79821385d Remove caret from method signatures in CaretRegisterStorage 2023-01-20 17:24:28 +02:00
Alex Plate
e742d089d6 Include vim-engine sources to IdeaVim distribution 2023-01-20 17:16:37 +02:00
filipp
44336460c5 Fix IDEA compatibility 2023-01-20 16:50:58 +02:00
filipp
46f0309171 VIM-2840 Replace with register does not work with count 2023-01-20 16:33:16 +02:00
filipp
1ed38ec92b Fix mark fixes version 2023-01-20 15:53:20 +02:00
Alex Plate
04dca831e3 Update changelog after merging PR 2023-01-18 15:49:21 +00:00
Matt Ellis
308e8bfbc3 Replace default interface methods with extensions 2023-01-18 17:47:32 +02:00
Matt Ellis
62ecddb719 Replace setOptionValue with :set in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
a852b0efbc Replace unsetOption with :set in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
3dd6a55727 Replace setOption with :set in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
3993e3b9c0 Migrate getOptionValue to new API in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
42b8b5814f Simplify check for option existence 2023-01-18 17:47:32 +02:00
Matt Ellis
60de6f57fd Replace isDefault calls in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
11fcb17c29 Replace appendValue with :set in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
98246e23dd Introduce options value accessor to VimTestCase 2023-01-18 17:47:32 +02:00
Matt Ellis
61e2e81719 Avoid race condition initialising OptionService 2023-01-18 17:47:32 +02:00
Matt Ellis
62e600443e Remove unnecessary options reset in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
5bde4d75ce Remove test option after tests finish 2023-01-18 17:47:32 +02:00
Matt Ellis
9c54fbe733 Migrate isSet to option value accessor API 2023-01-18 17:47:32 +02:00
Matt Ellis
9cc206d548 Introduce friendly API for consuming options 2023-01-18 17:47:32 +02:00
Matt Ellis
a97cf8a3ec Remove unnecessarily cached list field 2023-01-18 17:47:32 +02:00
Matt Ellis
f0ea5f3968 Extract IDEA specific option constants 2023-01-18 17:47:32 +02:00
Matt Ellis
8d44afc8e6 Sort option name constants 2023-01-18 17:47:32 +02:00
Matt Ellis
62ed3bd7f2 Rename option name constants 2023-01-18 17:47:32 +02:00
Matt Ellis
89889924fc Tidy up imports 2023-01-18 17:47:32 +02:00
Matt Ellis
dda592cb39 Small refactor 2023-01-18 17:47:32 +02:00
Matt Ellis
bb44044956 Move IJ specific options out of engine 2023-01-18 17:47:32 +02:00
Matt Ellis
d95810f6e5 Sort options 2023-01-18 17:47:32 +02:00
Matt Ellis
26c275b0f5 Introduce UnsignedNumberOption 2023-01-18 17:47:32 +02:00
filipp
341dc6c58b Post-merge fixes 2023-01-17 16:15:34 +02:00
filipp
a2364b7512 Pull request polishing 2023-01-16 19:23:13 +02:00
filipp
350e1c08d0 Add loading marks and jumps states to VimPlugin 2023-01-16 19:23:00 +02:00
filipp
724dc42a59 Update changelog 2023-01-16 19:22:58 +02:00
filipp
79a62e9d37 Move command tests 2023-01-16 19:22:35 +02:00
filipp
f73ba63133 Add test for marks with multiple carets 2023-01-16 19:22:35 +02:00
filipp
d2c849fceb Post-merge fixes 2023-01-16 19:21:10 +02:00
filipp
c4e9d5d14f Multiple carets support for marks 2023-01-16 19:19:46 +02:00
filipp
76a7d1ee69 Visual marks tests 2023-01-16 18:51:11 +02:00
filipp
a8d225f812 Save jumps after IDE close 2023-01-16 18:51:11 +02:00
filipp
bdfb8c7ee4 Fix exchange 2023-01-16 18:51:11 +02:00
filipp
9ab9d88eb5 VimJumpService implementation 2023-01-16 18:51:11 +02:00
filipp
75ff5feccd LastSelectionInfo now stores buffer positions instead of offset
Updating lastSelectionInfo after insertion & deletion
2023-01-16 18:51:11 +02:00
filipp
a4c7b38b7a Update formatting 2023-01-16 18:51:11 +02:00
filipp
ec86608aff Fix visual selection marks for the :move command 2023-01-16 18:51:11 +02:00
filipp
4010854075 Multicaret gv 2023-01-16 18:51:10 +02:00
filipp
fe1ae29fa3 Better selection marks 2023-01-16 18:40:31 +02:00
filipp
8c7d0b06d1 KeySorter for MarksCommand 2023-01-16 18:40:31 +02:00
filipp
af497e6906 Post-merge fixes 2023-01-16 18:40:30 +02:00
filipp
badb61aaea Move command no longer removes marks 2023-01-16 18:40:25 +02:00
filipp
5884919350 Fix mark order for marks command 2023-01-16 18:40:25 +02:00
filipp
ce77148a38 Multiple carets support for marks 2023-01-16 18:40:24 +02:00
Alex Plate
0ee6ce0a55 Remove some forEachCaret methods 2023-01-16 11:43:00 +02:00
Alex Plate
39f0e14fee Remove one of the unused methods 2023-01-16 09:53:52 +02:00
Alex Plate
dc09907f93 Remove dynamic loader stopper 2023-01-16 09:38:38 +02:00
Alex Plate
dcec97b9b4 Update formatting 2023-01-15 00:22:05 +00:00
Alex Plate
0eb8615db4 Update support guide 2023-01-13 10:19:40 +02:00
Alex Plate
e674d8ac3a Remove more usages of runForEachNative 2023-01-12 10:31:14 +02:00
Alex Plate
141af4f097 Remove one of for each methods 2023-01-12 10:19:11 +02:00
Alex Plate
35ef9c7e68 Update new .ideavimrc template 2023-01-12 09:27:07 +02:00
Alex Plate
67e8b3e988 Add support guide 2023-01-12 09:00:24 +02:00
Alex Plate
896508d1fd Update copyright notice 2023-01-12 08:11:15 +02:00
Alex Plate
908c978242 Global copyright update 2023-01-10 10:09:25 +02:00
Alex Plate
6419279514 Prepare to 2.1.0 release 2023-01-10 09:59:51 +02:00
Alex Plate
0ecfdc5cf3 Fix issue with incorrect position of the caret after put 2023-01-09 10:52:29 +02:00
Alex Plate
a357f989ad Update changelog after merging PR 2023-01-09 08:19:13 +00:00
Patrick Elmquist
831e335b5d Fixed typos in Tutor 2023-01-09 10:17:31 +02:00
Alex Plate
5e4afd4a7b Update changelog 2023-01-06 08:00:34 +00:00
Alex Plate
337c526e23 Fix(VIM-2833): Fix rare deadlock during put in insert mode from clipboard 2023-01-06 09:58:52 +02:00
Alex Plate
5f25db231f Update copyright rules 2023-01-06 09:26:05 +02:00
Alex Plate
fb46993a05 Reformat sources 2023-01-06 09:26:05 +02:00
Alex Plate
ef2738838f Update copyright rules 2023-01-06 09:26:05 +02:00
Alex Plate
b9669e452c Add some information to issue template 2023-01-06 09:26:04 +02:00
Alex Plate
6196417436 Fix minor issue with offsets 2023-01-06 09:26:04 +02:00
Alex Plate
5d797f397d Update changelog after merging PR 2023-01-06 07:23:51 +00:00
Matt Ellis
3be6acf5b5 Restore type qualifiers for some static methods 2023-01-06 09:22:08 +02:00
Matt Ellis
b5619adf45 Cleanup MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
62540fe1b2 Reformat MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
fd85fdf0ac Convert MotionGroup to Kotlin 2023-01-06 09:22:08 +02:00
Matt Ellis
e09208c757 Rename MotionGroup.java to MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
753f2110c6 Clean up ScrollGroup.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
7917e8417b Import EditorHelper methods 2023-01-06 09:22:08 +02:00
Matt Ellis
a0447b4840 Convert ScrollGroup from Java to Kotlin 2023-01-06 09:22:08 +02:00
Matt Ellis
2e561a2af4 Rename ScrollGroup.java to ScrollGroup.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
a330a3e472 Make editor converter property accessors inline 2023-01-06 09:22:08 +02:00
Matt Ellis
229d64fcf8 Add ScrollViewHelper.kt to ThirdPartyLicenses.md 2023-01-06 09:22:08 +02:00
Matt Ellis
6df695f650 Cleanup ScrollViewHelper.kt 2023-01-06 09:22:08 +02:00
Matt Ellis
d77edaa056 Convert ScrollViewHelper to Kotlin 2023-01-06 09:22:08 +02:00
Matt Ellis
4f78246c7f Rename ScrollViewHelper.java to .kt 2023-01-06 09:22:08 +02:00
Matt Ellis
8d3ccdaf9c Extract scroll functionality into ScrollGroup 2023-01-06 09:22:08 +02:00
Matt Ellis
17e1061866 Extract scrollCaretIntoView to helper class
This file is licensed under the Vim license, so that scrolling the caret into view can be based on the Vim implementation
2023-01-06 09:22:08 +02:00
Matt Ellis
30d4b06393 Fix dangling doc comment 2023-01-06 09:22:08 +02:00
Alex Plate
893bf452fb Update changelog after merging PR 2023-01-04 06:58:40 +00:00
Martin Yzeiri
bb67584cba Matchit: Add more Rider file types 2023-01-04 08:56:41 +02:00
Alex Plate
e28ec93c80 Reformat project 2023-01-04 08:44:28 +02:00
Alex Plate
ca37019427 Move some functions to script 2023-01-04 08:42:20 +02:00
Alex Plate
3d452015ee Small refactoring of scripts 2023-01-04 08:42:19 +02:00
Alex Pláte
57a3d82649 Update integrationsTest.yml 2023-01-04 08:21:44 +02:00
Alex Plate
2845beaf8a Better use of Ktor 2022-12-29 09:33:28 +02:00
Alex Plate
1e58ead126 Move scripts into the separate module 2022-12-29 09:26:45 +02:00
Alex Plate
fafa7572d0 Extract plugin dependencies check into the separate file 2022-12-29 08:27:12 +02:00
Alex Plate
4ddeb72bfe Update changelog after merging PR 2022-12-29 05:53:35 +00:00
Martin Yzeiri
28ba36dddb Matchit: Support cshtml files
Enables HTML jumps in Razor (.cshtml) templates.
2022-12-29 07:51:59 +02:00
Alex Plate
b6c501311c Another workflow update 2022-12-28 18:11:13 +02:00
Alex Plate
01d4ebe254 Update workflow 2022-12-28 18:09:21 +02:00
Alex Plate
34dd332f0b Create an entry point for kotlin scripts 2022-12-28 18:04:36 +02:00
Alex Plate
596d0c7115 Add new job to check new plugins in marketplace that depend on IdeaVim 2022-12-28 17:06:34 +02:00
Alex Plate
672601b028 Do not check updates for dev version of the plugin 2022-12-28 14:41:10 +02:00
Alex Plate
e5045f28ab Update tutor a bit 2022-12-28 12:21:36 +02:00
Alex Plate
12ba067db3 Use either name or login for GH merge job 2022-12-28 09:09:08 +02:00
Alex Plate
5413606425 Fix 2022-12-28 09:04:06 +02:00
Alex Plate
72ae18557b Fix broken link in the code 2022-12-28 09:03:19 +02:00
Alex Plate
99bd119ed6 Update changelog after merging PR 2022-12-28 06:59:55 +00:00
Runinho
faebf66065 improve formating 2022-12-28 08:58:14 +02:00
Runinho
dc030d6895 Fix(VIM-2760) notebookCommandMode detection 2022-12-28 08:58:14 +02:00
Alex Plate
7f626005a5 Fix for the dd on last line in the notebook 2022-12-27 18:22:24 +02:00
Alex Plate
28d0741e14 Update changelog after merging PR 2022-12-27 13:56:25 +00:00
Matt Ellis
c0e17a6c61 Fix issue with lastColumn not being invalidated 2022-12-27 15:45:18 +02:00
Matt Ellis
b5046b089e Fix incsearch not scrolling to current match 2022-12-27 15:45:18 +02:00
Alex Plate
1075112bfa Add IdeaVim tutor 2022-12-27 10:48:58 +02:00
Alex Plate
37fddacf8e Update GH CI jobs 2022-12-22 17:34:41 +02:00
Alex Plate
2091a59897 Temp fix for VIM-2808: disable formatting after paste for rider 2022-12-22 15:49:04 +02:00
Alex Plate
d2a427b38f Use different type of action on github merge 2022-12-22 09:28:58 +02:00
Alex Plate
c069719c1c Add quick scope plugin to the list 2022-12-21 14:24:04 +02:00
Alex Plate
654a443d4b Fix compatibility with plugins 2022-12-21 10:59:23 +02:00
Alex Plate
a6ec2d5ed7 Update changelog 2022-12-21 10:34:55 +02:00
Alex Plate
02ac083175 Add new line 2022-12-21 10:18:56 +02:00
Alex Plate
561fce5d40 Update links to vim plugins 2022-12-21 10:18:23 +02:00
Alex Plate
a88263874a Do not check for updates if the plugin is disabled 2022-12-21 10:06:46 +02:00
filipp
943ddeb5ab Update gradle plugin 2022-12-19 17:43:38 +02:00
Alex Pláte
216a3fedd0 Update IdeaVim Plugins.md 2022-12-19 12:36:13 +02:00
Alex Plate
7b8c335a5b Update changelog 2022-12-19 08:08:58 +00:00
Alex Plate
8e8efe4862 Fix(VIM-2813): Migrate update checker to VimStandalonePluginUpdateChecker 2022-12-19 10:06:52 +02:00
Alex Plate
e64dc3cc1c Update changelog 2022-12-19 09:08:18 +02:00
Alex Plate
c833691cf6 Add Ada to contributors list 2022-12-19 07:01:17 +00:00
Ada
ba5e2e8613 Remove the redundant quotation mark at the end of "packadd matchit" command 2022-12-19 08:59:35 +02:00
Alex Plate
b154e31a28 Update formatting 2022-12-04 00:16:36 +00:00
Alex Plate
322b888dc5 Add update to the evolution 2022-12-02 12:03:58 +02:00
Alex Plate
42eefb763b Add an editor to the action executor 2022-12-02 11:52:39 +02:00
Alex Plate
27be351636 Adopt immutable caret around the source code 2022-12-02 11:36:46 +02:00
Alex Plate
8b20287f93 Use immutable caret during put 2022-12-01 19:15:33 +02:00
Alex Plate
50a7bdb34d Update some tests 2022-12-01 19:12:30 +02:00
Alex Plate
dcac3be0da Pass editor to the message service 2022-12-01 14:29:54 +02:00
Alex Plate
ec121fb327 Adapt to immutable caret 2022-12-01 14:17:29 +02:00
Alex Plate
ccb260b6a7 Make showmode on by default as in vim 2022-12-01 14:14:57 +02:00
Alex Plate
c994511ea5 Add dashes to showcmd 2022-12-01 11:01:23 +02:00
Alex Plate
fb5177633a More uses of ImmutableVimCaret 2022-12-01 08:38:52 +02:00
Alex Plate
b15fde59d1 Fix UI test 2022-11-30 18:20:29 +02:00
Alex Plate
1958974c73 Remove experimental CI test 2022-11-30 17:55:55 +02:00
Alex Plate
00b1b0fea4 Add delay to UI test 2022-11-30 17:47:58 +02:00
Alex Plate
743b978e6f Update engine 2022-11-30 13:11:16 +02:00
Alex Plate
cbabd8b76e Add new mapping mode set 2022-11-30 12:00:10 +02:00
Alex Plate
1fd877c597 Small refactoring of vim caret 2022-11-30 11:49:09 +02:00
Alex Plate
4f64ed07b1 Update docs 2022-11-30 08:54:36 +02:00
Alex Plate
4e537b0466 Create a job that syncs documentation 2022-11-30 08:32:34 +02:00
Alex Plate
2b1198dfd9 Rename extensions to plugins to be more consistent 2022-11-30 08:11:39 +02:00
Alex Plate
8db23fba43 Extract ImmutableVimCaret interface 2022-11-29 20:02:26 +02:00
Alex Plate
0451487549 Update engine to support immutable caret 2022-11-29 20:02:25 +02:00
aleksei.plate
a16faa97ec TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Qodana checks' build configuration settings were updated 2022-11-29 10:24:50 +00:00
aleksei.plate
dbf626a53e TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Qodana checks' build configuration settings were updated 2022-11-29 10:24:36 +00:00
Alex Plate
27cc767ec4 Update UI test 2022-11-29 10:20:53 +02:00
Alex Plate
8d2d08a12b Remove changes after testing 2022-11-29 10:18:06 +02:00
Alex Plate
7c91d97440 Update changelog after merging PR 2022-11-29 08:14:17 +00:00
Alex Plate
0eb7b53801 Useless commit 2022-11-29 10:09:13 +02:00
Alex Plate
510e31584e Fix incorrect env 2022-11-29 09:57:12 +02:00
Alex Plate
0efedd7fa5 Try a different GH login method 2022-11-29 09:46:34 +02:00
Alex Plate
01a32705e4 Try a different GH login method 2022-11-29 09:22:16 +02:00
Alex Plate
05c1b82bcf Add update PR to the integration tests 2022-11-29 08:55:57 +02:00
Alex Plate
cf04796010 Update changelog 2022-11-29 08:55:57 +02:00
Alex Plate
fd7e66e144 Add Runinho to contributors list 2022-11-29 06:52:48 +00:00
Runinho
ceaf290f5e check offset, add test for put before guard 2022-11-29 08:44:13 +02:00
Runinho
5df9ae57ce Fix(VIM-2577) paste not working at end of notebook cell 2022-11-29 08:44:13 +02:00
Alex Pláte
04ed7d413f Update and rename Emulated-plugins.md to IdeaVim Plugins.md 2022-11-28 21:48:20 +02:00
Alex Plate
f543835921 Update UI test 2022-11-28 18:27:56 +02:00
Alex Plate
8ae35160e7 Move method to a different file 2022-11-28 18:25:11 +02:00
Alex Plate
75516a7217 Fix track action ids 2022-11-28 18:06:20 +02:00
Alex Plate
8783fc89e6 Make a longer delay in UI test 2022-11-28 17:47:06 +02:00
Alex Plate
fd0819ca30 Add link to plugins 2022-11-28 17:36:57 +02:00
Alex Plate
650b925251 Refactor caret movement 2022-11-28 16:56:15 +02:00
Alex Plate
fd3e32eaa8 Move some calls to vim engine 2022-11-28 13:29:41 +02:00
Alex Plate
a8bebb88b1 Move vimLeadSelectionOffset to the engine 2022-11-28 13:19:16 +02:00
Alex Plate
3294a74979 Create vim engine evolution file 2022-11-25 17:06:45 +02:00
Alex Plate
db95804eeb Move caret method now returns VimCaret instance
This is important for Fleet because the carets in Fleet are immutable
2022-11-25 16:53:19 +02:00
Alex Plate
15bfc00ddb Update CI job name 2022-11-25 13:45:56 +02:00
Alex Plate
18580e431f Add integration tests for experiments 2022-11-25 13:42:52 +02:00
Alex Plate
98624d8701 Add method for carets 2022-11-25 13:39:38 +02:00
Alex Plate
3c03a15831 Fix test with modifiers 2022-11-25 13:35:30 +02:00
Alex Plate
9710a7bfc1 Small reformat of state machine 2022-11-25 13:35:29 +02:00
Alex Plate
34426ae32d Pass editor to undo redo 2022-11-25 13:35:29 +02:00
Alex Plate
c2f98ee317 Update changelog 2022-11-25 11:13:14 +00:00
Alex Plate
4df2abba82 Fix(VIM-758): Support d mappings 2022-11-25 13:11:13 +02:00
Alex Plate
c3cd207b2b Add some logging 2022-11-25 09:40:48 +02:00
Alex Plate
4f6053f767 File cleanup 2022-11-25 09:31:34 +02:00
Alex Plate
5578fbdd4f Update changelog 2022-11-23 12:04:42 +02:00
Matt Ellis
84a6c40e13 Fix incorrect normalising for trailing inlay 2022-11-23 12:02:55 +02:00
Alex Plate
3e91004660 Update changelog 2022-11-23 09:47:50 +00:00
Alex Plate
ac1d334bf1 Fix(VIM-2797): Introduce variable to mute default argtextobj mappings 2022-11-23 11:44:47 +02:00
Alex Plate
368c840177 Supress warning 2022-11-22 09:54:36 +02:00
Alex Plate
c3a2fd736c Reorder badges 2022-11-21 20:26:29 +02:00
Alex Plate
741987f40b Add codecov badge 2022-11-21 20:24:32 +02:00
Alex Plate
375b025e22 Add kover report 2022-11-21 20:06:40 +02:00
Alex Plate
7324ee5e8d Update formatting 2022-11-20 00:18:56 +00:00
Alex Plate
54c2299654 Remove several methods from VimCaret 2022-11-18 14:37:32 +01:00
Alex Plate
b2cfb6d6ed Refactor visual mode entering 2022-11-18 13:08:27 +01:00
Alex Plate
e8a11b8f79 Remove unused method 2022-11-18 12:28:42 +01:00
Alex Plate
f16890f9a7 Remove unused method 2022-11-17 16:35:33 +01:00
Alex Plate
e881bec45d Move more change group methods to engine 2022-11-17 16:14:26 +01:00
Alex Plate
18eea7ca2d Move change group methods to the engine 2022-11-17 16:03:41 +01:00
Alex Plate
316410a561 Move some methods from put group to the engine 2022-11-17 14:57:19 +01:00
Alex Plate
76a1a190f6 Refactor change group 2022-11-17 14:08:07 +01:00
Alex Plate
c243ae9cef Add refactoring to simplify change group 2022-11-17 14:07:57 +01:00
Alex Plate
2722ee63cc Move yank group to injector base 2022-11-17 14:07:57 +01:00
Matt Ellis
22e7fa1cf3 Add comments 2022-11-17 14:07:46 +01:00
Matt Ellis
101dc355ba Rename parameters in Mark and Jump 2022-11-17 14:07:46 +01:00
Matt Ellis
f5f3d0b827 Rename line parameters and variables
Buffer lines are just called "line", but visual lines (or where things are ambiguous) are explicitly named
2022-11-17 14:07:46 +01:00
Matt Ellis
53cb5d1fe9 Rename more logical position helper functions 2022-11-17 14:07:46 +01:00
Matt Ellis
0978ca616f Rename caret logical position helper functions 2022-11-17 14:07:46 +01:00
Matt Ellis
bbf42c0a28 Rename editor logical position helper functions 2022-11-17 14:07:46 +01:00
Matt Ellis
7df04c6e2e Rename VimLogicalPosition to BufferPosition 2022-11-17 14:07:46 +01:00
Matt Ellis
d3386c8097 Fix Gradle warning 2022-11-17 14:07:46 +01:00
Alex Plate
309197781e Fix some tests 2022-11-17 10:14:03 +01:00
Alex Plate
5a3ee970a0 Move editor helper functions to engine 2022-11-17 09:37:22 +01:00
Alex Plate
7cbe63e484 Move some editor functions to engine 2022-11-16 23:21:22 +01:00
filipp
5342b02091 Converted MacOS chars to ASCII for statistics 2022-11-16 21:26:41 +02:00
Alex Plate
7eeca57135 A few fixes 2022-11-16 13:22:40 +01:00
Alex Plate
2162985e4a Move more methods to engine 2022-11-16 13:05:59 +01:00
Alex Plate
5d53f4c13a Move some methods from editor helper to engine 2022-11-16 12:37:03 +01:00
Alex Plate
7de2c2692d Update changelog 2022-11-16 09:47:06 +01:00
Alex Plate
1b9df35a1d Take back contributions from Marquis Wang 2022-11-16 09:45:09 +01:00
Alex Plate
d5d39797bb Take back contributions from Piotr Mikulski 2022-11-16 09:45:09 +01:00
Alex Plate
829a228d79 Revert "Remove contributions of Piotr Mikulski <piotr@near.org>"
This reverts commit 860592291f.
2022-11-16 09:45:08 +01:00
Alex Plate
4c589c9610 Revert "Refactor commands output"
This reverts commit 05852b07
2022-11-16 09:45:08 +01:00
Alex Plate
b9fc58ec45 Move some methods to engine 2022-11-16 09:45:07 +01:00
Alex Plate
193a84dafd Move method to engine 2022-11-16 09:43:53 +01:00
Alex Plate
3880a33208 Refactoring 2022-11-16 09:43:53 +01:00
Alex Plate
2edf897e39 Move getMotionRange to base method 2022-11-16 09:43:51 +01:00
Matt Ellis
27d1170c75 Move creating adjusted offset out of action 2022-11-16 09:41:59 +01:00
Matt Ellis
11c850a41e Remove unused property 2022-11-16 09:41:59 +01:00
Matt Ellis
ff4ee06a1f Remove unnecessary setting of vimLastColumn 2022-11-16 09:41:59 +01:00
Matt Ellis
0549f32d6e Remove unnecessary base class 2022-11-16 09:41:59 +01:00
Matt Ellis
c5ab3490b3 Remove preOffsetComputation hook
Cached intended column is invalidated and recalculated if the caret has moved (intentionally or outside IdeaVim's control)
2022-11-16 09:41:59 +01:00
Matt Ellis
50ba1a1c4e Simplify overloads 2022-11-16 09:41:59 +01:00
Matt Ellis
ee45d2fb38 Remove unused postMove hooks 2022-11-16 09:41:59 +01:00
Matt Ellis
a94822b79a Remove unused preMove hooks 2022-11-16 09:41:59 +01:00
Matt Ellis
b5aba454ae Remove more postMove overrides 2022-11-16 09:41:59 +01:00
Matt Ellis
a49631e986 Start to refactor postMove and intended column 2022-11-16 09:41:59 +01:00
Matt Ellis
bb31b5f2d3 Remove unused hooks for SingleExecution 2022-11-16 09:41:59 +01:00
Matt Ellis
8ad08d466e Refactor motion handler to combine caret move 2022-11-16 09:41:59 +01:00
Matt Ellis
ab31183a93 Regroup line motion functions 2022-11-15 10:34:12 +02:00
Matt Ellis
3257cc82dc Rename functions to indicate target motion
I.e. line number (currently buffer, should be Vim logical line), current line, or relative to current line
2022-11-15 10:34:12 +02:00
Matt Ellis
ef73733596 Remove unnecessary method from VimCaret 2022-11-15 10:34:12 +02:00
Matt Ellis
4b45d4cf09 Group VimCaret related functions and properties 2022-11-15 10:34:12 +02:00
Matt Ellis
e0b3e1db24 Move StrictMode to engine 2022-11-15 10:34:12 +02:00
Matt Ellis
e0b51d653a Move action to correct package 2022-11-15 10:34:12 +02:00
Matt Ellis
c17ebbf4d7 Rename various scroll functions 2022-11-15 10:34:12 +02:00
Matt Ellis
44a26d59a4 Rename screen line functions to "display" 2022-11-15 10:34:12 +02:00
Matt Ellis
6b8f81f7eb Rename screen column functions to "display"
Two reasons:
1. It is good if the engine uses Vim terminology. A "screen" in Vim includes all window/display lines from all windows in the terminal screen, including the status and command line. IntelliJ doesn't have this concept. A display line is most similar to IntelliJ's visual lines, but describes the window/display's character grid, not the buffer contents.
2. moveCaretToMiddleColumn needs renaming to indicate that it's for a display line, not a logical line, and to make way for an implementation of `gM`, which does work on logical lines
2022-11-15 10:34:12 +02:00
Matt Ellis
9a4b9419eb Rearrange VimMotionGroup to group related functions
No code changes
2022-11-15 10:34:12 +02:00
Matt Ellis
89548d132a Remove obsolete helper method 2022-11-15 10:34:12 +02:00
Matt Ellis
45dbb2cd3b Remove JavaVimTestCase base class
Can also now apply @TestWithoutNeovim to an entire class
2022-11-15 10:34:12 +02:00
Matt Ellis
a95203e2c9 Fix Gradle warning for missing task dependency 2022-11-15 10:34:12 +02:00
Matt Ellis
a79fc4980e Fix Gradle warning from verifyPluginConfiguration 2022-11-15 10:34:12 +02:00
aleksei.plate
1240781503 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 18:38:50 +00:00
aleksei.plate
0875c61bc9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build features of 'Qodana checks' build configuration were updated 2022-11-10 13:52:57 +00:00
Alex Plate
da60a1c393 Add some excludes to license analysis 2022-11-10 14:35:29 +02:00
Alex Plate
785f29abf8 Fix some qodana inspections 2022-11-10 13:38:18 +02:00
Alex Plate
2a3e96b891 Turn off unused declaration inspection because it's flacky 2022-11-10 12:12:47 +02:00
Alex Plate
f1f6dd4c60 Turn off magic constant inspection 2022-11-10 11:31:49 +02:00
Alex Plate
b8a8403dc3 Add links to youtrack issues 2022-11-10 11:25:42 +02:00
Alex Plate
ab5eb9c401 Fix test 2022-11-10 11:25:41 +02:00
aleksei.plate
74b7fc9f77 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 08:28:42 +00:00
aleksei.plate
ca87316691 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 08:28:29 +00:00
aleksei.plate
cae61587da TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 08:28:11 +00:00
aleksei.plate
0238d0bf2e TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 08:25:52 +00:00
Alex Plate
5be575a078 Remove plugin verifier from the repository 2022-11-10 10:25:30 +02:00
aleksei.plate
36fbbbf4ae TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 08:07:47 +00:00
aleksei.plate
a87ab3c558 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'IdeaVim compatibility with external plugins' build configuration settings were updated 2022-11-10 07:58:43 +00:00
aleksei.plate
75e22a2080 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:58:30 +00:00
aleksei.plate
6c89799bfb TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:58:25 +00:00
aleksei.plate
e0d9a8d0db TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:47:17 +00:00
aleksei.plate
3208f6a1bd TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:47:02 +00:00
aleksei.plate
d525be33cf TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:46:55 +00:00
aleksei.plate
64136f0b93 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:46:34 +00:00
aleksei.plate
238203cf35 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:45:48 +00:00
aleksei.plate
6b354467ab TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:45:05 +00:00
aleksei.plate
10444e5995 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:44:52 +00:00
aleksei.plate
42f6ca11db TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:33:48 +00:00
aleksei.plate
eed094103d TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 07:00:06 +00:00
aleksei.plate
5051bcd607 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 06:55:47 +00:00
aleksei.plate
74e2bb2d87 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-11-10 06:40:12 +00:00
Alex Plate
a4a6331935 Exclude full generated path from qodana 2022-11-09 09:23:54 +02:00
Alex Plate
3939144128 Update UI tests 2022-11-09 09:13:01 +02:00
Alex Plate
7791c0b7be Get rid of runForEachCaret in DeleteJoinLinesAction 2022-11-08 13:45:21 +02:00
Alex Plate
2cfbff5cf6 Move nerdtree action to background thread 2022-11-08 10:02:47 +02:00
Alex Plate
b734153253 Add vim sneak to the list of plugins 2022-11-08 09:42:11 +02:00
Alex Plate
3df637b265 Remove macrodelay option 2022-11-08 09:42:11 +02:00
Alex Plate
ea220d2514 Update formatting 2022-11-06 00:20:06 +00:00
Alex Plate
8bb75fc376 Add ThirdPartyLicenses.md file 2022-11-04 10:15:42 +02:00
Alex Plate
d461fe555d Refactor status bar icon 2022-11-04 09:55:34 +02:00
Alex Plate
0bd25f2506 Update wording 2022-11-04 09:27:14 +02:00
Alex Plate
2355435275 Update copyright 2022-11-04 09:24:03 +02:00
Alex Plate
cc04ef5869 Add some logging to gradle tasks 2022-11-03 19:45:21 +02:00
aleksei.plate
521d8a605d TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: 'Publish Release' build configuration settings were updated 2022-11-03 11:44:19 +00:00
aleksei.plate
3bff1b1ba5 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: 'Publish Release' build configuration settings were updated 2022-11-03 11:44:06 +00:00
Alex Plate
15192652f0 Move releaseActions to a group 2022-11-03 13:21:27 +02:00
aleksei.plate
85873202ca TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: runners of 'Publish Release' build configuration were updated 2022-11-03 11:15:37 +00:00
aleksei.plate
706bde03f9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: parameters of 'Publish Release' build configuration were updated 2022-11-03 11:14:43 +00:00
aleksei.plate
f855f5f429 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: parameters of 'Publish Release' build configuration were updated 2022-11-03 11:13:52 +00:00
aleksei.plate
cce557e82a TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: parameters of 'Publish Release' build configuration were updated 2022-11-03 11:13:29 +00:00
Alex Plate
7f7d8bd771 Get already existing version in CI 2022-11-03 13:12:06 +02:00
Alex Plate
9a95093b44 Add automation to marks released tickets as Fixed 2022-11-03 13:07:34 +02:00
aleksei.plate
ddf7bbdd31 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: 'Publish Release' build configuration settings were updated 2022-11-03 11:05:03 +00:00
aleksei.plate
994a811efa TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: 'Publish Release' build configuration settings were updated 2022-11-03 11:04:49 +00:00
aleksei.plate
06efa46f32 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: runners of 'Publish Release' build configuration were updated 2022-11-03 11:04:45 +00:00
aleksei.plate
66778a060c TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: runners of 'Publish Release' build configuration were updated 2022-11-03 11:04:28 +00:00
aleksei.plate
c9697d6cc8 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: runners of 'Publish Release' build configuration were updated 2022-11-03 10:59:57 +00:00
aleksei.plate
b801daa240 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: runners of 'Publish Release' build configuration were updated 2022-11-03 10:58:43 +00:00
Alex Plate
d2f42d67c7 Change test approach a bit 2022-11-02 21:18:01 +02:00
Alex Plate
cb9d750db9 Update list of unchecked emails 2022-11-02 15:41:09 +02:00
Alex Plate
0b966c4497 Use env token if ours is empty 2022-11-02 14:09:15 +02:00
Alex Plate
0774a822aa Add comments to integration tests 2022-11-02 13:37:57 +02:00
Alex Plate
7e0cdce7ea Add GH actions 2022-11-02 13:32:33 +02:00
Alex Plate
e2ed963af5 Automation to update youtrack ticket status on commit 2022-11-02 13:25:18 +02:00
Alex Plate
4781d29d67 Prepare to 2.0.0 version 2022-11-01 20:08:27 +02:00
Alex Plate
f5b6ca50f4 Update IdeaVim license to MIT
VIM-2782
2022-11-01 20:00:07 +02:00
Alex Plate
05852b07c6 Refactor commands output 2022-11-01 19:47:27 +02:00
Alex Plate
689aa4cf95 [VIM-570] Fix for chinese characters 2022-11-01 19:47:27 +02:00
Alex Plate
56aad9200a Add some links to GitHu 2022-11-01 19:47:27 +02:00
Alex Plate
ac69c0d9c6 Fix search with offset 2022-11-01 19:47:27 +02:00
Alex Plate
860592291f Remove contributions of Piotr Mikulski <piotr@near.org>
6a4bb7395b
9b4825db77
2022-11-01 19:47:26 +02:00
Alex Plate
113597333c Remove contributions of kk <kevinz@weghst.com>
4849992ca9
2022-11-01 19:47:26 +02:00
Alex Plate
a83d71aa39 Remove contributions of Marquis Wang <marquis@marquiswang.com> 2022-11-01 19:47:26 +02:00
Alex Plate
93299ae843 Remove contributions of Marcel Hild <hild@b4mad.net> 2022-11-01 19:47:25 +02:00
Alex Plate
4300cf5330 Prepare to 1.12.0 release 2022-11-01 19:11:28 +02:00
Alex Plate
92d08377ce Update changelog 2022-10-28 08:18:21 +03:00
Alex Plate
19a6284023 Update kotlin version to 1.7.20 2022-10-28 08:16:10 +03:00
Matt Ellis
45908f2a84 Remove unnecessary scroll method 2022-10-28 08:15:32 +03:00
Matt Ellis
8648220e21 Fix(VIM-2778) Remove override of editor scroll setting
Let user decide how editor scrolls when IntelliJ performs navigation, e.g. go to file member
2022-10-28 08:15:32 +03:00
Alex Plate
68e285b514 Update plugin.xml 2022-10-27 11:25:43 +03:00
Alex Plate
5153a42b69 Remove agent requirement 2022-10-27 11:20:54 +03:00
TeamCity
42feed710c TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project settings were updated on disk 2022-10-27 08:09:50 +00:00
Alex Plate
9d049b06c3 Use java pattern matching in the code 2022-10-27 10:58:14 +03:00
Alex Plate
1105529e91 Update minimal IJ version to 223 2022-10-27 10:29:58 +03:00
Alex Plate
49c1f11503 Update changelog 2022-10-25 06:49:32 +00:00
Alex Plate
f54fd84de3 Fix(VIM-2776): Use filename index for file search 2022-10-25 09:47:50 +03:00
Alex Plate
da3d83ecc6 Update formatting 2022-10-23 00:26:59 +00:00
filipp
4af8e574c4 Log keystrokes only in ASCII 2022-10-19 14:59:09 +03:00
Alex Plate
bdcb5c4f33 Update colors 2022-10-18 16:56:43 +03:00
Alex Plate
013f7a42c2 [VIM-2774] Move visual toggle mode to another handler 2022-10-18 16:38:40 +03:00
Alex Plate
d03398f3e8 [VIM-2774] Move reset mode to another handler 2022-10-18 16:38:40 +03:00
Alex Plate
7a26307a2b [VIM-2774] Move caret swap to runForEachCaret 2022-10-18 16:38:40 +03:00
Alex Plate
fa6a0369b8 [VIM-2774] Remove runforEachCaret for other method 2022-10-18 16:38:40 +03:00
Alex Plate
ad8cb0ba09 [VIM-2774] Add conditional multicaret handler 2022-10-18 16:38:39 +03:00
Alex Plate
8125ce5072 Update changelog 2022-10-18 08:34:00 +00:00
Alex Plate
6c0cc7285f Fix(VIM-2766): Move NERDTree update to background thread 2022-10-18 11:31:15 +03:00
Alex Plate
d3424021c8 Fix(VIM-2768): Refactor listeners 2022-10-17 17:39:40 +03:00
Alex Plate
623aa40acd Update to java 17 2022-10-17 15:45:15 +03:00
Alex Plate
c131cb338e Update description in plugin.xml 2022-10-17 15:45:14 +03:00
filipp
14d242a233 Disable logging undefined handlers 2022-10-17 14:56:16 +03:00
Alex Plate
a131b7d29a Update IdeaVim motto 2022-10-17 12:35:05 +03:00
Alex Plate
85a1fbe89e Update links to github accounts 2022-10-11 09:23:07 +03:00
Alex Plate
142550a1f8 Use 2022.2.2 version of IJ by default 2022-10-04 09:48:35 +03:00
Alex Plate
e3d3b73903 Fix incompatiility with futur versions of IJ 2022-10-04 09:48:18 +03:00
Alex Plate
45f18ff91c Update formatting 2022-10-02 00:26:29 +00:00
Alex Pláte
2103163207 Update AUTHORS information 2022-09-29 09:10:19 +03:00
filipp
19dd49670c Statistic 2022-09-26 11:51:56 +03:00
Alex Plate
e738a1a821 Update formatting 2022-09-25 00:20:49 +00:00
filipp
6e0f301fb8 Fix(VIM-2757) Wrong gv behavior 2022-09-22 04:08:39 +03:00
filipp
c76b8db293 Fix(VIM-2718) Copied value is not inserted 2022-09-21 03:00:53 +03:00
Alex Plate
9fa4ca8fb3 Update formatting 2022-09-18 00:20:25 +00:00
Alex Plate
871b60fe8d Revert "[New Typing Handler]: Switch j command to new typing handler"
This reverts commit 43a79dba
2022-09-12 09:30:22 +03:00
Alex Plate
6715a5b61f Revert "[New Typing Handler]: Support d"
This reverts commit c32c62ea
2022-09-12 09:29:46 +03:00
Alex Plate
d7d91f1cc5 Add some tests for dd 2022-09-12 09:28:27 +03:00
Alex Plate
9f00dbd6f4 Update formatting 2022-09-11 00:19:01 +00:00
Alex Plate
f95cf3d671 Update changelog 2022-09-10 21:26:01 +00:00
filipp
7fbc17624f Fix(VIM-2718): Fixed case where the primary caret was changed 2022-09-11 00:24:06 +03:00
Alex Plate
b9c2ea37cb Update changelog 2022-09-09 14:21:51 +00:00
Alex Plate
ca0db15e01 Fix(VIM-2749): Fix :tabn and :tabN commands 2022-09-09 17:20:09 +03:00
Alex Plate
c32c62eacc [New Typing Handler]: Support d 2022-09-06 13:13:31 +03:00
Alex Plate
43a79dbad4 [New Typing Handler]: Switch j command to new typing handler 2022-09-05 15:22:10 +03:00
Alex Plate
2829a13187 Update gradle plugin 2022-09-05 12:32:08 +03:00
Alex Plate
efc8c9207d Update changelog 2022-08-29 06:37:12 +00:00
Alex Plate
183ed10592 Fix(VIM-2744): Fix undo from ex line 2022-08-29 09:31:55 +03:00
Alex Plate
926b47a31e Update gradle plugin 2022-08-29 09:31:34 +03:00
Alex Plate
d272c919ea Fill missing authors 2022-08-25 11:59:16 +03:00
Alex Plate
f6e7d04fd5 Fix accessing bookmarks
Tests were failing because IdeaVim group is created by default by project name
2022-08-25 11:59:05 +03:00
Alex Plate
ccdff4f087 TC: Fix missing import 2022-08-25 11:23:22 +03:00
Alex Plate
ff14303e88 TC: add tests for stable version of idea 2022-08-25 11:12:50 +03:00
Alex Plate
48a592340b Update test fixture 2022-08-23 15:27:00 +03:00
Alex Plate
da8f5f3231 Fix handler call from put command 2022-08-23 15:26:58 +03:00
Alex Plate
f8fa8b73fa Move some methods to vim engine 2022-08-23 15:26:55 +03:00
Alex Plate
aee126b625 Formatting 2022-08-23 15:26:53 +03:00
Alex Plate
396ac86939 Fix strange issue on ideavimrc reload 2022-08-23 15:26:50 +03:00
Alex Plate
81816f903f Update formatting 2022-08-21 00:17:52 +00:00
Alex Plate
06a85b784b Update changelog 2022-08-17 07:14:42 +00:00
Alex Plate
7f1e3bb155 Fix(VIM-1758): Commentary plugin in rider 2022-08-17 10:13:04 +03:00
Alex Plate
241f554133 Fix(VIM-1903): Autoindent now works in rider 2022-08-17 10:11:19 +03:00
Alex Plate
9498d0779c Revert "Refactoring IdeaVim to use editor actions instead of registering shortcuts in the editor"
This reverts commit b12fd5100f.
2022-08-15 18:59:35 +03:00
Alex Plate
b12fd5100f Refactoring IdeaVim to use editor actions instead of registering shortcuts in the editor 2022-08-15 18:42:32 +03:00
Alex Plate
92f622430d Revert "Add a hidden gem"
This reverts commit 362b9a5c3a.
2022-08-15 17:22:31 +03:00
Alex Plate
ef518f5b23 Revert "Rename hidden gem to neovim"
This reverts commit 4fd1a25557.
2022-08-15 17:22:31 +03:00
Alex Plate
7acb17ebdb Small update 2022-08-15 17:22:31 +03:00
Alex Plate
479a7dbbaf Update formatting 2022-08-14 00:17:52 +00:00
Alex Plate
4fd1a25557 Rename hidden gem to neovim 2022-08-12 12:14:17 +03:00
Alex Plate
f32d42e625 Nice knowledge popup 2022-08-12 12:10:57 +03:00
Alex Plate
362b9a5c3a Add a hidden gem 2022-08-12 10:49:55 +03:00
Alex Plate
e42b4d0ea3 Fix regex for changelog plugin 2022-08-12 10:14:31 +03:00
Alex Plate
43767b8500 Print error 2022-08-12 09:55:29 +03:00
Alex Plate
d05098c870 Update changelog 2022-08-12 06:47:15 +00:00
Alex Plate
505f485568 Update release version 2022-08-12 09:45:30 +03:00
Alex Plate
86f512fb91 Update for slack notification 2022-08-12 09:45:08 +03:00
Alex Plate
12903066b9 Workaround for VIM-2487 2022-08-12 09:45:07 +03:00
Alex Plate
118d0433cb Fix(VIM-2728): Give access to global variables 2022-08-12 09:45:07 +03:00
filipp
eb781c3679 An attempt to avoid "No tests found" emails 2022-08-11 03:50:07 +03:00
filipp
3c6bffba03 Fix(VIM-749) 2022-08-11 03:27:19 +03:00
Alex Plate
89623b04d6 Update changelog 2022-08-09 10:25:14 +03:00
Alex Plate
444a96132c Comment out test 2022-08-09 10:10:17 +03:00
Alex Plate
c008553127 Update TC constants 2022-08-09 09:51:25 +03:00
Alex Plate
162d7b021f Update reference to changes 2022-08-09 09:50:02 +03:00
Alex Plate
c82364c1dd Update changelog 2022-08-09 09:49:29 +03:00
Alex Plate
977402c6b0 Update changelog 2022-08-09 09:49:28 +03:00
Alex Plate
b14e59ab5b Disable removing selection after undo 2022-08-09 09:49:28 +03:00
Alex Plate
47dcefcfbf Update formatting 2022-08-07 00:20:00 +00:00
Alex Plate
2b299cb422 Cut white edges on the gif 2022-08-05 08:47:50 +03:00
Alex Plate
d0ccbb4620 Use correct git for dark mode 2022-08-05 08:44:21 +03:00
Alex Plate
187b207271 Use gif instead of mp4 2022-08-05 08:37:05 +03:00
Alex Plate
a3e22c844c Different gif in readme 2022-08-05 08:34:59 +03:00
Alex Plate
f8384b2732 Create dark screenshot for contributing 2022-08-05 08:16:38 +03:00
Alex Plate
2dae43258c Skip unsupported arguments in command
VIM-2720
2022-08-04 20:08:13 +03:00
Alex Plate
48033ecb85 Update changelog 2022-08-04 19:45:52 +03:00
Alex Plate
ad8df027ac Skip neovim check in extensions and multicaret tests 2022-08-04 19:44:58 +03:00
Alex Plate
91f580771d Fix test with closing buffer 2022-08-04 19:18:26 +03:00
Matt Ellis
9c6f0981f5 Consolidate doTest methods 2022-08-04 19:17:59 +03:00
Alex Plate
2212569688 Update changelog 2022-08-02 15:07:49 +00:00
Alex Plate
6711f1dbab Specify update thread for actions 2022-08-01 13:09:23 +03:00
Alex Plate
0b7a883efb Fix(VIM-2723): Move focus to editor after :q 2022-08-01 09:29:44 +03:00
Alex Plate
8ae84c62c0 Update changelog 2022-07-26 09:39:51 +03:00
Alex Plate
0d168c8115 Update formatting 2022-07-24 00:20:23 +00:00
c7b51b7fa5 Implement partial code completion support in macros
Works ok with insertions (Enter, Ctrl+Enter) but not with replacements (Tab)
2022-07-22 10:02:23 +03:00
aleksei.plate
86bf723791 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2022-07-20 11:36:12 +00:00
Alex Plate
71f2e9de4a Update changelog 2022-07-20 08:20:43 +00:00
Alex Plate
33d3f270a3 Fix(VIM-2710): Show options value on set opt 2022-07-20 09:56:23 +03:00
filipp
da94edd386 Fix(VIM-2703) 2022-07-20 02:51:45 +06:00
Alex Plate
90dfaefd11 Update formatting 2022-07-17 00:17:41 +00:00
Alex Plate
8bc616cc55 New vim behaviour: ci( searches for brackets
Change in vim:
b9115da4be
https://github.com/vim/vim/pull/8670

VIM-2699
2022-07-14 12:08:26 +03:00
aleksei.plate
a9e79d62c5 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2022-07-13 11:55:31 +00:00
Alex Plate
1998221a0b Remove useless @NotNull annotations 2022-07-13 10:26:57 +03:00
Alex Plate
a9b1625749 Update deprecated action listeners 2022-07-13 10:26:16 +03:00
Alex Plate
b411836570 Hide macos notification during UI testing 2022-07-13 09:23:35 +03:00
Alex Plate
df7e0221a8 Update qodana baseline 2022-07-11 14:10:08 +03:00
aleksei.plate
8ff8f2b685 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2022-07-11 10:00:37 +00:00
aleksei.plate
65dea7e3f7 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2022-07-11 09:45:28 +00:00
aleksei.plate
1942f86633 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: build features of 'Publish EAP Build' build configuration were updated 2022-07-11 08:29:56 +00:00
Alex Plate
ee4ce5033a Fix tests 2022-07-11 11:09:43 +03:00
Alex Plate
040fe806c8 Update release versions of IJ 2022-07-11 09:28:39 +03:00
Alex Plate
97f5c9225e Cleanup the sources 2022-07-08 11:24:10 +03:00
Alex Plate
09b86c15f9 Fix missing space 2022-07-08 10:59:02 +03:00
Alex Plate
8f34285d8c Fix issues with notations 2022-07-08 10:55:21 +03:00
Alex Plate
d3c3b71e3e Remove unnecessary libraries from the distribution 2022-07-08 10:29:51 +03:00
Alex Plate
aa6f49c9b1 Reformat code 2022-07-08 10:00:00 +03:00
Alex Plate
c011628420 Reformat code 2022-07-08 09:14:43 +03:00
Alex Plate
1c9fa9d662 Skip one test in multicaret 2022-07-07 16:32:14 +03:00
Alex Plate
7b9bc64364 Fix multicaret insert 2022-07-07 14:54:41 +03:00
Alex Plate
729062bfdd Turn on ideadelaymacro by default 2022-07-07 14:36:04 +03:00
Alex Plate
bc6c726a45 Fix macro with count execution 2022-07-07 14:35:49 +03:00
Alex Plate
dfc3df713e Update changelog 2022-07-07 12:22:46 +03:00
Alex Plate
42eca1d5f2 Apply TC patches 2022-07-07 11:20:10 +03:00
Alex Plate
66245e2730 Change secret for the merge PR action 2022-07-07 10:42:27 +03:00
aleksei.plate
d44b82c1d1 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Plugin verification' build configuration settings were updated 2022-07-07 07:12:38 +00:00
aleksei.plate
5440e48fa3 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Tests for IntelliJ 2021.3' build configuration was moved to 'IntelliJ IDEA plugins / IdeaVim / Old IdeaVim tests' project 2022-07-07 07:11:51 +00:00
aleksei.plate
1c513cf8aa TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'Tests for IntelliJ 2021.3' build configuration were updated 2022-07-07 07:11:26 +00:00
aleksei.plate
a17c4b8d43 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'Tests for IntelliJ 2021.3' build configuration were updated 2022-07-07 07:11:07 +00:00
aleksei.plate
15eb4ac278 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'https://github.com/JetBrains/ideavim (branch 213-221)' VCS root was created 2022-07-07 07:06:47 +00:00
Alex Plate
0d9b81eab3 Update minimal version of IJ 2022-07-07 10:02:14 +03:00
Alex Plate
f02e1a20c7 Create test update job 2022-07-06 21:23:48 +03:00
Alex Plate
a11991dad7 Create test token 2022-07-06 21:21:51 +03:00
Alex Plate
1238828bfd Update token name 2022-07-06 21:18:27 +03:00
Alex Plate
ba409cb24c Add some logging to update after PR job 2022-07-06 21:06:00 +03:00
Alex Plate
d597670275 Update changelog after merging PR 2022-07-06 17:58:16 +00:00
Alex Pláte
d8540e95f8 Create gradle.properties 2022-07-06 20:56:49 +03:00
Alex Plate
d35ebf00dd Add qodana baseline to the project (I guess) 2022-07-06 20:43:40 +03:00
Alex Plate
2b32cb26b1 Set since version in config 2022-07-06 20:39:30 +03:00
aleksei.plate
ca95fcb658 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Tests with nvim' build configuration were updated 2022-07-06 17:32:40 +00:00
aleksei.plate
cc18bbd168 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Tests with nvim' build configuration settings were updated 2022-07-06 17:09:16 +00:00
Alex Plate
8c8ea800cb Update neovim tests 2022-07-06 20:06:02 +03:00
Alex Plate
0746dcc686 Fix some neovim tests 2022-07-06 19:41:05 +03:00
Alex Plate
930650be9d Add lippfi to contributors list 2022-07-06 07:36:26 +00:00
Alex Plate
4e3a9ffa40 Add unchecked email 2022-07-06 10:34:31 +03:00
filipp
3bf68a2bb8 Update formatting 2022-07-06 13:11:11 +06:00
Alex Plate
a80f6feab0 Update changelog 2022-07-06 09:30:25 +03:00
Alex Plate
3cf8ae52ed Add link to the docs 2022-07-06 09:30:25 +03:00
Matt Ellis
62632a4514 Improve handling of fractional width fonts 2022-07-06 09:29:36 +03:00
Alex Plate
249bd3778a Add a note about refactoring 2022-07-06 09:14:52 +03:00
filipp
ab9e5d7a4a Fix selection issue with oldundo set 2022-07-06 12:12:55 +06:00
filipp
083b7dc952 Fix(VIM-2698) Undo causes confirmation dialog to reappear forever 2022-07-06 11:35:29 +06:00
Alex Plate
1791692d92 Use java boolean 2022-07-05 12:26:16 +03:00
Alex Plate
ba23c9ab5e Rename variable service 2022-07-05 11:27:53 +03:00
Alex Plate
f96ab37bcb Rename Scope 2022-07-05 11:04:08 +03:00
Alex Plate
0da34bbb34 Compatibility of toggleOption 2022-07-05 10:56:45 +03:00
Alex Plate
51e7c745ea Move number option to a different package 2022-07-05 10:26:14 +03:00
aleksei.plate
8347251572 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-05 07:13:58 +00:00
aleksei.plate
ce8512f4e0 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-05 07:13:22 +00:00
aleksei.plate
a724a19d00 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-05 07:13:00 +00:00
Alex Plate
7eae7a98e8 Command state compatibility 2022-07-05 10:05:02 +03:00
Alex Plate
fe9566eebd Convert helper to kt 2022-07-04 10:59:24 +03:00
Alex Plate
b69756730f Rename .java to .kt 2022-07-04 10:59:23 +03:00
Alex Plate
6cd1a60b53 More compatibility 2022-07-04 10:33:31 +03:00
Alex Plate
9d935e47b5 Move compatibility 2022-07-04 09:49:50 +03:00
Alex Plate
a7d5372d06 Move classes to a different package 2022-07-04 09:49:50 +03:00
Alex Plate
a575942c81 Compatibility 2022-07-04 09:49:50 +03:00
aleksei.plate
3cf6c53a8e TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:40:47 +00:00
aleksei.plate
91d86680de TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:22:54 +00:00
aleksei.plate
d1d082fb99 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:15:19 +00:00
aleksei.plate
2c634d1bf0 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:06:43 +00:00
aleksei.plate
02a6fe4dc9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:03:46 +00:00
aleksei.plate
223d681526 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:03:33 +00:00
aleksei.plate
f42ef1c2fc TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-07-04 06:03:27 +00:00
Alex Plate
f4817b2111 Add compatibility verifier to the repo 2022-07-04 08:59:31 +03:00
Alex Plate
6f5def0abf Update formatting 2022-07-03 00:19:25 +00:00
filipp
f0fcd7f133 Better offset for multiple carets with surround 2022-07-02 18:59:21 +06:00
filipp
6115adb72e Add registers to carets 2022-07-02 18:51:10 +06:00
filipp
bfd0b5fd91 Merge remote-tracking branch 'origin/master' 2022-07-02 11:21:33 +06:00
Alex Plate
6c0a52155b Add compatibility method 2022-07-01 16:36:30 +03:00
Alex Plate
c7ebce39bf Make options compatible 2022-07-01 16:10:13 +03:00
Alex Plate
a0dc7a792f Add more compatibility methods 2022-07-01 15:55:07 +03:00
Alex Plate
fdb09a8f1f Use vim-engine kotlin settings 2022-07-01 12:18:53 +03:00
Alex Plate
4ac2aa2339 Apply kotlin options to all projects 2022-07-01 11:29:15 +03:00
Alex Plate
ebbc20692a Add JVM compatibility option to the compiler 2022-07-01 10:58:32 +03:00
Alex Plate
5c82d112c9 More compatibility methods 2022-07-01 10:05:13 +03:00
Alex Plate
40fd50d7f1 Add midding import 2022-07-01 09:27:07 +03:00
Alex Plate
f7b948fee2 Add CommandState compatibility layer and rename our main CommandState to VimStateMachine 2022-07-01 09:04:27 +03:00
Alex Plate
6cdcf133bb Use snapshot version of gradle plugin 2022-06-30 09:14:29 +03:00
filipp
f3025757b6 Merge remote-tracking branch 'origin/master' 2022-06-30 11:02:41 +06:00
nikita.koshcheev
a49811a3f9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2022-06-29 15:16:26 +00:00
Alex Plate
2ac4b265d1 Add compatibility method 2022-06-29 16:30:26 +03:00
Alex Plate
46e994b563 Fix incorrect inheritance 2022-06-29 11:42:21 +03:00
Alex Plate
81482bd298 Add more compatibility changes 2022-06-29 11:25:11 +03:00
Alex Plate
f1a239c085 Make compatibility function public 2022-06-29 10:42:04 +03:00
Alex Plate
a48e38de7b Make function static 2022-06-29 10:25:41 +03:00
Alex Plate
0aaacee117 Add more classes for compatibility 2022-06-29 09:54:50 +03:00
Alex Plate
b8373af69f Move MappingMode to a different package 2022-06-29 09:54:49 +03:00
Alex Plate
e99b2ee73d Add new method for compatibility 2022-06-29 09:54:49 +03:00
aleksei.plate
705022331a TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: general settings of 'IdeaVim compatibility with external plugins' build configuration were updated 2022-06-28 08:48:58 +00:00
aleksei.plate
bf62d444bf TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: general settings of 'IdeaVim compatibility with external plugin' build configuration were updated 2022-06-28 08:47:35 +00:00
aleksei.plate
5dcff5657b TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: general settings of 'IdeaVim compativility with external plugin' build configuration were updated 2022-06-28 08:47:11 +00:00
Alex Plate
7e79d5a960 Add method for compatibility 2022-06-28 11:13:54 +03:00
Alex Plate
c1b480976d Include source files into distribution 2022-06-28 11:13:54 +03:00
Alex Plate
ddabbe6891 Use vim-engine as API instead of implementation 2022-06-28 11:13:54 +03:00
Alex Plate
ffa3052b50 Update build version of IJ 2022-06-28 11:13:54 +03:00
Alex Plate
654ea88851 Add collecting of sources to the resulting jar 2022-06-28 11:13:54 +03:00
filipp
4dc7982baa (EA-480768) Better exception message 2022-06-27 16:19:45 +06:00
aleksei.plate
ae2fc1cd85 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Build' build configuration were updated 2022-06-27 06:17:38 +00:00
aleksei.plate
78bc8666e6 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build features of 'Build' build configuration were updated 2022-06-27 06:16:33 +00:00
aleksei.plate
9c2de2cfc7 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build configuration was created from URL 2022-06-27 06:16:18 +00:00
aleksei.plate
71e81465f3 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'IdeaVimCompatibility' VCS root was created 2022-06-27 06:15:35 +00:00
Alex Plate
885031e086 Fix test class without test methods 2022-06-27 07:59:22 +03:00
Alex Plate
d77c5bb5cf Update formatting 2022-06-26 00:20:17 +00:00
Alex Plate
781bce0000 Update changelog 2022-06-24 05:27:52 +00:00
Alex Plate
a3ca1b965b Fix(VIM-2691): Save file on :w 2022-06-24 08:26:02 +03:00
Alex Plate
dd20b480a7 Update changelog 2022-06-24 08:26:02 +03:00
filipp
38292e97af Fix context for function argument evaluation 2022-06-24 03:13:07 +06:00
filipp
46ea752164 Add tolower(), toupper(), join() 2022-06-24 02:58:41 +06:00
Alex Plate
194b744361 Update changelog 2022-06-23 15:29:40 +00:00
b50197f7ce Fix(VIM-2227): Wrong behavior when deleting / changing surround with invalid character 2022-06-23 18:19:28 +03:00
Alex Plate
c00703d1d0 Manually define excluded from qodana files 2022-06-23 13:50:35 +03:00
Alex Plate
6e12377116 Remove generated code from qodana 2022-06-23 13:08:53 +03:00
Alex Plate
b0c4391ad8 Remove some files from qodana inspection 2022-06-22 20:30:14 +03:00
Alex Plate
f43ac2538a Enable dependency checker in qodana 2022-06-22 18:36:08 +03:00
Alex Plate
9eaf8b5d2d Move some other methods to vim-engine 2022-06-22 18:36:08 +03:00
filipp
e365d0b07c Unsubscribe document listener in UndoRedoHelper 2022-06-20 03:26:40 +06:00
filipp
69c273c4a5 Track more actions 2022-06-19 01:07:18 +06:00
filipp
f7950e7adb Fix(VIM-2683) Pasting from system clipboard multiple lines freezes the main thread 2022-06-18 07:31:44 +06:00
filipp
7c1ae9812e Update formatting 2022-06-18 06:26:11 +06:00
filipp
5c794ac40e Fix(VIM-749) Support for :let command 2022-06-18 06:21:26 +06:00
filipp
9dbe3c3363 Fix(VIM-308) Undo requires one more step if the cursor is not at the position where it was after undo 2022-06-16 18:50:42 +06:00
filipp
8a98f46235 Move mapDepth to MappingState 2022-06-15 16:22:31 +06:00
filipp
9ed8db4d4a Add oldundo option 2022-06-15 16:06:47 +06:00
Alex Plate
5b94276836 Move more methods to vim-engine 2022-06-15 12:58:15 +03:00
filipp
f1e427e2ff Fix command history 2022-06-14 22:10:04 +06:00
filipp
a112cfe35f Add count to undo/redo 2022-06-14 18:47:16 +06:00
filipp
412b60d6b4 Fix selection after undo 2022-06-14 18:36:14 +06:00
Alex Plate
11d9ef7507 Partially move change group to vim-engine 2022-06-14 10:31:23 +03:00
Alex Plate
ca143272f3 Update changelog 2022-06-13 09:54:32 +00:00
Alex Plate
072449825c Fix(VIM-2675): Fix numbering register in visual mode 2022-06-13 12:53:05 +03:00
Alex Plate
38ed9c206a Fix compilation 2022-06-13 12:53:05 +03:00
Alex Plate
8235a649a1 Move VisualMotionGroup to vim-engine 2022-06-13 12:53:05 +03:00
Alex Plate
09efdd076e Remove unused method 2022-06-13 12:53:05 +03:00
Alex Plate
da9b6ea762 Update formatting 2022-06-12 00:17:39 +00:00
Alex Plate
437450a93b Fix long running test 2022-06-10 16:01:13 +03:00
Alex Plate
50fff8871e Update changelog 2022-06-10 12:28:35 +00:00
Alex Plate
350e9cfca2 Fix(VIM-2595): Support plugins in macro execution 2022-06-10 15:27:03 +03:00
Alex Plate
5639edf173 Refactor mapping stack 2022-06-10 15:27:03 +03:00
Alex Plate
f72313df9c Fix(VIM-2671): Fix using plugins from mappings 2022-06-10 15:27:03 +03:00
filipp
f52eb5e124 Update formatting 2022-06-10 00:07:27 +06:00
filipp
5da9c5e1cd Move variableService logic to base class 2022-06-09 23:54:43 +06:00
filipp
53fdd891fb Move optionService logic to base class 2022-06-09 02:17:40 +06:00
filipp
94820d7a83 Update formatting 2022-06-08 20:04:50 +06:00
Alex Plate
fe66d06ce2 Move VimMark to vim-injector 2022-06-08 12:06:45 +03:00
Alex Plate
b6e917a2d7 Get rid of DialogDataContext
Actually, it was removed for some time already.
Caused this exception: https://web.ea.pages.jetbrains.team/#/issue/533401
2022-06-07 16:40:38 +03:00
Alex Plate
a6a39d249b Move key group to vim-engine 2022-06-07 15:53:31 +03:00
Alex Plate
518784c371 Use ShortcutOwnerInfo in savedShortcuts 2022-06-07 15:53:30 +03:00
filipp
51c50cb902 Update formatting 2022-06-07 04:00:06 +06:00
filipp
6355d7765e Add documentation to OptionService.kt and fix some exception messages 2022-06-07 03:59:23 +06:00
filipp
c083631590 Undo changing ideaVersion 2022-06-07 01:13:07 +06:00
filipp
f62575c870 Fix bugs with appending/prepending/removing value from string option 2022-06-07 01:09:19 +06:00
filipp
01e367cadf Delete deprecated OptionsManager.kt 2022-06-07 01:08:10 +06:00
Alex Plate
e248bb5565 Update formatting 2022-06-05 00:23:42 +00:00
filipp
1744ec74c7 Add some info to the Map command 2022-06-05 00:12:09 +06:00
filipp
905f8003da Fix repeating the @@ command 2022-06-04 01:02:01 +06:00
filipp
3b3a036806 Remove StringHelper.kt & CommonStringHelper.kt 2022-06-03 22:22:49 +06:00
Alex Plate
ccf48d1e53 Add some more notes to injector about it's status 2022-06-01 13:59:51 +03:00
Alex Plate
d7a74fdf5e Mark the states of the injector 2022-05-31 10:44:00 +03:00
Alex Plate
462c1bc75e Fix resetting the modes to empty state 2022-05-31 10:20:31 +03:00
Alex Plate
96b05dcc94 Mute some neovim tests 2022-05-31 09:54:34 +03:00
Alex Plate
ceafe9d4e7 Rename base for property tests 2022-05-31 09:31:00 +03:00
Alex Plate
fc9b09cf72 Update ij plugin to 1.6.0 2022-05-31 09:29:40 +03:00
filipp
11c80b2ea9 Fix cast :action mappings to <Action> 2022-05-30 16:22:40 +06:00
filipp
eb536766db Fix exception during parsing of empty stings 2022-05-30 15:34:17 +06:00
Alex Plate
f3b6687d79 Update kotlin version 2022-05-30 11:22:24 +03:00
Alex Plate
adf483a748 Enable property based and long running tests 2022-05-30 09:52:12 +03:00
Alex Plate
7332cd1ed1 Start implementing Troubleshooter 2022-05-30 09:52:11 +03:00
Alex Plate
7726f4347b Unmap removed mappings after using ReloadVimRc action 2022-05-30 09:52:11 +03:00
Alex Plate
ee092d988b Update formatting 2022-05-29 00:17:16 +00:00
Alex Plate
b3db3bb940 Add a note that :action should not be used in mappings 2022-05-26 11:05:00 +03:00
Alex Plate
edcb17a436 Update changes 2022-05-26 11:05:00 +03:00
filipp
f3b4933ef2 Fix number options 2022-05-25 19:33:40 +06:00
Alex Plate
c6fdf9cdf4 [VIM-2643]: Implement a redo-register feature 2022-05-25 11:30:55 +03:00
Alex Plate
2244d0f776 Downgrade intellij-plugin due to https://github.com/JetBrains/gradle-intellij-plugin/issues/998 2022-05-25 11:30:54 +03:00
Matt Ellis
d7c4e4a8dd Add support for "-Command" flag for powershell
Fixes VIM-2622
2022-05-25 11:30:36 +03:00
Matt Ellis
b7c54d02cb Fix minor scroll bug
If caret is less than 'sidescrolloff' columns from the left of the screen, moving down one line will animate. Greater than 'sidescrolloff' does not animate. This is because the scroll model tries to scroll to a negative horizontal offset, to try and put the caret in the middle of the screen. This isn't possible, but the scroll model sees a large enough distance to trigger an animation.
2022-05-25 11:30:36 +03:00
Alex Plate
620eca3a0d Correctly fix the test 2022-05-24 15:16:45 +03:00
Alex Plate
aa3b2e988f Update TC constant 2022-05-24 15:14:36 +03:00
Alex Plate
753f589ea5 Mark a test as VimBehDiffers 2022-05-24 14:34:34 +03:00
Alex Plate
831e4e8c42 Fix services initialization in VimInjectorBase 2022-05-24 13:49:01 +03:00
Alex Plate
329722f338 Turn off experimental api 2022-05-24 13:05:12 +03:00
filipp
2ff429cc76 Update changelog 2022-05-23 22:54:51 +06:00
filipp
47d4aee986 Support return without expression 2022-05-23 22:47:47 +06:00
filipp
938325b93e Update formatting 2022-05-23 21:02:39 +06:00
filipp
12d0a2ffb7 Update gradle & gradle wrapper 2022-05-23 21:00:52 +06:00
filipp
4ff7e9aefa Move some logic to base classes 2022-05-23 21:00:32 +06:00
filipp
f52792e7f0 Move Regexp from engine 2022-05-23 00:10:57 +06:00
filipp
cbc6662ef7 Update formatting 2022-05-08 21:10:40 +06:00
filipp
26ffc2ad32 Move some classes to vim-engine 2022-05-08 21:09:52 +06:00
filipp
df32e573b0 Move some classes to vim-engine 2022-05-08 15:49:53 +06:00
filipp
19647d96b2 Move some classes to vim-engine 2022-05-08 12:23:14 +06:00
Alex Plate
b1714a2fc1 Update formatting 2022-05-08 00:16:10 +00:00
filipp
83199d5475 Move some classes to vim-engine 2022-05-07 22:45:52 +06:00
Alex Plate
4c0af66dff Update formatting 2022-05-01 00:20:06 +00:00
Alex Plate
ccd7204b21 Update changelog 2022-04-27 10:56:37 +03:00
Alex Plate
b82f1e6602 Move more classes to vim-engine 2022-04-27 10:40:44 +03:00
Alex Plate
4104258219 Move playbackregister to vim-engine 2022-04-26 14:21:10 +03:00
Alex Plate
11054f908b Move some classes from file package to vim-engine 2022-04-26 10:02:23 +03:00
Alex Plate
e0dc6f7214 Update changelog 2022-04-25 11:44:22 +00:00
Alex Plate
735686c415 Update TC constant 2022-04-25 14:42:24 +03:00
Alex Plate
385bcbc383 fix(VIM-2604): Update action execution rules 2022-04-25 14:41:32 +03:00
aleksei.plate
f273620466 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2022-04-25 07:11:28 +00:00
Alex Plate
acb27d5ccc [TC] Update qodana configs 2022-04-25 09:45:49 +03:00
Alex Plate
62c79e1470 Move yank package to vim-engine 2022-04-25 09:45:48 +03:00
Alex Plate
1a99918819 Move some put actions to vim-engine 2022-04-25 09:45:48 +03:00
Alex Plate
7e3a9e0b38 Move window actions to vim-engine 2022-04-25 09:45:48 +03:00
Alex Plate
f51d74f2b8 Use correct name of notifications toolwindow for Track Action Ids 2022-04-25 09:45:24 +03:00
Alex Plate
987cba6072 Change implementation of configurable for lazy loading 2022-04-25 09:45:24 +03:00
Alex Plate
770e6371df Rename .java to .kt 2022-04-25 09:45:24 +03:00
Alex Plate
30e660cf19 Update changelog 2022-04-25 09:45:24 +03:00
Alex Plate
8ccf0b5364 Update changelog 2022-04-25 09:45:23 +03:00
filipp
3ef86186eb Fix parsing strings with \r in the end 2022-04-25 00:30:56 +06:00
filipp
b8b3669b04 Fix antlr4 and antlr4-runtime dependency version conflict 2022-04-24 19:33:21 +06:00
Alex Plate
ac41890759 Update formatting 2022-04-24 00:15:29 +00:00
dependabot[bot]
cf85e0f25e Bump github-api from 1.303 to 1.305
Bumps [github-api](https://github.com/hub4j/github-api) from 1.303 to 1.305.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.303...github-api-1.305)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 10:45:24 +03:00
dependabot[bot]
a4b52be833 Bump antlr4-runtime from 4.9.3 to 4.10.1
Bumps [antlr4-runtime](https://github.com/antlr/antlr4) from 4.9.3 to 4.10.1.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/master/CHANGES.txt)
- [Commits](https://github.com/antlr/antlr4/compare/4.9.3...4.10.1)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4-runtime
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 10:45:13 +03:00
dependabot[bot]
4cb8f27ca5 Bump org.jetbrains.intellij from 1.5.2 to 1.5.3
Bumps org.jetbrains.intellij from 1.5.2 to 1.5.3.

---
updated-dependencies:
- dependency-name: org.jetbrains.intellij
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-21 10:44:59 +03:00
Matt Ellis
9a06ee97c4 Refactor CaretVisualAttributesHelper 2022-04-21 10:36:15 +03:00
Matt Ellis
d7dfc6dc05 Remove pre-212 caret attribute helpers 2022-04-21 10:36:15 +03:00
Alex Pláte
5a6de3afaa Merge pull request #493 from citizenmatt/feature/commentary
Improvements to Commentary extension
2022-04-21 10:28:30 +03:00
Matt Ellis
cd242511a8 Fallback to line comment if block is unavailable
Fixes VIM-2381
2022-04-20 12:37:11 +01:00
Matt Ellis
745ae6caa4 Migrate Commentary tests to VimTestCase 2022-04-20 12:23:17 +01:00
Matt Ellis
acc7d0954d Maintain old mappings for compatibility 2022-04-20 00:16:22 +01:00
Alex Plate
330d64c7cb Move mark package to vim-engine 2022-04-19 18:43:33 +03:00
Alex Plate
673e43dd77 Move scroll package to vim-engine 2022-04-19 10:20:15 +03:00
Alex Plate
c2c5c60899 Move select package to vim-engine 2022-04-19 09:56:38 +03:00
Matt Ellis
7d5176829b Merge branch 'master' into feature/commentary 2022-04-18 17:12:02 +01:00
Matt Ellis
fd0dc0d445 Remove unnecessary setting of sub mode 2022-04-15 13:36:44 +01:00
Matt Ellis
be11317667 Use comment actions instead of low level handlers 2022-04-13 10:53:25 +01:00
Matt Ellis
22fce51640 Fix Exchange tests after operator changes
OperatorAction no longer normalises linewise ranges, but Exchange doesn't need this
2022-04-12 23:47:46 +01:00
Matt Ellis
4223da47d6 Refactor and simplify Commentary objects
Also introduces Visual support for the `g@` operator action
2022-04-12 22:05:48 +01:00
Matt Ellis
64100fea59 Add Commentary command 2022-04-12 16:53:21 +01:00
Matt Ellis
2244c65233 Reposition caret after commenting 2022-04-12 16:26:28 +01:00
Matt Ellis
e08bffd7ba Add gcu mapping 2022-04-12 15:33:24 +01:00
Matt Ellis
0d5aa52af2 Add gc text object
Fixes VIM-2589
2022-04-12 15:33:23 +01:00
filipp
e617fc4c34 Move some classes from vimscript package to engine 2022-04-10 15:57:46 +06:00
Alex Plate
c34a7f123d Update formatting 2022-04-10 00:15:21 +00:00
Matt Ellis
cc029fc98e Implement gcc as gc_ motion
gcc now respects count

Fixes VIM-1687
2022-04-08 16:50:10 +01:00
Matt Ellis
feae15c48c Use same mapping as Commentary plugin 2022-04-08 16:47:54 +01:00
Matt Ellis
07485727c4 Use Kotlin helper functions 2022-04-08 16:46:08 +01:00
Matt Ellis
8b0ad7680b Rearrange code 2022-04-08 16:44:04 +01:00
Matt Ellis
43d70cd467 Convert to Kotlin 2022-04-08 16:35:03 +01:00
Matt Ellis
d73b605ef0 Rename Java to Kotlin 2022-04-08 16:32:59 +01:00
aleksei.plate
5afd4df69a TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Tests with nvim' build configuration settings were updated 2022-04-08 07:08:06 +00:00
aleksei.plate
323c611f87 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Qodana checks' build configuration settings were updated 2022-04-08 07:07:47 +00:00
aleksei.plate
0dd0a4976b TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Plugin verification' build configuration settings were updated 2022-04-08 06:58:58 +00:00
Alex Plate
48820d4dff Fix compilation 2022-04-08 09:54:52 +03:00
Alex Plate
2fbab395f1 Fix incorrect code 2022-04-08 09:54:43 +03:00
filipp
a9fd32f64e Move some actions from change.insert 2022-04-07 23:49:18 +06:00
filipp
da7a2226d4 Move actions from change.shift 2022-04-07 23:49:18 +06:00
filipp
44b37339dc Moved actions from change.delete 2022-04-07 23:49:18 +06:00
Alex Plate
db1ec29470 Update plugin verifier version 2022-04-07 15:44:23 +03:00
filipp
713c3f0a3c Moved some actions from change.change package 2022-04-07 17:50:10 +06:00
Alex Plate
c6c2bc5e74 Update changelog 2022-04-07 12:03:25 +03:00
Alex Plate
c8352158b8 Add a note about the refactoring 2022-04-07 12:03:24 +03:00
dependabot[bot]
8927c0acfa Bump github-api from 1.301 to 1.303
Bumps [github-api](https://github.com/hub4j/github-api) from 1.301 to 1.303.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.301...github-api-1.303)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 12:03:18 +03:00
dependabot[bot]
02dfac8a34 Bump markdown from 0.2.4 to 0.3.1
Bumps [markdown](https://github.com/JetBrains/markdown) from 0.2.4 to 0.3.1.
- [Release notes](https://github.com/JetBrains/markdown/releases)
- [Commits](https://github.com/JetBrains/markdown/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains:markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 11:57:50 +03:00
Martin Yzeiri
8ab3664992 Matchit: Add CMake Patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri
03e6101747 Matchit: Add GNU Make Patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri
9f47995c10 Matchit: Add C patterns 2022-04-07 11:55:31 +03:00
Martin Yzeiri
d58f36ea1a Matchit: Enhance pattern creation
The new LanguagePatterns class lets us easily configure the patterns for
a language in a similar way to the original plugin. Most language
features can be configured by passing strings to the alternate
constructor. And the overloaded + operator makes combining patterns easy.

findMatchingPair() was refactored to work with the new class.

In addition, the concept of prefixes was removed. The cursor should jump
if it's anywhere inside or before an extended pair (excluding the
default pairs). Instead of appending a prefix to each regex, we simply
check in findMatchingPair() what the closest pair to the cursor is. The
original plugin behaves the same way.

We prefer matches containing the cursor over matches after the cursor.
If the cursor in inside multiple patterns, we pick the smaller one. And
a default pair after the cursor is preferred over any extended pairs
after the cursor.
2022-04-07 11:55:31 +03:00
Martin Yzeiri
442970a986 Matchit: Refactor parsePatternAtOffset()
The ending offset of the initial match isn't enough information for some
language features. For example, if the cursor is on "i" in the "else if"
of a Makefile, the previous implementation would jump to the "else" on a
reverse jump instead of treating "else if" as a single structure.

parsePatternAtOffset() needs to return both the match start and end for
us to correctly handle such a distinction.
2022-04-07 11:55:31 +03:00
Martin Yzeiri
fcc6c8a3c5 Matchit: Simplify findClosingPair() and findOpeningPair()
findClosingPair() always moves forward and findOpeningPair() always
moves backwards. That fact lets us simplify both implementations.

Using a stack of Pairs to track the match starts and ends is unnecessary 
since we know ahead of time whether the jump needs to go to the start or
end of the target pair.

findOpeningPair() can be further simplified since it doesn't need to
check the isInOpPending flag -- the distinction between operator pending
mode and regular jumps only matters when moving forward in the buffer.
2022-04-07 11:55:31 +03:00
Martin Yzeiri
1dbd4b4391 Matchit: Use setOf for sets 2022-04-07 11:55:31 +03:00
dependabot[bot]
1943c72c1c Bump org.eclipse.jgit from 6.0.0.202111291000-r to 6.1.0.202203080745-r
Bumps org.eclipse.jgit from 6.0.0.202111291000-r to 6.1.0.202203080745-r.

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 11:39:05 +03:00
dependabot[bot]
7816da3f2d Bump org.jetbrains.changelog from 1.3.0 to 1.3.1
Bumps org.jetbrains.changelog from 1.3.0 to 1.3.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-07 11:38:33 +03:00
Alex Plate
b25d7e358d Update gradle plugin 2022-04-05 12:36:31 +03:00
filipp
04b62e6392 Update changelog 2022-04-05 14:20:05 +06:00
Alex Plate
4ecfb796d4 Move some classes of scroll package to vim-engine 2022-04-04 23:53:14 +03:00
Alex Plate
de9fa81da3 Move objects to vim-engine 2022-04-04 23:53:14 +03:00
Alex Plate
be484d381c Update changelog 2022-04-04 19:50:19 +00:00
Alex Plate
351e3b15ea Move leftright package to vim-engine 2022-04-04 22:48:41 +03:00
Alex Plate
2b9b48ac2f Split PutGroup into base class 2022-04-03 23:48:21 +03:00
Alex Plate
7c4ac5f561 Move toggle recording to vim-engine 2022-04-03 23:39:41 +03:00
Alex Plate
def09b0be8 Update formatting 2022-04-03 00:15:00 +00:00
Alex Plate
2415b167fb Add Simon Rainer to contributors list 2022-04-02 07:54:35 +00:00
Simon Rainer
dfc7aef07d Fix(VIM-2553): Substitute consecutive matches
We need to set newend after the content of match is final, otherwise we
can end up in an endless loop. This allows us to remove the
startoff != latestOff check that previously prevented this endless
loop and caused this bug.
2022-04-02 13:52:58 +06:00
Alex Plate
276ad276ec Move few more classes to vim-engine 2022-03-30 18:44:38 +03:00
Alex Plate
83da2d304e Move some actions to vim-engine 2022-03-30 18:36:32 +03:00
Alex Plate
6ddc40d080 Move folder actions to vim-engine 2022-03-30 13:52:27 +03:00
Alex Plate
42fb5487e5 Move gn package to vim-engine 2022-03-30 13:48:06 +03:00
Alex Plate
1ce35ac233 Move updown package to vim-engine 2022-03-30 13:20:40 +03:00
Alex Plate
2734202e12 Move visual package to vim-engine 2022-03-29 19:10:19 +03:00
Alex Plate
6a31fd2732 Move text package to vim-engine 2022-03-29 17:54:17 +03:00
Alex Plate
5d84aa6939 Move some actions to engine 2022-03-29 17:43:43 +03:00
Alex Plate
7173b7960d Move MotionSentenceEndAction to vim-engine 2022-03-29 16:17:14 +03:00
Alex Plate
bb1c30d6c8 Move paragraph action to vim-engine 2022-03-29 15:01:11 +03:00
Alex Plate
d70abf6e27 Move an action to a different module 2022-03-29 14:48:43 +03:00
Alex Plate
8931fdf82a Fix incorrect tests 2022-03-29 12:45:17 +03:00
Alex Plate
25ba72e46b Reformat code 2022-03-29 12:25:37 +03:00
Alex Plate
ebd71d41dc Update TC constant 2022-03-29 12:23:08 +03:00
Alex Plate
4b49bb4737 Fix ]] and ][ commands
Discussion: 486
2022-03-29 12:12:48 +03:00
Alex Plate
eeac47e522 Fix neovim tests 2022-03-29 12:12:34 +03:00
Alex Plate
335267c0af Update gradle wrapper 2022-03-29 12:12:19 +03:00
Alex Plate
c4254dc6dd Refactor history group 2022-03-29 11:08:21 +03:00
Alex Plate
12cb359967 Update changelog 2022-03-28 15:07:36 +00:00
Alex Plate
d73cb274b4 Refactoring of some methods 2022-03-28 18:06:05 +03:00
Alex Plate
6cb6afe032 Fix(VIM-2590): Fix caret shape in PyCharm 2022-03-28 17:01:49 +03:00
Alex Plate
3686f0eb24 Update some usages 2022-03-28 16:10:58 +03:00
Alex Plate
6cc24fe99e Convert VimActionHandler to using VimEditor 2022-03-28 16:10:58 +03:00
Alex Plate
3784f1957f Some refactoring of change group 2022-03-28 16:09:25 +03:00
Alex Plate
69fd8d68af Small refactoring of change group 2022-03-28 16:09:25 +03:00
Alex Plate
301d72c169 Refactor Direction class 2022-03-28 16:09:24 +03:00
Alex Plate
ca11974b12 Move all methods to the base class 2022-03-28 16:09:24 +03:00
Alex Plate
8917dbf4bb Update formatting 2022-03-27 00:15:32 +00:00
Alex Plate
56afa6d564 Move some methods of marks group to engine 2022-03-26 01:38:03 +03:00
Alex Plate
8ecac1a8cf Start moving mark group to vim-engine 2022-03-26 01:05:05 +03:00
Alex Plate
f742e414e6 Extract vim mark constants into the separate file 2022-03-25 16:44:10 +03:00
Alex Plate
c462af2d10 Small refactoring 2022-03-25 16:22:39 +03:00
Alex Plate
66ede93d95 Close some fields of VimRegisterGroupBase.kt 2022-03-25 16:21:50 +03:00
Alex Plate
c97f5be3fa Small refactoring of VimRegisterGroupBase.kt 2022-03-25 16:11:08 +03:00
Alex Plate
c4d35849fd Move listener to base 2022-03-25 15:30:45 +03:00
Alex Plate
88c191bc61 Move some methods from RegisterGroup to clipboard 2022-03-24 18:07:13 +03:00
Alex Plate
a1e6318bce Move register classes into the separate package 2022-03-24 17:42:03 +03:00
Alex Plate
3606f5ea14 Move a lot of methods to RegisterBase 2022-03-24 17:07:23 +03:00
Alex Plate
38c3b206e2 Move a method to RegisterGroupBase 2022-03-24 16:21:04 +03:00
Alex Plate
e69bf9760d Move a method to RegisterGroupBase 2022-03-24 16:08:21 +03:00
Alex Plate
0b763e23cf Move Register to vim-engine 2022-03-24 14:39:13 +03:00
Alex Plate
311cb0bada Get rid of TransferableData 2022-03-24 14:25:40 +03:00
Alex Plate
a78782b73a Extract VimClipboardManager 2022-03-24 14:17:10 +03:00
Alex Plate
54df803ee1 Move some code from register group to base class 2022-03-23 19:32:03 +03:00
Alex Plate
2819b782c9 Move isCloseKeyStroke to extension method 2022-03-23 19:00:37 +03:00
Alex Plate
38c12660b0 Update usages of vimLogger 2022-03-23 18:40:48 +03:00
Alex Plate
3917a8c5e3 Move KeyHandler to vim-engine 2022-03-22 19:20:17 +03:00
Alex Plate
17c642d5ed Move some classes to vim-engine 2022-03-22 19:17:31 +03:00
Alex Plate
2d84e2d788 Move argument capturing to vim engine 2022-03-22 19:09:09 +03:00
Alex Plate
ca19d2bfd5 Move injector fully to vim-engine 2022-03-22 16:20:28 +03:00
Alex Plate
cd56fb87d0 Rename .java to .kt 2022-03-22 16:20:27 +03:00
Alex Plate
7290edd3ae Move all members of injector to vim-engine 2022-03-22 15:47:34 +03:00
Alex Plate
8d4e9b8514 Move VimChangeGroup to vim-engine 2022-03-22 15:46:20 +03:00
Alex Plate
db87b51784 Move some base classes to vim-engine 2022-03-22 15:44:33 +03:00
Alex Plate
96dc9af1e3 Move NativeActionManager to injectorBasfe 2022-03-22 12:36:32 +03:00
Alex Plate
a453cb2582 Move DigraphSequence to vim-engine 2022-03-21 19:04:33 +03:00
Alex Plate
b0d53330bb Move some classes to vim-engine 2022-03-21 19:04:33 +03:00
Alex Plate
99ebcacf31 Extract injector base for easier refactoring 2022-03-21 19:04:33 +03:00
Alex Plate
3ec90194d7 Move VimStringParser.kt to a different package 2022-03-21 19:04:33 +03:00
Alex Plate
5ce52f7189 Update changelog 2022-03-21 14:36:04 +00:00
Alex Plate
d163837d8d fix(VIM-2587): Use ctrl-6 as ctrl-^ 2022-03-21 17:31:39 +03:00
Alex Plate
81811530de Extract StringParser from IJ API 2022-02-28 12:00:05 +03:00
Alex Plate
7276bc49a7 Move runWrite/Read actions to VimApplication 2022-02-28 12:00:05 +03:00
Alex Plate
90cff7e574 Unbind concrete actions from keyHandler 2022-02-28 12:00:05 +03:00
Alex Plate
c673550901 Initialize injector in VimPlugin 2022-02-28 12:00:05 +03:00
Alex Plate
5b360b6de2 Move ExException to vim-engine 2022-02-28 12:00:05 +03:00
Alex Plate
8e2783962f Move OptionService to vim-engine 2022-02-28 12:00:04 +03:00
Alex Plate
866b319c5b Move VimDataType to vim-engine 2022-02-28 12:00:04 +03:00
Alex Plate
6eb47567e8 Unbind VimDataType from Variable 2022-02-28 12:00:04 +03:00
Alex Plate
d27f87fbb8 Push down addOption 2022-02-28 12:00:03 +03:00
Alex Plate
b2a2299347 Move OptionListener to vim-engine 2022-02-28 11:59:36 +03:00
Alex Plate
905862ab9f Move some classes to vim-engine 2022-02-28 11:58:44 +03:00
Alex Plate
5c307fd22c Rename .java to .kt 2022-02-28 11:58:43 +03:00
Alex Plate
e92b69ad3f Update formatting 2022-02-27 00:16:40 +00:00
Alex Plate
c6a5f9c268 Update changelog 2022-02-24 11:53:36 +03:00
Alex Plate
54f91f2a64 Add Thomas Schouten to contributors list 2022-02-24 07:40:28 +00:00
Thomas Schouten
4b2ed33cdd Implement UserDataHolder for EditorDataContext, so that handlers like AutoHardWrapHandler can store user data in the context delegate. 2022-02-24 10:38:33 +03:00
Alex Plate
5fa48fc7dd Extract KeyMappingLayer and MappingInfoLayer 2022-02-22 18:45:38 +03:00
Alex Plate
e028c269b7 Move VimRegisterGroup to vim-engine 2022-02-22 18:11:05 +03:00
Alex Plate
9798c7aca2 Rename .java to .kt 2022-02-22 17:58:14 +03:00
Alex Plate
b5bca78ef4 Move register group to vim-engine 2022-02-22 17:12:15 +03:00
Alex Plate
1c619cfc74 Rename .java to .kt 2022-02-22 17:12:14 +03:00
Alex Plate
dc5832a44c Convert TextObjectAction to new API 2022-02-22 16:40:57 +03:00
Alex Plate
8fd64afc90 Move CommandFlags to vim-engine 2022-02-22 15:45:04 +03:00
Alex Plate
1484f4e370 Use VimCaret api in MotionActionHandler 2022-02-22 15:44:05 +03:00
Alex Plate
32df1597c4 Move noneOfEnum to engine 2022-02-22 14:44:22 +03:00
Alex Plate
707b750ff1 Unbind VimSelection from IJ 2022-02-22 12:39:11 +03:00
Alex Plate
3388c8517b Remove unused OptionService import 2022-02-22 12:39:11 +03:00
Alex Plate
60a8e0d5f5 Rename Scope to OptionsScope and move it to vim-engine 2022-02-22 12:39:10 +03:00
Alex Plate
5a757a58b5 Move OptionConstants.kt to vim-engine 2022-02-22 12:39:10 +03:00
Alex Plate
2e555b6eaa Move CommandState.kt to injector 2022-02-22 12:39:10 +03:00
Alex Plate
c57277cc15 Move Nodes.kt to vim-engine 2022-02-22 12:39:09 +03:00
Alex Plate
bf035d42af Add some methods to VimEditor 2022-02-22 12:39:09 +03:00
Alex Plate
8cb6f9b65f Move MessageHelper to injector 2022-02-22 12:39:09 +03:00
Alex Plate
fcbc4a0688 Rename some methods in messages 2022-02-22 12:39:09 +03:00
Alex Plate
42bc15c8ea Remove VimPlugin from DigraphSequence 2022-02-22 12:39:09 +03:00
Alex Plate
992231bcad Use services in vim injector 2022-02-22 12:39:09 +03:00
Alex Plate
6d494c99e3 Use vimlogger and injector in MappingState 2022-02-22 12:39:08 +03:00
Alex Plate
a848f2175a Move CurrentCommandState to vim-engine 2022-02-22 12:39:08 +03:00
Alex Plate
4e6a2f951b Move MappingMode to vim-engine 2022-02-22 12:39:08 +03:00
Alex Plate
5a41bbe806 Update usage of toUpperCase 2022-02-22 12:39:08 +03:00
lippfi
066e6619af Fix ActionTracker rule 2022-02-21 18:53:00 +03:00
Alex Plate
f0dbabd20f Update formatting 2022-02-21 11:56:52 +03:00
Alex Plate
35c0e33ec4 Upgrade API to kotlin 1.5 2022-02-21 11:56:26 +03:00
Alex Plate
a5715dac7d Inline capitalize function 2022-02-21 11:56:26 +03:00
Alex Plate
cdb9af5ab6 Convert StringHelper to kotlin 2022-02-21 11:56:25 +03:00
Alex Plate
19c05c23f3 Rename .java to .kt 2022-02-21 11:56:25 +03:00
Alex Plate
12c744c1ba Update formatting 2022-02-20 00:15:01 +00:00
Alex Plate
604a6a5140 Convert DigraphSequence.kt to kotlin 2022-02-18 19:21:50 +03:00
Alex Plate
62aae7b7c4 Rename .java to .kt 2022-02-18 19:21:50 +03:00
Alex Plate
2ea899330c Move DigraphResult.kt to vim-engine 2022-02-18 19:12:29 +03:00
Alex Plate
3574db020f Convert DigraphResult.kt to kotlin 2022-02-18 19:10:19 +03:00
Alex Plate
b2ae2a38ec Rename .java to .kt 2022-02-18 19:10:19 +03:00
Alex Plate
04ebb6077a Move some classes to vim engine 2022-02-18 19:08:07 +03:00
Alex Plate
d5062944d0 Rename vim-engin folder to kotlin and change VimEditor package 2022-02-18 18:21:49 +03:00
Alex Plate
dc181ce0ce Exclude kotlin runtime from IdeaVim builds 2022-02-18 13:09:53 +03:00
Alex Plate
042e3388b0 Move VimEditor to vim-engine 2022-02-17 19:00:35 +03:00
Alex Plate
d4a1ffa9a9 Update package structure 2022-02-17 19:00:35 +03:00
Alex Plate
54927d0af7 Move VimLogger to vim-engine 2022-02-17 19:00:35 +03:00
Alex Plate
d26765e217 Create vim-engine module 2022-02-17 19:00:35 +03:00
Alex Plate
277b4e63c3 Introduce ActionInitiator 2022-02-17 19:00:34 +03:00
Alex Plate
848514405b Remove usages of VimPlugin from keyHandler 2022-02-17 19:00:34 +03:00
Alex Plate
7b8fd0ee55 Extract vim messages into a separate service 2022-02-17 19:00:34 +03:00
Alex Plate
d373ebac58 Use optionService from injector 2022-02-17 19:00:34 +03:00
lippfi
370ccc5254 Hardcode extension names 2022-02-17 14:31:25 +03:00
lippfi
9272fc8cd7 Fix parseKeys 2022-02-17 14:24:57 +03:00
dependabot[bot]
22cfdbae0a Bump mockito-kotlin from 3.2.0 to 4.0.0
Bumps [mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 3.2.0 to 4.0.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/3.2.0...4.0.0)

---
updated-dependencies:
- dependency-name: org.mockito.kotlin:mockito-kotlin
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-17 12:56:36 +03:00
Alex Plate
f49f5e5d25 Roll back working version of changelog plugin 2022-02-17 12:45:09 +03:00
Alex Plate
118c12e7fe Prepare to 1.10.0 release 2022-02-17 11:44:55 +03:00
Alex Plate
02a7eb34ee [TC]: Update version 2022-02-17 11:42:00 +03:00
Alex Plate
739390739e [TC]: Register VCS root 2022-02-17 10:56:57 +03:00
Alex Plate
6b2ead0d4e [TC]: Remove old tests from TC build 2022-02-17 10:52:51 +03:00
Alex Plate
1eaf9e7b17 [TC]: Apply patches 2022-02-17 10:45:12 +03:00
Alex Plate
954e1a9099 Remove IJ api from MotionActionHandler 2022-02-16 18:28:38 +03:00
Alex Plate
5aeff6f914 Remove IJ api from EditorActionHandlerBase 2022-02-16 17:16:01 +03:00
Alex Plate
fb15049fbf Include forEachCaret to VimEditor 2022-02-16 16:39:31 +03:00
Alex Plate
6f3a9c210e Convert Argument to new API 2022-02-16 14:21:17 +03:00
Alex Plate
6fdd6d839e Remove IJ API from CommandBuilder 2022-02-16 14:00:03 +03:00
Alex Plate
ac1101a410 Update wrapInsertedTextWithVisualMarks code 2022-02-16 12:53:40 +03:00
Alex Plate
2fd33e6ec2 Unbind command state from IJ api 2022-02-15 21:46:20 +03:00
Alex Plate
779c69a982 Abstract action executor 2022-02-15 21:46:20 +03:00
Alex Plate
3494286e66 Rename .java to .kt 2022-02-15 21:46:20 +03:00
Alex Plate
139b78d7f4 Add a protection from an accidental usage of equals in VimCaret and VimEditor 2022-02-15 21:46:19 +03:00
Alex Plate
daee2f615c Remove IjVimEditor usages from KeyHandler 2022-02-15 21:46:19 +03:00
Alex Plate
710825ec28 Fix incorrect usage of template presentation 2022-02-15 21:46:19 +03:00
Alex Plate
478539911b Update MappingInfo to use new api 2022-02-15 21:46:19 +03:00
Alex Plate
b21d984cf8 Switch from application service to singleton 2022-02-15 21:46:19 +03:00
Alex Plate
1a92cebf6b Reformat KeyHandler 2022-02-15 21:46:18 +03:00
Alex Plate
fd3f939526 Remove few dependencies to IJ API 2022-02-15 21:46:18 +03:00
Alex Plate
7d28760fa1 Inline several methods into beforHandleKey 2022-02-15 21:46:18 +03:00
Alex Plate
4a0a1c95a9 Remove a few IJ classes from KeyHandler 2022-02-15 21:46:18 +03:00
Alex Plate
9da0c10141 Remove Ref from KeyHandler 2022-02-15 21:46:18 +03:00
Alex Plate
43b9ecdf3c Get rid of Editor in KeyHandler.kt 2022-02-15 21:46:18 +03:00
Alex Plate
987952a2f2 Get rid of DataContext in KeyHandler.kt 2022-02-15 21:46:17 +03:00
Alex Plate
92f6ac57ad Remove usages of flushDelayedKeyEvents
I'm not sure about this commit, but currently it seems like this method does nothing because of fixes in JBR

See 39265c4773de6a8e26e7ac376428687e1332dffe in IJ repository
2022-02-15 21:46:17 +03:00
Alex Plate
b4af51f3cc Add vim implementation of logger 2022-02-15 21:46:17 +03:00
lippfi
4ba6e62ada Fix gv 2022-02-15 13:42:40 +03:00
Alex Plate
58d5924e80 Update changelist 2022-02-14 14:31:59 +03:00
lippfi
8f55551339 Mocked tests for tabmove 2022-02-14 13:11:58 +03:00
Alex Plate
9229497be8 Add David Dadon to contributors list 2022-02-14 08:25:42 +00:00
Alex Pláte
99e77cd8ed Update ideajoin-examples.md 2022-02-14 11:24:12 +03:00
David Dadon
8d8809238c Add shortcut to ideajoin example 2022-02-14 11:24:12 +03:00
Alex Plate
f03d574e86 Update formatting 2022-02-13 00:12:41 +00:00
lippfi
cbb5fbe92e Add vimscript statistic 2022-02-11 14:54:34 +03:00
lippfi
6a376ad62c Add shortcut conflict statistic 2022-02-11 14:53:09 +03:00
lippfi
8e61853459 Add PluginState statistic 2022-02-11 14:51:44 +03:00
lippfi
b17bc1bb3e Add ActionTracker statistic 2022-02-11 14:48:15 +03:00
lippfi
1343c7603b Rename VimStatistic to OptionState 2022-02-11 14:46:18 +03:00
Alex Plate
5b5a4b1347 Fix tests 2022-02-11 11:26:12 +03:00
Alex Plate
62fb3f9c5a Make IdeaVim compatible with 213+ only 2022-02-11 10:58:38 +03:00
Alex Plate
986378db42 Comment out two incompatipable tests 2022-02-11 10:21:58 +03:00
Alex Plate
ce99c26c03 Introduce ExecutionContext - abstract context holder 2022-02-10 18:03:40 +03:00
Alex Plate
3571595838 Use VimEditor in Local scope of options 2022-02-10 17:10:30 +03:00
Alex Plate
c0c450124f Fix test 2022-02-10 17:07:39 +03:00
Alex Plate
aa62022218 Reorder functions 2022-02-10 16:26:36 +03:00
Alex Plate
71c27babfd Update tests 2022-02-10 16:24:13 +03:00
Alex Plate
2ff93270d7 Konvert keyHandler to kotlin 2022-02-10 16:17:59 +03:00
Alex Plate
c07719dd3d Rename KeyHandler.java to KeyHandler.kt 2022-02-10 16:17:41 +03:00
Alex Plate
6b7ef88418 Fix test 2022-02-10 16:07:11 +03:00
Alex Plate
ee9f12180d Extract VimActionExecutor 2022-02-10 13:18:23 +03:00
Alex Plate
8df3bc57c5 Execute action execution to a separate class 2022-02-10 13:15:54 +03:00
Alex Plate
0aabb2971e Support extension handlers with a callback
After the refactoring of AceJump, the current approach is not synchronous anymore.
So, it's needed to explicitly notify IdeaVim that the motion was finished and IdeaVim can continue the execution
2022-02-10 12:55:44 +03:00
Alex Plate
e5740bf496 Add kotlin test as a dependency 2022-02-10 11:03:28 +03:00
Alex Plate
e8f1dff61c Add some comments for handler injector 2022-02-09 11:46:04 +03:00
Alex Plate
267fc62865 Add TC tests for 213 2022-02-09 09:54:07 +03:00
Alex Plate
05a64f51f7 Update changelog 2022-02-08 15:23:00 +00:00
Alex Plate
e5460d7a31 Extract keyHandlerKeeper 2022-02-08 18:20:12 +03:00
Alex Plate
1826a31e2f Update changelog 2022-02-08 14:20:35 +03:00
Alex Plate
2bb44c414f Refactoring for the new api 2022-02-08 14:20:35 +03:00
Alex Plate
ef7442c488 Create carets() method in VimEditor 2022-02-08 14:20:34 +03:00
Alex Plate
775bde62c8 VimEditor update 2022-02-08 14:20:34 +03:00
Alex Plate
c5a504bde3 Top level editor is hidden behind VimEditor 2022-02-08 14:20:34 +03:00
Alex Plate
f7f7e010c4 Update dic 2022-02-08 14:20:34 +03:00
Alex Plate
aa82f7ed64 Add Alex Pláte to contributors list 2022-02-08 11:15:12 +00:00
Alex Pláte
684d192b4b Remove unnecessary code update 2022-02-08 14:13:49 +03:00
Matt Ellis
aed2d1159d fix(VIM-2470): Fix incorrect reset of cursor shape 2022-02-08 14:13:49 +03:00
lippfi
d2500df05e Better digraph support 2022-02-07 13:47:02 +03:00
lippfi
8922303a72 Fix paste 2022-02-07 13:45:11 +03:00
lippfi
cea4de03cd Add tabmove command 2022-02-07 13:44:56 +03:00
Alex Plate
9529c19b9b Update formatting 2022-01-30 00:11:14 +00:00
Alex Plate
b0f5c502d9 Inject VimEditor into keyHandler 2022-01-27 13:17:39 +03:00
Alex Plate
c3fc369bc4 [VIM-1028] Support global state
Not yet documented and enabled
2022-01-27 12:34:28 +03:00
lippfi
a5ef0d5edf Fix tab character for StringHelper.stringToKeys() 2022-01-26 21:37:10 +03:00
Alex Plate
26e9056f17 Fix multicaret test for o 2022-01-26 17:05:49 +03:00
Alex Plate
1553aa774b Add docs to VimPlugin 2022-01-26 17:01:36 +03:00
Alex Plate
2ebdbc5ac4 Do not update carets in notebook command mode 2022-01-26 16:57:46 +03:00
Alex Plate
e3ca172101 Update changes in plugin.xml 2022-01-26 16:57:46 +03:00
lippfi
17d4ec6c29 Fix option listeners 2022-01-26 16:43:28 +03:00
lippfi
bec317615d Better map <expr> context 2022-01-26 16:42:44 +03:00
Alex Plate
d00fd767ff Add some docs regarding plugin initialization 2022-01-26 11:20:03 +03:00
Alex Plate
557652c526 Use executeNonCancelableSection for macro execution 2022-01-25 14:44:21 +03:00
Alex Plate
e138541495 Enable experimental api by default 2022-01-25 11:06:10 +03:00
Alex Plate
f6dfbcad0d Update changelog 2022-01-25 07:54:34 +00:00
Alex Plate
2518be2704 Fix(VIM-2504): Fix esc with using python notebooks 2022-01-25 10:52:39 +03:00
Alex Plate
42ec2b9dce Disable new api for o commands 2022-01-25 10:28:23 +03:00
Alex Plate
9484599bfd Remove duplicating copyright 2022-01-25 09:42:38 +03:00
Alex Plate
5e6d3ddae8 Update changes 2022-01-24 13:00:25 +03:00
Alex Plate
13cce3afcc Update changelog 2022-01-24 13:00:25 +03:00
Alex Plate
9743cb1424 Add Lonre Wang to contributors list 2022-01-24 09:59:09 +00:00
Lonre Wang
dbbcf3860a Update VimVisualTimer.kt 2022-01-24 12:57:37 +03:00
Lonre Wang
ae983be0a8 Update OptionsManager.kt 2022-01-24 12:57:37 +03:00
Lonre Wang
f8156fbbca Update NotificationService.kt 2022-01-24 12:57:37 +03:00
lippfi
1909547543 Make OptionConstants non-internal 2022-01-24 12:53:07 +03:00
lippfi
e47c0c1914 Update changes 2022-01-24 12:32:20 +03:00
lippfi
1a122337fe Replace deprecated option data classes with constants 2022-01-24 02:27:33 +03:00
lippfi
bcf2578da9 Replace hardcoded option names with string constants 2022-01-24 00:52:28 +03:00
lippfi
06cd41ba0e Make VimScriptGlobalEnvironment deprecated 2022-01-23 02:35:53 +03:00
lippfi
64ec421cfc Rename parent to vimContext 2022-01-23 02:28:35 +03:00
lippfi
86fcda5afc Fix beep in source command 2022-01-23 02:05:23 +03:00
lippfi
e799d40803 Fix built-in functions with global context 2022-01-23 02:00:26 +03:00
lippfi
c84325a37c Replace Executable with VimLContext 2022-01-23 01:53:07 +03:00
Alex Plate
3b6d57849c Add Piotr Mikulski to contributors list 2022-01-21 12:06:35 +00:00
Piotr Mikulski
9b4825db77 String colors that aren't supported properly 2022-01-21 15:04:51 +03:00
Piotr Mikulski
6a4bb7395b Print stderr when running a command just like vim does 2022-01-21 15:04:51 +03:00
Alex Plate
c8463d9b3e Update dependencies and reformat 2022-01-21 14:17:13 +03:00
Alex Plate
376ca4e93b Add merge to changes 2022-01-21 14:17:13 +03:00
Alex Plate
6a43e558fd Add Michael Schertenleib to contributors list 2022-01-21 11:10:35 +00:00
Michael Schertenleib
05414276f2 Support custom element names in vim-surround 2022-01-21 14:05:27 +03:00
Alex Plate
bec73749c2 [VIM-2494] Add logs for registers reading/writing 2022-01-21 11:50:26 +03:00
Alex Plate
0d4f9891c3 Fix(VIM-2471): Fix incorrectness 2022-01-19 17:24:19 +03:00
Alex Plate
f082ab4b68 Update changelog 2022-01-19 13:28:45 +00:00
Alex Plate
d4f4765ffd Fix(VIM-2471): Multiple [{ and ]} actions 2022-01-19 16:25:45 +03:00
Alex Plate
8902c0839c Write down the issues for o in new API 2022-01-19 09:56:17 +03:00
Alex Plate
66fc8034ba Correct indent for o command when the caret is in the middle of the indent 2022-01-18 11:22:39 +03:00
Alex Plate
109cb58d68 Cleanup saved shortcut conflicts after tests 2022-01-18 11:15:15 +03:00
Alex Plate
a71916df84 Allow an accidental whitespace at the end of sethandler command 2022-01-18 10:06:53 +03:00
Alex Plate
5f10eb808e Fix the O command on the line top 2022-01-17 10:22:25 +03:00
Alex Plate
6c1e7b0b60 Write tests for status string 2022-01-17 10:22:24 +03:00
Alex Plate
792c22a90a Update formatting 2022-01-16 00:12:11 +00:00
lippfi
eff2cd02f9 Add <C-char> support to VimL's double quoted strings 2022-01-15 12:40:34 +03:00
Alex Pláte
163e7751f2 Merge pull request #420 from JetBrains/dependabot/gradle/org.eclipse.jgit-org.eclipse.jgit-6.0.0.202111291000-r
Bump org.eclipse.jgit from 5.13.0.202109080827-r to 6.0.0.202111291000-r
2022-01-14 19:06:28 +03:00
Alex Plate
370c22b2f5 Add Kevin Suen to contributors list 2022-01-14 19:05:30 +03:00
Alex Plate
a251ac55e5 Update changelog 2022-01-14 19:03:46 +03:00
Alex Plate
987df6958e Manually specify the list of IDEs to verify 2022-01-14 19:03:46 +03:00
Alex Pláte
60ae189442 Merge pull request #440 from ksrb/feat/matchitHandlebars
Add matchit support for handlebars
2022-01-14 19:01:58 +03:00
Alex Pláte
ce734906d4 Merge branch 'master' into feat/matchitHandlebars 2022-01-14 19:01:30 +03:00
Alex Plate
3b26572731 Add DanEEStar to contributors list 2022-01-14 15:57:33 +00:00
Daniel Egger
4d9c606c79 Add Matchit support for Vue.js files 2022-01-14 18:56:00 +03:00
Alex Plate
22050fc16d Specify untilBuild 2022-01-14 18:16:34 +03:00
Alex Plate
2fb419253c Setup sinceBuild for plugin verifier 2022-01-14 17:45:16 +03:00
Alex Plate
3bb4fc67bf Update changelog 2022-01-14 13:41:29 +00:00
Alex Plate
a0a009cb59 fix(VIM-2523): i command for the folder in the project tree 2022-01-14 15:45:29 +03:00
Alex Plate
ce2bb85e18 Fix test for non-experimental api 2022-01-14 15:23:48 +03:00
Alex Plate
7ff8ac76fa Disable guarded tests for old api 2022-01-14 15:05:21 +03:00
Alex Plate
935c51c985 Support operations with python notebooks guarded blocks 2022-01-14 14:05:41 +03:00
Alex Plate
a8d0e698eb New approach for folder processing in o command 2022-01-13 14:47:26 +03:00
Alex Plate
5b13ad6726 Allow guards creation in tests 2022-01-13 13:51:39 +03:00
Alex Plate
e88d0d1493 Corrections for o command 2022-01-13 12:28:33 +03:00
Alex Plate
898af47f89 o command with repeat 2022-01-13 11:14:11 +03:00
Alex Plate
84868c0fb5 Move O to new API 2022-01-13 09:59:22 +03:00
Alex Plate
8e2b7d2089 Fix repeating after o command with count 2022-01-13 09:54:41 +03:00
Alex Plate
f359ac49f3 Fix o command with folders 2022-01-13 09:18:19 +03:00
Alex Plate
37ce0925a5 Massive copyright data update 2022-01-13 08:59:49 +03:00
Alex Plate
23985aea7d Move experimental api to the separate package 2022-01-13 08:57:09 +03:00
Alex Plate
3bd5ab970f Use new api in o command 2022-01-13 08:52:37 +03:00
Kevin Suen
fbdcbdc626 Add matchit support for handlebars 2022-01-12 11:50:20 -08:00
Alex Plate
f197ee54d1 Fix cc with indenting 2022-01-12 19:38:29 +03:00
Alex Plate
efa0489f7b Introduce Pointer 2022-01-12 07:02:20 +03:00
Alex Plate
66dd90a090 Update some docs for experimental API 2022-01-11 21:15:38 +03:00
Alex Plate
68cfb12746 Rename line pointers 2022-01-11 19:50:56 +03:00
Alex Plate
4ad14f3404 Add docs about offsets 2022-01-11 17:55:50 +03:00
Alex Plate
4bcf44570b Use offsets in experimental api 2022-01-11 17:23:48 +03:00
lippfi
3637022890 Update changes 2022-01-10 15:02:09 +03:00
lippfi
5f3a78e7ce Add register support to let command 2022-01-10 14:56:07 +03:00
lippfi
c7872ad841 Add an option way to track action ids 2022-01-10 13:05:28 +03:00
Alex Plate
9eeab756e4 Update formatting 2022-01-02 00:11:44 +00:00
Alex Plate
ef971a1236 Support indenting after cc 2021-12-29 15:49:45 +03:00
Alex Plate
5ec851a120 Remove useless method 2021-12-28 09:27:57 +03:00
Alex Plate
2a94ff2ef6 Review experimental api 2021-12-27 12:10:31 +03:00
Alex Plate
1738892500 Fix test for non-experimental mode 2021-12-27 12:10:31 +03:00
Alex Plate
765d876a51 Use delete via the experimental API 2021-12-27 12:10:30 +03:00
Alex Plate
a0c8e26b38 Update formatting 2021-12-26 00:12:11 +00:00
Alex Plate
4b4f4b3d8f Add draft of experimental API 2021-12-23 22:49:23 +03:00
Alex Plate
63fe7a88eb Pass keys via IDE in tests 2021-12-23 10:59:49 +03:00
Alex Plate
871ee1a6b6 Update release version 2021-12-21 12:51:23 +03:00
Alex Plate
6a36599a29 Revert "Revert "Update formatting""
This reverts commit 27fb36a6c5.
2021-12-21 12:51:10 +03:00
Alex Plate
d11ab20617 Revert "Revert "Support new marks""
This reverts commit 932296af
2021-12-21 12:51:09 +03:00
Alex Plate
ea713edfb5 Revert "Update remoteRobot version"
This reverts commit 4d49385529.
2021-12-21 12:08:56 +03:00
Alex Plate
ff48a9dea2 Formatting 2021-12-21 11:57:08 +03:00
Alex Plate
0a1812ec8c Release preparation 2021-12-21 11:36:53 +03:00
Alex Plate
113d4ac078 Rollback changes regarding esc in normal mode 2021-12-21 11:36:53 +03:00
Alex Plate
4d49385529 Update remoteRobot version 2021-12-21 11:36:53 +03:00
Alex Plate
94a8455267 Update remoteRobot version 2021-12-21 11:36:53 +03:00
Alex Plate
406d2a054c Enable manual test scanning because of the gradle issue 2021-12-21 11:36:53 +03:00
Alex Plate
932296afb6 Revert "Support new marks"
This reverts commit 134c68c705.
2021-12-21 11:36:53 +03:00
Alex Plate
27fb36a6c5 Revert "Update formatting"
This reverts commit 4e37ccfff8.
2021-12-21 11:36:52 +03:00
Alex Plate
f5e0f21869 Update formatting 2021-12-19 00:11:15 +00:00
lippfi
180c35d5c2 Fix toggle for set command 2021-12-16 18:15:32 +03:00
Alex Plate
4bd25f3220 Update changelog 2021-12-15 07:46:09 +00:00
Alex Plate
1299f107dd fix(VIM-2502): Fix the shape of new carets 2021-12-15 10:44:08 +03:00
Alex Plate
43ae40e077 Update remote robot version 2021-12-15 10:18:01 +03:00
Alex Plate
1af0b00892 Get rid of replace character submode 2021-12-14 12:42:55 +03:00
Alex Plate
36f7219964 Get rid of register pending submode 2021-12-14 12:08:41 +03:00
Alex Plate
529ad853ee Get rid of SINGLE_COMMAND submode and replace it with a regular mode 2021-12-14 04:18:55 +03:00
Alex Plate
4e37ccfff8 Update formatting 2021-12-12 00:13:09 +00:00
Alex Plate
134c68c705 Support new marks 2021-12-10 11:31:57 +03:00
Alex Plate
ea61e87b31 Update changelog 2021-12-10 10:49:08 +03:00
Alex Plate
6e82008ffa Prepare to 1.9.0 release 2021-12-10 09:51:30 +03:00
Alex Plate
016bcc00d8 New jupyter notebook fixes 2021-12-09 11:23:58 +03:00
Alex Plate
936e7508e3 Ignore test for the moment 2021-12-09 10:20:23 +03:00
Alex Plate
34220ab759 Update gradle version to 7.3.1 2021-12-09 10:20:22 +03:00
lippfi
51ba63faae Fixed parent for execute and substitute command 2021-12-04 22:21:36 +03:00
lippfi
f4f1e397cb Better strings 2021-12-04 21:47:27 +03:00
Alex Plate
721117ce1b Handle esc in all cases except normal mode 2021-12-02 22:55:17 +03:00
dependabot[bot]
b6128418be Bump org.eclipse.jgit from 5.13.0.202109080827-r to 6.0.0.202111291000-r
Bumps org.eclipse.jgit from 5.13.0.202109080827-r to 6.0.0.202111291000-r.

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 15:02:01 +00:00
Alex Plate
2da917add7 Update some documentation md files 2021-12-01 10:04:26 +03:00
Alex Plate
678c53dc39 Update changelog 2021-12-01 09:48:55 +03:00
Alex Plate
d57359b2ff Add documentation as raw md files 2021-12-01 09:47:23 +03:00
Alex Plate
3796d9f8b4 Removed submodule doc 2021-12-01 09:44:00 +03:00
b6d84e0e66 Fix compile errors in unit tests on Windows 2021-12-01 09:37:24 +03:00
Alex Plate
3dbdbefc58 Update changes 2021-11-30 10:56:10 +03:00
dependabot[bot]
23570c7270 Bump github-api from 1.135 to 1.301
Bumps [github-api](https://github.com/hub4j/github-api) from 1.135 to 1.301.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.135...github-api-1.301)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-30 09:29:20 +03:00
lippfi
4d5024f8b8 Fix test 2021-11-29 19:45:44 +03:00
lippfi
ea8670702a Disable normal command 2021-11-29 19:23:55 +03:00
Alex Plate
b8828f48c9 Update formatting 2021-11-28 00:11:06 +00:00
Alex Plate
b468fef242 Fix track action id stopping 2021-11-26 18:57:50 +03:00
Alex Plate
358f8eeca3 Downgrade to kotlin 1.5 2021-11-26 18:57:50 +03:00
lippfi
150a70e69f Removed deprecated EditorDataContext constructor call 2021-11-26 18:33:37 +03:00
Alex Plate
b9fb0f2bcd Fix dot repeat with count 2021-11-26 17:46:32 +03:00
lippfi
d4a8b8e400 Optimise imports 2021-11-26 14:53:30 +03:00
lippfi
8009c9a5f9 Tests for substitute with expression 2021-11-26 14:34:46 +03:00
lippfi
177115e2fc Submatch function 2021-11-26 13:57:12 +03:00
lippfi
85bc12df59 Substitute with expressions 2021-11-26 13:33:36 +03:00
lippfi
1da818b0d5 Fix pattern in mappings 2021-11-25 10:45:16 +03:00
lippfi
c23d3f1442 Test for macro with count 2021-11-24 14:30:59 +03:00
lippfi
6500ce9154 Long running tests 2021-11-24 13:00:24 +03:00
lippfi
63ecaff1bc Add long running tests 2021-11-24 09:52:17 +03:00
Alex Plate
e29c268d0b Extract progress strings 2021-11-23 17:22:36 +03:00
Alex Plate
2758e89a51 Draft of a potemkin progress during macro execution 2021-11-22 20:40:56 +03:00
lippfi
d0670d0244 Macro without invokeLater 2021-11-22 18:45:55 +03:00
Alex Plate
1e2005451c Update formatting 2021-11-21 00:10:37 +00:00
Alex Plate
29a95ca592 Fix missing import 2021-11-19 12:06:43 +03:00
Alex Plate
5bfff2a398 Prepare to the EAP 2021-11-19 11:55:42 +03:00
lippfi
4d26947208 Pre-EAP commit 2021-11-19 11:21:27 +03:00
lippfi
f1de741bd5 Fix to prevent infinite loops 2021-11-19 06:14:37 +03:00
lippfi
3394d93b43 Fix register 2021-11-19 05:51:32 +03:00
lippfi
02c64feff8 Fix let command 2021-11-19 04:36:22 +03:00
lippfi
f2ba162359 Fix parent in functions 2021-11-19 04:17:32 +03:00
Alex Plate
16c5d11ead Refactor editor holder in ExTextField 2021-11-18 18:14:29 +03:00
lippfi
3e97c5d5fc Replace service() by ServiceManager.getService() 2021-11-18 14:28:56 +03:00
Alex Plate
cb5499f82f Update plugin.xml 2021-11-18 14:26:26 +03:00
lippfi
3d71c1bcbe Update changelog 2021-11-18 14:12:01 +03:00
lippfi
a12793e67a Made CommandLineHelper a service 2021-11-18 13:42:48 +03:00
lippfi
affec9bb61 Fix macro with count 2021-11-18 13:21:04 +03:00
lippfi
fb62ec4c77 Fix float result in expression register 2021-11-18 12:32:24 +03:00
lippfi
c48cf1a2f7 Update roadmap 2021-11-18 10:55:21 +03:00
lippfi
cf5cc92258 Make source command to throw exceptions 2021-11-18 07:19:28 +03:00
lippfi
ca934fe514 Fix set command 2021-11-18 07:18:44 +03:00
lippfi
d6ca75006a Expression register 2021-11-18 06:52:00 +03:00
Alex Plate
51a9878363 Add oauth for mergeP 2021-11-17 20:15:12 +03:00
Alex Plate
7664c44697 Fix type in github auth 2021-11-17 20:09:58 +03:00
Alex Plate
5a8ee72622 Add github oauth token 2021-11-17 20:07:50 +03:00
Alex Plate
492b2de520 Add debug option to update authors 2021-11-17 19:49:06 +03:00
dependabot[bot]
900d3212a4 Bump antlr4 from 4.9.2 to 4.9.3
Bumps [antlr4](https://github.com/antlr/antlr4) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/master/CHANGES.txt)
- [Commits](https://github.com/antlr/antlr4/compare/4.9.2...4.9.3)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-17 18:29:53 +03:00
Alex Plate
d8997e1239 Update authors automation 2021-11-17 17:07:44 +03:00
Alex Plate
e1001534e4 Enable automation 2021-11-17 16:18:38 +03:00
Alex Plate
59a69ed486 Fix automation 2021-11-17 16:04:25 +03:00
Alex Plate
437574328e Add workflow dispatch for update changelog task 2021-11-17 16:01:15 +03:00
Alex Plate
87af7ada40 Try to fix changelog automation 2021-11-17 15:56:16 +03:00
Alex Plate
aa01730c13 Update changelog 2021-11-17 15:45:58 +03:00
Alex Plate
0803b401e7 Update kotlin and gradle 2021-11-17 14:44:30 +03:00
Alex Plate
6d974d799b Update intellij plugin version 2021-11-17 12:46:36 +03:00
lippfi
1fa779b21f Update changelog 2021-11-17 12:36:56 +03:00
lippfi
2c5442c044 Rename "delaymacro" to "ideadelaymacro" 2021-11-17 12:36:56 +03:00
Alex Plate
db4324c478 Use a different method for getting option values 2021-11-17 12:25:48 +03:00
lippfi
a8afca4ccf Normal command 2021-11-17 12:16:46 +03:00
Alex Plate
6849bab741 Add more options to the statistic 2021-11-17 12:15:24 +03:00
lippfi
ff72f24433 Normal command 2021-11-17 12:02:25 +03:00
lippfi
19ea1b204c Set default path to project for CmdFilterCommand 2021-11-17 12:02:25 +03:00
Alex Plate
a9e8dc7b9f Fix compilation issues 2021-11-17 10:49:06 +03:00
Alex Plate
ee14eac009 Rewrite ctrl-^ to use a project service with saved last tab 2021-11-17 10:34:38 +03:00
Alex Plate
3c1bbd5a7f Add few statistic items 2021-11-17 10:34:38 +03:00
lippfi
218cfaca44 Add contains method to OptionService 2021-11-17 04:59:17 +03:00
lippfi
8a78d76a20 OptionService.Scope as a sealed class 2021-11-17 04:39:31 +03:00
lippfi
1ead9f1443 Format 2021-11-16 13:49:38 +03:00
lippfi
c53dd48437 Fix adding options in VimExtensionRegistrar 2021-11-16 13:10:01 +03:00
lippfi
001a1d648c Fix merge 2021-11-16 12:41:27 +03:00
Alex Plate
6bbd162c72 Fix AceJump issues 2021-11-16 12:18:25 +03:00
Alex Plate
8fb8476994 Ignore bookmark test 2021-11-16 12:16:57 +03:00
Alex Plate
8d7a2faf1b Update copyright info 2021-11-16 12:16:57 +03:00
Alex Plate
df946f8525 fix(VIM-2026): Intellij uses a different initialization approach during settings reading 2021-11-16 12:16:55 +03:00
Alex Plate
58f8c315e6 Reformat code 2021-11-16 12:13:24 +03:00
lippfi
c6a379048e Changed object in VariableService to applicationService 2021-11-16 12:13:23 +03:00
Alex Plate
02dd52ccb9 Draft of statistic collector 2021-11-16 12:05:56 +03:00
Alex Plate
abb93af3fb Reformat files 2021-11-16 12:05:56 +03:00
lippfi
06b18b8fb9 Fix if statement 2021-11-16 12:05:56 +03:00
dependabot[bot]
88772a0d8e Bump antlr4 from 4.9.2 to 4.9.3
Bumps [antlr4](https://github.com/antlr/antlr4) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/master/CHANGES.txt)
- [Commits](https://github.com/antlr/antlr4/compare/4.9.2...4.9.3)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-16 12:05:56 +03:00
dependabot[bot]
89c2bf0932 Bump annotations from 22.0.0 to 23.0.0
Bumps [annotations](https://github.com/JetBrains/java-annotations) from 22.0.0 to 23.0.0.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/22.0.0...23.0.0)

---
updated-dependencies:
- dependency-name: org.jetbrains:annotations
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-16 12:05:56 +03:00
Alex Plate
9a0e6336b7 Update changelog 2021-11-16 12:05:56 +03:00
Alex Plate
550a754fab Completely avoid esc handling in normal mode 2021-11-16 12:05:55 +03:00
Alex Plate
5921f7f889 Remove redundant qualifier name 2021-11-16 12:03:51 +03:00
Alex Plate
e097880e95 Add an ability to enable matchit using packadd syntax 2021-11-16 12:03:48 +03:00
Alex Plate
99a0dc6c53 Get rid of PlatformUtils usages
This class should not be used and replaced with ide-specific configurations
2021-11-16 12:02:25 +03:00
eugene.nizienko
ef7e4a752d removing test fail 2021-11-16 12:00:10 +03:00
Alex Plate
cded8e54fb Update changelog 2021-11-16 12:00:10 +03:00
eugene.nizienko
f17a903555 test video recording 2021-11-16 12:00:10 +03:00
lippfi
191aba1f95 Add packadd rule to grammar 2021-11-16 12:00:10 +03:00
lippfi
e8d7a7f8bf Make OptionChangeListener an interface 2021-11-16 10:35:30 +03:00
lippfi
836c1084c4 Optimize MultikeyMap for options 2021-11-16 10:17:48 +03:00
lippfi
649bfdc220 Fix resetAllOptions 2021-11-16 10:11:10 +03:00
lippfi
8d6529ccf1 Better OptionChangeListener 2021-11-16 09:17:31 +03:00
lippfi
c936692403 Moved show* method from OptionService to SetCommand 2021-11-16 08:43:26 +03:00
lippfi
c3d3f2ab50 Fix SpecialKeyHandlers 2021-11-15 15:54:17 +03:00
Alex Plate
f289b19310 Correct usage of option service 2021-11-15 15:51:35 +03:00
lippfi
9866231129 Replace object with applicationService in OptionServiceImpl 2021-11-15 13:04:28 +03:00
lippfi
e0b5b54dda Add more methods to OptionService 2021-11-15 13:02:54 +03:00
lippfi
2687ecc02e Renamed methods 2021-11-15 12:45:01 +03:00
lippfi
3699920515 Add more methods to OptionService 2021-11-15 06:38:22 +03:00
lippfi
4481da75b7 OptionChangeListener 2021-11-15 06:32:04 +03:00
lippfi
037b636be9 Format 2021-11-14 01:20:30 +03:00
lippfi
12ded24cd4 Old and new options are compatible 2021-11-14 01:20:07 +03:00
lippfi
2b5c13e3da IdeaRefactorModeHelper 2021-11-13 23:32:37 +03:00
lippfi
043f07190c Replace older options with new ones 2021-11-13 23:21:24 +03:00
lippfi
dc0758274e Support adding options from plugins 2021-11-11 02:50:48 +03:00
lippfi
0d9aa85a6a Add missing options 2021-11-11 02:24:29 +03:00
lippfi
810440abe7 Better addListener method 2021-11-11 02:17:06 +03:00
lippfi
177aaebaf8 Add scope to optionExpression 2021-11-11 02:02:58 +03:00
lippfi
ba11c565d8 Mark old classes as deprecated 2021-11-11 01:58:43 +03:00
lippfi
5320d3a4fd Move GuiCursorOption subclasses to GuiCursorOptionHelper 2021-11-11 01:41:43 +03:00
lippfi
82f181b80b Temporarily returned OptionsManager to set command 2021-11-11 01:26:00 +03:00
lippfi
eb43fa7c4c Update listeners 2021-11-11 01:08:31 +03:00
lippfi
86c0357725 Better options support in let command 2021-11-11 01:01:02 +03:00
lippfi
844dac6106 set and setlocal commands 2021-11-11 01:00:02 +03:00
lippfi
0a923e98ab Made parseNumber method public 2021-11-11 00:54:45 +03:00
lippfi
a85a5bd055 Add helper classes for options 2021-11-11 00:54:13 +03:00
lippfi
ca51798445 Add OptionService 2021-11-11 00:49:42 +03:00
lippfi
73146ea643 Fix augroup 2021-11-11 00:40:06 +03:00
Alex Plate
f186f4aa5c fix(VIM-2449): Use state to check if the selection is block (instead of multiple ranges) 2021-11-10 19:16:26 +03:00
Alex Plate
a4d89af418 Get back caret shape check disabling 2021-11-10 19:13:53 +03:00
Alex Plate
4eb755fed6 Get back stable version of IJ for development 2021-11-10 18:56:16 +03:00
Alex Plate
95837605b8 Remove unused argument 2021-11-10 18:56:00 +03:00
Alex Plate
3f4bf3f6fd Advertise using of Plug syntax for defining the plugins 2021-11-10 18:40:15 +03:00
Alex Plate
adb71068e3 Add command for packadd 2021-11-10 18:08:58 +03:00
Alex Plate
68f898dbf8 Update changelog 2021-11-09 19:37:07 +03:00
Matt Ellis
296b714282 fix(VIM-2462): reset caret when disabling plugin 2021-11-09 19:35:19 +03:00
Alex Plate
d88f38cf2a Update release version to 1.8.1 2021-11-09 17:00:15 +03:00
Alex Plate
a8098c2c4c fix(VIM-2461): Show action id before action execution 2021-11-08 13:19:31 +03:00
Alex Plate
1eb91889d4 Fix EA-402385
https://web.ea.pages.jetbrains.team/#/issue/402385
2021-11-08 11:45:28 +03:00
Alex Plate
ac451d0fcd Update changelog 2021-11-08 11:06:44 +03:00
Alex Plate
5d7e0a1260 Add a note to the documentation 2021-11-08 11:06:44 +03:00
Matt Ellis
8344207608 fix(VIM-2432): handle scrolloff with <C-D> and <C-U> 2021-11-08 11:03:58 +03:00
Alex Plate
cc45168e25 Update formatting 2021-11-07 00:10:26 +00:00
Alex Plate
81c898dd9e [VIM-2456] Refactor command execution in a way that environment information is collected before running the command.
This also fixes VIM-2397
2021-11-04 13:26:56 +03:00
Alex Plate
87aa50c7be Reformat file 2021-11-04 13:26:45 +03:00
lippfi
a080047632 Update changelog 2021-11-03 20:06:56 +03:00
lippfi
bb4b3dfe61 Fix augroup 2021-11-03 17:31:59 +03:00
lippfi
55aaa6e2c6 Fix split command 2021-11-03 16:30:55 +03:00
lippfi
1fc866eeee Add 'se' abbrev to set command 2021-11-03 16:30:55 +03:00
Alex Plate
15e0692b41 Update changelog 2021-11-01 11:46:09 +03:00
Alex Plate
6db42dc736 [VIM-2199] Fix autocompletion for AppCode 2021-11-01 11:42:20 +03:00
Alex Plate
c1d86a4238 Fix AppCode template detection 2021-11-01 11:34:20 +03:00
Alex Plate
ec761dbe3d [VIM-2332] Make IdeaVim depending on com.intellij.modules.platform module
This should make IdeaVim compatible with CWM
2021-11-01 10:03:59 +03:00
Alex Plate
1328a314de Add exception for strange EA
https://web.ea.pages.jetbrains.team/#/issue/266279
2021-11-01 10:03:59 +03:00
lippfi
06b0a1292f Fix spaces between range units 2021-10-29 15:51:31 +03:00
Alex Plate
11a16a54fc Show the reload action if the IJ starts with the .ideavimrc file 2021-10-29 11:32:20 +03:00
Alex Plate
548cbb4bda Add chylex to contributors list 2021-10-29 10:12:38 +03:00
637ae21089 [VIM-2255] Missing reload icon in .ideavimrc on Windows 2021-10-29 10:09:48 +03:00
dependabot[bot]
6febc4d2fc Bump github-api from 1.133 to 1.135
Bumps [github-api](https://github.com/hub4j/github-api) from 1.133 to 1.135.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.133...github-api-1.135)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-29 10:06:04 +03:00
dependabot[bot]
8253db1486 Bump org.jetbrains.intellij from 1.2.0 to 1.2.1
Bumps org.jetbrains.intellij from 1.2.0 to 1.2.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.intellij
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-29 10:05:55 +03:00
lippfi
8fe1b0891b Fix ! command 2021-10-27 13:42:46 +03:00
Alex Plate
ff1d7f7f1c Add information about vim script into the README.md 2021-10-27 11:42:11 +03:00
Alex Plate
c437a18288 Prepare for 1.8.0 release 2021-10-27 10:26:21 +03:00
Alex Plate
0992c39132 Change changelog ordering 2021-10-27 10:08:58 +03:00
lippfi
610f978c44 Update changelog 2021-10-26 20:21:34 +03:00
lippfi
84ea9266c2 Commands do not require space before argument anymore 2021-10-26 16:24:03 +03:00
lippfi
54abaebe17 Deleted rangesCount from Ranges.kt 2021-10-26 15:11:18 +03:00
lippfi
a16c860ba8 Better marks support in commands 2021-10-26 15:06:03 +03:00
lippfi
b1b7e3439f Underscores in substitute command 2021-10-26 12:49:04 +03:00
Alex Plate
1df75fe25c Fix selection with vim exchange
VIM-2359
https://github.com/JetBrains/ideavim/discussions/388
2021-10-26 11:16:02 +03:00
Alex Plate
4d0e0b8ef8 Fix VCS tagging after EAP release 2021-10-26 11:15:57 +03:00
Alex Plate
36002def70 Add Petar Guglev to contributors list 2021-10-25 11:09:56 +03:00
Petar Guglev
8247ac54a1 Update README.md link
Link was broken.
2021-10-25 11:07:20 +03:00
dependabot[bot]
f4fe80b28a Bump org.jetbrains.changelog from 1.3.0 to 1.3.1
Bumps org.jetbrains.changelog from 1.3.0 to 1.3.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-25 11:06:28 +03:00
lippfi
9e052d6e3a Update roadmap 2021-10-20 13:22:45 +03:00
lippfi
0da18b81b6 Variable locking 2021-10-20 13:22:08 +03:00
lippfi
fc81c6329b Better ambiguous parsing with .
Added originalString field to Expression
2021-10-20 11:53:33 +03:00
Alex Plate
3d92b989ce Disable disposed check in order to find the stack trace of disposed project 2021-10-19 22:53:18 +03:00
Alex Plate
b942e8a950 Do not use Disposer.isDiposed 2021-10-19 22:53:17 +03:00
lippfi
29131b4644 Fixed operator precedence 2021-10-19 20:52:23 +03:00
lippfi
b897b118ca Added scope to for loop variable 2021-10-19 17:43:00 +03:00
lippfi
145af2b6ee Refactoring 2021-10-19 17:40:57 +03:00
lippfi
09a38a854c Comments are back 2021-10-19 17:28:14 +03:00
lippfi
995779a294 Better let command (list and dictionaries are passed by reference) 2021-10-19 14:32:16 +03:00
lippfi
67f38fc646 Fixed parents for Executable 2021-10-19 14:32:16 +03:00
lippfi
316f1fa925 added deepcopy() method to VimDataType 2021-10-19 14:32:16 +03:00
Alex Plate
21f5ad6c0a Lock selection suppressor only on selection starting 2021-10-19 09:51:53 +03:00
Alex Plate
6e6e52f316 Remove deprecated modifications 2021-10-18 09:55:32 +03:00
lippfi
71c19b3ef2 Added nerdtree abbrev to NERDTree option
(https://github.com/JetBrains/ideavim/discussions/378)
2021-10-15 14:18:43 +03:00
lippfi
0befc6385d Added more constructors to SimpleExpression class 2021-10-15 12:18:50 +03:00
lippfi
22371b4b07 Merge remote-tracking branch 'origin/master' 2021-10-15 12:03:49 +03:00
lippfi
913d711b80 Curly braces names 2021-10-15 12:03:30 +03:00
lippfi
d17d12c805 Removed Variable class from plugins 2021-10-15 11:57:45 +03:00
lippfi
4d64109e2c Scope as function argument 2021-10-14 12:08:33 +03:00
Alex Plate
d66d807cff Reset skip events on click 2021-10-14 11:39:10 +03:00
lippfi
e7a68f06b3 Override toString() method for Scope class 2021-10-14 10:46:34 +03:00
lippfi
fd49e86e17 Finish statement 2021-10-14 08:56:10 +03:00
lippfi
337621ca4a For loops with list 2021-10-14 08:54:52 +03:00
lippfi
0e38a4e4f0 Formatting 2021-10-14 07:47:49 +03:00
Alex Plate
c19a160c9c Update notifications 2021-10-13 11:37:02 +03:00
Alex Plate
c390e06e63 Use Path 2021-10-13 11:31:07 +03:00
Alex Plate
00d6a948d0 Update extension point listener 2021-10-13 11:12:47 +03:00
Alex Plate
6f1c2a1a81 Convert lookup listener to TOPIC subscription 2021-10-13 11:02:34 +03:00
Alex Plate
47ba907eb7 Update changenotes 2021-10-12 16:41:25 +03:00
Alex Plate
a14252493f Use java v11 2021-10-12 15:41:37 +03:00
Alex Plate
328c4288c2 Fix since version in plugin.xml 2021-10-12 15:40:22 +03:00
Alex Plate
b7c11ff852 Update minimal IJ version to 203+ 2021-10-12 15:26:35 +03:00
Alex Plate
add1d6225d [TC] Move 202 to old tests 2021-10-12 15:14:41 +03:00
Alex Plate
182424ba05 And more tests compatibility changes 2021-10-12 14:58:40 +03:00
Alex Plate
bf86cd2a51 Keep compatibility in tests 2021-10-12 14:34:29 +03:00
Alex Plate
2085e9cafd Make IJ compatible with older versions of ij (212<) 2021-10-12 13:26:22 +03:00
Alex Plate
fb51236ae2 Add 2021.2 tests 2021-10-12 13:25:58 +03:00
lippfi
9509b5825c Fix icon 2021-10-11 17:35:52 +03:00
lippfi
b8a8acdad7 Update roadmap 2021-10-11 01:37:30 +03:00
lippfi
898e5f8bda Standard project layout 2021-10-11 01:29:18 +03:00
lippfi
30a39497aa Update changelist 2021-10-11 00:06:20 +03:00
lippfi
852a220076 Update list of vimscript functions 2021-10-11 00:06:02 +03:00
lippfi
a34d56b7df Fixed default values in functions 2021-10-11 00:05:09 +03:00
lippfi
13feaa7581 IdeaVim ignore comment's great return 2021-10-10 22:13:23 +03:00
lippfi
14df9ea705 Fix matches operator 2021-10-10 21:48:34 +03:00
lippfi
6bd2bb884a Faster parsing 2021-10-10 19:16:01 +03:00
lippfi
89cdaa611a VIM-2425 ExecuteCommand is a data class 2021-10-10 03:10:38 +03:00
lippfi
cc476a26b4 has() function 2021-10-08 19:13:49 +03:00
lippfi
14d132638d ideaVim ignore comment no longer exists 2021-10-08 04:18:22 +03:00
lippfi
9e62636059 Optional function arguments 2021-10-08 04:13:24 +03:00
lippfi
a3b2b4920a Comments are skipped during parsing 2021-10-08 00:05:54 +03:00
lippfi
e7f128ee59 Anonymous functions 2021-10-08 00:04:54 +03:00
lippfi
e1069c265e Fixed literal dictionary key pattern 2021-10-08 00:03:05 +03:00
lippfi
e0b356c12d Dictionary functions 2021-10-08 00:02:36 +03:00
lippfi
769d900383 Formatting 2021-10-07 23:54:31 +03:00
lippfi
8d99100601 Redundant arguments in lambda functions are ignored 2021-10-07 23:44:15 +03:00
Alex Plate
0c1c8080a6 Update actions docs 2021-10-07 22:18:01 +03:00
Alex Plate
1742541b03 Add note about version update 2021-10-07 22:03:49 +03:00
Alex Plate
d66e6967ee Add Martin Yzeiri to contributors list 2021-10-07 10:27:32 +03:00
Alex Plate
559879301d Add traces to suppressor locks and unlocks 2021-10-07 10:21:30 +03:00
Martin Yzeiri
c524c92062 Emulate matchit.vim 2021-10-07 10:21:19 +03:00
Alex Plate
b329329333 Add settings for testing on latest eap 2021-10-06 12:07:19 +03:00
Alex Plate
5df8ef98a1 Add more logging for selection change 2021-10-06 10:54:55 +03:00
Alex Plate
55154b2996 Update changelog 2021-10-06 09:29:54 +03:00
lippfi
89aa6aecff Added self property to FunctionDeclarations 2021-10-05 13:25:18 +03:00
lippfi
970456e6b0 Added evaluateWithRange method to funcrefCalls 2021-10-05 13:25:18 +03:00
dependabot[bot]
97effae8dc Bump org.jetbrains.changelog from 1.2.0 to 1.3.0
Bumps org.jetbrains.changelog from 1.2.0 to 1.3.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 09:29:43 +03:00
dependabot[bot]
f26755045d Bump annotations from 21.0.1 to 22.0.0
Bumps [annotations](https://github.com/JetBrains/java-annotations) from 21.0.1 to 22.0.0.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/21.0.1...22.0.0)

---
updated-dependencies:
- dependency-name: org.jetbrains:annotations
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-05 09:29:34 +03:00
Alex Pláte
067af8356c Merge pull request #337 from citizenmatt/feature/guicursor
guicursor!
2021-10-05 09:28:26 +03:00
Alex Plate
ee743674c2 Merge branch 'master' into feature/guicursor
# Conflicts:
#	src/com/maddyhome/idea/vim/helper/MessageHelper.kt
#	src/com/maddyhome/idea/vim/option/OptionsManager.kt
2021-10-05 09:27:32 +03:00
Alex Plate
362f8a3c99 Update gradle version 2021-10-05 09:24:14 +03:00
lippfi
9f0ecd7f73 Better function calls and call command 2021-10-05 03:24:16 +03:00
lippfi
d01f582646 Dictionary function call 2021-10-05 02:51:24 +03:00
lippfi
cdc8f159f5 Read-only variables 2021-10-04 21:33:16 +03:00
lippfi
b481b6e1b5 Updated VIMSCRIPT_ROADMAP.md 2021-10-04 12:06:18 +03:00
lippfi
505aeff544 VIM-2417 fix bars in substitute command 2021-10-01 20:11:24 +03:00
lippfi
dbf0444110 funcref() function 2021-10-01 19:13:54 +03:00
lippfi
07d753f413 function() function 2021-10-01 17:16:37 +03:00
lippfi
f516e89a5f Better VimFuncref 2021-10-01 17:16:09 +03:00
lippfi
5f15bca561 Add name and scope fields to FunctionHandler 2021-10-01 17:14:06 +03:00
lippfi
d98acd8c39 Moved tests 2021-10-01 17:11:25 +03:00
lippfi
97502a5bd5 Function as method call 2021-10-01 03:31:20 +03:00
lippfi
806184aa5d Lambda 2021-10-01 03:31:20 +03:00
lippfi
d93fb1fdfc Funcref 2021-10-01 03:31:20 +03:00
lippfi
9cf922ae80 FunctionStorage refactoring 2021-10-01 03:31:20 +03:00
lippfi
2070efc35a Changed Executable to interface 2021-10-01 03:31:20 +03:00
lippfi
1dc4dbf7af Optional function arguments 2021-10-01 03:31:20 +03:00
lippfi
c10634f1e3 Updated roadmap 2021-10-01 03:31:20 +03:00
lippfi
c0f8fd8c6b call command 2021-10-01 03:31:20 +03:00
lippfi
95f89792d4 range function flag 2021-10-01 03:31:20 +03:00
lippfi
a299abf18f abort function flag 2021-10-01 03:31:20 +03:00
lippfi
0cc15390a4 Getting dictionary value by dict.key 2021-10-01 03:31:20 +03:00
lippfi
379b23b42d Update formatting 2021-10-01 03:31:20 +03:00
lippfi
160b1b240a Falsy operator 2021-10-01 03:31:20 +03:00
lippfi
5af69377e5 Fixed test 2021-10-01 03:31:20 +03:00
lippfi
bcee0a5964 Optimized imports 2021-10-01 03:31:20 +03:00
lippfi
804128c3d3 Deleted VimContext from Executable 2021-10-01 03:31:20 +03:00
lippfi
4e3ee024ac Deleted VimContext from commands 2021-10-01 03:31:20 +03:00
lippfi
c300fdbfb1 Added closure flag and fixed scopes 2021-10-01 03:31:20 +03:00
lippfi
840ff11335 Deleted VimContext from expressions 2021-10-01 03:31:20 +03:00
lippfi
8d76b51683 ".." as concatenation operator 2021-10-01 03:31:20 +03:00
lippfi
a78bb51831 Added function flags 2021-10-01 03:31:20 +03:00
lippfi
db19d0819e Added "lambda" and "function as method" rules to grammar 2021-10-01 03:31:20 +03:00
lippfi
72b76221f7 Added len() function 2021-10-01 03:31:20 +03:00
lippfi
9eb32034b7 Added 'ide' option 2021-10-01 03:31:20 +03:00
lippfi
24f88b5ffe Added 'exists' function (works only with options for now) 2021-10-01 03:31:20 +03:00
Alex Plate
d27ebad011 Prepare to the new release 2021-09-30 15:28:33 +03:00
Alex Plate
1cebd8551b Update gradle plugin to 1.2.0 2021-09-30 15:25:43 +03:00
Alex Plate
446d5aeb15 Replace AbstractBundle with DynamicBundle 2021-09-30 10:35:22 +03:00
lippfi
58f8ce605d Update changelog 2021-09-30 01:03:30 +03:00
Alex Plate
3fae2fdae5 isBlockCursor method doesn't work for UI tests at the moment 2021-09-29 12:58:30 +03:00
Alex Plate
c268407ce3 Merge branch 'master' into feature/guicursor
# Conflicts:
#	src/com/maddyhome/idea/vim/listener/VimListenerManager.kt
2021-09-29 12:32:32 +03:00
Alex Plate
cd435c5f41 Do not correct selection when the mouse is clicked 2021-09-29 12:30:47 +03:00
Alex Plate
74b0e3bded Merge branch 'master' into feature/guicursor
# Conflicts:
#	src/com/maddyhome/idea/vim/listener/VimListenerManager.kt
2021-09-29 11:08:30 +03:00
Alex Plate
edc0a14ef1 Do not set selection locker on mouse press 2021-09-29 10:49:16 +03:00
Alex Plate
011be78b27 Add ui test for extend selection 2021-09-28 12:04:25 +03:00
Alex Plate
58008e6758 Improve vim selection suppressor 2021-09-28 11:51:43 +03:00
Matt Ellis
ae21727c12 Merge branch 'master' into feature/guicursor 2021-09-27 15:21:41 +01:00
lippfi
a480372d3d Added a colon after scope for variables in VimScriptGlobalEnvironment 2021-09-27 15:19:39 +03:00
lippfi
0bc298014d Fixed string rule 2021-09-27 14:31:39 +03:00
lippfi
63f85a8099 lua << END is skipped now 2021-09-26 19:10:38 +03:00
lippfi
cc16d5ba15 VIM-2411. Added tabs to INLINE_SEPARATOR. Much better comments 2021-09-24 09:47:25 +03:00
lippfi
fa3afe188e VIM-2409. Removed inline comment from SubstituteCommand's rule 2021-09-23 17:52:15 +03:00
lippfi
6df2db86c3 VIM-2406. Added patterns with omitted "/" or "?" at the end of the pattern to GoToLineCommand 2021-09-23 17:32:39 +03:00
lippfi
7791de490d Removed unnecessary spaces from grammar 2021-09-23 13:31:52 +03:00
lippfi
754a8c7250 global and vglobal commands with pipes 2021-09-22 16:23:23 +03:00
lippfi
88b0f31590 Emojis 2021-09-22 15:40:53 +03:00
lippfi
b17dbb37e4 Updated formatting 2021-09-22 15:31:55 +03:00
Alex Plate
4ec360219a Fix UI tests 2021-09-21 17:29:47 +03:00
Alex Plate
b4d4da7250 Refactor UI test 2021-09-21 11:20:33 +03:00
Alex Plate
8bf809a888 Improve mouse selection from the line end 2021-09-21 11:19:41 +03:00
Alex Plate
90e0cee86c Fix Ui test 2021-09-21 10:35:43 +03:00
lippfi
5b571362e3 VIM-2405. Fixed error message for v: scope. NotImplementedErrors are now also shown in status bar. 2021-09-20 21:21:48 +03:00
Alex Plate
9537003a6d Prepare to 1.7.1 release 2021-09-20 12:26:54 +03:00
Alex Plate
bdc50283d2 Switch gradle to 2021.2.2 because of issues in gradle plugin 2021-09-20 12:20:44 +03:00
Alex Plate
85c8968d75 Fix multiple copy from unnamed clipboard 2021-09-20 12:18:45 +03:00
lippfi
1466ad9bef Update changelog 2021-09-20 12:09:55 +03:00
lippfi
0cda2241ed Deleted "lambda" and "function as method" rules 2021-09-20 00:11:10 +03:00
lippfi
3ac96d9ed4 Added tests 2021-09-20 00:11:10 +03:00
lippfi
9f7b6a281b Fixed comma at the end of a literal dictionary 2021-09-20 00:11:10 +03:00
lippfi
96bd5f8259 Fixed unnamed register 2021-09-20 00:11:10 +03:00
lippfi
62917c2a50 VIM-2401. ExException is shown for map <expr> 2021-09-20 00:11:10 +03:00
lippfi
10ea780cdc Better grammar 2021-09-20 00:11:10 +03:00
lippfi
19561bb1f1 Fixed comment rule 2021-09-20 00:11:10 +03:00
lippfi
8088789f51 Fixed augroup and autocmd 2021-09-20 00:11:10 +03:00
lippfi
5dec91caa3 Added lambdas and functions as methods to grammar 2021-09-20 00:11:10 +03:00
lippfi
0c28a9a79b More loyal grammar 2021-09-20 00:11:10 +03:00
Alex Plate
8c2b715f93 Update formatting 2021-09-19 00:09:17 +00:00
aleksei.plate
0fe75031a9 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: VCS roots of 'Publish Release' build configuration were updated 2021-09-17 10:05:03 +00:00
aleksei.plate
0ec01f8d6f TeamCity change in 'IntelliJ IDEA plugins / IdeaVim / IdeaVim releases' project: VCS roots of 'Publish Release' build configuration were updated 2021-09-17 10:04:50 +00:00
aleksei.plate
fbcb3f8cbc TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'https://github.com/JetBrains/ideavim (branch release)' VCS root was created 2021-09-17 10:04:25 +00:00
dependabot[bot]
3f6a454052 Bump github-api from 1.129 to 1.133
Bumps [github-api](https://github.com/hub4j/github-api) from 1.129 to 1.133.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.129...github-api-1.133)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-17 10:44:55 +03:00
dependabot[bot]
088fda12f8 Bump org.eclipse.jgit
Bumps org.eclipse.jgit from 5.12.0.202106070339-r to 5.13.0.202109080827-r.

---
updated-dependencies:
- dependency-name: org.eclipse.jgit:org.eclipse.jgit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-17 10:44:00 +03:00
dependabot[bot]
b207b30108 Bump org.jlleitschuh.gradle.ktlint from 10.0.0 to 10.2.0
Bumps org.jlleitschuh.gradle.ktlint from 10.0.0 to 10.2.0.

---
updated-dependencies:
- dependency-name: org.jlleitschuh.gradle.ktlint
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-17 10:43:46 +03:00
Alex Plate
f12b67088f Remove incorrect changelog 2021-09-16 13:37:18 +03:00
Alex Plate
2643daf0b2 Exclude ktlint test source set check 2021-09-16 10:38:28 +03:00
Alex Plate
21188dad73 Update changelog settings 2021-09-16 10:17:39 +03:00
Alex Plate
0476854d7c Update changelog 2021-09-16 07:14:43 +00:00
Alex Plate
b9ab4f6484 Prepare to 1.7.0 release 2021-09-16 10:08:47 +03:00
lippfi
759d92db4d Fixed checkboxes in VIMSCRIPT_ROADMAP.md 2021-09-15 17:48:37 +03:00
lippfi
263fea1c52 Moved vimscript-related .md files to vimscript-info folder 2021-09-15 17:46:09 +03:00
lippfi
949e9216ff Updated README.md 2021-09-15 17:32:14 +03:00
lippfi
547835f59d Added roadmap & list of implemented functions 2021-09-15 17:31:50 +03:00
Alex Plate
464ed17741 Update changelog 2021-09-15 08:45:49 +00:00
Alex Plate
1ca8b06d74 Fix(VIM-2387): Fix coping with unnamed and ideaput 2021-09-15 11:43:38 +03:00
Alex Plate
5312549db1 Update changelog 2021-09-13 07:47:14 +00:00
Alex Plate
21a8a0467f Update links to discord server 2021-09-10 09:57:49 +03:00
Alex Plate
c5dfd43e48 fix(VIM-2392): Fix possible out of bounds exception 2021-09-10 09:54:06 +03:00
Alex Plate
879bc9bd98 Add some comments 2021-09-09 11:12:40 +03:00
Alex Plate
5a484c3952 Fix changelog formatting 2021-09-08 13:11:27 +03:00
Alex Plate
a1dd917227 Update changelog 2021-09-08 08:53:09 +00:00
Alex Plate
6186fa7e1b fix(VIM-2368): Do not remove selection on right click 2021-09-08 11:50:28 +03:00
Alex Plate
2c227955c7 Remove extra white space in file name 2021-09-08 10:02:49 +03:00
Alex Pláte
1ac50714f5 Update README.md 2021-09-07 18:57:17 +03:00
lippfi
fd1d6a98f1 Fixed sublist expression for lists 2021-08-17 15:10:16 +03:00
lippfi
43b5e7e644 Now all the exceptions are caught 2021-08-17 14:43:27 +03:00
lippfi
13ab68e5b1 Much better sublists 2021-08-17 14:30:32 +03:00
lippfi
165caab526 Fixed function scope (library functions do not modify vimContext anymore) 2021-08-17 14:03:43 +03:00
lippfi
187e5a752a Fixed operators precedence 2021-08-17 14:02:47 +03:00
lippfi
dc81568c45 Fixed less binary operator 2021-08-17 13:59:15 +03:00
lippfi
9fe9d92e04 Updated changelog 2021-08-17 11:49:54 +03:00
lippfi
1e550ac0a3 Map <expr> with invalid expression test 2021-08-17 11:49:54 +03:00
lippfi
1190209409 We do not fix invalid commands or expressions anymore 2021-08-17 11:49:54 +03:00
Alex Plate
c7cc6b54bf Support g:surround_no_mappings variable in vim-surround 2021-08-17 11:32:25 +03:00
Alex Plate
c1afce2939 Use latest EAP to develop the plugin 2021-08-17 11:05:20 +03:00
lippfi
aa40c04302 Added test with caret return symbol 2021-08-17 10:59:49 +03:00
lippfi
bddf07efee Added E15 exception to map <expr> 2021-08-17 01:09:39 +03:00
lippfi
c8a45cb085 Added 'map <expr>' 2021-08-17 00:59:51 +03:00
lippfi
f6720b3d37 Made ranges great again 2021-08-16 22:26:07 +03:00
lippfi
dc8f5e9b25 Fixed beep 2021-08-16 21:02:45 +03:00
lippfi
8a2d3e1aed "ideaVim ignore" comment 2021-08-16 20:22:24 +03:00
lippfi
afeaf4444b 'parseExpression' and 'parseCommand' can return null now 2021-08-16 19:55:30 +03:00
lippfi
f69a284b3f '\r' fix 2021-08-16 16:11:00 +03:00
lippfi
9f1bb44824 More loyal grammar with parametrized tests 2021-08-16 15:45:08 +03:00
lippfi
037a29551c Much safer parsing 2021-08-14 18:37:39 +03:00
Alex Plate
b4ea970c29 Do not include empty Fixes changelog entry 2021-08-13 16:54:19 +03:00
lippfi
719b80baa1 Added function flags to grammar &
Added inline comment to let command &
Fixed parser (visitor is no longer called in scripts with errors)
2021-08-13 13:33:46 +03:00
Alex Pláte
f6002f05e0 Delete GoToLineCommandTest.kt 2021-08-13 10:45:53 +03:00
Alex Plate
0867654347 Update changelog 2021-08-12 16:04:14 +00:00
Alex Plate
687a6d8693 Update changelog 2021-08-12 19:01:05 +03:00
lippfi
6fc362cae2 Removed @deprecated from VimScriptGlobalEnvironment 2021-08-12 16:59:09 +03:00
lippfi
5d03bae931 Log is cleared after each test 2021-08-12 14:39:27 +03:00
lippfi
408e51535d Script's lines with errors are now skipped by parser 2021-08-12 14:39:27 +03:00
lippfi
d4749f4eb8 Lua code in .vimrc is skipped during parsing 2021-08-12 14:39:27 +03:00
lippfi
829501c1b1 Decreased distribution size 2021-08-12 14:39:27 +03:00
lippfi
88ef5a3467 More loyal to spaces and newlines grammar 2021-08-12 14:39:27 +03:00
lippfi
e52948efcc Renamed and moved handler tests 2021-08-12 14:39:27 +03:00
lippfi
56466f889b Fixed map command names 2021-08-12 14:39:27 +03:00
lippfi
5ecfab65fa Added more command names 2021-08-12 14:39:27 +03:00
lippfi
98fc65ec43 Added comments to commands 2021-08-12 14:39:27 +03:00
lippfi
3e37e2cdc4 NotImplementedError and wrong ranges handling 2021-08-12 14:39:27 +03:00
lippfi
2efb08197f Parsing errors handling 2021-08-12 14:39:27 +03:00
lippfi
dd7cb72a25 Fixed tests for delfunction command 2021-08-12 14:39:27 +03:00
lippfi
b73fc88313 One-line statements can be written in multiline way 2021-08-12 14:39:27 +03:00
lippfi
465db2cd22 Options support in let command 2021-08-12 14:39:27 +03:00
lippfi
73c1dc8118 Added 'execute' command 2021-08-12 14:39:27 +03:00
lippfi
509a202f93 Fixed commands that do not support inline comments 2021-08-12 14:39:27 +03:00
lippfi
09a9884b9f UnknownCommand class and cleanup 2021-08-12 14:39:27 +03:00
lippfi
6afc5aa98e Better executor 2021-08-12 14:39:27 +03:00
lippfi
9e497fb5e8 Nonnull editor & dataContext in function handlers 2021-08-12 14:39:27 +03:00
lippfi
16476256c3 Replaced handlers with commands 2021-08-12 14:39:27 +03:00
lippfi
623430359a Execute method accepts only nonnull editor and dataContext 2021-08-12 14:39:27 +03:00
Matt Ellis
6ab53802df Add tests for caret attributes in nested modes
See VIM-1756
2021-08-10 17:29:00 +01:00
Alex Plate
d5f877b83d Update github task to run UI tests 2021-08-04 16:11:05 +03:00
Alex Plate
0b33702712 Mute some nvim tests 2021-08-04 16:03:53 +03:00
Alex Plate
10fce45248 Include few delays in UI test 2021-08-04 15:53:49 +03:00
Alex Plate
b39e5ba1d5 Exclude vim script tests from neovim testing 2021-08-04 15:41:04 +03:00
Alex Plate
700df030f0 Use different approach of setting defaults for nvim 2021-08-04 15:00:14 +03:00
Alex Plate
a44fe15fea Update col and line functions 2021-08-04 13:47:39 +03:00
Alex Plate
12d1553f5a Remove double copyright note 2021-08-04 12:58:17 +03:00
lippfi
503c2580d7 Fixed last command register for ExCommands 2021-08-04 11:44:43 +03:00
lippfi
8ab9509ceb Last command register fix 2021-08-04 09:49:06 +03:00
Alex Plate
197eded6d0 Add test for storing ex command to : register 2021-08-04 03:02:18 +03:00
Alex Plate
1813ad400a Support line and col functions 2021-08-03 20:22:59 +03:00
Alex Plate
a1b048a2f9 Add conversion from vimDataType to VimNumber 2021-08-03 19:59:15 +03:00
Alex Plate
cb43ad3488 Create a helper method to get vim line 2021-08-03 17:57:33 +03:00
Alex Plate
e8daf67276 Small refactoring of VimInt 2021-08-03 17:27:09 +03:00
Alex Plate
00ef191ad0 Define VimInt constants, add method to convert bool to VimInt 2021-08-03 17:24:16 +03:00
Alex Plate
e8d559f6d0 Support empty function 2021-08-03 17:15:13 +03:00
lippfi
82ed892166 Grammar refactoring 2021-08-03 11:54:49 +03:00
Alex Plate
45bd4a72a4 Kotlin compilation now depends on grammar generation 2021-08-03 09:49:22 +03:00
lippfi
7196d83833 Formatting 2021-07-31 12:37:08 +03:00
lippfi
2b7c311a2b Removed "originalString" property from commands 2021-07-31 11:31:01 +03:00
lippfi
7ef4e45945 Better exception handling 2021-07-30 18:57:02 +03:00
Alex Plate
db08ea1587 Add Filipp Vakhitov to contributors list 2021-07-30 18:22:15 +03:00
Alex Plate
af3227684b Use user login on missing name 2021-07-30 18:21:57 +03:00
lippfi
46788cc6c6 Added vimScript package & antlr grammar 2021-07-30 17:33:29 +03:00
Matt Ellis
70a45f3dc8 Treat use block caret option as caret override 2021-07-29 21:20:28 +01:00
Matt Ellis
d63e3dadbc Merge branch 'master' into feature/guicursor 2021-07-28 23:07:47 +01:00
Alex Plate
93109f1e19 Add additional logging for keys execution 2021-07-28 11:26:09 +03:00
Alex Plate
c4e74ee8a5 Update qodana.yaml file 2021-07-26 19:29:12 +03:00
Alex Plate
534fbe1a6b Tests: reset repeat between tests 2021-07-26 19:07:46 +03:00
Alex Plate
e9f0c032a4 UI test: update tests formatting 2021-07-26 18:57:37 +03:00
Alex Plate
293307e63d UI tests: fix reenable vim execution 2021-07-26 18:41:50 +03:00
Alex Plate
2701522605 UI tests: Take screenshots during test 2021-07-26 17:52:14 +03:00
Alex Plate
98666855ad UI tests: Add a step of closing all existing tabs 2021-07-26 14:22:17 +03:00
aleksei.plate
adca9cf292 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2021-07-26 10:28:07 +00:00
Alex Plate
fc20acd8cb Fix compilation issue for older versions of IJ 2021-07-26 13:25:26 +03:00
Alex Plate
6744e86b62 Catch exceptions during screenshot catching 2021-07-26 11:24:24 +03:00
Alex Plate
5ad202f482 Run linter 2021-07-26 11:21:05 +03:00
Alex Plate
80edb3b8f2 Create UI test for wrapping with if 2021-07-26 03:42:02 +03:00
Alex Plate
3bc8c80422 Create a UI test for enabling and disabling emulator 2021-07-26 03:42:02 +03:00
Alex Plate
4ac19ef8da Run UI tests daily 2021-07-26 03:42:01 +03:00
Alex Plate
797bce2eac Update formatting 2021-07-25 00:08:49 +00:00
Alex Plate
807e80780d Update changelog 2021-07-23 13:01:55 +03:00
eugene.nizienko
a58ca80fc9 fixed Ide Fatal Errors
added UI tests reporting
2021-07-23 12:25:18 +03:00
Alex Plate
4158bf1663 Upload artifact from the correct directory 2021-07-23 11:40:47 +03:00
Alex Plate
cd0c594efb Put some properties to gradle file 2021-07-23 11:20:36 +03:00
Alex Plate
648d4d961d Use correct gradle tasks names 2021-07-23 10:43:48 +03:00
Alex Plate
9bca6f77d6 Add ui tests job 2021-07-23 10:40:36 +03:00
Alex Plate
c33718c39d Update gradle-changelog configurations 2021-07-23 09:35:45 +03:00
Alex Plate
19b51a4a69 Add docs for types of motion 2021-07-22 11:13:58 +03:00
dependabot[bot]
f9e5bc43c6 Bump remote-robot from 0.11.5 to 0.11.6
Bumps remote-robot from 0.11.5 to 0.11.6.

---
updated-dependencies:
- dependency-name: com.intellij.remoterobot:remote-robot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-22 09:52:22 +03:00
dependabot[bot]
42383948b7 Bump org.jetbrains.changelog from 1.1.2 to 1.2.0
Bumps org.jetbrains.changelog from 1.1.2 to 1.2.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-22 09:51:31 +03:00
Alex Plate
5f8a1723ba Update changelog 2021-07-20 06:37:16 +00:00
Alex Plate
b8086cb509 Prepare to the 0.69 release 2021-07-20 09:35:42 +03:00
Alex Plate
e2cd0d1246 Update changelog 2021-07-19 14:44:51 +03:00
Alex Plate
9fbb9ac957 Update changelog 2021-07-02 10:27:59 +03:00
Alex Plate
f64439dab9 Remove unused function 2021-07-01 22:24:39 +03:00
Alex Plate
fe423d0b46 Log text after test 2021-07-01 20:13:19 +03:00
Alex Plate
5018b0e9ff Change action place for IdeaVim actions 2021-07-01 19:52:20 +03:00
Alex Plate
8b0a650631 Update qodana script 2021-07-01 19:31:20 +03:00
Alex Plate
81076d9c43 Several improvements 2021-07-01 19:30:37 +03:00
Alex Plate
b610af30ab Fix flaky tests with mappings 2021-07-01 19:30:36 +03:00
aleksei.plate
bbc10cd3db TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: 'Qodana checks' build configuration settings were updated 2021-07-01 16:27:38 +00:00
aleksei.plate
6690139c66 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: triggers of 'Qodana checks' build configuration were updated 2021-07-01 16:27:23 +00:00
Alex Plate
df9d5bfe25 Fix GlobalHandlerTest 2021-07-01 18:13:01 +03:00
Alex Plate
4a0dd31b2c [TC] Exclude ktlint from checking 2021-07-01 17:36:54 +03:00
Alex Plate
afbfacb462 Format code 2021-07-01 17:36:28 +03:00
Alex Plate
5d68e76b30 [TC] Remove linting checks on GH 2021-07-01 17:18:40 +03:00
Alex Plate
246cc1479a Update changelog 2021-07-01 13:44:40 +03:00
Michal Placek
408cd0e037 vim-2335 Support for navigation to previous buffer with :b# 2021-07-01 13:41:15 +03:00
Alex Plate
43884c791f Add Michal Placek to contributors list 2021-07-01 10:34:32 +00:00
Michal Placek
c15eccf49a vim-1062 -fixes 2021-07-01 13:31:27 +03:00
Michal Placek
ddb159eec8 vim-1062 2021-07-01 13:31:27 +03:00
dependabot[bot]
af8edae1d3 Bump remote-robot from 0.11.4 to 0.11.5
Bumps remote-robot from 0.11.4 to 0.11.5.

---
updated-dependencies:
- dependency-name: com.intellij.remoterobot:remote-robot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-01 13:29:37 +03:00
Matt Ellis
91585e1059 Run linters 2021-06-30 21:41:59 +01:00
Matt Ellis
d6a99d4354 Update to latest EAP 2021-06-30 21:10:49 +01:00
Matt Ellis
0d840b2c41 Merge branch 'master' into feature/guicursor 2021-06-30 18:39:03 +01:00
Matt Ellis
0288a0f2b5 Use insert caret for select mode 2021-06-30 17:26:44 +01:00
Matt Ellis
fe7dc4902b Make ExShortcutKeyAction dumb aware 2021-06-30 17:17:55 +01:00
Matt Ellis
1caf380505 Improve caret painting in command line 2021-06-30 17:15:52 +01:00
Alex Plate
628ce16e99 [TC] Exclude linting check for jobs 2021-06-30 11:20:39 +03:00
Alex Plate
f822b04a6f Trying to exclude settings.xml using gitignore 2021-06-30 10:49:09 +03:00
Alex Plate
a61747cd94 Try to exclude settings.xml from the data 2021-06-30 10:45:53 +03:00
Alex Plate
86c97f5566 Change the name of the job 2021-06-30 10:42:57 +03:00
Alex Plate
31e633f55e Update formatting 2021-06-30 07:42:22 +00:00
Alex Plate
e3aa3e24f5 Create a job for automatic formatting 2021-06-30 10:39:39 +03:00
Alex Plate
b7396fdf8c Fix formatting 2021-06-30 10:31:27 +03:00
Alex Plate
e8f0e31a27 Correct caret for selecting from the end for 212+ versions of IJ 2021-06-30 10:29:51 +03:00
Alex Plate
d759c6bc24 Remove test file 2021-06-30 09:45:29 +03:00
Alex Plate
f76d0d2f81 Search for the user by github commit 2021-06-30 09:40:20 +03:00
Alex Plate
ec8b02e1c1 Do not add VIM-123 example 2021-06-30 09:25:00 +03:00
Alex Plate
c27ac06f1b Update changelog 2021-06-30 06:21:48 +00:00
Alex Plate
24f8f9ca14 Update run configuration 2021-06-30 09:20:14 +03:00
Alex Plate
8b8bbba85d Get rid of last_processed_cache file 2021-06-30 09:17:31 +03:00
Matt Ellis
64be75142e Use guicursor options to draw ex caret 2021-06-29 17:05:11 +01:00
Alex Plate
f2070bad08 Update changelog 2021-06-29 11:06:24 +00:00
Alex Plate
52a3b680a6 Remove incorrect changelog line 2021-06-29 14:04:35 +03:00
Alex Plate
735bfbae3b Update changelog 2021-06-29 11:03:57 +00:00
Alex Plate
9140234b2c [Automation] Include last_processed_hash to the commit 2021-06-29 14:02:16 +03:00
Alex Plate
cbf35c276e Revert "Update changelog"
This reverts commit ab1b8572f3.
2021-06-29 14:00:54 +03:00
Alex Plate
ab1b8572f3 Update changelog 2021-06-29 10:58:29 +00:00
Alex Plate
960de8647c Fix(VIM-123): This is not a fix, just testing the automation 2021-06-29 13:56:28 +03:00
Alex Plate
acf80417d1 Automatically update changelog 2021-06-29 13:53:30 +03:00
Alex Plate
43a3db178f Refactor UpdateAuthors script 2021-06-29 12:57:35 +03:00
Matt Ellis
f05123123c Use guicursor instead of editor cursor settings
This changes VIM-1475 and ignores IntelliJ's "use block cursor" setting in favour of guicursor. Also affects caret placement around inlays and handling of template hotspots via idearefactormode
2021-06-29 00:21:19 +01:00
Matt Ellis
2f73dac57a Force the caret visible when updating attributes
Changing EditorSettings.setBlockCursor does this via EditorImpl.updateCaretCursor
2021-06-28 23:48:27 +01:00
Matt Ellis
a6087dd08f Use replace mode caret for change character action 2021-06-28 23:42:36 +01:00
Matt Ellis
b4d40fae3b Rename assert method 2021-06-28 23:24:59 +01:00
Matt Ellis
ad19dc0100 Use guicursor options to draw caret 2021-06-28 23:09:21 +01:00
Matt Ellis
d19c776ec3 Minor refactor 2021-06-28 23:08:29 +01:00
Matt Ellis
ccd792bf62 Provide hook for resetting cached values 2021-06-28 23:08:22 +01:00
Matt Ellis
8a55199d62 Add guicursor to dictionary 2021-06-28 23:08:14 +01:00
Matt Ellis
9cf0a1ac26 Report errors while parsing guicursor option 2021-06-28 23:06:49 +01:00
Matt Ellis
43620c280d Add guicursor option 2021-06-28 23:04:58 +01:00
Alex Plate
98ffb3bf9e [VIM-1672] IdeaVim correctly populates clipboard history 2021-06-28 11:48:09 +03:00
Alex Plate
4cc4fb4d3c [VIM-1192] Fix dollar motion from single-command 2021-06-28 09:21:32 +03:00
Alex Plate
1f9718a3c1 Add more tests for till character motions 2021-06-28 08:29:21 +03:00
Alex Plate
16d9a3ba8b Join till character motions into the single file 2021-06-28 08:19:27 +03:00
Alex Plate
a01fc5d72c Remove useless condition 2021-06-28 07:24:30 +03:00
Alex Plate
f4e777b8df [VIM-2336] Fix repeat for 'T' movement 2021-06-28 07:24:15 +03:00
Alex Plate
e8b55881bd Update changelog 2021-06-24 10:48:45 +03:00
Alex Plate
232dd34717 [VIM-2317] Fix memory leak 2021-06-24 10:38:15 +03:00
Alex Plate
e244109073 Use stable IJ release for development because EAP is broken 2021-06-24 10:37:27 +03:00
Alex Plate
e6324a2182 Downgrade github dependency 2021-06-24 10:20:41 +03:00
Alex Plate
46bc66d08c Add some values to dic 2021-06-24 10:14:19 +03:00
Alex Plate
73fe85018e Update configuration script 2021-06-24 10:14:18 +03:00
Matt Ellis
982d6921cb Fix formatting 2021-06-24 10:13:36 +03:00
Matt Ellis
bb28b76a5b Support % as shortcut for file name in filter 2021-06-24 10:13:36 +03:00
Matt Ellis
67fed0da9e [VIM-1566] Use OS shell to execute filter command 2021-06-24 10:13:36 +03:00
Matt Ellis
e3cf50b4c9 [VIM-1357] Invoke shell filter commands with proper path and argument handling
Also moves the filter command out of a write action, and under a cancellable modal progress dialog. Any errors are substituted into the text, as per Vim.

Fixes #VIM-1357
2021-06-24 10:13:36 +03:00
Alex Plate
f72bb31b8e Add some loggins to update authors script 2021-06-22 11:11:16 +03:00
Alex Plate
001f13398c Update jgit version 2021-06-22 11:03:34 +03:00
dependabot[bot]
dcfe93e4a1 Bump github-api from 1.129 to 1.131
Bumps [github-api](https://github.com/hub4j/github-api) from 1.129 to 1.131.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.129...github-api-1.131)

---
updated-dependencies:
- dependency-name: org.kohsuke:github-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-22 10:56:32 +03:00
Alex Plate
d3e7b5838f [TC] Fix slack notification issues 2021-06-22 10:50:32 +03:00
Alex Plate
8788d109e3 [TC] Extract version constants 2021-06-22 09:54:56 +03:00
Alex Plate
8b1839ff1b Prepare to 0.68 release 2021-06-22 09:17:17 +03:00
Matt Ellis
9f46e1960e Fix typo 2021-06-10 13:51:43 +01:00
Matt Ellis
e93a619859 Make ListOption generic + create StringListOption 2021-06-10 13:51:23 +01:00
Matt Ellis
287ba7055e Simplify BoundedListOption 2021-06-10 11:29:20 +01:00
Matt Ellis
dfbec1f23a Rename "bound" options to "bounded" 2021-06-10 11:18:57 +01:00
Matt Ellis
55dedb4c4d Remove resetShape method
We should avoid setting the shape explicitly, and let it update when the mode changes.

Note that shape can affect the visual position of the caret around inlays (e.g. 'a' at the end of a rename hotspot with a trailing inlay for options will remain in between the text and the inlay, while 'l' in command mode will move after the inlay. Both positions are at the same text offset). We should still avoid explicitly setting shape before moving the caret. We can't guarantee the order of changing mode and moving the caret, so we update the visual position at the current offset when changing mode. (We're also currently using mode as an assumption of shape)
2021-06-10 11:05:41 +01:00
Matt Ellis
9c71b444c6 Update caret visual attributes when mode changes
Removes updateCaretState and unnecessary usages
2021-06-05 01:04:01 +01:00
Matt Ellis
e859b1c131 Remove resetCaret 2021-06-05 00:33:04 +01:00
Matt Ellis
6c4bd9cc10 Refactor caret shape functions 2021-06-05 00:21:58 +01:00
Matt Ellis
b50281f8d5 Extract caret shape methods to helper 2021-06-05 00:14:10 +01:00
Matt Ellis
2be0f5cedb Reset caret visual position after mode changes
Fixes an issue where the caret was incorrectly positioned because it was moved before the mode was changed. This wasn't visible in 211 because a couple of bugs in the platform combined to put the caret in the right place.

See #280, IDEA-262153 and KTIJ-3768
2021-06-04 17:05:03 +01:00
Matt Ellis
646a89d52a Refactor showMode update 2021-06-04 16:45:07 +01:00
Alex Plate
fea71903de Fix global test 2021-06-04 09:39:10 +03:00
Alex Plate
0220d2b40f Suppress inspection 2021-06-04 09:39:09 +03:00
dependabot[bot]
c751c51b25 Bump markdown from 0.2.3 to 0.2.4
Bumps [markdown](https://github.com/JetBrains/markdown) from 0.2.3 to 0.2.4.
- [Release notes](https://github.com/JetBrains/markdown/releases)
- [Commits](https://github.com/JetBrains/markdown/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains:markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-04 09:37:10 +03:00
Alex Plate
8fedf78e03 refactoring: update formatting 2021-06-03 11:57:27 +03:00
Alex Plate
bd3c86e068 Update plugin.xml 2021-06-03 11:47:00 +03:00
Alex Plate
46d459bd73 Update changelog 2021-06-03 11:04:49 +03:00
Alex Plate
d1feaad5a9 Update dependabot lock 2021-06-03 11:02:27 +03:00
Alex Plate
b5b6c8f37a fix(sethandler): Correct presentation on settings page 2021-06-03 10:44:23 +03:00
Alex Plate
067aaa798d setHandler: fix parsing of a mapping 2021-06-03 10:12:38 +03:00
Alex Plate
c85d7dcd7a Do not save the executed command to history 2021-06-02 10:54:11 +03:00
Alex Plate
c1b1f1efd8 Add tests for nested global commands 2021-06-02 10:31:49 +03:00
Alex Plate
68dcd21c4e More muted neovim tests 2021-06-01 17:52:22 +03:00
Alex Plate
748484e129 Use more neovim in tests 2021-06-01 17:44:32 +03:00
Alex Plate
293e9988c7 Add 2021.1 to plugin verifier 2021-06-01 16:31:41 +03:00
Alex Plate
c390a295cd Update gradle plugin to version 1.0 2021-06-01 16:31:41 +03:00
Alex Plate
bdf1f3c33d Update gradle wrapper to 7.0.2 version 2021-06-01 16:31:40 +03:00
Alex Plate
a0b8685f7d Update some tests to use neovim 2021-06-01 16:31:40 +03:00
Alex Plate
06fc25cf3b Remove TODO 2021-06-01 16:31:40 +03:00
Alex Plate
18e76c5f12 Do not update PR after dependabot 2021-06-01 16:31:40 +03:00
Alex Plate
53e1bc5b83 Update changelog after merging PR 2021-05-31 06:34:38 +00:00
dependabot[bot]
f3b77663f8 Bump annotations from 20.1.0 to 21.0.1
Bumps [annotations](https://github.com/JetBrains/java-annotations) from 20.1.0 to 21.0.1.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/20.1.0...21.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 09:33:13 +03:00
dependabot[bot]
fb25ea7cf9 Bump github-api from 1.128 to 1.129
Bumps [github-api](https://github.com/hub4j/github-api) from 1.128 to 1.129.
- [Release notes](https://github.com/hub4j/github-api/releases)
- [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hub4j/github-api/compare/github-api-1.128...github-api-1.129)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 09:33:01 +03:00
Alex Plate
33dec9746a Fmt 2021-05-30 23:58:12 +03:00
Alex Plate
079006e3ce Add suppression of some neovim tests 2021-05-30 23:49:18 +03:00
Alex Plate
b32befe5df Use wrapper functions around myFixture 2021-05-30 15:18:03 +03:00
Alex Plate
91139005dc Suppress some deprecated methods 2021-05-29 11:21:05 +03:00
Alex Plate
9c53f8608a Add SSR inspection to replace myFixture check result 2021-05-28 19:40:22 +03:00
Alex Plate
7144491d0c refactor: Replace myFixture.checkResult with assertState function
assertState function also performs neovim check
2021-05-28 19:39:32 +03:00
Alex Plate
a9831ccf40 style: run ktlint 2021-05-28 19:22:08 +03:00
Alex Plate
fa3e18fe58 test: Update global handler tests 2021-05-28 11:54:44 +03:00
Alex Plate
08f29bacfd feat: Support :print command 2021-05-28 11:51:54 +03:00
Alex Plate
5a6803551b Fix typo 2021-05-28 10:29:34 +03:00
Alex Plate
a5f612c85a Use correct library for neovim testing 2021-05-28 10:09:31 +03:00
Alex Plate
dab69249d0 Fix some neovim tests 2021-05-27 22:44:17 +03:00
Alex Plate
e1f0098164 Add custom inspection to use vimRunForEachCaret 2021-05-27 22:33:05 +03:00
Alex Plate
14428aaf49 Formatting 2021-05-27 22:01:49 +03:00
Alex Plate
f9ebfcc467 Use RangeMarker for marking lines 2021-05-27 12:50:48 +03:00
Alex Plate
07446309d3 Finish command even after an exception 2021-05-27 12:50:48 +03:00
Alex Plate
d2de23481a Add clarification what is weird 2021-05-27 12:50:47 +03:00
Alex Plate
d8ead10c0f Add gotInt variable 2021-05-27 12:50:47 +03:00
Alex Plate
6a38188602 Add tests for incorrect :g command 2021-05-27 12:50:47 +03:00
Alex Plate
13884e9524 Add error message about failed search command 2021-05-27 12:50:47 +03:00
Alex Plate
1ff629e257 Add tests for global command 2021-05-27 12:50:47 +03:00
Alex Plate
67649a1746 Extract search_regcomp function 2021-05-27 12:50:47 +03:00
Alex Plate
3a2f370c8c Show message on missing pattern in global command 2021-05-27 12:50:46 +03:00
Alex Plate
6380608fa2 Change approach of neovim testing 2021-05-27 12:50:46 +03:00
Alex Plate
4df53701a1 Print an amount of tests without nvim 2021-05-27 12:50:46 +03:00
Alex Plate
3050b19366 Move more tests to neovim 2021-05-27 12:50:46 +03:00
Alex Plate
4c0a9b3797 Move more tests to neovim 2021-05-27 12:50:46 +03:00
Alex Plate
7850508cfe Add global busy 2021-05-27 12:50:46 +03:00
aleksei.plate
dfbb36eb53 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2021-05-26 15:25:49 +00:00
Alex Plate
e55fbe9159 Fix formatting 2021-05-26 13:47:32 +03:00
Alex Plate
8a3af47b35 Support vglobal and global! 2021-05-26 11:58:03 +03:00
Alex Plate
11dc8cf982 Execute global command 2021-05-26 10:58:27 +03:00
Alex Plate
b91a3c16fc Move more tests to neovim 2021-05-26 09:35:58 +03:00
Alex Plate
abfe2bbe37 Convert test to kt 2021-05-25 22:49:34 +03:00
Alex Plate
f8bc330909 Rename .java to .kt 2021-05-25 22:49:34 +03:00
Alex Plate
999cf39aec Update a few tests to use neovim integration 2021-05-25 22:47:12 +03:00
Alex Plate
661a6563b0 Start implementing global handler to support :g command 2021-05-25 22:38:30 +03:00
Alex Plate
e33cf5b4ed Update changelog 2021-05-24 11:08:26 +03:00
Alex Plate
d401b6483c Set branch in mergePr.yml workflow 2021-05-24 11:06:59 +03:00
Alex Pláte
5a855659b0 Merge pull request #308 from citizenmatt/VIM-2308
Fix unnecessary caret movement when switching tabs
2021-05-24 11:03:08 +03:00
Alex Plate
e21e1b0b3d Update docs 2021-05-24 10:55:42 +03:00
Alex Plate
232cb3ee7d Update changelog 2021-05-24 10:45:47 +03:00
Alex Plate
8bdefd85d4 Add Shrikant Sharat Kandula to contributors list 2021-05-24 10:42:15 +03:00
Alex Plate
1719775ffc Fix invalid workflow 2021-05-24 10:41:48 +03:00
Alex Pláte
86296e4066 Merge pull request #261 from sharat87/extension/textobjindent
New extension: Indentation based text objects
2021-05-24 10:35:21 +03:00
Alex Pláte
8c8c2ae271 Update README.md 2021-05-21 16:18:59 +03:00
Alex Plate
25f1674619 Add workflow to update changes after merged PR 2021-05-21 11:53:43 +03:00
Alex Plate
29b3d6de3f Revert correct position of authors 2021-05-21 10:48:52 +03:00
Alex Plate
d6c76c9298 Add Alex Pláte to contributors list 2021-05-21 07:46:16 +00:00
Alex Plate
b0168f46d7 Remove me from AUTHORS.md 2021-05-21 10:43:00 +03:00
Alex Plate
117990cd46 Set authors to commit message 2021-05-21 10:36:29 +03:00
Alex Plate
6d238b382f Fix dependabot ignoring 2021-05-21 10:19:36 +03:00
dependabot[bot]
75fb384109 Bump markdown from 0.1.45 to 0.2.3
Bumps [markdown](https://github.com/JetBrains/markdown) from 0.1.45 to 0.2.3.
- [Release notes](https://github.com/JetBrains/markdown/releases)
- [Commits](https://github.com/JetBrains/markdown/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-21 10:17:38 +03:00
Alex Plate
e2a7a3686b Get rid of detekt 2021-05-21 10:17:02 +03:00
Alex Plate
e29b42c4b1 Exclude dependabot from authors updater 2021-05-21 10:07:30 +03:00
Alex Plate
717806e821 Update shortcuts of ideavim reload 2021-05-21 10:07:30 +03:00
dependabot[bot]
0a4f20b60c Bump io.gitlab.arturbosch.detekt from 1.15.0 to 1.17.0
Bumps io.gitlab.arturbosch.detekt from 1.15.0 to 1.17.0.

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-21 10:07:22 +03:00
dependabot[bot]
90de8f3900 Bump remote-robot from 0.11.2 to 0.11.4
Bumps remote-robot from 0.11.2 to 0.11.4.

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-20 11:45:49 +03:00
Alex Plate
09d4c727b1 Update doc 2021-05-20 10:37:12 +03:00
Alex Plate
5a88c982cb Update plugin.xml 2021-05-20 10:34:03 +03:00
Alex Plate
13a0e1d725 Prepare to 0.67 release 2021-05-20 10:28:56 +03:00
Alex Plate
7c06243d54 Prepare to 0.67 release 2021-05-20 10:28:51 +03:00
Alex Plate
ecd3b90300 Refactor updateAuthors script 2021-05-19 12:33:02 +03:00
Alex Plate
dc5a38ccba Remove TC job for updating authors 2021-05-17 23:16:14 +03:00
Alex Plate
406675f750 Revert "Update authors" 2021-05-17 23:14:25 +03:00
Alex Plate
a5e0572600 Update contributors list 2021-05-17 20:11:34 +00:00
Alex Plate
3e5106525d Checkout with depth 2021-05-17 23:09:48 +03:00
Alex Plate
60b1e14e54 Use project dir variable 2021-05-17 23:06:05 +03:00
Alex Plate
31e667a421 Log email updates 2021-05-17 22:59:51 +03:00
Alex Plate
02428776a7 Commit only authors file 2021-05-17 22:47:50 +03:00
Alex Plate
7c1ab73f11 Revert "Update contributors list"
This reverts commit 8b5758fc37.
2021-05-17 22:43:50 +03:00
Alex Plate
8b5758fc37 Update contributors list 2021-05-17 19:38:12 +00:00
Alex Plate
cb9eb8f67e Add update-authors right in build script 2021-05-17 22:36:24 +03:00
Alex Plate
b496f13c3c Add token to GitHub action 2021-05-17 19:17:38 +03:00
Alex Plate
f21a0622b0 Use new version of update-authors 2021-05-17 19:11:10 +03:00
Alex Plate
5ddf8f2c34 Update authors-update version 2021-05-17 18:52:48 +03:00
Alex Pláte
31655aace4 Create updateAuthors.yml 2021-05-17 18:40:31 +03:00
Alex Plate
32dca0799c Add alex.plate@TeamCity 2021-05-17 18:25:33 +03:00
Alex Plate
79cb90e642 Reformat update checker 2021-05-17 18:17:46 +03:00
Alex Plate
56bde906d9 Add another incorrect email 2021-05-17 18:14:52 +03:00
Alex Plate
315af4cd5b Do not check TC email 2021-05-17 18:09:10 +03:00
Alex Plate
4abc72f05a Update update-authors library version 2021-05-17 18:02:08 +03:00
Alex Plate
393aba90e9 Update authors 2021-05-17 17:52:41 +03:00
Alex Plate
90624c03d2 Apply TC patch 2021-05-17 17:50:50 +03:00
aleksei.plate
f75599805f TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: parameters of 'Update AUTHORS.md' build configuration were updated 2021-05-17 14:46:49 +00:00
Alex Plate
cc343fae9e Add update authors task 2021-05-17 17:41:59 +03:00
Alex Plate
c22b299bed Revert "Add 大牙(Henry Zhu) to contributors list"
This reverts commit 28c806bfee.
2021-05-17 13:38:28 +03:00
alex.plate
28c806bfee Add 大牙(Henry Zhu) to contributors list 2021-05-17 13:37:42 +03:00
Matt Ellis
0bde71d4dd Merge branch 'master' into VIM-2308 2021-05-14 11:51:25 +01:00
Alex Plate
aa51dcddc6 Rename updateChecker 2021-05-14 12:16:53 +03:00
Alex Plate
8ca865e5aa Remove redundant SAM constructors 2021-05-14 10:52:32 +03:00
Alex Plate
a9f1d2ac14 Update changelog 2021-05-14 09:49:40 +03:00
Alex Plate
018e5cba83 Enable copy action only if there are things to copy 2021-05-14 09:41:55 +03:00
Alex Plate
bbcfee3ad6 Revert version of gradle plugin to 0.7.3 2021-05-14 09:38:34 +03:00
Alex Plate
df52f37b69 Add reset handlers action for configurable table 2021-05-14 09:27:54 +03:00
Alex Plate
308ab4b4f5 Update amount of contributors 2021-05-13 23:18:07 +03:00
Alex Plate
f07b6e28c1 Update changelog a bit 2021-05-13 21:00:46 +03:00
Alex Plate
790fc92916 Rename Vim Emulation to Vim in settings 2021-05-13 20:58:23 +03:00
Alex Plate
bb5632c98d Update ktlint and detekt formatting 2021-05-13 19:36:33 +03:00
Alex Plate
879a73494b Run formatters 2021-05-13 19:34:13 +03:00
Alex Plate
93d80b8dfb Move to kotlin 1.5 2021-05-13 19:33:56 +03:00
Alex Plate
edf6a04a36 Run ktlint 2021-05-13 13:55:31 +03:00
Alex Plate
b1662cdc1a [TC] Remove unused imports 2021-05-13 12:05:26 +03:00
Alex Plate
cec56e78bf [TC] Remove 201 release job 2021-05-13 12:02:40 +03:00
Alex Plate
b0bfd0f56e Updates for qodana 2021-05-13 11:59:52 +03:00
Alex Plate
4312aceae7 Do not save per-mode info 2021-05-13 11:05:24 +03:00
Alex Plate
a646a59d8d Move toolbar to the right 2021-05-13 10:51:48 +03:00
Alex Plate
c9eafe1db3 [TC] Username is not required for token publishing 2021-05-13 10:47:01 +03:00
Alex Plate
270ba9d196 Username is not required for token publishing 2021-05-13 10:43:51 +03:00
Matt Ellis
7300d252f8 Rename go to tab actions 2021-05-13 01:18:31 +01:00
Matt Ellis
9b73cc16e6 Move tab actions out of motion package 2021-05-13 01:12:24 +01:00
Matt Ellis
b7da57d6d1 [VIM-2308] Fix caret and scroll position after gt 2021-05-13 00:05:06 +01:00
Alex Plate
dee78cd503 Move to gradle plugin 1.0 2021-05-12 21:12:15 +03:00
Alex Plate
383e1d5245 Keep compatibility with easymotion plugin 2021-05-12 11:51:33 +03:00
Alex Plate
2ec9329f2e Update plugin.xml 2021-05-12 11:31:25 +03:00
Alex Plate
15fc2c01bd Update changes 2021-05-12 11:21:43 +03:00
Alex Plate
4fdd9b4710 Fix issue with global sethandler 2021-05-12 10:56:49 +03:00
Alex Plate
7765c464f3 Add sethandler to dic 2021-05-12 09:51:29 +03:00
Alex Plate
43eba0aa1d Update help link 2021-05-12 09:49:48 +03:00
Alex Plate
e097cd2daa Create sethandler documentation 2021-05-12 09:45:20 +03:00
Alex Plate
ad6b5719d2 Update copy action description 2021-05-12 09:45:20 +03:00
Alex Plate
5d344e3193 Rename setkeydev to sethandler 2021-05-12 09:45:19 +03:00
Alex Plate
0cd86282d2 Use setHtmlText for label 2021-05-12 09:45:19 +03:00
dependabot[bot]
6b8d00decf Bump remote-robot from 0.10.3 to 0.11.2
Bumps remote-robot from 0.10.3 to 0.11.2.

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 12:12:25 +03:00
Alex Plate
85aae4d408 Fix issues with Track action IDs notification 2021-05-11 10:54:20 +03:00
Shrikant Sharat Kandula
92b0a3abb2 Merge branch 'master' into extension/textobjindent
# Conflicts:
#	resources/META-INF/includes/VimExtensions.xml
2021-05-09 18:56:34 +05:30
Shrikant Sharat Kandula
444a48f2a1 More tests and fixes 2021-05-09 18:53:50 +05:30
Shrikant Sharat Kandula
039b44b07a Added more tests and fixes for the tests 2021-05-09 18:35:53 +05:30
Shrikant Sharat Kandula
d7ed33c351 Add test for basic tiny buffer, and fix it 2021-05-08 21:35:47 +05:30
Shrikant Sharat Kandula
0edff4665c Fix name mismatch causing tests to not run 2021-05-08 21:35:28 +05:30
Alex Plate
66b2fee823 Add .ideavimrc to dic 2021-05-04 15:42:12 +03:00
Alex Plate
2139e31754 Add help lines for the table 2021-05-04 14:51:19 +03:00
Alex Plate
3752d35229 Trigger readonly handler when perform editing operations 2021-04-30 16:08:04 +03:00
Alex Plate
9a90e80da1 Add more words to dictionary 2021-04-30 14:17:28 +03:00
Alex Plate
5d3ec771c4 Adding ideavim.dic file where IdeaVim-specific words can be defined 2021-04-30 13:48:21 +03:00
Alex Plate
6785d17ab3 Remove warning 2021-04-29 23:02:39 +03:00
Alex Plate
99a0415235 Do not expire the notification after help link pressing 2021-04-29 22:56:08 +03:00
Alex Plate
0fe3f50d93 Make helper text gray 2021-04-29 11:01:35 +03:00
Alex Plate
06647a4cf6 [VIM-2295] Fix s-space in insert mode with an existing mapping 2021-04-29 10:12:16 +03:00
Alex Plate
66b1e4a327 Update baseline 2021-04-28 12:06:20 +03:00
Alex Plate
a5e1a8116f Add copy action for conflicts table 2021-04-28 11:53:37 +03:00
Alex Plate
0bf77e1737 Update changes 2021-04-28 10:21:49 +03:00
Alex Plate
038f0a5135 Sort key owners modes 2021-04-28 10:17:42 +03:00
Alex Plate
e7d4dde9d9 Helper text with an example 2021-04-28 10:17:23 +03:00
michal
96dbbcff3e VIM-1476 Store last inserted text in ". register 2021-04-28 10:15:14 +03:00
Alex Plate
1479742fe8 Add helper message for the shortcut conflicts table 2021-04-27 11:58:11 +03:00
Alex Plate
45bebd898d Update gradle-intellij-plugin 2021-04-27 10:38:34 +03:00
Alex Plate
2f99cf81fc Use default renderer for per-mode shortcut owners 2021-04-26 12:05:56 +03:00
Alex Plate
0aa5450dc6 Expire the notification after pressing the action 2021-04-26 11:01:57 +03:00
Alex Plate
5cdca0b7c1 Change wording for undefined shortcut notification 2021-04-25 19:57:02 +03:00
Alex Plate
58ed857724 Use correct check mark for EAP 2021-04-25 19:34:25 +03:00
Alex Plate
66536a59a9 Add an .ideavimrc file template 2021-04-25 15:52:45 +03:00
Alex Plate
35ab292c9f Show "create ~/.ideavimrc" if this file is missing 2021-04-25 15:22:22 +03:00
Alex Plate
341f1e915f Change Contribute on GitHub to Star on GitHub 2021-04-25 15:01:07 +03:00
Alex Plate
28da9da752 Update README and CHANGES 2021-04-25 14:59:11 +03:00
Alex Plate
6ce9330d3b Rename EAP to Early Access Program 2021-04-25 14:55:07 +03:00
Alex Plate
c251ee2d22 Update shortcuts conflict notification 2021-04-25 00:52:43 +03:00
Alex Plate
cee5137603 Replace three dots with an ellipsis 2021-04-25 00:52:25 +03:00
Alex Plate
fd5c6d0024 Show full settings dialog instead of only part of it 2021-04-25 00:25:01 +03:00
Alex Plate
3d5a962332 Disable editing for PerMode keyowner 2021-04-25 00:14:46 +03:00
Alex Plate
f096b290a7 Parsing of setkey command 2021-04-24 23:44:10 +03:00
Alex Plate
5a9281ece4 [TC] Add 2021.1 version of IJ to tests 2021-04-24 16:42:50 +03:00
Alex Plate
b1367ec0a9 Split ShortcutOwnerInfo into two subclasses 2021-04-24 16:02:02 +03:00
Alex Plate
e73d919ed7 Continuation of experiments with mode-specific key handlers 2021-04-24 13:34:39 +03:00
Alex Plate
9bcb5e73ba Fix vim exchange with backward selection 2021-04-24 13:05:47 +03:00
Alex Plate
87f7510007 Add testWithoutNeovim annotations 2021-04-24 12:05:29 +03:00
Alex Plate
814e3d8ee7 Refactoring shortcut owner to add an information about applied mode 2021-04-24 12:05:10 +03:00
Alex Plate
d2cc6cca36 Convert ShortcutOwner to kt 2021-04-23 21:37:08 +03:00
Alex Plate
ea5a95d536 Rename .java to .kt 2021-04-23 21:37:08 +03:00
Alex Plate
a845eb3942 Rename ShortcutOwner variable name 2021-04-23 21:33:44 +03:00
Alex Plate
f87fb34943 Fix actions popup place issue 2021-04-23 20:34:41 +03:00
Matt Ellis
4dc9c1f433 Fix scrolling at end of file with folds
Caret must be within scrolloff lines of the bottom of the file

Fixes VIM-2291
2021-04-23 20:03:13 +03:00
Alex Plate
d885a63c7d Update plugin.xml 2021-04-23 09:47:59 +03:00
Alex Plate
62833f2fa9 Update formatting 2021-04-22 12:43:53 +03:00
Alex Plate
e6ff69d6fc Downgrade gradle wrapper to 6.8.2 2021-04-22 12:43:47 +03:00
Alex Plate
176f840cb6 Update gradle wrapper to 7.0 version 2021-04-22 12:34:40 +03:00
Alex Plate
76f06170ad [VIM-2290] Support vim-paragraph-motion plugin 2021-04-22 12:08:17 +03:00
Alex Plate
b6561cd940 Remove bintray dependency 2021-04-22 11:06:06 +03:00
Alex Plate
878d7070a4 Add some popular IJ actions to readme 2021-04-22 10:04:53 +03:00
Alex Plate
5f71198c88 [VIM-2289] Fix <End> command behavior 2021-04-22 09:54:22 +03:00
Alex Plate
8d941913aa Qodana cleanup 2021-04-21 10:46:38 +03:00
Alex Plate
599571e6ea Update formatting 2021-04-21 10:23:14 +03:00
Alex Plate
90709ef4d0 [CWM-2643] Create function for get list of editors of the current host 2021-04-21 10:04:04 +03:00
Alex Plate
378aa1026d [VIM-2284] Set command doesn't duplicate options 2021-04-20 11:13:14 +03:00
Alex Plate
4fb1761fa5 Execute action listeners when call for IDE action 2021-04-20 10:44:56 +03:00
Alex Plate
254193eb8c [TC] Revert updated qodana config 2021-04-20 09:39:15 +03:00
Alex Plate
d92e260ffd [TC] Update qodana config 2021-04-19 13:33:14 +03:00
Alex Plate
8f5a5e4d57 Disable neovim test for some tests 2021-04-19 11:58:24 +03:00
Alex Plate
d0d9535d2f Big refactoring of MotionHandler 2021-04-19 11:32:16 +03:00
Alex Plate
df1409af76 Add MichalPlacek to contributors list 2021-04-19 10:43:38 +03:00
michal
cfe34733e9 VIM-2276 ls returns "absolute path" for files on Microsoft Windows. 2021-04-19 10:40:04 +03:00
Alex Plate
e916cbe762 Update changes 2021-04-19 10:27:09 +03:00
Alex Pláte
a8a4142cef Merge pull request #280 from citizenmatt/ideavim-sidescroll
Caret position and view scrolling fixes
2021-04-16 11:21:42 +03:00
Alex Plate
3b3fffe838 [TC] update version 2021-04-09 11:19:13 +03:00
Alex Plate
d32b8a1e71 Prepare for the new release 2021-04-09 11:19:13 +03:00
Alex Plate
05e547edb5 Fix toRegex function for keyword option 2021-04-09 11:19:13 +03:00
Alex Pláte
1b25430fe7 Update README.md 2021-04-06 10:12:01 +03:00
Alex Plate
278dc6880c Add an option to trace actions execution time 2021-04-02 10:26:39 +03:00
Alex Plate
0bd1761077 Fixing Matt name (he is from England, not China) 2021-04-02 09:41:11 +03:00
Alex Plate
b1ae964ca3 Fix SearchGroup parsing in case of broken data 2021-04-01 11:20:19 +03:00
Alex Plate
56cbb9e9af Update changes 2021-04-01 09:33:14 +03:00
Alex Plate
70558574a8 Update changelog 2021-04-01 09:25:02 +03:00
Alex Plate
dab8375f5e Do not test some tests with neovim 2021-03-31 11:16:15 +03:00
Alex Plate
ccd9d05ac7 [TC] Extract linting and formatting into the separate job 2021-03-31 10:51:27 +03:00
Alex Plate
69a045c144 Fix formatting 2021-03-31 10:47:06 +03:00
Alex Plate
8f7b609c7c Remove wildcard import 2021-03-31 10:40:22 +03:00
Alex Plate
0019dd6c7a Do not try to compare text for vim reloading in non .ideavimrc file 2021-03-31 10:32:13 +03:00
Alex Plate
305a99afc8 Rename doTestWithoutNeovim function 2021-03-31 10:32:12 +03:00
Alex Pláte
eec23d9640 Merge pull request #276 from citizenmatt/refactor-searchgroup
More refactoring of SearchGroup
2021-03-31 10:30:31 +03:00
Matt Ellis
76f28ef94a Update formatting 2021-03-23 14:25:59 +00:00
Matt Ellis
3b89d96553 Handle scrolling page with virtual space 2021-03-23 01:01:15 +00:00
Matt Ellis
0fba78f885 [VIM-2177] Do not scroll end of file to bottom of screen 2021-03-22 14:20:28 +00:00
Matt Ellis
ee38944cf9 Fix caret position at end of file with scrolloff 2021-03-22 10:10:36 +00:00
Shrikant Sharat Kandula
c24cbcfbc0 Refactor implementation and test 2021-03-21 11:13:48 +05:30
Shrikant Sharat Kandula
28c01f0a43 Handle outer selection for lower boundary 2021-03-21 10:52:55 +05:30
Shrikant Sharat Kandula
182f671e35 Handle inner selection for upper boundary 2021-03-21 10:46:02 +05:30
Shrikant Sharat Kandula
788495aac8 Merge branch 'master' into extension/textobjindent
# Conflicts:
#	resources/META-INF/includes/VimExtensions.xml
2021-03-21 10:02:52 +05:30
Shrikant Sharat Kandula
7cbeb821f5 Upper boundary functional 2021-03-21 09:59:34 +05:30
Matt Ellis
36901194dc Scroll last line to bottom of screen with G 2021-03-18 21:26:42 +00:00
Matt Ellis
58071007bd Ignore sidescrolloff with caret at start of line 2021-03-18 21:20:48 +00:00
Matt Ellis
07bafdf416 Minor clean up 2021-03-17 12:17:51 +00:00
Matt Ellis
f7bb5ec500 Scroll view with Enter in insert mode 2021-03-17 12:17:51 +00:00
Matt Ellis
b92114fec6 Scroll view when inserting new line above 2021-03-17 12:17:51 +00:00
Matt Ellis
fe9bb2a712 Scroll view when inserting new line below 2021-03-17 12:17:51 +00:00
Matt Ellis
81996f8051 Do not beep when removing highlights with Escape 2021-03-17 12:17:51 +00:00
Matt Ellis
a0a976c345 Scroll view for <Del> and <BS> in insert mode 2021-03-17 12:17:51 +00:00
Matt Ellis
9315f36f16 Scroll view for <Tab> in insert mode
Note that this doesn't actually work, as we ignore <Tab> in insert mode, so that other actions, specifically the live template action, can handle it. Without this, Emmet doesn't work (VIM-674). The scrolling does work with <C-I>
2021-03-17 12:17:51 +00:00
Matt Ellis
cdc03836d2 Scroll view when moving up/down in insert mode 2021-03-17 12:17:50 +00:00
Matt Ellis
a14e95ad6c Scroll view when deleting text 2021-03-17 12:17:50 +00:00
Matt Ellis
dd230f720f [VIM-2230] Caret and inlay with preceding text 2021-03-17 12:17:50 +00:00
Matt Ellis
fa781de76f Simplify inserting register text 2021-03-17 12:17:50 +00:00
Matt Ellis
377e085aa0 Merge branch 'master' into refactor-searchgroup 2021-03-10 11:45:55 +00:00
Matt Ellis
3642b32ed6 Fix range handling 2021-03-10 10:30:33 +00:00
Alex Plate
8a6ecf005b Test using neovim with assertOffset 2021-03-10 11:47:45 +03:00
Alex Plate
6866fdbdf5 Update search group tests 2021-03-05 11:25:38 +03:00
Alex Plate
78bc4060b3 Update after rebase 2021-03-05 10:38:39 +03:00
Matt Ellis
16b901ea9e Update formatting 2021-03-05 10:38:39 +03:00
Matt Ellis
26a3974477 Stop multiple-cursors affecting search state
Searching no longer uses the high level search APIs that affect state such as saved searches, history and highlighting. Also conforms better to vim-multiple-cursors behaviour:
* Searches are now case sensitive
* Regular expressions in search text are ignored
* "Select all" works with nowrapscan
* Next occurrence based on existing selection no longer uses word boundary flag
* "No more matches" message shown at more appropriate times
2021-03-05 10:38:39 +03:00
Matt Ellis
9a10d6fe6c Remove usage of deprecated API 2021-03-05 10:38:38 +03:00
Matt Ellis
eb72def6d0 Remove unnecessary caret move 2021-03-05 10:38:38 +03:00
Matt Ellis
3fe2a2e3b0 Fix updating last search/sub patterns 2021-03-05 10:38:38 +03:00
Matt Ellis
d22d0f67b5 Remove duplication in invalid command message 2021-03-05 10:38:38 +03:00
Matt Ellis
e56e944309 Simplify writing state 2021-03-05 10:38:38 +03:00
Matt Ellis
2d853d8d28 Rename searchAndReplace processSubstituteCommand 2021-03-05 10:38:38 +03:00
Matt Ellis
e5d086dace Introduce test method to set state 2021-03-05 10:38:38 +03:00
Matt Ellis
eccdd725b7 Introduce processSearchRange 2021-03-05 10:38:37 +03:00
Matt Ellis
284e0b4bf5 Rename search to processSearchCommand
The method is doing more than just searching, such as parsing the search command and state management
2021-03-05 10:38:37 +03:00
Matt Ellis
47becb2721 Remove unused count for main search method
This method is the main implementation for '/' and '?' and does not support a count. It is currently being used incorrectly in places that should be using a simpler find helper.
2021-03-05 10:38:37 +03:00
Matt Ellis
0b64e26235 Replace search command flags with Direction enum 2021-03-05 10:38:37 +03:00
Matt Ellis
d90db8157c Remove overload that assumes primary caret offset 2021-03-05 10:38:37 +03:00
Matt Ellis
11da530151 Remove overload that takes a caret 2021-03-05 10:38:37 +03:00
Matt Ellis
c067c67e34 Remove unused code to move caret 2021-03-05 10:38:37 +03:00
Matt Ellis
89913ad4d7 Remove unused search handling from ProcessExEntry 2021-03-05 10:38:36 +03:00
Alex Plate
b73f34ad8c Useless change 2021-03-05 10:38:22 +03:00
Alex Plate
17cf68d8a5 Support testing without neovim for a lot of tests 2021-03-03 11:17:08 +03:00
Alex Plate
5c1795ee03 Add startofline option to the list of supported commands 2021-03-03 11:02:47 +03:00
Alex Plate
19a8480a88 Update changes 2021-03-03 11:01:04 +03:00
Matt Ellis
e0e80d2ea8 Update after running ktlintFormatter 2021-03-03 10:56:50 +03:00
Matt Ellis
adab2326ed Add 'startofline' to count percent motion 2021-03-03 10:56:50 +03:00
Matt Ellis
4ef629950d Add 'startofline' support for shift operations 2021-03-03 10:56:50 +03:00
Matt Ellis
39197df0c7 Add 'startofline' support for scrolling actions 2021-03-03 10:56:50 +03:00
Matt Ellis
1d3d6f0ea1 Add 'startofline' support to G, gg and i_<C-Home> 2021-03-03 10:56:50 +03:00
Matt Ellis
9272ffa52c Add 'startofline' support to goto line action 2021-03-03 10:56:50 +03:00
Matt Ellis
187e5864ac Add tests and introduce 'startofline' option
Update behaviour of H, L and M to handle 'scrolloff' correctly, operator pending mode and 'startofline' caret placement. Also implemented 'startofline' support for delete motion action.
2021-03-03 10:56:50 +03:00
Matt Ellis
e0711248a0 [VIM-2238] Correctly place cursor at mid line of short files 2021-03-03 10:56:50 +03:00
Alex Plate
bbbcf0502e Annotation some functions as not-neovim tested 2021-03-02 12:10:14 +03:00
Alex Plate
0498fac291 [TC] Add git label after stable release 2021-03-02 10:05:55 +03:00
Alex Plate
fa007148da [TC] Make slack notification only on stable releases 2021-03-02 10:05:55 +03:00
Alex Plate
7e69e5704a Rename task from eapNotification to notification 2021-03-02 10:05:55 +03:00
aleksei.plate
8579229797 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build features of 'Qodana checks' build configuration were updated 2021-03-02 06:59:48 +00:00
aleksei.plate
59d8f4c1cf TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2021-03-02 06:59:34 +00:00
Alex Plate
d05942ebe1 Use correct version of kotlin plugin 2021-02-26 11:18:28 +03:00
Alex Plate
1b9457bdff Update structure and add comments to build.gradle.kts 2021-02-26 10:21:36 +03:00
Alex Plate
05f2848d41 Convert gradle to kotlin DSL 2021-02-26 10:02:23 +03:00
Alex Plate
ab3a28e50d Rename from groovy to kotlin 2021-02-26 10:01:25 +03:00
Alex Plate
121daa81cc Remove some deprecations 2021-02-24 11:44:27 +03:00
Alex Pláte
17e1d75238 Create codeql-analysis.yml 2021-02-24 11:32:33 +03:00
Alex Plate
597cdf4398 [TC] Add fail condition on artifact size change 2021-02-24 11:20:40 +03:00
Alex Plate
215ca7806e Extract assets from the distribution 2021-02-24 11:20:15 +03:00
Alex Plate
92f0d28d24 Remove some warnings from tests 2021-02-24 10:30:44 +03:00
Alex Plate
d964a0c375 Update gradle-intellij plugin version 2021-02-24 10:21:48 +03:00
Alex Plate
332f04fdfe Remove deprecation 2021-02-24 10:17:12 +03:00
Alex Plate
291ea3bfb0 Enable fail on warning for java 2021-02-24 05:09:34 +03:00
Alex Plate
51dbef9060 [TC] Update job name 2021-02-24 04:28:05 +03:00
Alex Plate
d6f771f6c3 [TC] Extract github pull requests into the separate project 2021-02-24 04:24:09 +03:00
Alex Plate
d659ee2880 Apply qodana patch 2021-02-24 04:16:29 +03:00
Alex Plate
7b37a5e611 Update method 2021-02-24 04:16:20 +03:00
aleksei.plate
b99f2a23a8 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build features of 'Qodana checks' build configuration were updated 2021-02-24 01:14:35 +00:00
Alex Plate
a54d8af051 Linting 2021-02-24 04:07:51 +03:00
Alex Plate
62a309cba6 Update annotations 2021-02-20 18:20:29 +03:00
Alex Plate
b7c0e4725d Suppress code duplicate 2021-02-20 16:26:58 +03:00
Alex Plate
53a21fb5fe Qodana cleanup 2021-02-20 13:14:27 +03:00
Alex Plate
5802f7c2c5 [TC] Build dev build a bit later 2021-02-20 12:29:06 +03:00
Alex Plate
3c2640c90d [TC] Update fail condition 2021-02-20 12:19:47 +03:00
Alex Plate
6f2ea9e893 [TC] Update fail condition 2021-02-20 12:16:46 +03:00
aleksei.plate
8b06bdfc29 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: build features of 'Tests for IntelliJ Latest EAP' build configuration were updated 2021-02-20 09:15:09 +00:00
Alex Plate
b6a5e60b68 Fix qodana issues 2021-02-20 12:08:06 +03:00
Alex Plate
e16857457c [TC] Update configs 2021-02-20 11:52:00 +03:00
aleksei.plate
20663ec854 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: VCS roots of 'Qodana checks' build configuration were updated 2021-02-20 08:46:44 +00:00
Alex Plate
f0166dd18f Fix compatibility issues 2021-02-20 11:36:20 +03:00
Alex Plate
5b8fe2393e Qodana fixes 2021-02-20 11:26:53 +03:00
dependabot[bot]
b08408c3c7 Bump org.jetbrains.changelog from 1.1.1 to 1.1.2
Bumps org.jetbrains.changelog from 1.1.1 to 1.1.2.

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-19 23:22:43 +03:00
Alex Plate
060f8ece8a Update qodana 2021-02-19 20:06:14 +03:00
Alex Plate
eedc50b4fe Fix deprecation issue 2021-02-19 19:53:59 +03:00
Alex Plate
d7a636e4de Add qodana inspection profile 2021-02-19 19:34:42 +03:00
Alex Plate
9e9319f117 Remove some warnings from the code 2021-02-19 19:14:33 +03:00
Alex Plate
928162798f [TC] Remove unused imports 2021-02-19 11:51:14 +03:00
Alex Plate
b5b71a2dc6 Update detekt rules 2021-02-19 11:48:18 +03:00
Alex Plate
033b792b54 Disable wildcard rule of the ktlint 2021-02-19 11:47:07 +03:00
Alex Plate
7ab53edbbf Code reformatting to avoid issues between IJ and ktlint formatting 2021-02-19 11:31:41 +03:00
Alex Plate
624c3bf223 A massive code reformatting using intellij 2021-02-19 11:12:36 +03:00
Alex Plate
cf28312740 A massive code reformatting using ktlint 2021-02-19 10:42:28 +03:00
Alex Plate
a1e2beb1cf Update submodule reference 2021-02-19 09:58:49 +03:00
Alex Plate
4af9ab0bcb Add information about disabling single click option 2021-02-17 15:44:42 +03:00
Alex Plate
8d3bde86e3 Update nerdtree wiki page 2021-02-17 11:14:23 +03:00
Alex Plate
7011a4fe07 Update TC versions 2021-02-17 11:07:57 +03:00
Alex Plate
76f14fc4ba Preparation for the 0.65 release 2021-02-17 11:06:23 +03:00
Alex Plate
923c0fee7a [VIM-2153] Always store data as base64 encoded 2021-02-16 10:19:14 +03:00
Alex Plate
b62680137e Update dependencies 2021-02-15 10:59:48 +03:00
Andrey Vlasovskikh
cd5c4247a6 Moved Andrey Vlasovskikh to previous maintainers
I maintained the plugin during 2012-10/2021-02. In 2019-02 Alex Plate joined me as a plugin developer and maintainer. Since then Alex has added tons of cool features and important fixes and has become the #1 committer to the IdeaVim repository. Thank you Alex for your great work! I'm stepping down from my maintainer role, but I will keep contributing to the plugin. Alex Plate is now the maintainer of IdeaVim. There is a live community of contributors to the plugin mentioned in AUTHORS.md. IdeaVim is a very active and welcoming open-source project. I wish Alex and the IdeaVim community all the best!
2021-02-11 13:53:05 +03:00
Alex Pláte
d1e1692581 Update CHANGES.md 2021-02-09 11:56:55 +03:00
Alex Plate
c9fd0782ae Use a different method for compatibility 2021-02-08 12:41:30 +03:00
Alex Plate
c5779935d3 Extract escape key code 2021-02-08 12:28:34 +03:00
Alex Plate
70154d4526 Add log line about NERDTree 2021-02-08 12:16:37 +03:00
Alex Plate
070dfae93d Fix nerdtree for multiple opened projects 2021-02-08 12:11:54 +03:00
Alex Plate
4e5fc734e2 Fix quick search in NERDTree 2021-02-08 11:22:53 +03:00
Alex Plate
9004749754 Update compatibility with ActionPromoter 2021-02-08 10:19:06 +03:00
Alex Plate
e42e7b81ef Fix tests 2021-02-02 19:14:02 +03:00
Alex Plate
e788221099 [VIM-2220] Do not try to get a command state for null editor 2021-02-02 11:37:39 +03:00
Alex Plate
e96b383339 Update email 2021-02-02 11:16:57 +03:00
Alex Plate
e63044e72f [VIM-2217] Fix AppCode specific code 2021-02-01 11:14:30 +03:00
Alex Plate
0ac530eb86 Add 大牙(Henry Zhu) to the contributors list 2021-02-01 10:32:53 +03:00
大牙(Henry Zhu)
c1fd63ab25 fix invalid url of docs 2021-02-01 10:28:48 +03:00
Alex Plate
fd0d010908 Update the link to ideajoin examples 2021-02-01 10:27:30 +03:00
Alex Plate
de159d6e3a Add IdeaVim actions promoter to promote vim actions 2021-02-01 10:17:33 +03:00
Alex Plate
27293c3d36 Deprecate EditorDataContext construction instead of making it private 2021-01-29 12:15:16 +03:00
Alex Plate
ffe55f05ba Update plugin verifier versions 2021-01-29 11:46:56 +03:00
Alex Plate
d3b9a5af37 Update todo list of the NERDTree plugin 2021-01-29 11:38:41 +03:00
Alex Plate
d7772bec48 Add empty test to avoid warning 2021-01-29 11:33:06 +03:00
Alex Plate
c2e32d8989 Add docs as submodule 2021-01-28 18:25:57 +03:00
Alex Plate
cdbff1ef64 Remove doc folder from the project 2021-01-28 18:25:00 +03:00
Alex Plate
7d20053401 Disable random mappings property test 2021-01-26 11:19:58 +03:00
Alex Plate
7029346d8d Add information about nerdtree to changes 2021-01-26 11:04:55 +03:00
Alex Plate
544f268ab8 Update extension so they register key mappings only if there isn't already registered another mapping 2021-01-26 10:52:26 +03:00
Alex Plate
7dd10474c4 Update mapping property test 2021-01-25 03:06:24 +03:00
Alex Plate
f851794cf2 Reduce mapping depth to 20 2021-01-25 03:06:13 +03:00
Alex Plate
0ccc0f0846 Use existing variable to track recursion 2021-01-25 02:52:57 +03:00
Alex Plate
40d1b2ddd5 Reduce size of maxmapdepth 2021-01-25 00:24:01 +03:00
Alex Plate
a219be6810 Update mapping property test 2021-01-25 00:21:48 +03:00
Alex Plate
fee3f03e17 Create a property test for mappings 2021-01-25 00:10:56 +03:00
Alex Plate
62128a14e7 Support mapping recursion preventing 2021-01-24 23:59:14 +03:00
Alex Plate
47b604c6a7 Update EditorDataContext to avoid recursion 2021-01-24 23:27:46 +03:00
Alex Plate
9fc9cdc9f3 Add more tests for different mappings cases 2021-01-24 22:00:58 +03:00
Alex Plate
5daa654d10 [VIM-1337] Fix mapping processing after timeout 2021-01-24 22:00:58 +03:00
Alex Plate
8c51c699e9 Enable mappings delay for tests 2021-01-24 20:46:34 +03:00
Alex Plate
913fb0648b Remove unused argument 2021-01-24 20:32:50 +03:00
Alex Plate
1eacb09f3c Add notion why we don't map plugin mappings 2021-01-23 03:11:25 +03:00
Alex Plate
efcfceef39 Join some delete actions into a single file 2021-01-23 03:04:58 +03:00
Alex Plate
e977ae9e88 Remove testing character 2021-01-23 03:04:58 +03:00
dependabot[bot]
b7c8d2f34c Bump remote-robot from 0.10.0 to 0.10.3
Bumps remote-robot from 0.10.0 to 0.10.3.

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-23 03:04:41 +03:00
Alex Plate
51f1e6f866 Fix characters yanking 2021-01-23 02:18:04 +03:00
Alex Plate
28abf15720 Update contacts & help label 2021-01-23 01:21:31 +03:00
Alex Plate
6b9a295549 Extract ui tests into a separate gradle tas 2021-01-22 20:50:46 +03:00
Alex Plate
c63a0200b3 Load extensions after vim script loading 2021-01-22 20:41:10 +03:00
Alex Plate
5fdb817bfd Support t and T 2021-01-22 20:20:24 +03:00
Alex Plate
1b5bdf5db3 Make varible private 2021-01-22 18:18:13 +03:00
Alex Plate
8022ed450c Support more nerdtree ex commands 2021-01-22 17:50:32 +03:00
Alex Plate
255734acc5 Update detekt 2021-01-22 16:18:04 +03:00
Alex Plate
34b0c93ecd Update docs 2021-01-22 16:15:53 +03:00
Alex Plate
2221e5234d Support A, q 2021-01-22 16:14:17 +03:00
Alex Plate
8dd8cce491 Support r, R, and m 2021-01-22 16:06:04 +03:00
Alex Plate
d74965d36d Add scrolling command for existing commands 2021-01-22 15:54:06 +03:00
Alex Plate
cb9e6c4c69 Support C-K and C-J commands 2021-01-22 15:51:26 +03:00
Alex Plate
1d93edd35b Update docs 2021-01-22 15:48:41 +03:00
Alex Plate
4c071b9d97 Update P command implementation 2021-01-22 15:47:58 +03:00
Alex Plate
570eceb653 Support P, p, J, K commands 2021-01-22 15:39:19 +03:00
Alex Plate
a34a01745c Support x and X commands 2021-01-22 14:25:15 +03:00
Alex Plate
a4b9fa0f69 Support O command 2021-01-22 13:59:04 +03:00
Alex Plate
2da18fe59f Support variables in NERDTree 2021-01-22 12:50:59 +03:00
Alex Plate
5a969d573a Add list of commands 2021-01-22 12:41:10 +03:00
Alex Plate
0eff36a38e Implement s, i, gs, gi commands 2021-01-22 12:39:07 +03:00
Alex Plate
241bacfd49 Support s command 2021-01-21 20:48:00 +03:00
Alex Plate
b292644531 Support go command 2021-01-21 20:34:14 +03:00
Alex Plate
3264837478 Use trie to store keys 2021-01-21 20:21:27 +03:00
Alex Plate
70bf5033b5 Extract logic of adding leafs 2021-01-21 19:48:04 +03:00
Alex Plate
9ffe114aeb Generalize existing Node for building a trie 2021-01-21 18:06:53 +03:00
Alex Plate
75f6e08d85 Support o command 2021-01-21 17:30:14 +03:00
Alex Plate
3b0c19fbfc Implement node opening/closing 2021-01-21 16:24:40 +03:00
Alex Plate
e4d10eb622 Implement up/down motions 2021-01-21 10:17:55 +03:00
Alex Plate
9cc4783415 Update gradle wrapper to 6.8 2021-01-20 13:28:58 +03:00
Alex Plate
762bd81611 Update detekt baseline 2021-01-20 13:26:45 +03:00
Alex Plate
6afdfb55ca Start implementing NERDTree support. Support focus command 2021-01-20 10:40:48 +03:00
Alex Plate
cb3508b30d Support command aliases to function 2021-01-20 10:26:44 +03:00
Alex Plate
171ffc6862 Refactor command aliases 2021-01-20 10:19:02 +03:00
Alex Plate
0f19b7415f Update inspections profile 2021-01-20 10:18:52 +03:00
Alex Plate
38019cdb91 Convert command parser to kt 2021-01-20 09:58:40 +03:00
Alex Plate
89bcb43271 Rename .java to .kt 2021-01-20 09:58:39 +03:00
Alex Plate
5101dc00b3 Name for extension is not deprecated 2021-01-20 03:09:04 +03:00
Alex Plate
a7774349e5 Update copyright year 2021-01-20 03:07:13 +03:00
Alex Plate
b309e9d4bd Add alternative plugin syntax for EasyMotion 2021-01-20 03:07:12 +03:00
paksv
ba3fdbe142 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2021-01-19 18:46:29 +00:00
paksv
645d53f13b TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2021-01-19 18:46:00 +00:00
Alex Plate
838c6361de Update changelog plugin 2021-01-14 18:40:42 +03:00
Alex Plate
6cb1d4ad1f [TC] Update kotlin dsl version 2021-01-14 17:08:27 +03:00
Alex Plate
28dfda1370 [TC] Add job for property based tests 2021-01-14 17:00:42 +03:00
Alex Plate
c73b8cf795 [TC] Apply TC patch 2021-01-14 16:58:11 +03:00
Alex Plate
807777f022 [TC] Enable qodana job 2021-01-14 16:55:37 +03:00
nikita.koshcheev
866488ac0f TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2021-01-14 08:34:25 +00:00
Alex Plate
10097e3d6e Exclude property based tests from regular test task 2021-01-14 11:14:55 +03:00
nikita.koshcheev
becb22a6b0 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: Updated cloud profile 'amazon-48' in project 'project55' 2021-01-14 08:07:26 +00:00
Alex Plate
37fcecfdd8 [TC] Apply qodana patch 2021-01-13 22:16:41 +03:00
aleksei.plate
c4144eb3d2 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: runners of 'Qodana checks' build configuration were updated 2021-01-13 17:52:37 +00:00
Alex Plate
d29244efcc [TC] Add qodana build type 2021-01-13 20:22:58 +03:00
Alex Plate
8901ba0128 [VIM-2202] Fix issues with search command macro recording 2021-01-11 13:48:20 +03:00
Alex Plate
b07342baef Convert macros test to kotlin 2021-01-11 12:47:47 +03:00
Alex Plate
4d69f984b8 Rename .java to .kt 2021-01-11 12:47:47 +03:00
Alex Plate
e1149907ce Extract versions into the constant 2020-12-29 19:34:08 +03:00
Alex Plate
263376ae92 Add dev builds to the project 2020-12-29 19:08:18 +03:00
Alex Plate
07abc2e2e0 Disable "always inverted" inspection 2020-12-29 11:01:14 +03:00
Alex Plate
7eba54f09a Disable LightEdit support for IdeaVim 2020-12-29 10:37:55 +03:00
Sergei Vorobyov
1eac924291 fixed: don't show reload vimrc floating toolbar in non-file editors
for example in editor from `Preferences | Editor | Font`
2020-12-29 09:49:23 +03:00
Alex Plate
3ffe250f78 Add dev channel build to teamcity 2020-12-29 09:47:37 +03:00
Alex Plate
15d173e628 Assert register type with neovim 2020-12-26 04:39:52 +03:00
Alex Plate
b24424330c Update detekt baseline 2020-12-25 11:38:53 +03:00
Alex Plate
ebffa83f17 Add counter of NeoVim tests 2020-12-25 11:37:45 +03:00
Alex Plate
6abc71a57d Update neovim api 2020-12-25 11:29:42 +03:00
dependabot[bot]
8afb20c53b Bump io.gitlab.arturbosch.detekt from 1.14.1 to 1.15.0
Bumps io.gitlab.arturbosch.detekt from 1.14.1 to 1.15.0.

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-25 11:05:49 +03:00
Alex Plate
501541b8be Add Sergei Vorobyov to contributions list 2020-12-25 11:03:50 +03:00
Sergei Vorobyov
e56f63dc0f migrated: New floating toolbar API 2020-12-25 10:56:53 +03:00
Alex Plate
7e0c33f9a0 Add log file to run configuration 2020-12-25 10:38:28 +03:00
Alex Plate
bb1b8363d9 Check dependabot updates on wednesday 2020-12-25 09:47:12 +03:00
Alex Pláte
e5e585443d Create dependabot.yml 2020-12-25 09:33:08 +03:00
Shrikant Sharat Kandula
82e39c9236 Fix handling when caret line has no indentation 2020-12-24 21:10:21 +05:30
Shrikant Sharat Kandula
1e69e98b92 Initial working implementation of indent objects 2020-12-24 20:59:55 +05:30
Alex Plate
d0888a063f Refactor code 2020-12-24 10:58:58 +03:00
Alex Plate
bd5781a039 Optimize imports 2020-12-24 10:46:42 +03:00
Alex Plate
a643c75e7f Update detekt config 2020-12-24 10:40:54 +03:00
Alex Plate
d4db40f9cc Add yank delete property test 2020-12-24 10:32:37 +03:00
Alex Plate
788489119b Rename property test 2020-12-24 10:24:41 +03:00
Alex Plate
665adaa44b Fix last line calculation 2020-12-24 10:22:11 +03:00
Alex Plate
9f19ee9586 Include neovim registers check into tests 2020-12-24 09:32:06 +03:00
Alex Plate
bb84b0e368 Refactor deleting 2020-12-24 09:32:06 +03:00
Alex Plate
7976fdd019 Extract old tests into the separate project 2020-12-23 11:35:28 +03:00
Alex Plate
0d3b45189b Add name property 2020-12-23 11:29:50 +03:00
Alex Plate
7005cb0268 Extract releases into the separate TC subproject 2020-12-23 11:27:25 +03:00
Alex Plate
81421d918a Sign releases with Alex Plate name 2020-12-23 11:18:35 +03:00
Alex Plate
e3fe198fc1 Update release token to Alex Plate for 201 release 2020-12-23 10:46:12 +03:00
aleksei.plate
76d62771e0 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: parameters of 'Publish Release 2020.1' build configuration were updated 2020-12-23 07:43:45 +00:00
aleksei.plate
4da538302d TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: parameters of 'Publish Release 2020.1' build configuration were updated 2020-12-23 07:43:30 +00:00
Alex Plate
b981193f19 Create TC configuration for releasing 2020.1 version 2020-12-23 10:37:48 +03:00
Alex Plate
c656da5c75 Prepare to 0.64 release 2020-12-23 09:49:45 +03:00
Alex Plate
dcedf6abca Mute another broken test 2020-12-18 15:03:25 +03:00
Alex Plate
849a71bdac Update changes 2020-12-18 13:18:08 +03:00
Alex Plate
534cc1d1fe Disable broken test 2020-12-18 12:26:10 +03:00
Alex Plate
40ec6c53fa Revert "Add statistic collection for some options"
Classes of the collector are incompatible with 202

This reverts commit b7cb3c09
2020-12-18 11:57:06 +03:00
Alex Plate
b7cb3c0945 Add statistic collection for some options 2020-12-17 23:13:54 +03:00
Alex Plate
69d3c7b754 resetCaset function should not change the shape of other editors
This commit fixes the following issues:
1) Windows splitting
- Start insert mode in editor
- Split editor
- Go back to the previous editor. The caret has a block shape, but insert mode

2) VCS updates
In 2021.1 VCS creates a diff window right after the file was changed.
So, the case described above happens here as well.
2020-12-17 10:53:43 +03:00
Alex Plate
542f11804e Update detekt baseline 2020-12-17 10:14:11 +03:00
Alex Plate
8526054aa8 Update changes 2020-12-17 10:05:04 +03:00
Alex Plate
93700bddc7 Update deprecated methods according to the new minimal IJ requirements 2020-12-17 10:04:52 +03:00
Matt Ellis
494500041b Rearrange and document the public search API
No code changes, just moved everything
2020-12-17 10:02:16 +03:00
Matt Ellis
011a5a3b23 Remove unnecessary UNSET direction enum value 2020-12-17 10:02:16 +03:00
Matt Ellis
03726858f0 Move find methods to SearchHelper 2020-12-17 10:02:16 +03:00
Alex Plate
c8c42cc4b2 Update plugin verifier versions 2020-12-16 13:00:32 +03:00
Alex Plate
0b22b454e6 Prepare to 0.63 release 2020-12-16 12:56:25 +03:00
vladimir.petrenko
f4fe03c582 CWM-927 disable vim for client's hidden editor on host
to provide compatibility with Code With Me plugin
2020-12-16 12:27:34 +03:00
Alex Plate
964e87fd6a Update minimap IJ version to 202 2020-12-16 11:39:49 +03:00
Alex Plate
ec4c0a0d0d Update teamcity configurations to deprecate 201 branch 2020-12-16 11:38:52 +03:00
Alex Plate
f9cf62472c Prepare to 0.62 release 2020-12-15 10:12:31 +03:00
Alex Plate
ace584d294 Fix settings saving issues because of NPE 2020-12-15 09:35:35 +03:00
Alex Plate
5cd669202b Remove time calculation for isIdeavimDisabledHere 2020-12-10 10:06:29 +03:00
Alex Plate
4a09848720 Revert incorrect update 2020-12-10 10:03:51 +03:00
Alex Plate
f998f1be9f Update teamcity ide version for pull requests builds 2020-12-10 09:52:07 +03:00
Alex Plate
3352bdfabb Remove some deprecations in code 2020-12-10 09:50:05 +03:00
Alex Plate
ce43a9648f Update profile settings 2020-12-10 09:40:57 +03:00
Alex Plate
440a0bf393 Remove incorrect link in package-info.java 2020-12-10 09:36:59 +03:00
Alex Plate
64a7555f42 [VIM-2188] Remove deprecated configuration store 2020-12-10 09:35:07 +03:00
Alex Plate
3aa6fe3dc0 Update algorithm of number generation 2020-12-08 12:11:41 +03:00
Alex Plate
3522228d45 Add new line at the end of test 2020-12-08 11:36:23 +03:00
Alex Plate
9b42d9a5c6 Add test for incrementing fancy number 2020-12-08 11:35:11 +03:00
Alex Plate
4e8d98f956 Add Shaun Patterson to contributors list 2020-12-08 10:54:15 +03:00
Alex Plate
f6c3d27bbc Reset caret shape after <C-O> command 2020-12-08 10:50:06 +03:00
Alex Plate
21daf83fbd Include caret shape assertions into checks 2020-12-08 10:50:05 +03:00
Shaun Patterson
7f1203c207 VIM-1756: startSel works in insert mode 2020-12-08 10:49:19 +03:00
Alex Plate
89b1f90973 Fix detekt issues 2020-12-04 11:21:40 +03:00
Alex Plate
8002a5497f [VIM-1913] Update changes 2020-12-04 11:07:11 +03:00
Alex Plate
770d12d79b [VIM-1913] Enable enter for AppCode templates 2020-12-04 11:05:32 +03:00
Alex Plate
7e4ac22d23 [VIM-1913] Enable tab for AppCode templates 2020-12-04 10:45:56 +03:00
Alex Plate
4f4b26d3e1 Update CHANGES.md 2020-12-04 09:54:58 +03:00
Matt Ellis
4ea7c421a8 Extract and use common Direction enum 2020-12-04 09:53:58 +03:00
Matt Ellis
3c8b7e2de4 Convert SearchHighlightsHelper to Kotlin 2020-12-04 09:53:58 +03:00
Matt Ellis
b13acaf823 Rename .java to .kt 2020-12-04 09:53:58 +03:00
Matt Ellis
709cd6ad6e Extract SearchHighlightsHelper 2020-12-04 09:53:58 +03:00
Matt Ellis
1316ccc56f Update default for history to match Vim 2020-12-04 09:53:58 +03:00
Matt Ellis
881ddd0e11 Refactor setting special registers 2020-12-04 09:53:58 +03:00
Matt Ellis
49611ee6b9 Show the correct handler class in :map 2020-12-04 09:33:14 +03:00
Alex Plate
539465bb56 Update property based test 2020-12-03 10:50:57 +03:00
Alex Plate
bc54a73d69 Add suggested options to README.md 2020-12-03 10:13:28 +03:00
Alex Plate
5eb12f5d14 Update mappings in .ideavimrc example 2020-12-03 10:09:05 +03:00
Alex Plate
557e47650f Disable octal for nrformats 2020-12-03 10:07:27 +03:00
Alex Plate
f50753bfd7 Add tests for 2020.3 on TeamCity 2020-12-03 10:02:21 +03:00
Alex Plate
7a164d6d5f Updates to block caret in insert mode 2020-12-02 10:58:04 +03:00
Alex Plate
60bc936cd9 Take back: VIM-1475: Respect the "use block caret" when in insert mode 2020-12-02 10:31:01 +03:00
Alex Plate
d097e636ea Add test for double exiting visual mode 2020-12-02 10:30:37 +03:00
Alex Plate
3ce2bbb624 Rename test for visual exit 2020-12-02 10:27:28 +03:00
Alex Plate
4926d2554e Revert "VIM-1475: Respect the "use block caret" when in insert mode"
Reverting this commit due to VIM-2182

This reverts commit 62c828d7
2020-12-02 09:45:08 +03:00
Alex Plate
eae135acba Fix detekt issues 2020-12-01 12:19:08 +03:00
Alex Plate
8ce3801b87 [VIM-1913] Improve interaction with AppCode templates 2020-12-01 11:55:47 +03:00
Alex Plate
0c7c11f817 Ignore ui test 2020-12-01 10:02:53 +03:00
Alex Plate
b3a39c05d7 Update plugin.xml 2020-12-01 09:56:05 +03:00
Alex Plate
7370012667 Add getUnreleasedChangelog task to build.gradle 2020-12-01 09:52:56 +03:00
Alex Plate
412838fd4b Remove implemented manual tests 2020-11-27 12:05:00 +03:00
Alex Plate
273a614389 Add gutter ui test 2020-11-27 12:03:28 +03:00
Alex Plate
3944c80ae2 Update gradle intellij plugin 2020-11-27 10:54:22 +03:00
Alex Plate
726ab3f91b Add test with mouse dragging 2020-11-26 12:12:54 +03:00
Alex Plate
ab307dd78f Injecting text instead of typing it 2020-11-26 11:53:07 +03:00
Alex Plate
e3079912ae Remove unused handlers 2020-11-26 10:24:22 +03:00
Alex Plate
52da3ed0e4 Update info file 2020-11-26 09:44:48 +03:00
Alex Plate
cda85169ea Add new line for ExEditorKit.kt 2020-11-25 17:22:26 +03:00
Alex Plate
978d1df598 Disable internationalization inspections 2020-11-25 17:13:25 +03:00
Alex Plate
f90d22cc20 Refactoring of ex actions 2020-11-25 10:49:50 +03:00
Alex Plate
bae69d92ae Rename .java to .kt 2020-11-25 10:49:50 +03:00
Alex Plate
b910239825 Put ex panels into the separate package 2020-11-25 10:49:50 +03:00
Alex Plate
6421a5969a Update changes 2020-11-25 10:05:43 +03:00
sumoooru2
5c9faba7f4 Implement cmap 2020-11-25 10:00:15 +03:00
Alex Plate
c1af738cc5 Add another ui test 2020-11-24 12:47:10 +03:00
Alex Plate
23a80a9260 [VIM-2170] Fix alternative range format for s command 2020-11-23 11:49:30 +03:00
Alex Plate
d9d92f7eee Add another ui test 2020-11-20 20:18:19 +03:00
Alex Plate
c8be6c203e Update intellij plugin version 2020-11-20 12:39:00 +03:00
Alex Plate
612c599d9b Update compatibility a bit 2020-11-20 11:38:22 +03:00
Alex Plate
1292c7d1ae Remove unused import 2020-11-20 11:17:40 +03:00
Alex Plate
69f07967b5 Fix compilation issus for <203 2020-11-20 11:00:29 +03:00
Alex Plate
aedd427c07 Optimize imports 2020-11-20 10:45:26 +03:00
Alex Plate
9b6c3dc511 Fix unresolved references 2020-11-20 10:17:52 +03:00
Alex Plate
b4fa7f4317 Replace @NlsSafe annotation from utils with our own 2020-11-20 09:58:43 +03:00
Alex Plate
f053d305d5 Remove neovim from implementation 2020-11-20 09:35:48 +03:00
Alex Plate
1d95b7ddf7 Move run configurations to the .idea 2020-11-19 16:43:27 +03:00
Alex Plate
01a6964d68 Use neovim for tests only 2020-11-19 11:59:41 +03:00
Alex Plate
d661f96a9b Reformat for MessageHelper.kt 2020-11-19 11:26:27 +03:00
Alex Plate
c79fae8ab3 [i18n] Mark some strings as @NonNls 2020-11-19 11:22:11 +03:00
Alex Plate
121f130893 Ignore toString localization 2020-11-19 05:55:35 +03:00
Alex Plate
da9a0a414a [i18n] Extract more starting for localization 2020-11-19 00:26:17 +03:00
Alex Plate
e0732e041b Start with UI tests in the project 2020-11-18 22:03:46 +03:00
Alex Plate
6fc5b3189a [i18n] More extracted strings 2020-11-18 18:49:55 +03:00
Alex Plate
2a0c9cb749 [i18n] Add another file template 2020-11-18 14:22:39 +03:00
Alex Plate
7ad131b448 [i18n] More extracted strings 2020-11-18 13:03:35 +03:00
Alex Plate
3e7186bd60 [i18n] Update @Nls annotations 2020-11-18 13:03:35 +03:00
Alex Plate
132f8cce53 [i18n] Extract more strings 2020-11-18 13:03:35 +03:00
Alex Plate
5c07f42afb Disable unstable api usage inspection 2020-11-18 12:33:51 +03:00
Alex Plate
1f7a2594c8 Convert some strings to properties 2020-11-18 11:26:03 +03:00
Alex Plate
ec64d19a36 Update JetBrains annotations 2020-11-18 11:25:39 +03:00
Alex Plate
5cb67470d5 Enable hardcoded string inspection 2020-11-18 11:25:39 +03:00
Alex Plate
c03f01a96a Update MessageHelper.kt 2020-11-18 03:09:57 +03:00
Alex Plate
26b67a43ae Fix formatting 2020-11-17 19:55:09 +03:00
Alex Plate
a93ca3a205 Support mapclear commands 2020-11-17 19:47:56 +03:00
Alex Plate
dcc647ba3c [VIM-1491] Support unmap 2020-11-17 19:38:22 +03:00
Alex Plate
fe44f59239 Refactor map handler 2020-11-17 19:36:41 +03:00
Alex Plate
80dba0babf Move MapHandler into the separate package 2020-11-17 19:36:17 +03:00
Yaohui Wang
34acf9a91e Add CJK characterType for delimiting caret movement
- Add unicode CJK Unified Ideographs type
- Stop caret movement for CJK chars (as VIM does). Similar to VIM-58
2020-11-17 10:21:49 +03:00
Alex Plate
cb859dbb7b Add Grzegorz Antoniak to the contributors list 2020-11-17 10:16:13 +03:00
Alex Plate
20c04b1e62 Add Brandon Conway to the contributors list 2020-11-17 10:09:21 +03:00
Alex Plate
69eaf8ed0c Jan Palus was already on the list 2020-11-17 10:09:21 +03:00
Grzegorz Antoniak
62c828d722 VIM-1475: Respect the "use block caret" when in insert mode
The "use block caret" IDEA option controls the style of the cursor: when
it's enabled, the cursor is drawn as a block, and when it's disabled,
it's drawn as a bar. However, after installing IdeaVIM, this option
isn't respected; the plugin always uses a block cursor when in command
mode, and always uses a bar cursor when in insert mode.

This commit changes the behavior so that when the "use block caret"
option is enabled, IdeaVIM's insert mode uses a block cursor instead of
a bar cursor. The cursor in normal mode is always drawn as a block
cursor. If the "use block caret" option is disabled, the behavior is the
same as in previous versions of IdeaVIM (block cursor in normal mode,
bar cursor in insert mode).

Fixes VIM-1475 (on YouTrack)
2020-11-17 10:06:32 +03:00
Brandon Conway
251e8e8ff4 Fix typo 2020-11-16 11:20:07 +03:00
Alex Plate
acc41ec72e Add warning to the info about ideavimrc file 2020-11-13 15:15:28 +03:00
Alex Plate
f9ebcf2ee4 Update readme section 2020-11-13 15:13:01 +03:00
Alex Plate
f3df231dc2 Update changes 2020-11-13 12:35:21 +03:00
Jan Palus
75a1bb7cc5 VIM-2114 Do not override registers when deleting empty range 2020-11-13 12:34:04 +03:00
Alex Plate
7d6a64315a Add Jan Palus to contributors list 2020-11-13 11:58:10 +03:00
Jan Palus
2758071d31 VIM-2113 Increase tag range only in visual mode 2020-11-13 11:54:08 +03:00
Alex Plate
3881b905be Update CHANGES.md 2020-11-12 10:51:57 +03:00
Alex Plate
073c62f868 Update version on TeamCity 2020-11-12 10:50:25 +03:00
Alex Plate
d8e0f26bea Revert "Unmute falling tests"
This reverts commit 0296cae7
2020-11-12 10:48:54 +03:00
Alex Plate
04c24ab5d0 Run manual tests 2020-11-12 10:38:02 +03:00
Alex Plate
bfb0ba1ab9 Update emulated plugins 2020-11-12 10:31:11 +03:00
Alex Plate
fb7d48af1f Update IDE actions section in README 2020-11-12 10:11:33 +03:00
Alex Plate
559989ce4b Remove all To Be Released labels 2020-11-12 10:03:56 +03:00
Alex Plate
81f59e3c18 Update plugin.xml 2020-11-12 10:03:04 +03:00
Alex Plate
b6adf9f7a9 Rename ideaenabledbufs to ideavimsupport 2020-11-12 09:45:29 +03:00
Alex Plate
b972a01cf0 Add merged PR to changes 2020-11-12 09:41:57 +03:00
Alex Plate
0296cae712 Unmute falling tests 2020-11-12 09:39:09 +03:00
Matt Ellis
c38b18e16b Prevent inlays causing scrolling to stick 2020-11-12 09:37:55 +03:00
Matt Ellis
8d65c3ed26 Limit how much of an inlay is shown when scrolling 2020-11-12 09:37:55 +03:00
Matt Ellis
995bb966ad Reposition cursor when scrolloff changes 2020-11-12 09:37:55 +03:00
Matt Ellis
dbda1a76ca [VIM-2158] Fix scrolling when scrolloff is greater than half screen height, but less than full screen height 2020-11-12 09:37:55 +03:00
Alex Plate
ed6f990d9a Remove some qodana inspections 2020-11-06 21:39:37 +03:00
Alex Plate
4f86d9cc77 Correct visual mode exiting when after line end 2020-11-06 20:26:26 +03:00
Alex Plate
d55774abab Use vimForEachCaret 2020-11-06 20:21:05 +03:00
Alex Plate
d5591ba08d Update qodana profile 2020-11-06 20:00:21 +03:00
Alex Plate
f67d483c4e Exclude next method from property based testing 2020-11-06 19:48:33 +03:00
Alex Plate
f26ddd4a27 Fix exception in aW 2020-11-06 19:12:40 +03:00
Alex Plate
dbbea642bc Add inspection profiles to the repository 2020-11-06 18:40:02 +03:00
Alex Plate
0539e39977 Fix <C-\><C-N> 2020-11-06 11:16:13 +03:00
Alex Plate
65235d32a1 Fix exception for ]b command 2020-11-06 10:36:03 +03:00
Alex Plate
ecfcdf5a8c Update intellij gradle plugin 2020-11-06 10:06:25 +03:00
Alex Plate
cf127ba7f9 Update plugin description 2020-11-06 09:37:01 +03:00
Alex Plate
1fba77d925 Update getName description 2020-11-05 11:31:41 +03:00
Alex Plate
5752b116f6 Fix plugin.xml 2020-11-04 13:04:36 +03:00
Alex Plate
cdf7fd8ce6 Update markdown to slack version 2020-11-03 12:14:58 +03:00
Alex Plate
8fe07e7b20 Verify plugin only against last major versions of IJ 2020-11-03 11:26:32 +03:00
Alex Plate
b800237606 Refactor common extension test 2020-11-03 11:24:34 +03:00
Alex Plate
fed02e5b8a Update plugin.xml 2020-11-03 11:20:22 +03:00
Alex Plate
2d4d3e9410 Update markdown to slack parser version 2020-11-03 11:20:21 +03:00
Alex Pláte
880d4c6888 Update CONTRIBUTING.md 2020-11-02 14:16:44 +03:00
Alex Plate
6a3d606032 New extension registration process
The new process gives as lazy loading of extension classes
2020-11-01 03:30:00 +03:00
Alex Plate
612a86c4d9 Add new option to enable extensions 2020-11-01 00:51:22 +03:00
Alex Plate
14abc25c01 Update detekt config 2020-11-01 00:47:05 +03:00
Alex Plate
52673d1a02 Remove unnecessary semicolon 2020-10-31 22:04:20 +03:00
Alex Plate
b7caee119e Rename detekt folder 2020-10-31 21:44:53 +03:00
Alex Plate
a148446912 Change order of checks 2020-10-31 19:43:19 +03:00
Alex Plate
1ee9075976 Inline findParentByCondition 2020-10-31 19:40:48 +03:00
Alex Plate
b03627a110 Add info about prepared configurations to contributing guide 2020-10-31 19:27:06 +03:00
Alex Plate
04ac0ab743 [TC] Extract plugin verification into the separate build 2020-10-31 19:21:12 +03:00
Alex Plate
e7aa985ad5 Add run configurations 2020-10-31 18:49:37 +03:00
Alex Plate
4177f4e4f3 Rename ideavim.neovim.test to ideavim.nvim.test 2020-10-31 18:44:53 +03:00
Alex Plate
c1e415b76a [TC] Update nvim config 2020-10-31 18:44:16 +03:00
Alex Plate
8ae656dee3 Remove unused export 2020-10-31 18:42:35 +03:00
aleksei.plate
d48576f48a TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: parameters of 'NVIM' build configuration were updated 2020-10-31 15:42:17 +00:00
Alex Plate
c0c5075072 [TC] Use -P to set env var 2020-10-31 18:16:41 +03:00
Alex Plate
59d106b8c4 [TC] Update nvim config 2020-10-31 17:42:58 +03:00
Alex Plate
d96c313ecb [TC] Add execution privilege to nvim 2020-10-31 17:12:22 +03:00
Alex Plate
212c708150 [TC] Use env variable to set nvim path 2020-10-31 17:00:16 +03:00
Alex Plate
3739eb173e Remove nvim branch 2020-10-31 16:54:56 +03:00
Alex Plate
0d3ecce8a2 Read env variable to get nvim path 2020-10-31 16:53:09 +03:00
Alex Plate
164d7a4200 [TC] Update nvim config 2020-10-31 16:45:18 +03:00
Alex Plate
1258e602e6 [TC] Reformat code 2020-10-31 16:38:06 +03:00
Alex Plate
8a5ad713ea Trying to setup neovim tests 2020-10-31 16:29:34 +03:00
Alex Plate
12be65fa09 Update teamcity config: refactoring 2020-10-31 16:00:35 +03:00
Alex Plate
0720431c91 More cleanup 2020-10-31 14:29:26 +03:00
Alex Plate
6f1ac1de97 Add more time checks for is db cell 2020-10-31 14:03:11 +03:00
Alex Plate
99d2d4b594 Update the color of yank highlighting after laf changing 2020-10-31 13:46:08 +03:00
Alex Plate
2bf9b97e49 Continuation of qodana cleanup 2020-10-31 13:11:13 +03:00
Alex Plate
c6600f3348 Fixes base of qodana run 2020-10-30 19:54:26 +03:00
Alex Plate
e29ab54b0e Make default register in RegisterGroup non static field 2020-10-30 19:18:46 +03:00
Alex Plate
197565d4cb Get rid of info logs 2020-10-30 16:47:44 +03:00
Alex Plate
3d570d2020 Make property private 2020-10-30 15:59:56 +03:00
Alex Plate
fe364dc6dc Reduce the depth of "parentByCondition" function 2020-10-30 11:56:50 +03:00
Alex Plate
5d0e82781f Enable teamcity output format for plugin verifier 2020-10-30 11:37:36 +03:00
Alex Plate
24f005a340 Integrate plugin verifier to the project 2020-10-30 11:08:49 +03:00
Alex Plate
1743c08091 Update isIdeaVimdisableHere logging 2020-10-29 12:40:30 +03:00
Alex Plate
81b095c899 Update detekt configuration 2020-10-29 11:43:47 +03:00
1916 changed files with 231421 additions and 77830 deletions

View File

@@ -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
View File

@@ -0,0 +1 @@
* text=auto eol=lf

14
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "maven"
directory: "/.teamcity/"
schedule:
interval: "weekly"
day: "wednesday"

31
.github/workflows/checkNewPlugins.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
# 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
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

View File

@@ -0,0 +1,46 @@
# 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 ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 300
- name: Get tags
run: git fetch --tags origin
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
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 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

67
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '44 12 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'java' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
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.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# 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@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

32
.github/workflows/integrationsTest.yml vendored Normal file
View 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
name: Testing CI integrations
on:
workflow_dispatch:
schedule:
- cron: '0 5 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 300
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
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 integrationsTest
env:
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}

35
.github/workflows/kover.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
# 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
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 300
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
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
View 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]' }}
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}}

45
.github/workflows/mergePr.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
# 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: Update Changelog On PR
on:
workflow_dispatch:
pull_request_target:
types: [ closed ]
jobs:
build:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
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 }}
env:
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: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
file_pattern: CHANGES.md

77
.github/workflows/runUiTests.yml vendored Normal file
View File

@@ -0,0 +1,77 @@
name: Run UI Tests
on:
workflow_dispatch:
schedule:
- cron: '0 12 * * *'
jobs:
build-for-ui-test-mac-os:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v2.1.0
with:
distribution: zulu
java-version: 11
- 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 }}
- name: Build Plugin
run: gradle :buildPlugin
- name: Run Idea
run: |
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: 20
retry-delay: 10s
- name: Tests
run: gradle :testUi
- name: Move video
if: ${{ failure() }}
run: mv video build/reports
- name: Save fails report
if: ${{ failure() }}
uses: actions/upload-artifact@v2
with:
name: ui-test-fails-report-mac
path: |
build/reports
# 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

44
.github/workflows/syncDoc.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
# 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 ]
jobs:
build:
runs-on: ubuntu-latest
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
- 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>

View 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
# This workflow syncs changes from the docs folder of IdeaVim to the IdeaVim.wiki repository
name: Update Affected Rate field on YouTrack
on:
workflow_dispatch:
schedule:
- cron: '0 8 * * *'
jobs:
build:
runs-on: ubuntu-latest
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: Update YouTrack
run: ./gradlew scripts:updateAffectedRates
env:
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}

61
.github/workflows/updateAuthors.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
# 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: Update Authors
on:
workflow_dispatch:
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
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 300
# 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 11
uses: actions/setup-java@v2
with:
java-version: '11'
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-authors)" >> $GITHUB_ENV
- name: Update authors
id: update_authors
run: ./gradlew updateAuthors --stacktrace
env:
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: 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

65
.github/workflows/updateChangelog.yml vendored Normal file
View File

@@ -0,0 +1,65 @@
# 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: Update Changelog
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *'
# Workflow run on push is disabled to avoid conflicts when merging PR
# push:
# branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 300
# 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 11
uses: actions/setup-java@v2
with:
java-version: '11'
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-changelog)" >> $GITHUB_ENV
- name: Update changelog
run: ./gradlew updateChangelog
env:
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
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

41
.github/workflows/updateFormatting.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
# 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: Update Formatting
on:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
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: 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: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>

17
.gitignore vendored
View File

@@ -5,13 +5,24 @@
!/.idea/scopes
!/.idea/copyright
!/.idea/icon.png
!/.idea/inspectionProfiles
!/.idea/fileTemplates
!/.idea/runConfigurations
!/.idea/codeStyles
!/.idea/vcs.xml
/build/
/out/
/tmp/
**/build/
**/out/
**/tmp/
*.DS_Store
.teamcity/.idea
.teamcity/target
.teamcity/*.iml
# Generated by gradle task "generateGrammarSource"
src/main/java/com/maddyhome/idea/vim/vimscript/parser/generated
# Created by github automation
settings.xml

201
.idea/codeStyles/Project.xml generated Normal file
View File

@@ -0,0 +1,201 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="AUTODETECT_INDENTS" value="false" />
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</value>
</option>
<option name="LINE_SEPARATOR" value="&#10;" />
<JavaCodeStyleSettings>
<option name="FIELD_NAME_PREFIX" value="my" />
<option name="STATIC_FIELD_NAME_PREFIX" value="our" />
</JavaCodeStyleSettings>
<JetCodeStyleSettings>
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
<option name="ALLOW_TRAILING_COMMA" value="true" />
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<ScalaCodeStyleSettings>
<option name="MULTILINE_STRING_CLOSING_QUOTES_ON_NEW_LINE" value="true" />
</ScalaCodeStyleSettings>
<ADDITIONAL_INDENT_OPTIONS fileType="rb">
<option name="INDENT_SIZE" value="2" />
</ADDITIONAL_INDENT_OPTIONS>
<codeStyleSettings language="CFML">
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="WHILE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="BINARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ASSIGNMENT_WRAP" value="1" />
</codeStyleSettings>
<codeStyleSettings language="ECMA Script Level 4">
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="WHILE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="ASSIGNMENT_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
</codeStyleSettings>
<codeStyleSettings language="GSP">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Groovy">
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_ASSIGNMENT" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_THROWS_LIST" value="true" />
<option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" />
<option name="SPACE_AFTER_TYPE_CAST" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_LIST_WRAP" value="5" />
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ASSIGNMENT_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
<option name="FIELD_ANNOTATION_WRAP" value="0" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="HTML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="8" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="LINE_COMMENT_AT_FIRST_COLUMN" value="false" />
<option name="BLOCK_COMMENT_AT_FIRST_COLUMN" value="false" />
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="WHILE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_ASSIGNMENT" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_THROWS_LIST" value="true" />
<option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" />
<option name="ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION" value="true" />
<option name="SPACE_AFTER_TYPE_CAST" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_LIST_WRAP" value="5" />
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="ASSIGNMENT_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
<option name="FIELD_ANNOTATION_WRAP" value="0" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="8" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JSON">
<option name="KEEP_LINE_BREAKS" value="false" />
</codeStyleSettings>
<codeStyleSettings language="JSP">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="8" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="ELSE_ON_NEW_LINE" value="true" />
<option name="WHILE_ON_NEW_LINE" value="true" />
<option name="CATCH_ON_NEW_LINE" value="true" />
<option name="FINALLY_ON_NEW_LINE" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="5" />
<option name="BINARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_WRAP" value="5" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="ASSIGNMENT_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
</codeStyleSettings>
<codeStyleSettings language="Python">
<option name="KEEP_LINE_BREAKS" value="false" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="8" />
</indentOptions>
</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>

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

View File

@@ -1,6 +1,6 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value="IdeaVim - Vim emulator for IDEs based on the IntelliJ platform&#10;Copyright (C) 2003-&amp;#36;today.year The IdeaVim authors&#10;&#10;This program is free software: you can redistribute it and/or modify&#10;it under the terms of the GNU General Public License as published by&#10;the Free Software Foundation, either version 2 of the License, or&#10;(at your option) any later version.&#10;&#10;This program is distributed in the hope that it will be useful,&#10;but WITHOUT ANY WARRANTY; without even the implied warranty of&#10;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&#10;GNU General Public License for more details.&#10;&#10;You should have received a copy of the GNU General Public License&#10;along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;." />
<option name="notice" value="Copyright 2003-2023 The IdeaVim authors&#10;&#10;Use of this source code is governed by an MIT-style&#10;license that can be found in the LICENSE.txt file or at&#10;https://opensource.org/licenses/MIT." />
<option name="myName" value="IdeaVim" />
</copyright>
</component>

View File

@@ -0,0 +1 @@
com.maddyhome.idea.vim.helper.MessageHelper.message("${PROPERTY_KEY}", ${PARAMETERS})

View File

@@ -0,0 +1 @@
com.maddyhome.idea.vim.helper.MessageHelper.message("${PROPERTY_KEY}")

View File

@@ -0,0 +1,69 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="HardCodedStringLiteral" enabled="false" level="WARNING" enabled_by_default="false">
<scope name="Production" level="WARNING" enabled="false">
<option name="ignoreForAssertStatements" value="true" />
<option name="ignoreForExceptionConstructors" value="true" />
<option name="ignoreForSpecifiedExceptionConstructors" value="" />
<option name="ignoreForJUnitAsserts" value="true" />
<option name="ignoreForClassReferences" value="true" />
<option name="ignoreForPropertyKeyReferences" value="true" />
<option name="ignoreForNonAlpha" value="true" />
<option name="ignoreAssignedToConstants" value="false" />
<option name="ignoreToString" value="true" />
<option name="nonNlsCommentPattern" value="NON-NLS" />
</scope>
<option name="ignoreForAssertStatements" value="true" />
<option name="ignoreForExceptionConstructors" value="true" />
<option name="ignoreForSpecifiedExceptionConstructors" value="" />
<option name="ignoreForJUnitAsserts" value="true" />
<option name="ignoreForClassReferences" value="true" />
<option name="ignoreForPropertyKeyReferences" value="true" />
<option name="ignoreForNonAlpha" value="true" />
<option name="ignoreAssignedToConstants" value="false" />
<option name="ignoreToString" value="false" />
<option name="nonNlsCommentPattern" value="NON-NLS" />
</inspection_tool>
<inspection_tool class="MissortedModifiers" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_requireAnnotationsFirst" value="true" />
</inspection_tool>
<inspection_tool class="MoveVariableDeclarationIntoWhen" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="PluginXmlI18n" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SSBasedInspection" enabled="true" level="WARNING" enabled_by_default="true">
<replaceConfiguration name="IdeaVim run for each caret" description="Please use IdeaVim version of `runForEachCaret` function" suppressId="ideavimRunForEachCaret" problemDescriptor="Replace with IdeaVim version" text="$editor$.caretModel.runForEachCaret { $expr$ }" recursive="false" caseInsensitive="false" type="Kotlin" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="false" replacement="$editor$.vimForEachCaret { $expr$ }">
<constraint name="__context__" within="" contains="" />
<constraint name="editor" within="" contains="" />
<constraint name="expr" minCount="0" maxCount="2147483647" within="" contains="" />
</replaceConfiguration>
<replaceConfiguration name="Use IdeaVim method instead of the fixture" uuid="0f74da52-7360-33ae-9b40-d771aa128de6" description="Use assertState and other functions instead of myFixture.checkResult.&#10;This function also preformes assertion in neovim" suppressId="IdeaVimAssertState" problemDescriptor="Use IdeaVim testing methods" text="$fixture$.$check$($data$)" recursive="false" caseInsensitive="false" type="Kotlin" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="false" replacement="assertState($data$)">
<constraint name="__context__" within="" contains="" />
<constraint name="fixture" regexp="myFixture" nameOfExprType="CodeInsightTestFixture" within="" contains="" />
<constraint name="check" regexp="checkResult" within="" contains="" />
<constraint name="data" within="" contains="" />
</replaceConfiguration>
<replaceConfiguration name="Use IdeaVim method instead of the fixture" uuid="0f74da52-7360-33ae-9b40-d771aa128de6" text="$fixture$.$check$($fileName$, $text$)" recursive="false" caseInsensitive="false" type="Kotlin" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="false" replacement="configureByText($text$)">
<constraint name="__context__" within="" contains="" />
<constraint name="fixture" regexp="myFixture" nameOfExprType="CodeInsightTestFixture" within="" contains="" />
<constraint name="check" regexp="configureByText" within="" contains="" />
<constraint name="text" within="" contains="" />
<constraint name="fileName" within="" contains="" />
</replaceConfiguration>
<replaceConfiguration name="Use IdeaVim method instead of the fixture" uuid="0f74da52-7360-33ae-9b40-d771aa128de6" text="$fixture$.$check$($data$)" recursive="false" caseInsensitive="false" type="JAVA" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="true" replacement="assertState($data$)">
<constraint name="__context__" within="" contains="" />
<constraint name="fixture" regexp="myFixture" within="" contains="" />
<constraint name="check" regexp="checkResult" within="" contains="" />
<constraint name="data" within="" contains="" />
</replaceConfiguration>
<replaceConfiguration name="Use IdeaVim method instead of the fixture" uuid="0f74da52-7360-33ae-9b40-d771aa128de6" text="$fixture$.$configure$($first$, $second$)" recursive="false" caseInsensitive="false" type="JAVA" pattern_context="default" reformatAccordingToStyle="true" shortenFQN="true" replacement="configureByText($second$)">
<constraint name="__context__" within="" contains="" />
<constraint name="fixture" regexp="myFixture" within="" contains="" />
<constraint name="configure" regexp="configureByText" within="" contains="" />
<constraint name="first" within="" contains="" />
<constraint name="second" within="" contains="" />
</replaceConfiguration>
</inspection_tool>
<inspection_tool class="UnstableApiUsage" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

62
.idea/inspectionProfiles/Qodana.xml generated Normal file
View File

@@ -0,0 +1,62 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<description>Inspections profile for Qodana</description>
<option name="myName" value="Qodana" />
<inspection_tool class="BooleanMethodIsAlwaysInverted" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="CanBeFinal" enabled="false" level="WARNING" enabled_by_default="false">
<option name="REPORT_CLASSES" value="false" />
<option name="REPORT_METHODS" value="false" />
<option name="REPORT_FIELDS" value="true" />
</inspection_tool>
<inspection_tool class="GrUnresolvedAccess" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="HardCodedStringLiteral" enabled="false" level="WARNING" enabled_by_default="false">
<scope name="Production" level="WARNING" enabled="false">
<option name="ignoreForAssertStatements" value="true" />
<option name="ignoreForExceptionConstructors" value="true" />
<option name="ignoreForSpecifiedExceptionConstructors" value="" />
<option name="ignoreForJUnitAsserts" value="true" />
<option name="ignoreForClassReferences" value="true" />
<option name="ignoreForPropertyKeyReferences" value="true" />
<option name="ignoreForNonAlpha" value="true" />
<option name="ignoreAssignedToConstants" value="false" />
<option name="ignoreToString" value="true" />
<option name="nonNlsCommentPattern" value="NON-NLS" />
</scope>
<option name="ignoreForAssertStatements" value="true" />
<option name="ignoreForExceptionConstructors" value="true" />
<option name="ignoreForSpecifiedExceptionConstructors" value="" />
<option name="ignoreForJUnitAsserts" value="true" />
<option name="ignoreForClassReferences" value="true" />
<option name="ignoreForPropertyKeyReferences" value="true" />
<option name="ignoreForNonAlpha" value="true" />
<option name="ignoreAssignedToConstants" value="false" />
<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" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</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>

View File

@@ -0,0 +1,25 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="IdeaVim full verification" 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="check" />
<option value="runPluginVerifier" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="IdeaVim tests" 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="test" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Start IJ with IdeaVim" 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="runIde" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2" />
</configuration>
</component>

View File

@@ -1,3 +1,3 @@
<component name="DependencyValidationManager">
<scope name="Copyright" pattern="file[IdeaVIM.main]:com//*||file[IdeaVIM.test]:*/" />
<scope name="Copyright" pattern="file:*/&amp;&amp;!file:.github//*&amp;&amp;!file:.idea//*&amp;&amp;!file:.teamcity//*&amp;&amp;!file:assets//*&amp;&amp;!file:config//*&amp;&amp;!file:doc//*&amp;&amp;!file:gradle//*&amp;&amp;!file:gradlew&amp;&amp;!file:gradlew.bat&amp;&amp;!file:src/main/resources//*&amp;&amp;!file:antlr//*&amp;&amp;!file:java/com/maddyhome/idea/vim/regexp/RegExp.kt&amp;&amp;!file:java/com/maddyhome/idea/vim/ui/Tutor.kt&amp;&amp;!file:java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt" />
</component>

16
.idea/vcs.xml generated Normal file
View 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="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

19
.teamcity/_Self/Constants.kt vendored Normal file
View File

@@ -0,0 +1,19 @@
package _Self
object Constants {
const val DEFAULT_CHANNEL = "default"
const val EAP_CHANNEL = "eap"
const val DEV_CHANNEL = "Dev"
const val VERSION = "2.4.0"
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 = "2023.1.2"
const val RELEASE_DEV = "2023.1.2"
const val RELEASE_EAP = "2023.1.2"
}

View File

@@ -1,70 +1,55 @@
package _Self
import _Self.buildTypes.*
import _Self.vcsRoots.*
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.GitHubPullRequest
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 IDEs based on the IntelliJ platform"
vcsRoot(Branch_183)
vcsRoot(Branch_181)
vcsRoot(GitHubPullRequest)
vcsRoot(Branch_191_193)
vcsRoot(Branch_Nvim)
subProjects(Releases, OldTests, GitHub)
buildType(GitHubPullRequests)
buildType(Release)
buildType(TestsForIntelliJ20201)
buildType(TestsForIntelliJ20191)
buildType(TestsForIntelliJ20181)
buildType(TestsForIntelliJ20192)
buildType(TestsForIntelliJ20182)
buildType(TestsForIntelliJ20193)
buildType(TestsForIntelliJ20183)
// buildType(Nvim)
buildType(ReleaseEap)
buildType(TestsForIntelliJ20202)
buildType(TestsForIntelliJEAP)
// VCS roots
vcsRoot(GitHubPullRequest)
features {
feature {
id = "PROJECT_EXT_768"
type = "CloudImage"
param("use-spot-instances", "true")
param("user-tags", "project=idea-vim")
param("agent_pool_id", "41")
param("image-instances-limit", "")
param("subnet-id", "subnet-58839511")
param("ebs-optimized", "false")
param("instance-type", "c5d.large")
param("amazon-id", "ami-0d1a6a32faa92923e")
param("spot-instance-price", "0.1")
param("source-id", "BuildAgentsIdeaVim")
param("image-name-prefix", "BuildAgentsIdeaVim")
param("key-pair-name", "teamcity-prod-pub")
param("security-group-ids", "sg-eda08696,sg-7332cf0f,")
param("profileId", "amazon-48")
}
feature {
id = "amazon-48"
type = "CloudProfile"
param("profileServerUrl", "")
param("secure:access-id", "credentialsJSON:dbcdb2a2-de5f-4bc9-9421-292b19e83947")
param("system.cloud.profile_id", "amazon-48")
param("total-work-time", "")
param("description", "")
param("cloud-code", "amazon")
param("enabled", "true")
param("max-running-instances", "10")
param("agentPushPreset", "")
param("profileId", "amazon-48")
param("name", "Cloud Agents")
param("next-hour", "")
param("secure:secret-key", "credentialsJSON:65a87fe7-0977-4af9-96f1-344f2b82d269")
param("region", "eu-west-1")
param("terminate-idle-time", "15")
param("not-checked", "")
}
}
// Active tests
buildType(TestingBuildType("Latest EAP", "<default>", version = "LATEST-EAP-SNAPSHOT"))
buildType(TestingBuildType("Latest EAP With Xorg", "<default>", version = "LATEST-EAP-SNAPSHOT"))
buildType(PropertyBased)
buildType(LongRunning)
buildType(Nvim)
buildType(PluginVerifier)
buildType(Compatibility)
buildType(Qodana)
})
// Common build type for all configurations
abstract class IdeaVimBuildType(init: BuildType.() -> Unit) : BuildType({
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", "4")
equals("teamcity.agent.os.family", "Linux")
}
failureConditions {
// Disable detection of the java OOM
javaCrash = false
}
})

View File

@@ -1,45 +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.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class ActiveTests(buildName: String, ijVersion: String) : BuildType({
name = buildName
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", ijVersion)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(DslContext.settingsRoot)
checkoutMode = CheckoutMode.ON_SERVER
}
steps {
gradle {
tasks = "clean check"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
object TestsForIntelliJEAP : ActiveTests("Tests for IntelliJ Latest EAP", "LATEST-EAP-SNAPSHOT")
object TestsForIntelliJ20202 : ActiveTests("Tests for IntelliJ 2020.2", "2020.2")
object TestsForIntelliJ20201 : ActiveTests("Tests for IntelliJ 2020.1", "2020.1")

View File

@@ -0,0 +1,64 @@
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 '${'$'}io.github.mishkun.ideavimsneak' [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
""".trimIndent()
}
}
triggers {
schedule {
schedulingPolicy = daily {
hour = 4
}
branchFilter = ""
triggerBuild = always()
withPendingChangesOnly = false
}
}
features {
golang {
testFormat = "json"
}
}
})

View File

@@ -1,73 +0,0 @@
package _Self.buildTypes
import _Self.vcsRoots.GitHubPullRequest
import jetbrains.buildServer.configs.kotlin.v2019_2.*
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 GitHubPullRequests : BuildType({
name = "GitHub Pull Requests"
description = "Test GitHub pull requests"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "2020.1")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(_Self.vcsRoots.GitHubPullRequest)
checkoutMode = CheckoutMode.ON_SERVER
branchFilter = """
+:*
-:<default>
""".trimIndent()
}
steps {
gradle {
tasks = "clean test"
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")
}
})

View File

@@ -0,0 +1,46 @@
package _Self.buildTypes
import _Self.Constants.LONG_RUNNING_TESTS
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 : IdeaVimBuildType({
name = "Long running tests"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", LONG_RUNNING_TESTS)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean testLongRunning"
buildFile = ""
enableStacktrace = true
}
}
triggers {
vcs {
enabled = false
branchFilter = "+:<default>"
}
schedule {
enabled = true
schedulingPolicy = daily {
hour = 5
}
}
}
})

View File

@@ -1,50 +1,65 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.Constants.NVIM_TESTS
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.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.vcs
object Nvim : BuildType({
name = "NVIM"
description = "branch EAP"
object Nvim : IdeaVimBuildType({
name = "Tests with nvim"
description = "Running tests with nvim integration"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "LATEST-EAP-SNAPSHOT")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", NVIM_TESTS)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ideavim.nvim.path", "./nvim-linux64/bin/nvim")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
script {
name = "Set up NeoVim"
scriptContent = """
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"
buildFile = ""
enableStacktrace = true
}
}
triggers {
vcs {
root(_Self.vcsRoots.Branch_Nvim)
checkoutMode = CheckoutMode.ON_SERVER
branchFilter = "+:<default>"
}
}
steps {
script {
scriptContent = "apt-get install neovim"
}
gradle {
tasks = "--version"
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
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()
}
}
}
})

View File

@@ -0,0 +1,36 @@
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.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object PluginVerifier : IdeaVimBuildType({
name = "Plugin verification"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean runPluginVerifier"
buildFile = ""
enableStacktrace = true
}
}
triggers {
vcs {
branchFilter = "+:<default>"
}
}
})

View File

@@ -0,0 +1,38 @@
package _Self.buildTypes
import _Self.Constants.PROPERTY_TESTS
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 : IdeaVimBuildType({
name = "Property based tests"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", PROPERTY_TESTS)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean testPropertyBased"
buildFile = ""
enableStacktrace = true
}
}
triggers {
vcs {
branchFilter = "+:<default>"
}
}
})

View 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:790b4e43-ee83-4184-b81b-678afab60409", display = ParameterDisplay.HIDDEN)
param("env.ORG_GRADLE_PROJECT_spaceUsername", "Aleksei.Plate")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
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()
}
}
}
})

81
.teamcity/_Self/buildTypes/Qodana.kt vendored Normal file
View File

@@ -0,0 +1,81 @@
package _Self.buildTypes
import _Self.Constants.QODANA_TESTS
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.schedule
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object Qodana : IdeaVimBuildType({
name = "Qodana checks"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", QODANA_TESTS)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
name = "Generate grammar"
tasks = "generateGrammarSource"
}
qodana {
name = "Qodana"
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
additionalDockerArguments = "-e QODANA_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb24iOiIzUFZrQSIsInByb2plY3QiOiIzN1FlQSIsInRva2VuIjoiM0t2bXoifQ.uohp81tM7iAfvvB6k8faarfpV-OjusAaEbWQ8iNrOgs"
additionalQodanaArguments = "--baseline qodana.sarif.json"
}
}
triggers {
vcs {
enabled = false
branchFilter = "+:<default>"
}
schedule {
schedulingPolicy = daily {
hour = 12
minute = 0
timezone = "SERVER"
}
param("dayOfWeek", "Sunday")
enabled = false
}
}
failureConditions {
failOnMetricChange {
threshold = 0
units = BuildFailureOnMetric.MetricUnit.DEFAULT_UNIT
comparison = BuildFailureOnMetric.MetricComparison.MORE
compareTo = value()
metric = BuildFailureOnMetric.MetricType.TEST_FAILED_COUNT
param("metricKey", "QodanaProblemsNew")
enabled = false
}
}
})

View File

@@ -1,36 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
object Release : BuildType({
name = "Publish Release"
description = "Build and publish IdeaVim plugin"
artifactRules = "build/distributions/*"
buildNumberPattern = "0.60"
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", "2020.2")
password("env.ORG_GRADLE_PROJECT_publishToken", "credentialsJSON:ec1dc748-e289-47e1-88b6-f193d7999bf4", label = "Password")
param("env.ORG_GRADLE_PROJECT_publishUsername", "vlan")
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_publishChannels", "default,eap")
}
vcs {
root(DslContext.settingsRoot)
checkoutMode = CheckoutMode.ON_SERVER
}
steps {
gradle {
tasks = "clean publishPlugin"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
})

View File

@@ -0,0 +1,87 @@
package _Self.buildTypes
import _Self.Constants.DEV_CHANNEL
import _Self.Constants.RELEASE_DEV
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 : IdeaVimBuildType({
name = "Publish Dev Build"
description = "Build and publish Dev of IdeaVim plugin"
artifactRules = "build/distributions/*"
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_DEV)
password(
"env.ORG_GRADLE_PROJECT_publishToken",
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
label = "Password"
)
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 {
name = "Calculate new dev version"
tasks = "scripts:calculateNewDevVersion"
}
gradle {
name = "Set TeamCity build number"
tasks = "scripts:setTeamCityBuildNumber"
}
gradle {
tasks = "publishPlugin"
}
}
triggers {
schedule {
enabled = true
schedulingPolicy = daily {
hour = 2
}
branchFilter = ""
}
}
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()
}
}
}
})

View File

@@ -1,67 +1,111 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.Constants.EAP_CHANNEL
import _Self.Constants.RELEASE_EAP
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.buildFeatures.sshAgent
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
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.buildSteps.script
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
object ReleaseEap : BuildType({
name = "Publish EAP Build"
description = "Build and publish EAP of IdeaVim plugin"
object ReleaseEap : IdeaVimBuildType({
name = "Publish EAP Build"
description = "Build and publish EAP of IdeaVim plugin"
artifactRules = "build/distributions/*"
buildNumberPattern = "0.60.%build.counter%"
artifactRules = "build/distributions/*"
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", "2020.2")
password("env.ORG_GRADLE_PROJECT_publishToken", "credentialsJSON:ec1dc748-e289-47e1-88b6-f193d7999bf4", label = "Token")
param("env.ORG_GRADLE_PROJECT_publishUsername", "vlan")
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_publishChannels", "eap")
password("env.ORG_GRADLE_PROJECT_slackUrl", "credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5", label = "Slack Token")
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"
)
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
script {
name = "Pull git tags"
scriptContent = "git fetch --tags origin"
}
vcs {
root(DslContext.settingsRoot)
checkoutMode = CheckoutMode.ON_SERVER
script {
name = "Pull git history"
scriptContent = "git fetch --unshallow"
}
steps {
gradle {
tasks = "clean publishPlugin slackEapNotification"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
gradle {
name = "Calculate new eap version"
tasks = "scripts:calculateNewEapVersion"
}
triggers {
schedule {
enabled = false
schedulingPolicy = daily {
hour = 22
}
branchFilter = ""
triggerBuild = onWatchedBuildChange {
buildType = "IdeaVim_TestsForIntelliJBranch146"
watchedBuildRule = ScheduleTrigger.WatchedBuildRule.LAST_SUCCESSFUL
watchedBuildBranchFilter = "<default>"
promoteWatchedBuild = false
}
}
gradle {
name = "Set TeamCity build number"
tasks = "scripts:setTeamCityBuildNumber"
}
features {
vcsLabeling {
vcsRootId = "${DslContext.settingsRoot.id}"
labelingPattern = "%system.build.number%-EAP"
successfulOnly = true
branchFilter = ""
}
gradle {
name = "Add release tag"
tasks = "scripts:addReleaseTag"
}
gradle {
tasks = "publishPlugin"
}
// Same as the script below. However, jgit can't find ssh keys on TeamCity
// gradle {
// name = "Push changes to the repo"
// tasks = "scripts:pushChanges"
// }
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()
}
}
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()
}
}
}
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")
}
})

View File

@@ -0,0 +1,155 @@
/*
* 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
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
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:3cd3e867-282c-451f-b958-bc95d56a8450", 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"
}
gradle {
name = "Select branch"
tasks = "scripts:selectBranch"
}
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"
}
gradle {
name = "Reset release branch"
tasks = "scripts:resetReleaseBranch"
}
gradle {
name = "Publish release"
tasks = "publishPlugin"
}
// gradle {
// name = "Push changes to the repo"
// tasks = "scripts:pushChangesWithReleaseBranch"
// }
script {
name = "Push changes to the repo"
scriptContent = """
branch=$(git branch --show-current)
echo current branch is ${'$'}branch
if [ "master" != "${'$'}branch" ];
then
git checkout master
fi
git push origin --tags
git push origin
if [ "patch" != $releaseType ];
then
git checkout release
echo checkout release branch
git push --tags
git push origin --force
fi
git checkout ${'$'}branch
""".trimIndent()
}
gradle {
name = "Run Integrations"
tasks = "releaseActions"
}
gradle {
name = "Slack Notification"
tasks = "slackNotification"
}
}
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()
}
}
}
})

View File

@@ -0,0 +1,72 @@
@file:Suppress("ClassName")
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.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
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_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 test"
buildFile = ""
enableStacktrace = true
}
}
triggers {
vcs {
branchFilter = "+:$branch"
}
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
private fun String.vanish(): String {
return this
.replace(' ', '_')
.replace('.', '_')
.replace('-', '_')
}

View File

@@ -1,42 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20181 : BuildType({
name = "Tests for IntelliJ 2018.1"
description = "branch 181"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2018.1")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_181)
checkoutMode = CheckoutMode.ON_SERVER
}
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")
}
})

View File

@@ -1,42 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20182 : BuildType({
name = "Tests for IntelliJ 2018.2"
description = "branch 182"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2018.2")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_181)
checkoutMode = CheckoutMode.ON_SERVER
}
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")
}
})

View File

@@ -1,43 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
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.ON_SERVER
}
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")
}
})

View File

@@ -1,43 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20191 : BuildType({
name = "Tests for IntelliJ 2019.1"
description = "branch 191"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2019.1")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_191_193)
checkoutMode = CheckoutMode.ON_SERVER
}
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")
}
})

View File

@@ -1,43 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20192 : BuildType({
name = "Tests for IntelliJ 2019.2"
description = "branch 192"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2019.2")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_191_193)
checkoutMode = CheckoutMode.ON_SERVER
}
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")
}
})

View File

@@ -1,43 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20193 : BuildType({
name = "Tests for IntelliJ 2019.3"
description = "branch 193"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "2019.3")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_191_193)
checkoutMode = CheckoutMode.ON_SERVER
}
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")
}
})

78
.teamcity/_Self/subprojects/GitHub.kt vendored Normal file
View File

@@ -0,0 +1,78 @@
package _Self.subprojects
import _Self.Constants
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(Github("clean test", "Tests"))
})
class Github(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_ideaVersion", Constants.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
}
}
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")
}
}
})

23
.teamcity/_Self/subprojects/OldTests.kt vendored Normal file
View File

@@ -0,0 +1,23 @@
package _Self.subprojects
import _Self.buildTypes.TestingBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
object OldTests : Project({
name = "Old IdeaVim tests"
description = "Tests for older versions of IJ"
buildType(TestingBuildType("IC-2018.1", "181-182", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2018.2", "181-182", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2018.3", "183", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2019.1", "191-193", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2019.2", "191-193", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2019.3", "191-193", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2020.1", "201", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2020.2", "202", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2020.3", "203-212", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2021.1", "203-212", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2021.2.2", "203-212", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2021.3.2", "213-221", javaVersion = "1.8", javaPlugin = false))
buildType(TestingBuildType("IC-2022.2.3", branch = "222", javaPlugin = false))
})

41
.teamcity/_Self/subprojects/Releases.kt vendored Normal file
View File

@@ -0,0 +1,41 @@
package _Self.subprojects
import _Self.buildTypes.PublishVimEngine
import _Self.buildTypes.ReleaseDev
import _Self.buildTypes.ReleaseEap
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"
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)
})

View File

@@ -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
})

View File

@@ -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
})

View File

@@ -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
})

View File

@@ -1,11 +0,0 @@
@file:Suppress("ClassName")
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object Branch_Nvim : GitVcsRoot({
name = "https://github.com/JetBrains/ideavim (branch nvim)"
url = "https://github.com/JetBrains/ideavim.git"
branch = "neovim"
})

View File

@@ -3,10 +3,10 @@ package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object GitHubPullRequest : GitVcsRoot({
name = "IdeaVim Pull Requests"
url = "git@github.com:JetBrains/ideavim.git"
branchSpec = "+:refs/(pull/*)/head"
authMethod = uploadedKey {
uploadedKey = "Alex Plate TeamCity key"
}
name = "IdeaVim Pull Requests"
url = "git@github.com:JetBrains/ideavim.git"
branchSpec = "+:refs/(pull/*)/head"
authMethod = uploadedKey {
uploadedKey = "IdeaVim ssh keys"
}
})

View 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")
}
}
}

View 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 = 'ReleasePatch'
accordingly, and delete the patch script.
*/
changeBuildType(RelativeId("ReleasePatch")) {
params {
expect {
password("env.ORG_GRADLE_PROJECT_youtrackToken", "credentialsJSON:3cd3e867-282c-451f-b958-bc95d56a8450", display = ParameterDisplay.HIDDEN)
}
update {
password("env.ORG_GRADLE_PROJECT_youtrackToken", "credentialsJSON:7bc0eb3a-b86a-4ebd-b622-d4ef12d7e1d3", display = ParameterDisplay.HIDDEN)
}
}
}

2
.teamcity/pom.xml vendored
View File

@@ -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>

View File

@@ -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.1"
project(_Self.Project)
version = "2023.05"
project(_Self.Project)

View File

@@ -10,10 +10,6 @@ The original author:
The current maintainers:
* [![icon][mail]](mailto:andrey.vlasovskikh@gmail.com)
[![icon][github]](https://github.com/vlasovskikh)
&nbsp;
Andrey Vlasovskikh
* [![icon][mail]](mailto:alexpl292@gmail.com)
[![icon][github]](https://github.com/AlexPl292)
&nbsp;
@@ -25,22 +21,59 @@ Previous maintainers:
[![icon][github]](https://github.com/olegs)
&nbsp;
Oleg Shpynov
* [![icon][mail]](mailto:andrey.vlasovskikh@gmail.com)
[![icon][github]](https://github.com/vlasovskikh)
&nbsp;
Andrey Vlasovskikh
Contributors:
* [![icon][mail]](mailto:yole@jetbrains.com)
[![icon][github]](https://github.com/yole)
&nbsp;
Dmitry Jemerov
* [![icon][mail]](mailto:tony.kay@gmail.com)
[![icon][github]](https://github.com/awkay)
&nbsp;
Tony Kay
* [![icon][mail]](mailto:jamescmartinez@gmail.com)
[![icon][github]](https://github.com/jamescmartinez)
&nbsp;
James Martinez
* [![icon][mail]](mailto:almas337519@gmail.com)
[![icon][github]](https://github.com/strogiyotec)
&nbsp;
strogiyotec
* [![icon][mail]](mailto:raimon49@hotmail.com)
[![icon][github]](https://github.com/raimon49)
&nbsp;
raimon
* [![icon][mail]](mailto:agrsbm@gmail.com)
[![icon][github-off]](#)
&nbsp;
Alexander Griesbaum
* [![icon][mail]](mailto:manwe64@gmail.com)
[![icon][github]](https://github.com/baldrs)
&nbsp;
Baldrs
* [![icon][mail]](mailto:yury@shurup.com)
[![icon][github]](https://github.com/zyv)
&nbsp;
Yury V. Zaytsev
* [![icon][mail]](mailto:jflorian@doubledog.org)
[![icon][github]](https://github.com/jflorian)
&nbsp;
John Florian
* [![icon][mail]](mailto:marquis@marquiswang.com)
[![icon][github]](https://github.com/marquiswang)
&nbsp;
Marquis Wang
* [![icon][mail]](mailto:madgnome@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/madgnome)
&nbsp;
Julien Hoarau
* [![icon][mail]](mailto:masanobu.imai@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/masanobuimai)
&nbsp;
Masanobu Imai
* [![icon][mail]](mailto:poxvuibr@gmail.com)
@@ -56,7 +89,7 @@ Contributors:
&nbsp;
John Lindquist
* [![icon][mail]](mailto:iklotzko@ltech.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/iklotzko)
&nbsp;
Ira Klotzko
* [![icon][mail]](mailto:alex@selesse.com)
@@ -64,7 +97,7 @@ Contributors:
&nbsp;
Alex Selesse
* [![icon][mail]](mailto:dbennett@palantir.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/dathanb)
&nbsp;
Dathan Bennett
* [![icon][mail]](mailto:kphayen@gmail.com)
@@ -76,11 +109,11 @@ Contributors:
&nbsp;
Alexey Shmalko
* [![icon][mail]](mailto:a.m.brookins@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/abrookins)
&nbsp;
Andrew Brookins
* [![icon][mail]](mailto:changwang83@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/changwang)
&nbsp;
Chang Wang
* [![icon][mail]](mailto:josejaime.sanchez@gmail.com)
@@ -88,19 +121,19 @@ Contributors:
&nbsp;
Jaime Sanchez
* [![icon][mail]](mailto:thomas@homburg.dk)
[![icon][github-off]](#)
[![icon][github]](https://github.com/homburg)
&nbsp;
Thomas B Homburg
* [![icon][mail]](mailto:smartbomb@server.fake)
[![icon][github-off]](#)
[![icon][github]](https://github.com/smartbomb)
&nbsp;
smartbomb
* [![icon][mail]](mailto:tuomas.tynkkynen@iki.fi)
[![icon][github-off]](#)
[![icon][github]](https://github.com/dezgeg)
&nbsp;
Tuomas Tynkkynen
* [![icon][mail]](mailto:jackson@donorschoose.org)
[![icon][github-off]](#)
[![icon][github]](https://github.com/jdpopkin)
&nbsp;
Jackson Popkin
* [![icon][mail]](mailto:yuyuyu1999@gmail.com)
@@ -108,7 +141,7 @@ Contributors:
&nbsp;
Teruo Kunihiro
* [![icon][mail]](mailto:lubashka.994@mail.ru)
[![icon][github-off]](#)
[![icon][github]](https://github.com/lubba)
&nbsp;
Liubov Paina
* [![icon][mail]](mailto:me@dhleong.net)
@@ -132,11 +165,11 @@ Contributors:
&nbsp;
Pavel Fatin
* [![icon][mail]](mailto:tietyt@gmail.com)
[![icon][github-off]](#)
[![icon][github-off]](https://github.com/DanKaplanSES)
&nbsp;
tieTYT
* [![icon][mail]](mailto:nickgieschen@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/nickgieschen)
&nbsp;
Nick Gieschen
* [![icon][mail]](mailto:ikenox@gmail.com)
@@ -148,11 +181,11 @@ Contributors:
&nbsp;
Maximilian Luz
* [![icon][mail]](mailto:vparfinenko@excelsior-usa.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/cypok)
&nbsp;
Vladimir Parfinenko
* [![icon][mail]](mailto:hassmann@hwdev.de)
[![icon][github-off]](#)
[![icon][github-off]](https://github.com/lumie1337)
&nbsp;
Florian Hassmann
* [![icon][mail]](mailto:jpalus@fastmail.com)
@@ -160,7 +193,7 @@ Contributors:
&nbsp;
Jan Palus
* [![icon][mail]](mailto:kpetrov@ripe.net)
[![icon][github-off]](#)
[![icon][github-off]](https://github.com/constpetrov)
&nbsp;
Konstantin Petrov
* [![icon][mail]](mailto:ya-ikmik2012@yandex.ru)
@@ -187,12 +220,8 @@ Contributors:
[![icon][github]](https://github.com/johngrib)
&nbsp;
John Grib
* [![icon][mail]](mailto:hild@b4mad.net)
[![icon][github-off]](#)
&nbsp;
Marcel Hild
* [![icon][mail]](mailto:vedranb@gmail.com)
[![icon][github-off]](#)
[![icon][github]](https://github.com/vedran)
&nbsp;
Vedran Budimcic
* [![icon][mail]](mailto:andreigasparovici1@gmail.com)
@@ -207,10 +236,13 @@ Contributors:
[![icon][github]](https://github.com/TonyArra)
&nbsp;
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)
&nbsp;
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)
&nbsp;
@@ -283,10 +315,6 @@ Contributors:
[![icon][github]](https://github.com/angelbot)
&nbsp;
John Weigel
* [![icon][mail]](mailto:kevinz@weghst.com)
[![icon][github]](https://github.com/kevin70)
&nbsp;
kk
* [![icon][mail]](mailto:runforprogram@163.com)
[![icon][github]](https://github.com/runforprogram)
&nbsp;
@@ -323,13 +351,157 @@ Contributors:
[![icon][github]](https://github.com/i-e-b)
&nbsp;
Iain Ballard
* [![icon][mail]](mailto:brandoncc@gmail.com)
[![icon][github]](https://github.com/brandoncc)
&nbsp;
Brandon Conway
* [![icon][mail]](mailto:ga@anadoxin.org)
[![icon][github]](https://github.com/antekone)
&nbsp;
Grzegorz Antoniak
* [![icon][mail]](mailto:shaunpatterson@gmail.com)
[![icon][github]](https://github.com/shaunpatterson)
&nbsp;
Shaun Patterson
* [![icon][mail]](mailto:vladimir.petrenko@jetbrains.com)
[![icon][github]](https://github.com/vladimir-petrenko)
&nbsp;
Vladimir Petrenko
* [![icon][mail]](mailto:sergey.vorobyov@jetbrains.com)
[![icon][github]](https://github.com/DeveloperHacker)
&nbsp;
Sergei Vorobyov
* [![icon][mail]](mailto:daya0576@gmail.com)
[![icon][github]](https://github.com/daya0576)
&nbsp;
大牙(Henry Zhu)
* [![icon][mail]](mailto:mplacek@skilltech.pl)
[![icon][github]](https://github.com/MichalPlacek)
&nbsp;
MichalPlacek
* [![icon][mail]](mailto:shrikantsharat.k@gmail.com)
[![icon][github]](https://github.com/sharat87)
&nbsp;
Shrikant Sharat Kandula
* [![icon][mail]](mailto:michal.placek@yandex.com)
[![icon][github]](https://github.com/MichalPlacek)
&nbsp;
Michal Placek
* [![icon][mail]](mailto:eugene.nizienko@jetbrains.com)
[![icon][github]](https://github.com/nizienko)
&nbsp;
eugene nizienko
* [![icon][mail]](mailto:x@lipp.fi)
[![icon][github]](https://github.com/lippfi)
&nbsp;
Filipp Vakhitov
* [![icon][mail]](mailto:yzeiri.1@osu.edu)
[![icon][github]](https://github.com/myzeiri)
&nbsp;
Martin Yzeiri
* [![icon][mail]](mailto:jeyko1@gmail.com)
[![icon][github]](https://github.com/wrightwriter)
&nbsp;
Petar Guglev
* [![icon][mail]](mailto:contact@chylex.com)
[![icon][github]](https://github.com/chylex)
&nbsp;
chylex
* [![icon][mail]](mailto:daniel.egger@gmail.com)
[![icon][github]](https://github.com/DanEEStar)
&nbsp;
DanEEStar
* [![icon][mail]](mailto:ksrbkevinsuen@gmail.com)
[![icon][github]](https://github.com/ksrb)
&nbsp;
Kevin Suen
* [![icon][mail]](mailto:michael.schertenleib@inftec.ch)
[![icon][github]](https://github.com/cravay)
&nbsp;
Michael Schertenleib
* [![icon][mail]](mailto:piotr@near.org)
[![icon][github]](https://github.com/pmnoxx)
&nbsp;
Piotr Mikulski
* [![icon][mail]](mailto:lonrevip@gmail.com)
[![icon][github]](https://github.com/lonre)
&nbsp;
Lonre Wang
* [![icon][mail]](mailto:AlexPl292@gmail.com)
[![icon][github]](https://github.com/AlexPl292)
&nbsp;
Alex Pláte
* [![icon][mail]](mailto:david@dadon.fr)
[![icon][github]](https://github.com/ddadon10)
&nbsp;
David Dadon
* [![icon][mail]](mailto:hollandpirates@gmail.com)
[![icon][github]](https://github.com/PHPirates)
&nbsp;
Thomas Schouten
* [![icon][mail]](mailto:sr@mail25.de)
[![icon][github]](https://github.com/Vvalter)
&nbsp;
Simon Rainer
* [![icon][mail]](mailto:filipp.vakhitov@jetbrains.com)
[![icon][github]](https://github.com/lippfi)
&nbsp;
lippfi
* [![icon][mail]](mailto:3237686+Runinho@users.noreply.github.com)
[![icon][github]](https://github.com/Runinho)
&nbsp;
Runinho
* [![icon][mail]](mailto:me@yuhaowen.com)
[![icon][github]](https://github.com/adaext)
&nbsp;
Ada
* [![icon][mail]](mailto:dominic.palmer@outlook.com)
[![icon][github]](https://github.com/dominicpalmer)
&nbsp;
Dominic Palmer
* [![icon][mail]](mailto:kawagh.dev@gmail.com)
[![icon][github]](https://github.com/kawagh)
&nbsp;
kawagh
* [![icon][mail]](mailto:78074243+danisevas@users.noreply.github.com)
[![icon][github]](https://github.com/danisevas)
&nbsp;
Dani Sevastianov
* [![icon][mail]](mailto:oskar.persson@polken.se)
[![icon][github]](https://github.com/oskarpersson/)
&nbsp;
Oskar Persson
* [![icon][mail]](mailto:silence.m@hotmail.com)
[![icon][github]](https://github.com/Stzx)
&nbsp;
Silence Tai
* [![icon][mail]](mailto:tszsumng90@gmail.com)
[![icon][github]](https://github.com/samabcde)
&nbsp;
Sam Ng
* [![icon][mail]](mailto:ludwig.valda.vasquez@jetbrains.com)
[![icon][github]](https://github.com/ludwig-jb)
&nbsp;
ludwig-jb
Previous contributors:
* [![icon][mail]](mailto:hild@b4mad.net)
[![icon][github-off]](#)
&nbsp;
Marcel Hild
* [![icon][mail]](mailto:kevinz@weghst.com)
[![icon][github]](https://github.com/kevin70)
&nbsp;
kk
If you are a contributor and your name is not listed here, feel free to
contact the maintainers.
<a href="https://icons8.com">Icons by Icons8</a>
[mail]: resources/icons/mail.png
[github]: resources/icons/github.png
[mail]: assets/icons/mail.png
[github]: assets/icons/github.png
[github-off]: resources/icons/github-off.png
[github-off]: assets/icons/github-off.png

View File

@@ -4,17 +4,18 @@ The Changelog
History of changes in IdeaVim for the IntelliJ platform.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project DOES NOT adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Stable versions use X.Y format.
EAP versions use X.Y.Z format.
Before version 1.7.0:
Stable versions use X.Y format.
EAP ([Early Access Program](https://jb.gg/ideavim-eap)) versions use X.Y.Z format.
Get an Early Access
-------------------
Would you like to try new features and fixes? Join the Early Access Program and
receive EAP builds as updates! Use the `EAP` option in the status bar or
receive EAP builds as updates! Use the `Early Access Program` option in the status bar or
add this URL to "Settings | Plugins | Manage Plugin Repositories":
`https://plugins.jetbrains.com/plugins/eap/ideavim`
@@ -24,24 +25,501 @@ usual beta standards.
## To Be Released
### Fixes:
* [VIM-3060](https://youtrack.jetbrains.com/issue/VIM-3060) Clipboard interaction stopped working
### 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
## 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
* Add `:Commentary` command, which works great for commands such as `:%g/fun/Commentary`
* Support `gc` commentary text objects. E.g. `dgc`: delete commented text.
* Support `redo-register feature` | [VIM-2643](https://youtrack.jetbrains.com/issue/VIM-2643/Dot-operator-doesn-t-increment-number-register-after-pasting-fro) | [viminfo](http://vimdoc.sourceforge.net/htmldoc/undo.html#redo-register)
### Changes:
* Uses the same mappings as Commentary, so custom bindings for the Vim plugin will work with IdeaVim, too.
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-^
* [VIM-2590](https://youtrack.jetbrains.com/issue/VIM-2590) Fix caret shape in PyCharm
* [VIM-2553](https://youtrack.jetbrains.com/issue/VIM-2553) Substitute consecutive matches
* [VIM-1687](https://youtrack.jetbrains.com/issue/VIM-1687) Support count for `gcc`
* [VIM-2381](https://youtrack.jetbrains.com/issue/VIM-2381) Fall back to line comment if block comment is not available
* [VIM-2589](https://youtrack.jetbrains.com/issue/VIM-2589) Add `gc` text object
* [VIM-2604](https://youtrack.jetbrains.com/issue/VIM-2604) Update action execution rules
* [VIM-2654](https://youtrack.jetbrains.com/issue/VIM-2654) Add support for `return` without expression
* [VIM-2630](https://youtrack.jetbrains.com/issue/VIM-2630/Please-fix-warning-Shall-not-be-called-on-a-template-presentatio) Fix IDE freeze
* [VIM-2661](https://youtrack.jetbrains.com/issue/VIM-2661/Spamming-does-not-work) Fix repeating the `@@` command
* [VIM-2668](https://youtrack.jetbrains.com/issue/VIM-2668/tabm-or-tabm-with-no-number-does-not-match-vim-behavior) Fix omitted numbers in `tabm` command
* [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-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
* [483](https://github.com/JetBrains/ideavim/pull/483) by [Simon Rainer](https://github.com/Vvalter): Fix(VIM-2553): Substitute consecutive matches
* [488](https://github.com/JetBrains/ideavim/pull/488) by [Martin Yzeiri](https://github.com/myzeiri): Add Matchit support for the C family of languages
* [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
### Features:
* Add register support to let command | [VIM-749](https://youtrack.jetbrains.com/issue/VIM-749), [VIM-1783](https://youtrack.jetbrains.com/issue/VIM-1783)
* Add tabmove command | [VIM-1164](https://youtrack.jetbrains.com/issue/VIM-1164)
### Fixes:
* [VIM-2502](https://youtrack.jetbrains.com/issue/VIM-2502) Fix the shape of new carets
* [VIM-2499](https://youtrack.jetbrains.com/issue/VIM-2499) Fix mapping to esc
* [VIM-2500](https://youtrack.jetbrains.com/issue/VIM-2500) Fix esc for normal mode
* [VIM-2523](https://youtrack.jetbrains.com/issue/VIM-2523) `i` command for the folder in the project tree
* [VIM-2471](https://youtrack.jetbrains.com/issue/VIM-2471) Multiple [{ and ]} actions
* [VIM-2504](https://youtrack.jetbrains.com/issue/VIM-2504) Fix esc with using python notebooks
* [VIM-2540](https://youtrack.jetbrains.com/issue/VIM-2540) Fix option listeners
* [VIM-2548](https://youtrack.jetbrains.com/issue/VIM-2548) Fix paste
* [VIM-2470](https://youtrack.jetbrains.com/issue/VIM-2470) Fix incorrect reset of cursor shape
* [VIM-2223](https://youtrack.jetbrains.com/issue/VIM-2223), [VIM-1684](https://youtrack.jetbrains.com/issue/VIM-1684), [VIM-2491](https://youtrack.jetbrains.com/issue/VIM-2491) Fix `gv`
### Merged PRs:
* [441](https://github.com/JetBrains/ideavim/pull/441) by [DanEEStar](https://github.com/DanEEStar): Add Matchit support for Vue.js files
* [440](https://github.com/JetBrains/ideavim/pull/440) by [Kevin Suen](https://github.com/ksrb): Add matchit support for handlebars
* [448](https://github.com/JetBrains/ideavim/pull/448) by [Michael Schertenleib](https://github.com/cravay): Support custom element names in vim-surround
* [435](https://github.com/JetBrains/ideavim/pull/435) by [Piotr Mikulski](https://github.com/pmnoxx): Print stderr when running a command just like vim does
* [449](https://github.com/JetBrains/ideavim/pull/449) by [Lonre Wang](https://github.com/lonre): Typo fix
* [453](https://github.com/JetBrains/ideavim/pull/453) by [Matt Ellis](https://github.com/citizenmatt): fix(VIM-2470): Fix incorrect reset of cursor shape
* [461](https://github.com/JetBrains/ideavim/pull/461) by [David Dadon](https://github.com/ddadon10): Add shortcut to ideajoin example
## 1.9.0, 2021-12-10
### Features:
* Make IdeaVim compatible with CodeWithMe | [VIM-2332](https://youtrack.jetbrains.com/issue/VIM-2332)
* expression register `<C-R>=` | [VIM-521](https://youtrack.jetbrains.com/issue/VIM-521)
### Fixes:
* [VIM-2442](https://youtrack.jetbrains.com/issue/VIM-2442) Fix `!` command
* [VIM-2255](https://youtrack.jetbrains.com/issue/VIM-2255) Fix reload icon on windows
* [VIM-2199](https://youtrack.jetbrains.com/issue/VIM-2199) Fix autocompletion for AppCode
* [VIM-2445](https://youtrack.jetbrains.com/issue/VIM-2445) Fix spaces in range
* [VIM-2450](https://youtrack.jetbrains.com/issue/VIM-2450) Fix set command
* [VIM-2451](https://youtrack.jetbrains.com/issue/VIM-2451) Fix comments
* [VIM-2452](https://youtrack.jetbrains.com/issue/VIM-2452) Fix augroup
* [VIM-2453](https://youtrack.jetbrains.com/issue/VIM-2453) Fix split command
* [VIM-2397](https://youtrack.jetbrains.com/issue/VIM-2397) Fix dollar motion as an operator
* [VIM-2432](https://youtrack.jetbrains.com/issue/VIM-2432) Fix ctrl-d and ctrl-u motions with scrolloff
* [VIM-2462](https://youtrack.jetbrains.com/issue/VIM-2462) Reset caret shape when disabling plugin
* [VIM-2449](https://youtrack.jetbrains.com/issue/VIM-2449) Fix `I` for one-line block selection
* [VIM-2213](https://youtrack.jetbrains.com/issue/VIM-2213) Close VCS change popup on esc
* [VIM-2435](https://youtrack.jetbrains.com/issue/VIM-2435) Close diff window on esc
* [VIM-2461](https://youtrack.jetbrains.com/issue/VIM-2461) Show action id before action execution
* [VIM-2026](https://youtrack.jetbrains.com/issue/VIM-2026) Keep global marks after restart
* [VIM-1691](https://youtrack.jetbrains.com/issue/VIM-1691) Fix default path for `!` command
* [VIM-2487](https://youtrack.jetbrains.com/issue/VIM-2487)
[VIM-2434](https://youtrack.jetbrains.com/issue/VIM-2434)
Fix IdeaVim in PyCharm notebooks
### Merged PRs:
* [390](https://github.com/JetBrains/ideavim/pull/390) by [chylex](https://github.com/chylex): [VIM-2255] Missing reload icon in .ideavimrc on Windows
* [391](https://github.com/JetBrains/ideavim/pull/391) by [Matt Ellis](https://github.com/citizenmatt): fix(VIM-2432): handle scrolloff with <C-D> and <C-U>
* [401](https://github.com/JetBrains/ideavim/pull/401) by [Matt Ellis](https://github.com/citizenmatt): Reset caret shape when disabling plugin
* [407](https://github.com/JetBrains/ideavim/pull/407) by [eugene nizienko](https://github.com/nizienko): Video recording for ui tests
* [418](https://github.com/JetBrains/ideavim/pull/418) by [chylex](https://github.com/chylex): Fix compile errors in unit tests on Windows
## 1.8.0, 2021-10-27
### Features:
* Support `matchit.vim` extension for Ruby and XML/HTML [VIM-539](https://youtrack.jetbrains.com/issue/VIM-539) | [matchit.vim](https://github.com/chrisbra/matchit)
* IDE-specific configuration [VIM-1573](https://youtrack.jetbrains.com/issue/VIM-1573)
* Call command [VIM-2416](https://youtrack.jetbrains.com/issue/VIM-2416)
### Fixes:
* [VIM-2417](https://youtrack.jetbrains.com/issue/VIM-2417) Fix bars in substitute command
* [VIM-2425](https://youtrack.jetbrains.com/issue/VIM-2425) Fix reload button
* [VIM-2422](https://youtrack.jetbrains.com/issue/VIM-2422) Fix freeze
* [VIM-2420](https://youtrack.jetbrains.com/issue/VIM-2420) Fix freeze
* [VIM-2359](https://youtrack.jetbrains.com/issue/VIM-2359) Fix selection with VimExchange
* [VIM-2426](https://youtrack.jetbrains.com/issue/VIM-2426) Fix marks in commands
* [VIM-2438](https://youtrack.jetbrains.com/issue/VIM-2438) Fix marks in commands
* [DISCUSSION-386](https://github.com/JetBrains/ideavim/discussions/386) Fixed command with no spaces before argument
### Merged PRs:
* [337](https://github.com/JetBrains/ideavim/pull/337) by [Matt Ellis](https://github.com/citizenmatt): guicursor!
* [343](https://github.com/JetBrains/ideavim/pull/343) by [Martin Yzeiri](https://github.com/myzeiri): Emulate matchit.vim
* [387](https://github.com/JetBrains/ideavim/pull/387) by [Petar Guglev](https://github.com/wrightwriter): Update README.md link
## 1.7.2, 2021-09-30
### Fixes:
* [VIM-2405](https://youtrack.jetbrains.com/issue/VIM-2405) ExExceptions during `map <expr>` execution are now displayed in status bar
* [VIM-2406](https://youtrack.jetbrains.com/issue/VIM-2406) Fix go to line command
* [VIM-2408](https://youtrack.jetbrains.com/issue/VIM-2408) Fix vim script parser
* [VIM-2409](https://youtrack.jetbrains.com/issue/VIM-2409) Fix substitute command
* [VIM-2411](https://youtrack.jetbrains.com/issue/VIM-2411) Fix vim script parser
## 1.7.1, 2021-09-20
### Fixes:
* [VIM-2400](https://youtrack.jetbrains.com/issue/VIM-2400) Fix vim script parser
* [VIM-2401](https://youtrack.jetbrains.com/issue/VIM-2401) Exceptions occurred during execution of `map<expr>` are now shown in status bar
* [VIM-2404](https://youtrack.jetbrains.com/issue/VIM-2404) Fix multiple pastes from unnamed clipboard
## 1.7.0, 2021-09-16
### Features:
* New engine for Vim Script execution. Check out the [GitHub Discussion](https://jb.gg/vim-script-discussion).
* Mapping keys to expressions (map \<expr>). See `:h map-expression`.
### Fixes:
* [VIM-2368](https://youtrack.jetbrains.com/issue/VIM-2368) Do not remove selection on right click
* [VIM-2392](https://youtrack.jetbrains.com/issue/VIM-2392) Fix possible out of bounds exception
* [VIM-2387](https://youtrack.jetbrains.com/issue/VIM-2387) Fix coping with unnamed and ideaput
### Changes:
* New versioning scheme. Current version is `1.7.0` instead of `0.70`.
### Merged PRs:
* [349](https://github.com/JetBrains/ideavim/pull/349) by [eugene nizienko](https://github.com/nizienko): Run UI test ci
## 0.69, 2021-07-20
### Features:
* Support several buffer management commands [VIM-1062](https://youtrack.jetbrains.com/issue/VIM-1062), [VIM-2335](https://youtrack.jetbrains.com/issue/VIM-2335)
### Fixes:
* [VIM-2317](https://youtrack.jetbrains.com/issue/VIM-2317) Fix memory leak
* [VIM-1357](https://youtrack.jetbrains.com/issue/VIM-1357)
[VIM-1566](https://youtrack.jetbrains.com/issue/VIM-1566) Fix external filters
* [VIM-2336](https://youtrack.jetbrains.com/issue/VIM-2336) Fix repeat for the `T` movement
* [VIM-1192](https://youtrack.jetbrains.com/issue/VIM-1192) Fix dollar motion from single command
* [VIM-1672](https://youtrack.jetbrains.com/issue/VIM-1672) IdeaVim correctly populates clipboard history
* [VIM-2351](https://youtrack.jetbrains.com/issue/VIM-2351) Correctly select last character when selecting with mouse
### Merged PRs:
* [332](https://github.com/JetBrains/ideavim/pull/332) by [Matt Ellis](https://github.com/citizenmatt): VIM-1357+VIM-1566: Use OS shell to run filter command
* [333](https://github.com/JetBrains/ideavim/pull/333) by [Michal Placek](https://github.com/MichalPlacek): VIM-1062
* [334](https://github.com/JetBrains/ideavim/pull/334) by [Michal Placek](https://github.com/MichalPlacek): vim-2335 Support for navigation to previous buffer with :b#
## 0.68, 2021-06-22
### Features:
* Support `:global` and `:vglobal` commands [VIM-831](https://youtrack.jetbrains.com/issue/VIM-831), [VIM-832](https://youtrack.jetbrains.com/issue/VIM-832)
* Support `vim-indent-object` extension [VIM-1151](https://youtrack.jetbrains.com/issue/VIM-1151) | [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object)
* Support `:print` command
### Fixes:
* [VIM-2308](https://youtrack.jetbrains.com/issue/VIM-2308) Go to next tab doesn't move scrolling
### Merged PRs:
* [261](https://github.com/JetBrains/ideavim/pull/261) by [Shrikant Sharat Kandula](https://github.com/sharat87): New extension: Indentation based text objects
* [308](https://github.com/JetBrains/ideavim/pull/308) by [Matt Ellis](https://github.com/citizenmatt): Fix unnecessary caret movement when switching tabs
## 0.67, 2021-05-20
### Features:
* Support `sethandler` command to configure shortcuts conflicts via `~/.ideavimrc` file. See [docs](https://jb.gg/vim-sethandler).
* Support `vim-paragraph-motion` extension [VIM-2290](https://youtrack.jetbrains.com/issue/VIM-2290) | [vim-paragraph-motion](https://github.com/dbakker/vim-paragraph-motion)
* Add "Reset Handlers" button for "Conflicting Shortcuts" setting table
### Changes:
* Rename "Vim Emulation" in settings to "Vim"
### Fixes:
* [VIM-2230](https://youtrack.jetbrains.com/issue/VIM-2230) Tweak caret position with inline rename options inlay
* [VIM-2177](https://youtrack.jetbrains.com/issue/VIM-2177) Fix scrolling issues near bottom of file
* [VIM-2276](https://youtrack.jetbrains.com/issue/VIM-2276) `:ls` returns correct path for files on Microsoft Windows.
* [VIM-1953](https://youtrack.jetbrains.com/issue/VIM-1953) Execute live testing for `:w` command
* [VIM-2284](https://youtrack.jetbrains.com/issue/VIM-2284) Values are not duplicated in set command
* [VIM-2289](https://youtrack.jetbrains.com/issue/VIM-2289) Fix `<End>` command behaviour
* [VIM-1476](https://youtrack.jetbrains.com/issue/VIM-1476) Last inserted text is stored in `.` register
* [VIM-2295](https://youtrack.jetbrains.com/issue/VIM-2295) Fix `<S-Space>` in insert mode with an existing mapping
* [VIM-1401](https://youtrack.jetbrains.com/issue/VIM-1401) IdeaVim triggers readonly handler
* [VIM-1856](https://youtrack.jetbrains.com/issue/VIM-1856) Support defining shortcuts in .ideavimrc
* [VIM-1523](https://youtrack.jetbrains.com/issue/VIM-1523) Allow different shortcut handlers in different modes
### Merged PRs:
* [280](https://github.com/JetBrains/ideavim/pull/280) by [Matt Ellis](https://github.com/citizenmatt): Caret position and view scrolling fixes
* [289](https://github.com/JetBrains/ideavim/pull/289) by [MichalPlacek](https://github.com/MichalPlacek): VIM-2276 ls returns "absolute path" for files on Microsoft Windows.
* [295](https://github.com/JetBrains/ideavim/pull/295) by [MichalPlacek](https://github.com/MichalPlacek): VIM-1476
## 0.66, 2021-04-09
Not a lot of changes for this release. Focused on internal improvements.
### Features:
* Support `startofline` option
### Fixes:
* [VIM-2238](https://youtrack.jetbrains.com/issue/VIM-2238) Fix `M` command for small files
### Merged PRs:
* [275](https://github.com/JetBrains/ideavim/pull/275) by [Matt Ellis](https://github.com/citizenmatt): Fix edge cases for H, L and M and introduce 'startofline' option
* [276](https://github.com/JetBrains/ideavim/pull/276) by [Matt Ellis](https://github.com/citizenmatt): More refactoring of SearchGroup
## 0.65, 2021-02-17
### Features:
* Support `NERDTree` extension [VIM-1042](https://youtrack.jetbrains.com/issue/VIM-1042) | [NERDTree](https://github.com/preservim/nerdtree)
* <details>
<summary><strong>Click to see details</strong></summary>
<img src="assets/changes/0.65/nerdtree.gif" alt="NERDTree example"/>
</details>
* Support `maxmapdepth` option to define the maximum depth of mappings
### Fixes:
* [VIM-2202](https://youtrack.jetbrains.com/issue/VIM-2202) Fix macro recording for ex command and search
* [VIM-1799](https://youtrack.jetbrains.com/issue/VIM-1799)
[VIM-1794](https://youtrack.jetbrains.com/issue/VIM-1794)
Special characters are not interpreted on yanking
* [VIM-2218](https://youtrack.jetbrains.com/issue/VIM-2218) Fix some shortcuts for 2021.+
* [VIM-2217](https://youtrack.jetbrains.com/issue/VIM-2217) Fix adding new line at the end of the file for the AppCode
* [VIM-2220](https://youtrack.jetbrains.com/issue/VIM-2220) Do not try to get a commandState for null editor
* [VIM-2153](https://youtrack.jetbrains.com/issue/VIM-2153) Fix storing special characters after IDE closing
### Merged PRs:
* [269](https://github.com/JetBrains/ideavim/pull/269) by [大牙(Henry Zhu)](https://github.com/daya0576): fix invalid link of submodule docs
## 0.64, 2020-12-23
### Merged PRs:
* [260](https://github.com/JetBrains/ideavim/pull/260) by [Matt Ellis](https://github.com/citizenmatt): Refactor SearchGroup
### Fixes:
* [VIM-2194](https://youtrack.jetbrains.com/issue/VIM-2194) Fix caret shape during editing a new file
## 0.63, 2020-12-16
### Changes:
* Update the minimal required IJ version: 2020.2+
### Fixes:
* [CWM-927](https://youtrack.jetbrains.com/issue/CWM-927) Fix typing for CodeWithMe and IdeaVim
### Merged PRs:
* [259](https://github.com/JetBrains/ideavim/pull/259) by [Vladimir Petrenko](https://github.com/vladimir-petrenko): CWM-927 disable vim for client's hidden editor on host
## 0.62, 2020-12-15
### Features:
* Support `unmap` and `mapclear` commands [VIM-1491](https://youtrack.jetbrains.com/issue/VIM-1491)
* Support mappings in ex panel (`cmap`) [VIM-1227](https://youtrack.jetbrains.com/issue/VIM-1227)
### Changes:
* `octal` is now disabled by default for `nrformats`. [VIM-2181](https://youtrack.jetbrains.com/issue/VIM-2181)
### Fixes:
* [VIM-2113](https://youtrack.jetbrains.com/issue/VIM-2113) Fix `cit` for empty tags
* [VIM-2114](https://youtrack.jetbrains.com/issue/VIM-2114) Unnamed register isn't changed after deleting empty tag
* [VIM-1475](https://youtrack.jetbrains.com/issue/VIM-1475) Enable block caret to be used in insert mode.
* [VIM-2170](https://youtrack.jetbrains.com/issue/VIM-2170) Fix an alternative range format for `s` command
* [VIM-1913](https://youtrack.jetbrains.com/issue/VIM-1913)
[VIM-2154](https://youtrack.jetbrains.com/issue/VIM-2154) Several fixes for AppCode templates
* [VIM-1756](https://youtrack.jetbrains.com/issue/VIM-1756) Fix startsel from insert mode
### Merged PRs:
* [249](https://github.com/JetBrains/ideavim/pull/249) by [Jan Palus](https://github.com/jpalus): VIM-2113 Increase tag range only in visual mode
* [250](https://github.com/JetBrains/ideavim/pull/250) by [Jan Palus](https://github.com/jpalus): VIM-2114 Do not override registers when deleting empty range
* [256](https://github.com/JetBrains/ideavim/pull/256) by [Brandon Conway](https://github.com/brandoncc): Fix typo
* [254](https://github.com/JetBrains/ideavim/pull/254) by [Grzegorz Antoniak](https://github.com/antekone): VIM-1475: Add an option to use block caret in insert mode
* [225](https://github.com/JetBrains/ideavim/pull/225) by [sumoooru2](https://github.com/sumoooru2): Implement cmap
* [258](https://github.com/JetBrains/ideavim/pull/258) by [Matt Ellis](https://github.com/citizenmatt): Show the correct handler class in :map
* [257](https://github.com/JetBrains/ideavim/pull/257) by [Matt Ellis](https://github.com/citizenmatt): Extract SearchHighlightsHelper from SearchGroup
* [251](https://github.com/JetBrains/ideavim/pull/251) by [Shaun Patterson](https://github.com/shaunpatterson): VIM-1756: startSel works in insert mode
## 0.61, 2020-11-12
### Features:
* Ability to map IDE actions via the `<Action>` keyword. E.g. `map <C-K> <Action>(CommentByLineComment)`.
Check out `README.md` for the details.
* `IdeaVim: track action Ids` command to find action ids for the `:action` command.
Enable this option in "Search everywhere" (double shift).
* Ability to enable extensions using `vim-plug` or `vundle` syntax.
E.g. to enable commentary extension you can use one of the following commands:
```vim
set commentary
Plug 'tpope/vim-commentary'
Plug 'https://github.com/tpope/vim-commentary'
Plugin 'tpope/vim-commentary'
...
```
This approach is especially handy if you have `.vimrc` with plugins registered via `vim-plug` or `vundle`.
### Changes:
* Fix `<Esc>` for dialogs. Now `<Esc>` will exit insert / visual mode and close the dialog from normal mode.
* Add option to disable IdeaVim
in dialogs / single line editors. [VIM-765](https://youtrack.jetbrains.com/issue/VIM-765)
Use `set ideaenabledbufs=` to disable IdeaVim in dialog editors.
_Note for EAP users: the option name can be changed for the stable release_
* Add option to disable IdeaVim in dialogs / single line editors. [VIM-765](https://youtrack.jetbrains.com/issue/VIM-765)
Use `set ideavimsupport=` to disable IdeaVim in dialog editors.
* Reposition cursor when `scrolloff` changes
### Fixes:
* [VIM-2150](https://youtrack.jetbrains.com/issue/VIM-2150) `Shift-D` should not delete an empty line
* [VIM-2157](https://youtrack.jetbrains.com/issue/VIM-2157) Fix tab with an active template
* [VIM-2156](https://youtrack.jetbrains.com/issue/VIM-2156) Correct up/down motions with inlays
* [VIM-2144](https://youtrack.jetbrains.com/issue/VIM-2144) Correct text position after block insert with inlays
* [VIM-2158](https://youtrack.jetbrains.com/issue/VIM-2158) Fix scrolling when `scrolloff` is over half screen height, but less than full height
### Merged PRs:
* [255](https://github.com/JetBrains/ideavim/pull/255) by [Matt Ellis](https://github.com/citizenmatt): Fix various scrolling issues
## 0.60, 2020-10-09
@@ -77,7 +555,7 @@ _Note for EAP users: the option name can be changed for the stable release_
* <details>
<summary><strong>Click to see details</strong></summary>
<img src="resources/changes/0.59/highlight_yank.gif" alt="highlight yank"/>
<img src="assets/changes/0.59/highlight_yank.gif" alt="highlight yank"/>
</details>
* [VIM-2068](https://youtrack.jetbrains.com/issue/VIM-2068) `:tabclose` command
@@ -102,7 +580,7 @@ _Note for EAP users: the option name can be changed for the stable release_
* <details>
<summary><strong>Click to see details</strong></summary>
<img src="resources/changes/0.58/reload_ideavimrc.png" alt="IdeaVimRc reload"/>
<img src="assets/changes/0.58/reload_ideavimrc.png" alt="IdeaVimRc reload"/>
</details>
* Add `:buffer` command.

View File

@@ -1,9 +1,12 @@
[![TeamCity Build][teamcity-build-status-svg]][teamcity-build-status]
IdeaVim is an open source project created by 60+ contributors. Would you like to make it even better? Thats wonderful!
IdeaVim is an open source project created by 80+ contributors. Would you like to make it even better? Thats wonderful!
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/). Please see [Fleet refactoring](#Fleet-refactoring).
## Before you begin
- The project is written in Kotlin and Java. Choose whichever language you feel more comfortable with,
@@ -26,7 +29,16 @@ OK, ready to do some coding?
* Fork the repository and clone it to the local machine.
* Open the project with IntelliJ IDEA.
Yoo hoo! Youre all set to begin contributing. Here are some useful gradle commands:
Yoo hoo! Youre all set to begin contributing.
We've prepared some useful configurations for you:
- `Start IJ with IdeaVim`
- `IdeaVim tests`
- `IdeaVim full verification`
![Prepared configurations light](assets/contributing/configs-light.png#gh-light-mode-only)![Prepared configurations dark](assets/contributing/configs-dark.png#gh-dark-mode-only)
And here are useful gradle commands:
* `./gradlew runIde` — start the dev version of IntelliJ IDEA with IdeaVim installed.
* `./gradlew test` — run tests.
@@ -56,7 +68,9 @@ If you are looking for:
- Ex commands (`:set`, `:s`, `:nohlsearch`):
- Any particular ex command: package `com.maddyhome.idea.vim.ex.handler`.
- Ex command executor: `CommandHandler`.
- Vim script grammar: `Vimscript.g4`.
- Vim script parsing: package `com.maddyhome.idea.vim.vimscript.parser`.
- Vim script executor: `Executor`.
- Extensions:
- Extensions handler: `VimExtensionHandler`.
@@ -64,7 +78,7 @@ If you are looking for:
- Common features:
- State machine. How every particular keystroke is parsed in IdeaVim: `KeyHandler.handleKey()`.
- Options (`incsearch`, `iskeyword`, `relativenumber`): `OptionsManager`.
- Options (`incsearch`, `iskeyword`, `relativenumber`): `OptionServiceImpl`.
- Plugin startup: `PluginStartup`.
- Notifications: `NotificationService`.
- Status bar icon: `StatusBar.kt`.
@@ -77,9 +91,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 Nabokovs “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.
@@ -110,6 +131,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.
@@ -128,13 +160,13 @@ 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)
* [Unofficial discord server](https://jb.gg/bi6zp7)
* [IdeaVim Channel](https://jb.gg/bi6zp7) on [JetBrains Server](https://discord.gg/jetbrains)
* [Plugin homepage](https://plugins.jetbrains.com/plugin/164-ideavim)
* [Changelog](CHANGES.md)
* [Contributors listing](AUTHORS.md)
[teamcity-build-status]: https://teamcity.jetbrains.com/viewType.html?buildTypeId=IdeaVim_TestsForIntelliJ20201&guest=1
[teamcity-build-status-svg]: https://teamcity.jetbrains.com/app/rest/builds/buildType:(id:IdeaVim_TestsForIntelliJ20201)/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

View File

@@ -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.

233
README.md
View File

@@ -1,4 +1,4 @@
<img src="resources/META-INF/pluginIcon.svg" width="80" height="80" alt="icon" align="left"/>
<img src="src/main/resources/META-INF/pluginIcon.svg" width="80" height="80" alt="icon" align="left"/>
IdeaVim
===
@@ -9,21 +9,23 @@ IdeaVim
[![Rating][plugin-rating-svg]][plugin-repo]
[![Version][plugin-version-svg]][plugin-repo]
[![Gitter][gitter-svg]][gitter]
[![codecov](https://codecov.io/gh/JetBrains/ideavim/branch/master/graph/badge.svg)](https://codecov.io/gh/JetBrains/ideavim)
[![Twitter][twitter-svg]][twitter]
IdeaVim is a Vim emulation plugin for IDEs based on the IntelliJ Platform.
IdeaVim is a Vim engine for JetBrains IDEs.
##### Contact maintainers:
* [Bug tracker](https://youtrack.jetbrains.com/issues/VIM)
* [@IdeaVim](https://twitter.com/ideavim) on Twitter
* [Chat on gitter](https://gitter.im/JetBrains/ideavim)
* [Unofficial discord server](https://jb.gg/bi6zp7)
* [IdeaVim Channel](https://jb.gg/bi6zp7) on [JetBrains Server](https://discord.gg/jetbrains)
##### 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,13 +38,13 @@ 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` 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.
- Shortcut conflicts can be resolved by using:
- On Linux & Windows: `File | Settings | Editor | Vim Emulation` & `File | Settings | Keymap`,
- On macOS: `Preferences | Editor | Vim Emulation` & `Preferences | Keymap`,
- On Linux & Windows: `File | Settings | Editor | Vim` & `File | Settings | Keymap`,
- On macOS: `Preferences | Editor | Vim` & `Preferences | Keymap`,
- Regular Vim mappings in the `~/.ideavimrc` file.
Get Early Access
@@ -51,15 +53,17 @@ Get Early Access
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="resources/META-INF/pluginIcon_noBorders.svg" width="16" height="16" alt="icon"/>
in the status bar | `EAP` | `Get Early Access...`
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` | `Subscribe to EAP`
Or subscribe to EAP updates manually:
1. Open `Settings | Plugins`
2. Click the gear icon :gear:, select `Manage Plugin Repositories`, and add the following url:
`https://plugins.jetbrains.com/plugins/eap/ideavim`
```
https://plugins.jetbrains.com/plugins/eap/ideavim
```
See [the changelog](CHANGES.md) for the list of unreleased features.
@@ -81,14 +85,15 @@ Here are some examples of supported vim features and commands:
* Motion / deletion / change / window / etc. commands
* Key mappings
* Marks / Macros / Digraphs / Registers
* Some [set commands](doc/set-commands.md)
* Some [set commands](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands)
* Full Vim regexps for search and search/replace
* Vim web help
* `~/.ideavimrc` configuration file
[Emulated Vim plugins](doc/emulated-plugins.md):
[IdeaVim plugins](https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins):
* vim-easymotion
* NERDTree
* vim-surround
* vim-multiple-cursors
* vim-commentary
@@ -97,12 +102,17 @@ Here are some examples of supported vim features and commands:
* ReplaceWithRegister
* vim-exchange
* vim-highlightedyank
* vim-paragraph-motion
* vim-indent-object
* match.it
etc
See also:
* [The list of all supported commands](src/com/maddyhome/idea/vim/package-info.java)
* [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)
Files
-----
@@ -144,31 +154,44 @@ set idearefactormode=keep
map <leader>f <Plug>(easymotion-s)
map <leader>e <Plug>(easymotion-f)
map <leader>d :action Debug<CR>
map <leader>r :action RenameElement<CR>
map <leader>c :action Stop<CR>
map <leader>z :action ToggleDistractionFreeMode<CR>
map <leader>d <Action>(Debug)
map <leader>r <Action>(RenameElement)
map <leader>c <Action>(Stop)
map <leader>z <Action>(ToggleDistractionFreeMode)
map <leader>s :action SelectInProjectView<CR>
map <leader>a :action Annotate<CR>
map <leader>h :action Vcs.ShowTabbedFileHistory<CR>
map <S-Space> :action GotoNextError<CR>
map <leader>s <Action>(SelectInProjectView)
map <leader>a <Action>(Annotate)
map <leader>h <Action>(Vcs.ShowTabbedFileHistory)
map <S-Space> <Action>(GotoNextError)
map <leader>b :action ToggleLineBreakpoint<CR>
map <leader>o :action FileStructurePopup<CR>
map <leader>b <Action>(ToggleLineBreakpoint)
map <leader>o <Action>(FileStructurePopup)
```
</details>
<details>
<summary><strong>Suggested options</strong> (click to see)</summary>
Here is also a list of the suggested options from [defaults.vim](https://github.com/vim/vim/blob/master/runtime/defaults.vim)
```vim
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Do incremental searching.
set incsearch
" Don't use Ex mode, use Q for formatting.
map Q gq
```
</details>
You can read your `~/.vimrc` file from `~/.ideavimrc` with this command:
source ~/.vimrc
Please note that IdeaVim currently parses `~/.ideavimrc` & `~/.vimrc` files via simple pattern-matching.
See [VIM-669](https://youtrack.jetbrains.com/issue/VIM-669) for proper parsing
of VimL files.
Also note that if you have overridden the `user.home` JVM option, this
will affect where IdeaVim looks for your `.ideavimrc` file. For example, if you
have `-Duser.home=/my/alternate/home` then IdeaVim will source
@@ -178,71 +201,110 @@ 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](doc/emulated-plugins.md)
See [doc/IdeaVim Plugins.md](https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins)
Changes to the IDE
------------------
Executing IDE Actions
---------------------
### Executing IDE Actions
IdeaVim adds two commands for listing and executing arbitrary IDE actions as
IdeaVim adds various commands for listing and executing arbitrary IDE actions as
Ex commands or via `:map` command mappings:
### Executing actions:
* `<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:
* 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>
<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>
* `:actionlist [pattern]`
* Find IDE actions by name or keymap pattern (E.g. `:actionlist extract`, `:actionlist <C-D`)
* `:action {name}`
* Execute an action named `NAME`
In addition to `:actionlist` command, IdeaVim provides `IdeaVim: track action Ids` option to
extract the ids of executed command. This option can be found in "Search everywhere" (double `shift`). **[To Be Released]**
* Find IDE actions by id or keymap pattern (E.g. `:actionlist extract`, `:actionlist <C-D`)
<details>
<summary><strong>"Track aciton Ids" Details</strong> (click to see)</summary>
<img src="resources/readme/track_action_id.gif" alt="track actioin ids"/>
</details>
For the mappings you can use a special `<Action>` keyword. Use `<Action>(*action_id*)` to map keys to some action. Don't
forget the parentheses. This keyword works for insert mode as well. **[To Be Released]**
Examples:
##### Examples:
```vim
" Map \r to the Reformat Code action
:map \r :action ReformatCode<CR>
" or
:map \r <Action>(ReformatCode) " [To Be Released]
:map \r <Action>(ReformatCode)
" Map <leader>d to start debug
:map <leader>d :action Debug<CR>
" or
:map <leader>d <Action>(Debug) " [To Be Released]
:map <leader>d <Action>(Debug)
" Map \b to toggle the breakpoint on the current line
:map \b :action ToggleLineBreakpoint<CR>
" or
:map \b <Action>(ToggleLineBreakpoint) " [To Be Released]
:map \b <Action>(ToggleLineBreakpoint)
```
### Undo/Redo
##### Some popular actions:
The IdeaVim plugin uses the undo/redo functionality of the IntelliJ Platform,
so the behavior of the `u` and `<C-R>` commands may differ from the original
Vim. Vim compatibility of undo/redo may be improved in future releases.
```
QuickJavaDoc - Quick Documentation (not only for java, all languages)
ShowErrorDescription - Show description of the error under the caret (cursor hovering)
QuickImplementations - Quick Definition
```
See also [unresolved undo issues](https://youtrack.jetbrains.com/issues/VIM?q=%23Unresolved+Help+topic%3A+u).
Vim Script
------------
### Escape
IdeaVim can execute custom scripts that are written with Vim Script.
At the moment we support all language features, but not all of the built-in functions and options are supported.
Using `<Esc>` in dialog windows remains problematic. For most dialog windows,
the Vim emulator is put into insert mode with `<Esc>` not working. You
should use `<C-c>` or `<C-[>` instead. In some dialog windows, the normal mode is
switched by default. The usage of the Vim emulator in dialog windows is an area for
improvement.
Additionally, you may be interested in the
[Vim Script Discussion](https://github.com/JetBrains/ideavim/discussions/357) or
[Vim Script Roadmap](https://github.com/JetBrains/ideavim/blob/master/vimscript-info/VIMSCRIPT_ROADMAP.md).
See also [unresolved escape issues](https://youtrack.jetbrains.com/issues/VIM?q=%23Unresolved+Help+topic%3A+i_Esc).
### IDE specific options
You can evaluate the `has('ide')` function call and get `1` if it was called with IdeaVim or `0` if the function was called from Vim/NeoVim.
The option `&ide` contains the name and edition of your IDE, for example, "IntelliJ IDEA Ultimate Edition".
To see its value for the current IDE you are using, execute the `:echo &ide` command.
To write an IDE-specific configuration, use Vim's regexp match operators `=~?` (case-insensitive) / `=~#` (case-sensitive)
**Example config:**
```vim
" options and mappings that are supported by both Vim and IdeaVim
set nu
set relativenumber
if has('ide')
" mappings and options that exist only in IdeaVim
map <leader>f <Action>(GotoFile)
map <leader>g <Action>(FindInPath)
map <leader>b <Action>(Switcher)
if &ide =~? 'intellij idea'
if &ide =~? 'community'
" some mappings and options for IntelliJ IDEA Community Edition
elseif &ide =~? 'ultimate'
" some mappings and options for IntelliJ IDEA Ultimate Edition
endif
elseif &ide =~? 'pycharm'
" PyCharm specific mappings and options
endif
else
" some mappings for Vim/Neovim
nnoremap <leader>f <cmd>Telescope find_files<cr>
endif
```
:gem: Contributing
------------
@@ -264,15 +326,11 @@ IdeaVim tips and tricks
- `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`
- Check out more [ex commands](doc/set-commands.md).
- 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`.
> :warning: Please note that IdeaVim currently parses `~/.ideavimrc` & `~/.vimrc` files via simple pattern-matching.
See [VIM-669](https://youtrack.jetbrains.com/issue/VIM-669) for proper parsing
of VimL files.
- Control the status bar icon via the [`ideastatusicon` option](doc/set-commands.md).
- Not familiar with the default behaviour during a refactoring? See the [`idearefactormode` option](doc/set-commands.md).
- Control the status bar icon via the [`ideastatusicon` option](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands).
- Not familiar with the default behaviour during a refactoring? See the [`idearefactormode` option](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands).
Some facts about Vim
-------
@@ -295,9 +353,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
@@ -306,11 +367,19 @@ 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.
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 -->

86
ThirdPartyLicenses.md Normal file
View File

@@ -0,0 +1,86 @@
IdeaVim project is licensed under MIT license except the following parts of it:
* File [RegExp.kt](src/main/java/com/maddyhome/idea/vim/regexp/RegExp.kt) is licensed under Vim License.
* 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.
```

42
annotation-processors/.gitignore vendored Normal file
View 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

View File

@@ -0,0 +1,23 @@
/*
* 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")
}
group = "com.intellij"
version = "SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
compileOnly("com.google.devtools.ksp:symbol-processing-api:1.9.10-1.0.13")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.0")
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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.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 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 filePath = Path(environment.options["generated_directory"]!!, environment.options["ex_commands_file"]!!)
val fileContent = json.encodeToString(commandToClass)
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) }
}
}
}

View File

@@ -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.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 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 filePath = Path(environment.options["generated_directory"]!!, environment.options["vimscript_functions_file"]!!)
val fileContent = json.encodeToString(nameToClass)
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) }
}
}
}

View File

@@ -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)
}
}

View File

@@ -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
public class VimscriptFunctionProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
return VimscriptFunctionProcessor(environment)
}
}

View File

@@ -0,0 +1,2 @@
com.intellij.vim.providers.VimscriptFunctionProcessorProvider
com.intellij.vim.providers.ExCommandProcessorProvider

View File

Before

Width:  |  Height:  |  Size: 194 KiB

After

Width:  |  Height:  |  Size: 194 KiB

View File

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 638 B

After

Width:  |  Height:  |  Size: 638 B

View File

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 364 B

View File

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 KiB

View File

@@ -1,140 +0,0 @@
import dev.feedforward.markdownto.DownParser
buildscript {
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "com.github.AlexPl292:mark-down-to-slack:1.0.1"
}
}
plugins {
id 'org.jetbrains.intellij' version '0.5.0'
id 'io.gitlab.arturbosch.detekt' version '1.14.1'
id "org.jetbrains.changelog" version "0.6.2"
}
apply plugin: 'java'
apply plugin: 'kotlin'
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
sourceSets {
main {
java.srcDir 'src'
resources.srcDir 'resources'
}
test {
java.srcDir 'test'
}
}
intellij {
version ideaVersion
pluginName 'IdeaVim'
updateSinceUntilBuild false
downloadSources Boolean.valueOf(downloadIdeaSources)
instrumentCode Boolean.valueOf(instrumentPluginCode)
intellijRepo = "https://www.jetbrains.com/intellij-repository"
plugins = ['java']
publishPlugin {
channels publishChannels.split(',')
username publishUsername
token publishToken
}
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
compileOnly "org.jetbrains:annotations:19.0.0"
// https://mvnrepository.com/artifact/com.ensarsarajcic.neovim.java/neovim-api
compile group: 'com.ensarsarajcic.neovim.java', name: 'neovim-api', version: '0.1.16'
}
compileKotlin {
kotlinOptions {
jvmTarget = javaVersion
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = javaVersion
}
}
detekt {
config = files("./detekt/config.yaml")
baseline = file("${rootProject.projectDir}/detekt/baseline.xml")
input = files("src")
buildUponDefaultConfig = true
reports {
html.enabled = false
xml.enabled = false
txt.enabled = false
}
}
tasks.detekt.jvmTarget = javaVersion
task testWithNeovim(type: Test) {
group = "verification"
systemProperty "ideavim.neovim.test", 'true'
}
changelog {
groups = ["Features:", "Changes:", "Deprecations:", "Fixes:", "Merged PRs:"]
itemPrefix = "*"
path = "${project.projectDir}/CHANGES.md"
unreleasedTerm = "To Be Released"
headerParserRegex = /0\.\d{2}(.\d+)?/
// header = { "${project.version}" }
// version = "0.60"
}
tasks.register("slackEapNotification") {
doLast {
if (!slackUrl) return
def post = new URL(slackUrl).openConnection()
def changeLog = changelog.getUnreleased().toText()
def slackDown = new DownParser(changeLog).toSlack().toString()
def message = """
{
"text": "New version of IdeaVim",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "IdeaVim EAP $version has been released\\n$slackDown"
}
}
]
}
"""
post.setRequestMethod("POST")
post.setDoOutput(true)
post.setRequestProperty("Content-Type", "application/json")
post.getOutputStream().write(message.getBytes("UTF-8"))
def postRC = post.getResponseCode()
println(postRC)
if (postRC == 200) {
println(post.getInputStream().getText())
}
}
}

1009
build.gradle.kts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,151 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues></ManuallySuppressedIssues>
<CurrentIssues>
<ID>ComplexMethod:CmdHandler.kt$CmdHandler$private fun addAlias(cmd: ExCommand, editor: Editor?): Boolean</ID>
<ID>ComplexMethod:CommandHandler.kt$CommandHandler$ @Throws(ExException::class) fun process(editor: Editor, context: DataContext, cmd: ExCommand, count: Int): Boolean</ID>
<ID>ComplexMethod:CommandState.kt$CommandState$ fun toVimNotation(): String</ID>
<ID>ComplexMethod:CommandState.kt$CommandState$private fun getStatusString(pos: Int): String</ID>
<ID>ComplexMethod:HistoryHandler.kt$HistoryHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ComplexMethod:OptionsManager.kt$OptionsManager$ fun parseOptionLine(editor: Editor?, args: String, failOnBad: Boolean): Boolean</ID>
<ID>ComplexMethod:OptionsManager.kt$OptionsManager$ private fun showOptions(editor: Editor?, opts: Collection&lt;Option&lt;*&gt;&gt;, showIntro: Boolean)</ID>
<ID>ComplexMethod:PutGroup.kt$PutGroup$private fun moveCaretToEndPosition( editor: Editor, caret: Caret, startOffset: Int, endOffset: Int, typeInRegister: SelectionType, modeInEditor: CommandState.SubMode, caretAfterInsertedText: Boolean )</ID>
<ID>ComplexMethod:PutGroup.kt$PutGroup$private fun prepareDocumentAndGetStartOffsets(editor: Editor, caret: Caret, typeInRegister: SelectionType, data: PutData, additionalData: Map&lt;String, Any&gt;): List&lt;Int&gt;</ID>
<ID>ComplexMethod:SearchHelperKt.kt$// bounds are considered inside corresponding quotes fun checkInString(chars: CharSequence, currentPos: Int, str: Boolean): Boolean</ID>
<ID>ComplexMethod:TabCloseHandler.kt$TabCloseHandler$ private fun getTabIndexToClose(arg: String, current: Int, last: Int): Int?</ID>
<ID>ComplexMethod:VimExchangeExtension.kt$VimExchangeExtension.Operator$private fun compareExchanges(x: Exchange, y: Exchange): ExchangeCompareResult</ID>
<ID>ComplexMethod:VimExtensionFacade.kt$VimExtensionFacade$ @JvmStatic fun inputString(editor: Editor, prompt: String, finishOn: Char?): String</ID>
<ID>ComplexMethod:VimMultipleCursorsExtension.kt$VimMultipleCursorsExtension.NextOccurrenceHandler$override fun executeInWriteAction(editor: Editor, context: DataContext)</ID>
<ID>ComplexMethod:VimShortcutKeyAction.kt$VimShortcutKeyAction$private fun isEnabled(e: AnActionEvent): Boolean</ID>
<ID>ComplexMethod:VisualGroup.kt$private fun setVisualSelection(selectionStart: Int, selectionEnd: Int, caret: Caret)</ID>
<ID>LongMethod:CmdHandler.kt$CmdHandler$private fun addAlias(cmd: ExCommand, editor: Editor?): Boolean</ID>
<ID>LongMethod:HistoryHandler.kt$HistoryHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>LongMethod:OptionsManager.kt$OptionsManager$ fun parseOptionLine(editor: Editor?, args: String, failOnBad: Boolean): Boolean</ID>
<ID>MagicNumber:ActionListHandler.kt$ActionListHandler$50</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$0.9f</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$1.75f</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$10</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$3</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$5</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$6</ID>
<ID>MagicNumber:AddBlockInlaysAction.kt$AddBlockInlaysAction$7</ID>
<ID>MagicNumber:AddInlineInlaysAction.kt$AddInlineInlaysAction$10</ID>
<ID>MagicNumber:AddInlineInlaysAction.kt$AddInlineInlaysAction$20</ID>
<ID>MagicNumber:AddInlineInlaysAction.kt$AddInlineInlaysAction$5</ID>
<ID>MagicNumber:AddInlineInlaysAction.kt$AddInlineInlaysAction$7</ID>
<ID>MagicNumber:BufferListHandler.kt$3</ID>
<ID>MagicNumber:CmdHandler.kt$CmdHandler$11</ID>
<ID>MagicNumber:CmdHandler.kt$CmdHandler$12</ID>
<ID>MagicNumber:CommandBuilder.kt$CommandBuilder$10</ID>
<ID>MagicNumber:CommandBuilder.kt$CommandBuilder$999999999</ID>
<ID>MagicNumber:ConfigurationMigrators.kt$Version 6 to 7 config migration$6</ID>
<ID>MagicNumber:ConfigurationMigrators.kt$Version 6 to 7 config migration$7</ID>
<ID>MagicNumber:EditorHelper.kt$10</ID>
<ID>MagicNumber:ExKeyBindings.kt$ExKeyBindings$0x05</ID>
<ID>MagicNumber:ExKeyBindings.kt$ExKeyBindings$0x08</ID>
<ID>MagicNumber:HistoryHandler.kt$HistoryHandler$7</ID>
<ID>MagicNumber:JumpsHandler.kt$JumpsHandler$200</ID>
<ID>MagicNumber:JumpsHandler.kt$JumpsHandler$3</ID>
<ID>MagicNumber:JumpsHandler.kt$JumpsHandler$5</ID>
<ID>MagicNumber:MarksHandler.kt$MarksHandler$200</ID>
<ID>MagicNumber:MarksHandler.kt$MarksHandler$3</ID>
<ID>MagicNumber:MarksHandler.kt$MarksHandler$5</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$100</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$1000</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$19</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$20</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$3</ID>
<ID>MagicNumber:OptionsManager.kt$OptionsManager$80</ID>
<ID>MagicNumber:ProcessExEntryAction.kt$ProcessExEntryAction$0x0a</ID>
<ID>MagicNumber:RegistersHandler.kt$RegistersHandler$200</ID>
<ID>MagicNumber:SearchHelperKt.kt$3</ID>
<ID>MagicNumber:SelectLastFileHandler.kt$SelectLastFileHandler$999</ID>
<ID>MagicNumber:SelectionType.kt$SelectionType.BLOCK_WISE$3</ID>
<ID>MagicNumber:ShiftLeftHandler.kt$ShiftLeftHandler$31</ID>
<ID>MagicNumber:ShiftRightHandler.kt$ShiftRightHandler$31</ID>
<ID>MagicNumber:VimHighlightedYank.kt$VimHighlightedYank.HighlightHandler$3</ID>
<ID>MagicNumber:VimHighlightedYank.kt$VimHighlightedYank.HighlightHandler$4</ID>
<ID>MatchingDeclarationName:CommandDefinition.kt$CommandName</ID>
<ID>MaxLineLength:ExBeanClass.kt$ExBeanClass$logger&lt;ExBeanClass&gt;().error("IdeaVim doesn't accept contributions to `vimActions` extension points. Please create a plugin using `VimExtension`. Plugin to blame: $pluginId")</ID>
<ID>MaxLineLength:ExRanges.kt$SearchRange$override</ID>
<ID>MaxLineLength:NotificationService.kt$NotificationService$notification.addAction(AppendToIdeaVimRcAction(notification, "set clipboard+=ideaput", "ideaput") { OptionsManager.clipboard.append(ClipboardOptionsData.ideaput) })</ID>
<ID>MaxLineLength:NotificationService.kt$NotificationService.AppendToIdeaVimRcAction$private inner</ID>
<ID>MaxLineLength:NotificationService.kt$NotificationService.AppendToIdeaVimRcAction$val successNotification = Notification(IDEAVIM_NOTIFICATION_ID, IDEAVIM_NOTIFICATION_TITLE, "&lt;code&gt;$optionName&lt;/code&gt; is enabled", NotificationType.INFORMATION)</ID>
<ID>MaxLineLength:OptionsManager.kt$OptionsManager$val clipboard = addOption(ListOption(ClipboardOptionsData.name, ClipboardOptionsData.abbr, arrayOf(ClipboardOptionsData.ideaput, "autoselect,exclude:cons\\|linux"), null))</ID>
<ID>MaxLineLength:PutGroup.kt$PutGroup$private</ID>
<ID>MaxLineLength:PutLinesHandler.kt$PutLinesHandler$val textData = registerGroup.lastRegister?.let { PutData.TextData(it.text ?: StringHelper.toKeyNotation(it.keys), SelectionType.LINE_WISE, it.transferableData) }</ID>
<ID>MaxLineLength:PutTextAction.kt$PutTextBaseAction$val textData = if (lastRegister != null) TextData(lastRegister.text ?: StringHelper.toKeyNotation(lastRegister.keys), lastRegister.type, lastRegister.transferableData) else null</ID>
<ID>MaxLineLength:ReplaceWithRegister.kt$ReplaceWithRegister.Operator$val visualSelection = PutData.VisualSelection(mapOf(editor.caretModel.primaryCaret to VimSelection.create(range.startOffset, range.endOffset - 1, selectionType, editor)), selectionType)</ID>
<ID>MaxLineLength:StatisticReporter.kt$StatisticReporter$val url = "https://plugins.jetbrains.com/plugins/list?pluginId=${VimPlugin.getPluginId().idString}&amp;build=$buildNumber&amp;pluginVersion=$version&amp;os=$os&amp;uuid=$uid"</ID>
<ID>MaxLineLength:VimShortcutKeyAction.kt$VimShortcutKeyAction.Companion$@JvmField val VIM_ONLY_EDITOR_KEYS: Set&lt;KeyStroke&gt; = ImmutableSet.builder&lt;KeyStroke&gt;().addAll(getKeyStrokes(KeyEvent.VK_ENTER, 0)).addAll(getKeyStrokes(KeyEvent.VK_ESCAPE, 0)) .addAll(getKeyStrokes(KeyEvent.VK_TAB, 0)).addAll(getKeyStrokes(KeyEvent.VK_BACK_SPACE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_INSERT, 0)).addAll(getKeyStrokes(KeyEvent.VK_DELETE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_UP, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)).addAll(getKeyStrokes(KeyEvent.VK_DOWN, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_LEFT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_RIGHT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_HOME, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_END, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_PAGE_UP, 0, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_PAGE_DOWN, 0, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)).build()</ID>
<ID>MaxLineLength:VimShortcutKeyAction.kt$VimShortcutKeyAction.Companion$ImmutableSet.builder&lt;KeyStroke&gt;().addAll(getKeyStrokes(KeyEvent.VK_ENTER, 0)).addAll(getKeyStrokes(KeyEvent.VK_ESCAPE, 0)) .addAll(getKeyStrokes(KeyEvent.VK_TAB, 0)).addAll(getKeyStrokes(KeyEvent.VK_BACK_SPACE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_INSERT, 0)).addAll(getKeyStrokes(KeyEvent.VK_DELETE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_UP, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK))</ID>
<ID>MaxLineLength:VimShortcutKeyAction.kt$VimShortcutKeyAction.Companion$ImmutableSet.builder&lt;KeyStroke&gt;().addAll(getKeyStrokes(KeyEvent.VK_ENTER, 0)).addAll(getKeyStrokes(KeyEvent.VK_ESCAPE, 0)) .addAll(getKeyStrokes(KeyEvent.VK_TAB, 0)).addAll(getKeyStrokes(KeyEvent.VK_BACK_SPACE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_INSERT, 0)).addAll(getKeyStrokes(KeyEvent.VK_DELETE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_UP, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)).addAll(getKeyStrokes(KeyEvent.VK_DOWN, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_LEFT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK))</ID>
<ID>MaxLineLength:VimShortcutKeyAction.kt$VimShortcutKeyAction.Companion$ImmutableSet.builder&lt;KeyStroke&gt;().addAll(getKeyStrokes(KeyEvent.VK_ENTER, 0)).addAll(getKeyStrokes(KeyEvent.VK_ESCAPE, 0)) .addAll(getKeyStrokes(KeyEvent.VK_TAB, 0)).addAll(getKeyStrokes(KeyEvent.VK_BACK_SPACE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_INSERT, 0)).addAll(getKeyStrokes(KeyEvent.VK_DELETE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_UP, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)).addAll(getKeyStrokes(KeyEvent.VK_DOWN, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_LEFT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_RIGHT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK))</ID>
<ID>MaxLineLength:VimShortcutKeyAction.kt$VimShortcutKeyAction.Companion$ImmutableSet.builder&lt;KeyStroke&gt;().addAll(getKeyStrokes(KeyEvent.VK_ENTER, 0)).addAll(getKeyStrokes(KeyEvent.VK_ESCAPE, 0)) .addAll(getKeyStrokes(KeyEvent.VK_TAB, 0)).addAll(getKeyStrokes(KeyEvent.VK_BACK_SPACE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_INSERT, 0)).addAll(getKeyStrokes(KeyEvent.VK_DELETE, 0, InputEvent.CTRL_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_UP, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)).addAll(getKeyStrokes(KeyEvent.VK_DOWN, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_LEFT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_RIGHT, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK)) .addAll(getKeyStrokes(KeyEvent.VK_HOME, 0, InputEvent.CTRL_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.CTRL_DOWN_MASK or InputEvent.SHIFT_DOWN_MASK))</ID>
<ID>MemberNameEqualsClassName:Ranges.kt$Ranges$private val ranges: MutableList&lt;Range&gt; = mutableListOf()</ID>
<ID>NestedBlockDepth:OptionsManager.kt$OptionsManager$ fun parseOptionLine(editor: Editor?, args: String, failOnBad: Boolean): Boolean</ID>
<ID>ReturnCount:ActionBeanClass.kt$ActionBeanClass$fun getParsedModes(): Set&lt;MappingMode&gt;?</ID>
<ID>ReturnCount:Alias.kt$Alias$fun getCommand(input: String, count: Int): String</ID>
<ID>ReturnCount:CmdFilterHandler.kt$CmdFilterHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:CmdHandler.kt$CmdHandler$private fun addAlias(cmd: ExCommand, editor: Editor?): Boolean</ID>
<ID>ReturnCount:CommandGroup.kt$CommandGroup$fun isAlias(command: String): Boolean</ID>
<ID>ReturnCount:DeleteJoinLinesAction.kt$DeleteJoinLinesAction$override fun execute(editor: Editor, context: DataContext, count: Int, rawCount: Int, argument: Argument?): Boolean</ID>
<ID>ReturnCount:DeleteJoinLinesSpacesAction.kt$DeleteJoinLinesSpacesAction$override fun execute(editor: Editor, context: DataContext, count: Int, rawCount: Int, argument: Argument?): Boolean</ID>
<ID>ReturnCount:DeleteJoinVisualLinesAction.kt$DeleteJoinVisualLinesAction$override fun executeForAllCarets(editor: Editor, context: DataContext, cmd: Command, caretsAndSelections: Map&lt;Caret, VimSelection&gt;): Boolean</ID>
<ID>ReturnCount:DeleteJoinVisualLinesSpacesAction.kt$DeleteJoinVisualLinesSpacesAction$override fun executeForAllCarets(editor: Editor, context: DataContext, cmd: Command, caretsAndSelections: Map&lt;Caret, VimSelection&gt;): Boolean</ID>
<ID>ReturnCount:DeleteMotionAction.kt$DeleteMotionAction$override fun execute(editor: Editor, caret: Caret, context: DataContext, count: Int, rawCount: Int, argument: Argument?): Boolean</ID>
<ID>ReturnCount:EditFileHandler.kt$EditFileHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:EditorHelper.kt$ fun Editor.isPrimaryEditor(): Boolean</ID>
<ID>ReturnCount:ExRanges.kt$Range.Companion$ @JvmStatic fun createRange(str: String, offset: Int, move: Boolean): Array&lt;Range&gt;?</ID>
<ID>ReturnCount:FilterMotionAction.kt$FilterMotionAction$override fun execute(editor: Editor, context: DataContext, cmd: Command): Boolean</ID>
<ID>ReturnCount:GotoCharacterHandler.kt$GotoCharacterHandler$override fun execute(editor: Editor, caret: Caret, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:Helper.kt$@Suppress("IncorrectParentDisposable") fun Editor.isTemplateActive(): Boolean</ID>
<ID>ReturnCount:HistoryHandler.kt$HistoryHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:IdeaSelectionControl.kt$IdeaSelectionControl$ fun predictMode(editor: Editor, selectionSource: VimListenerManager.SelectionSource): CommandState.Mode</ID>
<ID>ReturnCount:MapHandler.kt$MapHandler$@Throws(ExException::class) private fun executeCommand(cmd: ExCommand, editor: Editor?): Boolean</ID>
<ID>ReturnCount:Marks.kt$IntellijMark$private fun getProject(): Project?</ID>
<ID>ReturnCount:Marks.kt$VimMark.Companion$@JvmStatic fun create(key: Char?, logicalLine: Int?, col: Int?, filename: String?, protocol: String?): VimMark?</ID>
<ID>ReturnCount:ModalEntry.kt$ModalEntry.&lt;no name provided&gt;$override fun dispatchKeyEvent(e: KeyEvent): Boolean</ID>
<ID>ReturnCount:MotionScrollLastScreenLinePageStartAction.kt$MotionScrollLastScreenLinePageStartAction$override fun execute(editor: Editor, context: DataContext, cmd: Command): Boolean</ID>
<ID>ReturnCount:OperatorAction.kt$OperatorAction$override fun execute(editor: Editor, context: DataContext, cmd: Command): Boolean</ID>
<ID>ReturnCount:OptionsManager.kt$OptionsManager$ fun parseOptionLine(editor: Editor?, args: String, failOnBad: Boolean): Boolean</ID>
<ID>ReturnCount:PutGroup.kt$PutGroup$private fun getProviderForPasteViaIde(context: DataContext, typeInRegister: SelectionType, data: PutData): PasteProvider?</ID>
<ID>ReturnCount:PutGroup.kt$PutGroup$private fun prepareDocumentAndGetStartOffsets(editor: Editor, caret: Caret, typeInRegister: SelectionType, data: PutData, additionalData: Map&lt;String, Any&gt;): List&lt;Int&gt;</ID>
<ID>ReturnCount:PutLinesHandler.kt$PutLinesHandler$override fun execute(editor: Editor, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:ReloadVimRc.kt$VimRcFileState$fun equalTo(document: Document): Boolean</ID>
<ID>ReturnCount:RepeatHandler.kt$RepeatHandler$@Throws(ExException::class) override fun execute(editor: Editor, caret: Caret, context: DataContext, cmd: ExCommand): Boolean</ID>
<ID>ReturnCount:SelectMotionRightAction.kt$SelectMotionRightAction$override fun getOffset(editor: Editor, caret: Caret, context: DataContext, count: Int, rawCount: Int, argument: Argument?): Int</ID>
<ID>ReturnCount:ShowCmd.kt$ShowCmd$fun getFullText(editor: Editor?): String</ID>
<ID>ReturnCount:TabCloseHandler.kt$TabCloseHandler$ private fun getTabIndexToClose(arg: String, current: Int, last: Int): Int?</ID>
<ID>ReturnCount:TextObjectActionHandler.kt$TextObjectActionHandler$ final override fun baseExecute(editor: Editor, caret: Caret, context: DataContext, cmd: Command): Boolean</ID>
<ID>ReturnCount:UndoRedoHelper.kt$UndoRedoHelper$fun redo(context: DataContext): Boolean</ID>
<ID>ReturnCount:UndoRedoHelper.kt$UndoRedoHelper$fun undo(context: DataContext): Boolean</ID>
<ID>ReturnCount:VimExchangeExtension.kt$VimExchangeExtension.Operator$override fun apply(editor: Editor, context: DataContext, selectionType: SelectionType): Boolean</ID>
<ID>ReturnCount:VimExtensionFacade.kt$VimExtensionFacade$ @JvmStatic fun inputString(editor: Editor, prompt: String, finishOn: Char?): String</ID>
<ID>ReturnCount:VimMultipleCursorsExtension.kt$VimMultipleCursorsExtension.AllOccurrencesHandler$override fun executeInWriteAction(editor: Editor, context: DataContext)</ID>
<ID>ReturnCount:VimMultipleCursorsExtension.kt$VimMultipleCursorsExtension.NextOccurrenceHandler$override fun executeInWriteAction(editor: Editor, context: DataContext)</ID>
<ID>ReturnCount:VimMultipleCursorsExtension.kt$VimMultipleCursorsExtension.SkipOccurrenceHandler$override fun executeInWriteAction(editor: Editor, context: DataContext)</ID>
<ID>ReturnCount:VimScriptParser.kt$VimScriptParser$@Throws(ExException::class) fun evaluate(expression: String, globals: Map&lt;String?, Any?&gt;): Any</ID>
<ID>ReturnCount:VimScriptParser.kt$VimScriptParser$fun findOrCreateIdeaVimRc(): File?</ID>
<ID>ReturnCount:VimShortcutKeyAction.kt$VimShortcutKeyAction$private fun getKeyStroke(e: AnActionEvent): KeyStroke?</ID>
<ID>ReturnCount:VimShortcutKeyAction.kt$VimShortcutKeyAction$private fun isEnabled(e: AnActionEvent): Boolean</ID>
<ID>ReturnCount:VimSurroundExtension.kt$VimSurroundExtension.CSurroundHandler$override fun execute(editor: Editor, context: DataContext)</ID>
<ID>ReturnCount:VimSurroundExtension.kt$VimSurroundExtension.Operator$override fun apply(editor: Editor, context: DataContext, selectionType: SelectionType): Boolean</ID>
<ID>ReturnCount:VisualBlockAppendAction.kt$VisualBlockAppendAction$override fun executeForAllCarets(editor: Editor, context: DataContext, cmd: Command, caretsAndSelections: Map&lt;Caret, VimSelection&gt;): Boolean</ID>
<ID>ReturnCount:VisualBlockInsertAction.kt$VisualBlockInsertAction$override fun executeForAllCarets(editor: Editor, context: DataContext, cmd: Command, caretsAndSelections: Map&lt;Caret, VimSelection&gt;): Boolean</ID>
<ID>ReturnCount:VisualMotionGroup.kt$VisualMotionGroup$ fun toggleVisual(editor: Editor, count: Int, rawCount: Int, subMode: CommandState.SubMode): Boolean</ID>
<ID>ReturnCount:VisualMotionGroup.kt$VisualMotionGroup$fun autodetectVisualSubmode(editor: Editor): CommandState.SubMode</ID>
<ID>ReturnCount:VisualMotionGroup.kt$VisualMotionGroup$fun selectPreviousVisualMode(editor: Editor): Boolean</ID>
<ID>ReturnCount:VisualMotionGroup.kt$VisualMotionGroup$fun swapVisualSelections(editor: Editor): Boolean</ID>
<ID>ReturnCount:VisualMotionGroup.kt$VisualMotionGroup$private fun seemsLikeBlockMode(editor: Editor): Boolean</ID>
<ID>ReturnCount:VisualOperatorActionHandler.kt$VisualOperatorActionHandler$final override fun baseExecute(editor: Editor, caret: Caret, context: DataContext, cmd: Command): Boolean</ID>
<ID>ReturnCount:YankGroup.kt$YankGroup$ fun yankMotion(editor: Editor, context: DataContext, count: Int, rawCount: Int, argument: Argument): Boolean</ID>
<ID>ThrowsCount:CommandHandler.kt$CommandHandler$ @Throws(ExException::class) fun process(editor: Editor, context: DataContext, cmd: ExCommand, count: Int): Boolean</ID>
<ID>TooManyFunctions:CommandBuilder.kt$CommandBuilder</ID>
<ID>TooManyFunctions:CommandState.kt$CommandState</ID>
<ID>TooManyFunctions:PutGroup.kt$PutGroup</ID>
<ID>TooManyFunctions:Ranges.kt$Ranges</ID>
<ID>TooManyFunctions:VisualGroup.kt$com.maddyhome.idea.vim.group.visual.VisualGroup.kt</ID>
<ID>TooManyFunctions:VisualMotionGroup.kt$VisualMotionGroup</ID>
</CurrentIssues>
</SmellBaseline>

View File

@@ -1,27 +0,0 @@
formatting:
Indentation:
indentSize: 2
continuationIndentSize: 8
ParameterListWrapping:
indentSize: 8
complexity:
LongParameterList:
functionThreshold: 12
NestedBlockDepth:
threshold: 6
ComplexCondition:
threshold: 6
exceptions:
TooGenericExceptionCaught:
active: false
naming:
ClassNaming:
excludes: "**/ConfigurationMigrators.kt, **/VersionDetectors.kt"
performance:
SpreadOperator:
active: false
style:
ForbiddenComment:
active: false
MaxLineLength:
maxLineLength: 160

6
doc/Home.md Normal file
View File

@@ -0,0 +1,6 @@
Welcome to the IdeaVim wiki!
- List of IdeaVim plugins: [[plugins|IdeaVim 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]]

398
doc/IdeaVim Plugins.md Normal file
View File

@@ -0,0 +1,398 @@
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>
Original plugin: [vim-sneak](https://github.com/justinmk/vim-sneak).
### Setup:
- Install [IdeaVim-sneak](https://plugins.jetbrains.com/plugin/15348-ideavim-sneak) plugin.
- Add the following command to `~/.ideavimrc`: `set sneak`
### Instructions
See the [docs](https://github.com/Mishkun/ideavim-sneak#usage)
</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]].
</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
https://github.com/terryma/vim-multiple-cursors/blob/master/doc/multiple_cursors.txt
</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)"`
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>

73
doc/NERDTree-support.md Normal file
View File

@@ -0,0 +1,73 @@
# NERDTree
IdeaVim supports the NERDTree plugin. Update your `~/.ideavimrc` to turn it on:
```vim
Plug 'preservim/nerdtree'
```
or
```vim
set NERDTree
```
Use `set noNERDTree` to disable this extension.
<details>
<summary>Full list of aliases</summary>
```vim
set NERDTree
Plug 'preservim/nerdtree'
Plug 'https://github.com/preservim/nerdtree'
Plug 'https://github.com/scrooloose/nerdtree'
Plug 'scrooloose/nerdtree'
Plug 'nerdtree'
```
</details>
### Preview
<details>
<summary>Click to the the preview</summary>
<img src="images/nerdtree.gif" alt="NERDTree example"/>
</details>
### Supported commands
- `:NERDTree`
- `:NERDTreeFocus`
- `:NERDTreeToggle`
- `:NERDTreeClose`
- `: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` |
### Troubleshooting
If you see the the file is opened automatically on every movement in the Project View (`j`, `k`, etc.)
please make sure that you have "Open Files with Single click" disabled.
<img src="images/disable-one-click.png" alt="Disable one click"/>

24
doc/Select-mode.md Normal file
View File

@@ -0,0 +1,24 @@
# FAQ
## What is select mode?
This mode is where the selection works the same as system selection. When you start typing, the text in the selected area is removed and replaced by the new characters that are being typed in.
## Why is select mode enabled during refactoring?
With the help of the select mode, you can immediately enter the variable name during refactoring. You can go to the beginning or the end of a variable using the arrow keys. If you need to make more complex changes, you can always go back to normal mode with `<ESC>`.
## What if I want to use visual mode during refactoring?
Select mode is controlled by the `keymodel`, `selectmode` and `idearefactormode` options. Set `idearefactormode` to `visual` to adjust this behavior.
`set idearefactormode=visual`
## What if I don't want to change the mode during refactoring?
`set idearefactormode=keep`
# See Also
* IdeaVim options: https://github.com/JetBrains/ideavim/blob/master/doc/set-commands.md
* Vim documentation about select mode: https://vimhelp.org/visual.txt.html#Select-mode
* Stackoverflow explanation: https://vi.stackexchange.com/questions/4891/what-is-the-select-mode-and-when-is-it-relevant-to-use-it

View File

@@ -1,84 +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`:
set <extension-name>
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.
* `set easymotion`
* 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).
## surround
* Setup: `set surround`
* Emulates [vim-surround](https://github.com/tpope/vim-surround)
* Commands: `ys`, `cs`, `ds`, `S`
## multiple-cursors
* Setup: `set multiple-cursors`
* Emulates [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
* Commands: `<A-n>`, `<A-x>`, `<A-p>`, `g<A-n>`
## commentary
* Setup: `set commentary`
* Emulates [commentary.vim](https://github.com/tpope/vim-commentary)
* Commands: `gcc`, `gc + motion`, `v_gc`
* By [Daniel Leong](https://github.com/dhleong)
## ReplaceWithRegister
* Setup: `set ReplaceWithRegister`
* Emulates [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister)
* Commands: `gr`, `grr`
* By [igrekster](https://github.com/igrekster)
## argtextobj
* Setup:
* `set argtextobj`
* 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: `set exchange`
* 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: `set textobj-entire`
* 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:
* `set highlightedyank`
* 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)

View File

@@ -1,14 +1,16 @@
Some examples of join command with `ideajoin` option enabled.
Put `set ideajoin` to your `~/.ideavimrc` to enable this functionality.
1) Automatic join concatenated lines:
Now, you can press `J` (`shift+j`) on a line or a selected block of text to join the lines together.
* Automatic join concatenated lines:
```
"Hello" + -> "Hello world"
" world!"
```
2) Nested if's:
* Nested if's:
```
if (a) { -> if (a && b) {
@@ -18,7 +20,14 @@ if (a) { -> if (a && b) {
}
```
3) Remove braces from one line for / if / while:
* Comments:
```
// Hello -> // Hello world
// world
```
* Remove braces from one line for / if / while:
```
if (fail) { -> if (fail) return;
@@ -26,7 +35,7 @@ if (fail) { -> if (fail) return;
}
```
4) Kotlin one line method:
* Kotlin one line method:
```
fun myNumber(): Int { -> fun myNumber(): Int = 42
@@ -34,18 +43,18 @@ fun myNumber(): Int { -> fun myNumber(): Int = 42
}
```
5) Join declaration and initialization:
* Join declaration and initialization:
```
int a; -> int a = 5;
a = 5;
```
6) Chain call:
* Chain call:
```
sb.append("a"); -> sb.append("a").append("b");
sb.append("b");
```
And other functions provided by the plugins.
And other features provided by the plugins.

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Some files were not shown because too many files have changed in this diff Show More