Compare commits

...
3308 Commits
Author SHA1 Message Date
chylex 1acf5d682d Set plugin version to chylex-51 2025-07-20 10:11:27 +02:00
chylex f2832f7dc2 Preserve visual mode after executing IDE action 2025-07-20 10:11:27 +02:00
chylex fca7b518b3 Make g0/g^/g$ work with soft wraps 2025-07-19 19:47:02 +02:00
chylex 8aa4178449 Make gj/gk jump over soft wraps 2025-07-19 19:47:02 +02:00
chylex 2e035f1260 Make camelCase motions adjust based on direction of visual selection 2025-07-19 19:47:02 +02:00
chylex c5f17a68f5 Make search highlights temporary 2025-07-19 19:47:02 +02:00
chylex 68b7788fe4 Exit insert mode after refactoring 2025-07-19 19:47:02 +02:00
chylex 3299059ab9 Add action to run last macro in all opened files 2025-07-19 19:47:02 +02:00
chylex 548ed30b5b Stop macro execution after a failed search 2025-07-19 19:47:02 +02:00
chylex b171ccb96c Revert per-caret registers 2025-07-19 19:47:02 +02:00
chylex 93affef6d3 Apply scrolloff after executing native IDEA actions 2025-07-19 19:47:02 +02:00
chylex 0b788153cd Stay on same line after reindenting 2025-07-19 19:47:02 +02:00
chylex 70d8167e17 Update search register when using f/t 2025-07-19 19:47:02 +02:00
chylex 67c3dec51b Automatically add unambiguous imports after running a macro 2025-07-19 19:47:02 +02:00
chylex 3dab706f37 Fix(VIM-3986): Exception when pasting register contents containing new line 2025-07-19 19:47:02 +02:00
chylex 5228bca65e Fix(VIM-3179): Respect virtual space below editor (imperfectly) 2025-07-19 19:46:34 +02:00
chylex 853a208eba Fix(VIM-3178): Workaround to support "Jump to Source" action mapping 2025-07-19 19:46:34 +02:00
chylex fd9297edb1 Add support for count for visual and line motion surround 2025-07-19 19:46:34 +02:00
chylex e01e4d8ecd Fix vim-surround not working with multiple cursors
Fixes multiple cursors with vim-surround commands `cs, ds, S` (but not `ys`).
2025-07-19 19:46:34 +02:00
chylex b304692c4e Fix(VIM-696): Restore visual mode after undo/redo, and disable incompatible actions 2025-07-19 19:46:33 +02:00
chylex 05b9f44a0b Respect count with <Action> mappings 2025-07-19 15:32:32 +02:00
chylex d878b119c4 Change matchit plugin to use HTML patterns in unrecognized files 2025-07-19 15:32:32 +02:00
chylex def57128b0 Reset insert mode when switching active editor 2025-07-19 15:32:32 +02:00
chylex fd4422bf95 Remove notifications about configuration options 2025-07-19 15:32:32 +02:00
chylex d10a0c4ee7 Set custom plugin version 2025-07-19 15:32:30 +02:00
Alex Plate f12b0b04f6 Fix the contribution name of Jakub 2025-07-18 16:06:45 +03:00
Alex Plate ea4fc85e5b Add a new plugin for the verification 2025-07-18 16:04:00 +03:00
Alex Plate 4af8fc1868 Update TC configuration to run only needed tests 2025-07-18 16:04:00 +03:00
Alex Plate 1482ac0335 Fix(VIM-3970): Get rid of VimStandalonePluginUpdateChecker 2025-07-18 16:03:59 +03:00
IdeaVim Bot 79168b00f3 Add zuberol to contributors list 2025-07-18 09:03:36 +00:00
zuberolandGitHub 07990847c6 Merge pull request #1223 from JetBrains/feat/VIM-3791-nerdtree-gg-G-jumps
Feat(VIM-3791): support for "G" and "gg" motions inside the NERDtree
2025-07-17 11:44:07 +02:00
dependabot[bot]andgithub-actions[bot] 8c40e19c44 Bump org.mockito.kotlin:mockito-kotlin from 5.4.0 to 6.0.0
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 5.4.0 to 6.0.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/5.4.0...v6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 19:15:13 +03:00
dependabot[bot]andgithub-actions[bot] 371769c508 Bump io.ktor:ktor-client-cio from 3.2.1 to 3.2.2
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.2.1 to 3.2.2.
- [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/3.2.1...3.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-16 19:14:55 +03:00
dependabot[bot]andgithub-actions[bot] 7ee34d0b27 Bump io.ktor:ktor-client-cio from 3.2.0 to 3.2.1
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.2.0 to 3.2.1.
- [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/3.2.0...3.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 18:57:15 +03:00
dependabot[bot]andgithub-actions[bot] d1ec7d617d Bump org.junit.jupiter:junit-jupiter-engine from 5.13.2 to 5.13.3
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) from 5.13.2 to 5.13.3.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.2...r5.13.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 18:56:55 +03:00
dependabot[bot]andgithub-actions[bot] 898fd0537d Bump org.junit.jupiter:junit-jupiter from 5.13.2 to 5.13.3
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.13.2 to 5.13.3.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.2...r5.13.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 18:56:22 +03:00
Xinhe WangandAlex Plãte 353603b546 Fix(VIM-3266): Set FileSaveCloseAction to OTHER_SELF_SYNCHRONIZED 2025-07-07 10:55:53 +03:00
Xinhe WangandAlex Plãte 2f7f0dcacb Fix(VIM-3044): correct the behavior of I in (linewise) Visual mode
For visual selections spanning multiple lines, keep caret position
if it's on the first line. Otherwise move the caret to the start of
the first selected line.
2025-07-07 10:55:30 +03:00
Xinhe WangandAlex Plãte af9023af4b Rename insertBeforeCursor and insertAfterCursor helpers
The terminology used in IntelliJ is "caret".
2025-07-07 10:55:30 +03:00
Xinhe WangandAlex Plãte c393c902b2 Fix(VIM-2375): do not save file with ZQ
ZQ is defined to `Quit without checking for changes (same as ":q!").`
2025-07-04 14:26:56 +03:00
Xinhe WangandAlex Plãte c355cb7ed7 Make VimChangeGroup::changeCaseMotion not accept non-Motion argument
Error is logged if `ChangeCaseMotion` actions receive non-`Motion` args
2025-07-03 17:25:38 +03:00
Xinhe WangandAlex Plãte 0803a1c195 Fix(VIM-2413): correct the range of line-wise case change commands
The start of the range is the leftmost non-whitespace character
OR the current position, whichever is closer to the left.
2025-07-03 17:25:38 +03:00
Xinhe WangandAlex Plãte 5208412b46 Refine Argument.Motion::isLineWiseMotion and VimMotionGroupBase::getMotionRange
This does not change any actual behavior.
2025-07-03 17:25:38 +03:00
IdeaVim Bot 78c463cf7b Add Xinhe Wang to contributors list 2025-07-03 09:02:01 +00:00
dependabot[bot]andgithub-actions[bot] 8f5a44bf44 Bump org.junit.vintage:junit-vintage-engine from 5.13.1 to 5.13.2
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) from 5.13.1 to 5.13.2.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 5.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-02 19:19:55 +03:00
Xinhe WangandAlex Plãte 2377408028 Fix(VIM-2142): support gU and gu in VISUAL mode
Note that this implementation assumes that the 'gU' / 'gu' command in
visual mode is equivalent to 'U' / 'u'. While 'v_gU' and 'v_gu' are not
explicitly documented in Vim help, we treat these commands as identical
based on observed behavior, without examining Vim's source code.
2025-07-02 18:56:29 +03:00
Alex Plate 246425b1fb Mark IdeaVim as a plugin that supports vim configuration
In this way, we'll be able to actively promote IdeaVim as a suggested plugin in the IDE.

GO-17806
2025-06-27 19:43:08 +03:00
Jakub 4eadfc1fba feat: support for "G" and "gg" motions inside the NERDtree 2025-06-27 13:51:44 +02:00
dependabot[bot]andgithub-actions[bot] d3c945cd6d Bump org.junit.jupiter:junit-jupiter-api from 5.13.1 to 5.13.2
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit-framework) from 5.13.1 to 5.13.2.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 19:35:31 +03:00
dependabot[bot]andgithub-actions[bot] 2ac46129ac Bump org.junit.jupiter:junit-jupiter-params from 5.13.1 to 5.13.2
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) from 5.13.1 to 5.13.2.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 19:14:44 +03:00
dependabot[bot]andgithub-actions[bot] c8d40be1ce Bump org.junit.jupiter:junit-jupiter from 5.13.1 to 5.13.2
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.13.1 to 5.13.2.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.1...r5.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 19:14:31 +03:00
dependabot[bot]andgithub-actions[bot] 97159a33fe Bump org.jetbrains.kotlin:kotlin-stdlib from 2.1.21 to 2.2.0
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.1.21 to 2.2.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.21...v2.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-25 19:13:44 +03:00
Alex Plate 861d585102 Also, specify new task names in build scripts 2025-06-25 18:43:01 +03:00
Alex Plate 126925b4eb Fix long running and property tests
Because of some changes, if we define the test using `testIde` registering, they're not executed properly and don't work.
Now, we don't exclude these tests from the main test execution, so they have to be excluded explicitly
2025-06-25 18:33:50 +03:00
Alex Plate 9302c0a057 Use intellij.spellchecker module for 2025.2+ builds of IJ 2025-06-25 17:35:46 +03:00
Alex Plate ddea72f803 Update kotlin version to 2.2.0
This is required to support IJ 2025.2 platform, which uses 2.2.0 for compilation.
2025-06-25 17:23:54 +03:00
Alex Plate e991aa922c Try to increase timeout for UI tests for Rider 2025-06-24 17:24:56 +03:00
dependabot[bot]andgithub-actions[bot] 5ffaa7b084 Bump org.junit.jupiter:junit-jupiter-api from 5.13.0 to 5.13.1
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 19:10:53 +03:00
dependabot[bot]andgithub-actions[bot] 0d4183129d Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 7.2.1.202505142326-r to 7.3.0.202506031305-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v7.2.1.202505142326-r...v7.3.0.202506031305-r)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 19:10:13 +03:00
dependabot[bot]andgithub-actions[bot] 8a7fbac389 Bump org.junit.jupiter:junit-jupiter-params from 5.13.0 to 5.13.1
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 18:53:18 +03:00
dependabot[bot]andgithub-actions[bot] dbab006f83 Bump io.ktor:ktor-client-content-negotiation from 3.1.3 to 3.2.0
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.1.3 to 3.2.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/compare/3.1.3...3.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 18:52:47 +03:00
dependabot[bot]andgithub-actions[bot] 3149de7b73 Bump org.junit.vintage:junit-vintage-engine from 5.13.0 to 5.13.1
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 5.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 18:30:27 +03:00
dependabot[bot]andgithub-actions[bot] 28a71f0e09 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.21-2.0.1 to 2.1.21-2.0.2.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.21-2.0.1...2.1.21-2.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 18:30:20 +03:00
dependabot[bot]andgithub-actions[bot] fc7d4e614b Bump org.junit.jupiter:junit-jupiter from 5.13.0 to 5.13.1
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 18:30:12 +03:00
dependabot[bot]andgithub-actions[bot] 5b1aade876 Bump org.junit.jupiter:junit-jupiter-engine from 5.13.0 to 5.13.1
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.13.0 to 5.13.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.13.0...r5.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 18:29:52 +03:00
IdeaVim Bot ef2d87ff6b Add Thomas Canava to contributors list 2025-06-07 09:02:03 +00:00
Alex Plate 75cd79312c Which-Key plugin don't use VimShortcutKeyAction anymore, so we can hide it
The change was here: https://github.com/TheBlob42/idea-which-key/commit/2a1191a260244decc3091f675adf21c2a8950a20
2025-06-06 17:02:35 +03:00
Thomas CanavaandAlex Plãte b868e0cb81 test: Update tests to match new keys 2025-06-06 15:34:44 +03:00
Thomas CanavaandAlex Plãte 30c972ee1e fix: Vim macro not working with arrows 2025-06-06 15:34:44 +03:00
chylexandAlex Plãte 761f6f5fb9 Implement pumvisible() function 2025-06-06 15:21:26 +03:00
Matt EllisandAlex Plãte 1e3738314a Add support for := to print line number
Fixes VIM-3921
2025-06-06 15:15:13 +03:00
dependabot[bot]andgithub-actions[bot] f47388175b Bump org.junit.jupiter:junit-jupiter-api from 5.12.2 to 5.13.0
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 19:40:36 +03:00
dependabot[bot]andgithub-actions[bot] 779de5e29c Bump org.junit.jupiter:junit-jupiter-params from 5.12.2 to 5.13.0
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 19:23:51 +03:00
dependabot[bot]andgithub-actions[bot] 1f0cca17cf Bump org.junit.jupiter:junit-jupiter from 5.12.2 to 5.13.0
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 19:06:42 +03:00
dependabot[bot]andgithub-actions[bot] d09592824c Bump org.junit.jupiter:junit-jupiter-engine from 5.12.2 to 5.13.0
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 19:06:27 +03:00
dependabot[bot]andgithub-actions[bot] 725d60a56e Bump org.junit.vintage:junit-vintage-engine from 5.12.2 to 5.13.0
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.12.2 to 5.13.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.2...r5.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 19:06:01 +03:00
Alex Plate 77a106f9c6 Throw ProcessCanceledException instead of silently ignoring it in VimTypedActionHandler
This is a requirement from the platform
2025-05-30 19:41:41 +03:00
Alex Plate 1f66bdf5ed Refactor tests in ChangeActionTest.kt for better readability by reformatting doTest calls and improving code style consistency. 2025-05-30 15:12:43 +03:00
Alex Plate 7c4cfe44ae Remove unused MutableBoolean data class from KeyHandler 2025-05-30 14:20:25 +03:00
Alex Plate b58c1a42d2 Remove unused mappingCompleted parameter from handleKey methods
This updates method signatures and removes the redundant parameter throughout the codebase. Adds a deprecated overload for backward compatibility.
2025-05-30 14:16:40 +03:00
Alex Plate 02fab15aa9 Add tests that verify the behaviour with oldundo flag 2025-05-28 16:45:06 +03:00
Alex Plate 6c9d85cce0 Add a big number of undo tests for macros
This is a part of work for VIM-3935. Since we'll have to change the `CommandProcessor` execution, this may affect the "undo" command behavior. To ensure the stability, we add undo tests before making a refactoring.
2025-05-28 12:40:56 +03:00
Alex Plate 360080e8c0 Enable some disabled tests 2025-05-28 12:14:08 +03:00
Alex Plate e41831798e Add a big number of undo tests for ex commands
This is a part of work for VIM-3935. Since we'll have to change the `CommandProcessor` execution, this may affect the "undo" command behavior. To ensure the stability, we add undo tests before making a refactoring.
2025-05-28 11:48:38 +03:00
Alex Plate c93c9e539c Add a big number of undo tests
This is a part of work for VIM-3935. Since we'll have to change the `CommandProcessor` execution, this may affect the "undo" command behavior. To ensure the stability, we add undo tests before making a refactoring.
2025-05-28 09:46:05 +03:00
Alex Plate 149e3f92ae Update .gitignore to exclude local Claude settings file 2025-05-28 09:40:53 +03:00
Alex Plate 233bad0070 Turn off TeamCity emulation when running tests locally
IJ platform runs additional project leak checks when it detects teamcity run. It was quite complicated to understand why tests were failing on TC, but not locally, so I decided to enable TeamCity emulation to have these checks locally.

However, it turned out that in addition to that, an IJ platform also collects CPU statistics on TeamCity, which may take around a minute. This dramatically affects the performance of local execution. So, this property is turned off.
2025-05-28 09:38:54 +03:00
Alex Plate b44308c9ef Remove skipping of command execution if it happens not on the EDT
This requirement was a fix for VIM-318 introduced in ac654d70fa.
However, now we always run IdeaVim on EDT. Also, this check prevents the migration of IdeaVim to the background thread: VIM-3935
2025-05-27 18:30:16 +03:00
Alex Plate 8c612afed6 VIM-3929: Re-enable IdeaVim in diff editors 2025-05-27 13:07:43 +03:00
Alex Plate 2c057e937a Fix(VIM-3929): IdeaVim is disabled in non-file based editors of IDE
This change should fix issues in Rider evaluate window and other places.

However, we may face small issues as IdeaVim will be disabled in more places than it used to be. However, this approach looks safer as before that we were disabling some random keys
2025-05-23 19:34:17 +03:00
Alex Plate 2548008116 Add missing switches to EDT during test 2025-05-23 17:14:26 +03:00
Alex Plate c43eb1212e Bring back CommandState to fix the compatibility with the external plugins 2025-05-23 16:53:01 +03:00
Alex Plate 4c11399b43 Bring the compatibility with the latest EAP version
Removed a single test on JSON. There are always problems with the json plugin in IJ. In 2025.2 EAP it was unbundled.
2025-05-23 16:48:37 +03:00
Alex Plate 18f3ba6fe1 Rethrow ProcessCancelledException 2025-05-23 16:22:04 +03:00
Alex Plate 2435136734 Remove vimscript roadmap file 2025-05-23 16:00:37 +03:00
Alex Plate 4d2a7df6b4 Cleanup readme file 2025-05-23 13:19:46 +03:00
dependabot[bot]andgithub-actions[bot] b04e90e93c Bump org.jetbrains.intellij.platform from 2.5.0 to 2.6.0
Bumps org.jetbrains.intellij.platform from 2.5.0 to 2.6.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-21 19:02:43 +03:00
dependabot[bot]andgithub-actions[bot] 4c88359f46 Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 7.2.0.202503040940-r to 7.2.1.202505142326-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v7.2.0.202503040940-r...v7.2.1.202505142326-r)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-21 19:02:23 +03:00
Alex Plate 8e136bf769 Update list of supported IDEs 2025-05-21 12:31:29 +03:00
Alex Plate be73e662bd Change wording to JetBrains IDEs on the readme
This is a new proper name for the ide family
2025-05-21 12:30:46 +03:00
dependabot[bot]andgithub-actions[bot] ee70ecd92e Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.20-2.0.1 to 2.1.21-2.0.1.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.20-2.0.1...2.1.21-2.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-14 18:28:17 +03:00
dependabot[bot]andgithub-actions[bot] f3cf3f03b1 Bump org.jetbrains.kotlin:kotlin-stdlib from 2.1.20 to 2.1.21
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.1.20 to 2.1.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.20...v2.1.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-14 18:28:01 +03:00
dependabot[bot]andgithub-actions[bot] 4c46d734cc Bump io.ktor:ktor-client-core from 3.1.2 to 3.1.3
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 3.1.2 to 3.1.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/3.1.2...3.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-14 18:27:52 +03:00
Alex Plate e932fe2059 Add com.ugarosa.idea.edgemotion as a dependant plugin 2025-05-14 12:02:06 +03:00
Alex Plate d3f248d2f9 Refactor reset to avoid service initialization during the dispose 2025-05-09 19:04:10 +02:00
Alex Plate f623c1eef9 Fix(VIM-3784): Integrate a notification that will warn new GoLand users that they use IdeaVim 2025-05-09 18:39:17 +02:00
Alex Plate f03734e235 Fix(VIM-3786): Disable IdeaVim in the AI assistant 2025-05-09 16:31:44 +02:00
Alex Plate 85acdc2e24 Fix(VIM-3881): Execute undo/redo directly for the remote dev scenarios 2025-05-09 16:20:27 +02:00
Alex Plate afa70e20e1 Correct the rider test 2025-05-09 15:27:43 +02:00
Alex Plate 73f3d328c5 Try to wait longer till Rider will start 2025-05-09 13:51:40 +02:00
Alex Plate df3224b02d Start Rider with printing the logs to the output 2025-05-09 13:34:51 +02:00
Alex Plate 0e56a4e86e Remove background Rider start to see the problem when loading 2025-05-09 13:32:22 +02:00
Alex Plate 66ce949cc5 Do not use installer for Rider tests 2025-05-09 13:00:50 +02:00
Alex Plate ab635972cc Remove a lot of deprecated methods in IdeaVim 2025-05-09 12:58:47 +02:00
Alex Plate 7fbf321cbd Do not use installer for Rider tests 2025-05-09 12:17:13 +02:00
Alex Plate d4c24fcc7f Remove the outdated file with implemented vimscript functions 2025-05-09 12:17:12 +02:00
Matt EllisandAlex Plãte fd5af31247 Report cannot track intention action
If an alt+enter intention is invoked from Search Everywhere, IdeaVim's Track Action ID shows "Cannot detect action ID" instead of explaining that there is no action ID.

Relates to VIM-2541
2025-05-09 12:11:11 +02:00
Matt EllisandAlex Plãte df74b75570 Stop switching fragment editors to Insert mode
Fixes VIM-1217
2025-05-09 12:10:10 +02:00
Vladimir ParfinenkoandAlex Plãte c74163e917 Fix case settings in replacement string, VIM-3510
^VIM-3510 fixed
2025-05-09 12:08:01 +02:00
Vladimir ParfinenkoandAlex Plãte d38b2885ba Fix missing backreferences in replacement string, VIM-3895
^VIM-3895 fixed
2025-05-09 12:08:01 +02:00
Vladimir ParfinenkoandAlex Plãte 61666d1cfd Always print float numbers using period as a decimal separator, VIM-3894
^VIM-3894 fixed
2025-05-09 12:02:56 +02:00
Alex Plate 35ddb21fe0 Fix the deprecated method use 2025-05-09 11:09:11 +02:00
Alex Plate ccdd708907 Get rid of the old way of action execution 2025-05-08 18:22:40 +02:00
Alex Plate 73e61e0955 Get rid of hacks for Rider regarding esc and enter 2025-05-08 17:49:15 +02:00
Alex Plate c3fa093d32 Upgrade the code to use the 2025.1 functions 2025-05-08 17:47:35 +02:00
Alex Plate a94d509441 Remove other code deprecations 2025-05-08 17:33:41 +02:00
Alex Plate 12fd5bc79a Remove deprecated functions 2025-05-08 17:20:58 +02:00
Alex Plate 235368c449 Remove old comments regarding vim-engine extraction 2025-05-08 17:20:00 +02:00
Alex Plate 57ecd25640 Refactor MacKeyRepeat.kt in order to remove the deprecated methods use 2025-05-08 17:18:17 +02:00
Alex Plate 09d37ebd38 Convert MacKeyRepeat to kotlin 2025-05-08 17:11:39 +02:00
Alex Plate 81bc3f1f1b Rename .java to .kt 2025-05-08 17:11:39 +02:00
Alex Plate 9e3058dace Code cleanup: remove some deprecations from the source code 2025-05-08 17:04:25 +02:00
Alex Plate 6819d4f96c Add Mia Vucinic to the contributors list 2025-05-08 13:41:11 +02:00
IdeaVim Bot 222e1471b4 Add vumi19 to contributors list 2025-05-08 09:01:43 +00:00
M. VandAlex Plãte 35b9eaae3e VIM-2263 Add a not-null assertion operator to getRegister function to since assertions won't be executed if register does not exist 2025-05-07 18:54:26 +02:00
M. VandAlex Plãte 4eee1d3192 VIM-2263 Add additional tests that check the content of the registers 2025-05-07 18:54:26 +02:00
M. VandAlex Plãte 3c2e2bfb68 VIM-3771 Add a smile command with python ascii art 2025-05-07 18:54:12 +02:00
M. VandAlex Plãte 3f75b6db6d VIM-3771 Add a smile command with java ascii art 2025-05-07 18:54:12 +02:00
M. VandAlex Plãte 5fd318bf88 VIM-3771 Add a smile command with kotlin and default ascii art 2025-05-07 18:54:12 +02:00
M. VandAlex Plãte 6d34c70a9d VIM-3771 Rename VirtualFile.kt to VimVirtualFile.kt and add a new property extension 2025-05-07 18:54:12 +02:00
dependabot[bot]andgithub-actions[bot] 3ffe8b68f7 Bump io.ktor:ktor-serialization-kotlinx-json from 3.1.2 to 3.1.3
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.1.2 to 3.1.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/3.1.2...3.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 18:30:51 +02:00
dependabot[bot]andgithub-actions[bot] d09fc538f7 Bump io.ktor:ktor-client-cio from 3.1.2 to 3.1.3
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.1.2 to 3.1.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/3.1.2...3.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 18:30:20 +02:00
dependabot[bot]andgithub-actions[bot] 8d4d6b0f27 Bump io.ktor:ktor-client-content-negotiation from 3.1.2 to 3.1.3
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.1.2 to 3.1.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/3.1.2...3.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 18:13:19 +02:00
dependabot[bot]andgithub-actions[bot] f9f5f039db Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.20-2.0.0 to 2.1.20-2.0.1.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.20-2.0.0...2.1.20-2.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 17:57:47 +02:00
dependabot[bot]andgithub-actions[bot] cacb63a525 Bump io.ktor:ktor-client-auth from 3.1.2 to 3.1.3
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.1.2 to 3.1.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/3.1.2...3.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 17:56:32 +02:00
Alex Plate 518eac1476 Fix the authors update script 2025-05-06 14:28:59 +02:00
IdeaVim Bot ad18667520 Add Ivan Yarkov to contributors list 2025-05-06 09:01:46 +00:00
Alex Plate 5bf2b51c5d Add a comment about the change 2025-05-05 17:00:33 +02:00
Ivan.YarkovandAlex Plãte 5959fc2824 RIDER-123506 don't insert line break on enter in insert mode for Rider 2025-05-05 16:59:57 +02:00
Alex Plate a9f9ae3727 Fix(VIM-3786): Make a workaround to fix shift-enter in AI chat 2025-04-29 19:36:05 +03:00
Alex Plate 8bfcd13c33 Fix(VIM-3882): Register the VimShortcutAction to the editor component instead of its wrapper
It turned out the editor.getComponent returns not the editorComponent, but the parent of the component. This caused no problems until the AI plugin started to register enter/esc on the editor component directly. Since an editor component is more specific than the component with vim actions, the vim shortcuts were suppressed.

In this change, we start to register shortcuts on the editor component directly, allowing them to properly work on the same level as AI shortcuts. This is also the level where the shortcuts are supposed to be registered.
2025-04-28 17:55:18 +03:00
Alex Plate 2cd5c9db72 Add Lejia Chen to the Authors list
Lejia was providing exceptional support for the IdeaVim project for two-plus years starting from 2023.
2025-04-28 11:45:15 +03:00
Matt EllisandAlex Pláte 70d662fe28 Remove obsolete internal options 2025-04-22 15:48:19 +03:00
Alex Plate 2f33d41713 Update the minimal version of IJ to 251 2025-04-22 08:56:07 +03:00
Alex Plate 8247392dc3 Fix some compilation warnings 2025-04-16 22:12:36 +03:00
Alex Plate c8504e1138 Fix warning about synchronization on primitive 2025-04-16 21:35:01 +03:00
Alex Plate 443e50b55f Add tests for case changing
Mostly to highlight that commands in format `gugu` and `gUgU` don't work for the moment
2025-04-16 19:44:38 +03:00
Alex Plate 1891216182 Fix(VIM-3878): Support ROT13 command g? 2025-04-16 19:44:38 +03:00
dependabot[bot]andgithub-actions[bot] 515f0ca568 Bump org.junit.jupiter:junit-jupiter-params from 5.12.1 to 5.12.2
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 19:41:45 +03:00
dependabot[bot]andgithub-actions[bot] 2be0228c35 Bump org.junit.jupiter:junit-jupiter-api from 5.12.1 to 5.12.2
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 19:25:31 +03:00
dependabot[bot]andgithub-actions[bot] cf554e9ae2 Bump org.junit.vintage:junit-vintage-engine from 5.12.1 to 5.12.2
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-version: 5.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 19:10:22 +03:00
dependabot[bot]andgithub-actions[bot] 251cc638db Bump org.junit.jupiter:junit-jupiter from 5.12.1 to 5.12.2
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 19:10:13 +03:00
dependabot[bot]andgithub-actions[bot] 5700738c61 Bump org.junit.jupiter:junit-jupiter-engine from 5.12.1 to 5.12.2
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.12.1 to 5.12.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.1...r5.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 19:09:53 +03:00
Alex Plate 916afd31b2 Fix(VIM-3870): Add missing write actions 2025-04-16 18:54:22 +03:00
Alex Plate 5d2852420a Remove the duplication method for existing the select mode 2025-04-15 09:20:00 +03:00
Matt EllisandAlex Pláte a5efa5f9f2 Rename SAVE_VISUAL to SAVE_SELECTION
IdeaVim will still leave Visual mode, but the IDE's selection remains.
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte e86503798a Remove special case handling for Plug mapping
While it might not make sense to replay an incorrect `<Plug>` or `<Action>` mapping as characters where they are likely to cause unexpected behaviour as Normal commands, this is standard Vim behaviour (at least for `<Plug>`).

Note that `<Plug>` (and `<Action>`) is a special key code that cannot be typed. In Insert mode, Vim expands it to the text "<Plug>".
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 0b6ac4a9f4 Rename variable and add comments 2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 2a6f7cc907 Remove unused mappingComplete parameter
Also makes all KeyConsumers internal
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 9b4f114d61 Refactor MappingProcessor
Extract single implementation for replaying unhandled keys and update to match the longest mapping that fits in the unhandled keys.
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 3155556832 Reformat and update comments for MappingProcessor
Minor refactorings, should be no changes in logic
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 07190f38c9 Fix :normal command with multi-letter mapping 2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte db116faa32 Fix handling of modes in NormalCommand
All commands are called in Normal, so there is no need to check mode at execution time. The SAVE_VISUAL flag is perhaps poorly named, as it still change to Normal mode, but will save the current selection for commands that need (usually because they interact with IDE features). The `:normal` command does not need the current selection.
2025-04-10 19:32:29 +03:00
Matt EllisandAlex Pláte 58496fa1a1 Uncomment NormalCommandTest.kt 2025-04-10 19:32:29 +03:00
dependabot[bot]andgithub-actions[bot] 0bd12af1f4 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.20-1.0.32 to 2.1.20-2.0.0.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.20-1.0.32...2.1.20-2.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 18:44:36 +03:00
dependabot[bot]andgithub-actions[bot] 9f6d697e30 Bump io.ktor:ktor-client-cio from 3.1.1 to 3.1.2
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.1.1 to 3.1.2.
- [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/3.1.1...3.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 18:44:10 +03:00
IdeaVim Bot 8ed283f7ae Add Max Siryk to contributors list 2025-04-07 09:02:16 +00:00
erotourtesandAlex Pláte 5a3d35f216 fix: typo & consistency 2025-04-07 10:47:41 +03:00
Alex Plate 13850f059d Add a new plugin to the compatibility check 2025-04-04 18:43:03 +03:00
Alex Plate 3ddc75f5f0 Remove the call for the instrumentationTools as it's deprecated 2025-04-04 18:39:28 +03:00
Alex Plate 6c71698aae Do not use the installer for some of the tests because currently it doesn't work on the installer with the new gradle plugin
It's unclear if this is a bug in the gradle plugin or misconfiguration
2025-04-04 18:38:29 +03:00
dependabot[bot]andgithub-actions[bot] 664895941d Bump io.ktor:ktor-serialization-kotlinx-json from 3.1.1 to 3.1.2
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.1.1 to 3.1.2.
- [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/3.1.1...3.1.2)

---
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>
2025-04-02 18:45:35 +03:00
dependabot[bot]andgithub-actions[bot] c758ac16ec Bump io.ktor:ktor-client-core from 3.1.1 to 3.1.2
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 3.1.1 to 3.1.2.
- [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/3.1.1...3.1.2)

---
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>
2025-04-02 18:31:12 +03:00
dependabot[bot]andgithub-actions[bot] 4c2b3b8011 Bump io.ktor:ktor-client-auth from 3.1.1 to 3.1.2
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.1.1 to 3.1.2.
- [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/3.1.1...3.1.2)

---
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>
2025-04-02 18:31:03 +03:00
dependabot[bot]andgithub-actions[bot] ee1c4914d4 Bump io.ktor:ktor-client-content-negotiation from 3.1.1 to 3.1.2
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.1.1 to 3.1.2.
- [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/3.1.1...3.1.2)

---
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>
2025-04-02 18:16:18 +03:00
dependabot[bot]andgithub-actions[bot] a5f225394f Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.20-1.0.31 to 2.1.20-1.0.32.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.20-1.0.31...2.1.20-1.0.32)

---
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>
2025-04-02 18:16:01 +03:00
Alex Plate 8af848cef6 Fix(VIM-3861): Fix the debug action execution 2025-03-31 12:33:18 +03:00
IdeaVim Bot 4c1d91cc37 Add Peter Hoburg to contributors list 2025-03-29 09:01:47 +00:00
Alex Plate deca256e1c Add clear conditions for property tests 2025-03-28 19:23:47 +02:00
Matt EllisandAlex Pláte 6d3bde3ad5 Fix incorrect implementation of DoesNotMatchHandler 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 3b2b863c88 Update truthy expressions 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte a7e1c08589 Simplify unary arithmetic operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 5aa5e82d59 Rename some operator handlers 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 0db9ad505b Remove unnecessary singleton classes 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 147eb99745 Simplify case sensitive binary operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte bb73bdfb4a Simplify case sensitive comparisons 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 9ab1044880 Migrate various string operators to toVimString
Make it explicit they only work with String values
2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte e2cc9c648f Introduce toVimString to match toVimNumber 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte a322525c2a Be more explicit with is and isnot implementation 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 51ea947ccb Move comparison operator data rules to base class 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte f6810798ef Move binary operator conversion rules to base class 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 2fee525998 Refactor logical operators 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 9e3ab12451 Combine logical handlers into same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 5f8d552e8a Extract error message 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 4e847f8ef4 Merge arithmetic operators to same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte d5901fc2c9 Merge case-sensitive handlers to same file 2025-03-28 19:07:06 +02:00
Matt EllisandAlex Pláte 3621b91321 Make operator handlers internal 2025-03-28 19:07:06 +02:00
Alex Plate acbf1d7bd4 Update gradle wrapper 2025-03-28 19:05:55 +02:00
CCCC-LandAlex Pláte f079edfb25 Modify CommentaryTextObject test case 2025-03-28 18:45:42 +02:00
CCCC-LandAlex Pláte 440cab1674 CommentaryTextObject no longer contains spaces to be consistent with neovim 2025-03-28 18:45:42 +02:00
Alex Plate 9322e3b81b Update intellij gradle plugin 2025-03-28 18:40:26 +02:00
Matt EllisandAlex Pláte 021db84a21 Expand ~ to home directory in XDG_CONFIG_HOME
Addresses VIM-3844, VIM-2001
2025-03-28 18:18:32 +02:00
Matt EllisandAlex Pláte e232cb3ceb Support 32-bit Unicode codepoints in digraphs
Fixes VIM-3842
2025-03-28 18:13:14 +02:00
Peter HoburgandAlex Pláte 174757cdb2 Removed summary from Mini.ai on the README.md 2025-03-28 18:00:26 +02:00
Peter HoburgandAlex Pláte ef0883bc0d finished adding summaries. 2025-03-28 18:00:26 +02:00
Peter HoburgandAlex Pláte 0b4ad07b32 Moved more details around,
added more About sections.
2025-03-28 18:00:26 +02:00
Peter HoburgandAlex Pláte 3d1a426566 Added back in a missing </details> tag. 2025-03-28 18:00:26 +02:00
Peter HoburgandAlex Pláte 6f4eb838c3 Started alphabetizing and adding About: sections to the IdeaVim Plugins.md 2025-03-28 18:00:26 +02:00
Peter HoburgandAlex Pláte bc38ddc0f8 Alphabetized the IdeaVim Plugins section of the main README.md 2025-03-28 18:00:26 +02:00
Matt EllisandAlex Pláte a33b3980ab Fix unhandled key stroke after surround operation
Fixes VIM-3841
2025-03-28 17:51:14 +02:00
Matt EllisandAlex Pláte 7917c83cb5 Add extra tests for line() function behaviour
It's not obvious that line('v') will return the opposite end of the current selection. Add some tests to highlight this.

Relates to VIM-3838
2025-03-28 17:23:41 +02:00
Matt EllisandAlex Pláte 42229b285b Fix typo 2025-03-28 17:23:41 +02:00
Matt EllisandAlex Pláte 421c3bbfb8 Support <C-U> in commandToKeys 2025-03-28 17:23:41 +02:00
Matt EllisandAlex Pláte dbd097a91a Fix caret position after :move command
Fixes VIM-3837
2025-03-28 17:23:41 +02:00
Alex Plate 30f019aa18 Fix enter for Clion Nova 2025-03-28 15:35:33 +02:00
Alex Plate 543d8dbb13 Fix(VIM-3856): Disable new way of action execution for CLion 2025-03-28 14:05:53 +02:00
Alex Plate 2800b2d5fc Fix(VIM-3857): Fix pasting for the client 2025-03-28 13:45:13 +02:00
Alex Plate cd27ce8004 Fix(VIM-3852): Fix incorrect cast while checking the shortcuts 2025-03-28 13:27:59 +02:00
Alex Plate 6f3cf43bae Make a few tests for Rider
This should cover VIM-3826 issues
2025-03-27 17:34:24 +02:00
Alex Plate b043296cde Fix(VIM-3826): Fix action execution in Rider 243 and older versions
It still doesn't work fine when executing in format `:action ReformatCode` in 243, but with 251 format updates from Rider, it should be fine.
2025-03-27 17:20:23 +02:00
Alex Plate 9beca20037 Click Activate during testing 2025-03-27 15:17:14 +02:00
Alex Plate b882d60416 Trying to make Rider UI tests alive 2025-03-27 15:05:38 +02:00
Alex Plate 7144d73488 Mute a slow operation related to VIM-3648 2025-03-27 14:12:55 +02:00
dependabot[bot]andgithub-actions[bot] ae71075134 Bump org.jetbrains.kotlin:kotlin-stdlib from 2.1.10 to 2.1.20
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.1.10 to 2.1.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.10...v2.1.20)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-26 17:43:25 +02:00
dependabot[bot]andgithub-actions[bot] a5d4bf1a57 Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 7.1.0.202411261347-r to 7.2.0.202503040940-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v7.1.0.202411261347-r...v7.2.0.202503040940-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>
2025-03-26 17:41:33 +02:00
dependabot[bot]andgithub-actions[bot] 3b8a830622 Bump org.junit.jupiter:junit-jupiter-api from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-26 17:41:17 +02:00
dependabot[bot]andgithub-actions[bot] 71adcef1bf Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.10-1.0.29 to 2.1.20-1.0.31.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.10-1.0.29...2.1.20-1.0.31)

---
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>
2025-03-26 17:40:41 +02:00
dependabot[bot]andgithub-actions[bot] d4d0212b04 Bump org.junit.jupiter:junit-jupiter-params from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:51:22 +03:00
dependabot[bot]andgithub-actions[bot] 4b3bba6a98 Bump org.junit.vintage:junit-vintage-engine from 5.12.0 to 5.12.1
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:34:51 +03:00
dependabot[bot]andgithub-actions[bot] 13edc1294c Bump org.junit.jupiter:junit-jupiter from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:34:22 +03:00
dependabot[bot]andgithub-actions[bot] f5269a56d6 Bump org.junit.jupiter:junit-jupiter-engine from 5.12.0 to 5.12.1
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.12.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-19 18:34:13 +03:00
Alex Plate 7c39e9e585 Fix the runForEachCaret exception 2025-03-14 17:40:19 +02:00
Alex Plate 60767fa908 Fix the path to python 2025-03-14 16:20:23 +02:00
Alex Plate 186feed8af Try to use trial for Rider tests 2025-03-14 16:13:51 +02:00
Alex Plate b3aaf75b48 Use different tracking marker for UI tests PyCharm 2025-03-14 16:06:18 +02:00
Alex Plate 2b1b4fc71e Create UI test for Rider 2025-03-14 16:01:03 +02:00
Alex Plate 8a173c801c Try not to wait till stripes to appear in UI tests for PyCharm 2025-03-14 15:38:27 +02:00
Alex Plate 38b5879d37 Use a new version of compatibility checker 2025-03-14 15:17:53 +02:00
Alex Plate d0900fd0c5 Use a different way of waiting till the SDK is detected 2025-03-14 14:41:38 +02:00
Alex Plate 79d2040fcf Wait longer till PyCharm will detect the SDK 2025-03-14 14:09:48 +02:00
Alex Plate 2c83403cb0 Add waiting for SDK detectors on PyCharm tests 2025-03-14 13:55:07 +02:00
Alex Plate 3f22c6f9e4 Create UI tests for Rider 2025-03-14 13:50:52 +02:00
Alex Plate abdb6cb906 Fix(VIM-3825): Proper processing of enter for Rider & similar IDEs 2025-03-14 13:39:36 +02:00
Alex Plate 46f9aa4df2 UI Tests: Handle different name of the project tree for the different version of IJ 2025-03-14 12:47:40 +02:00
Ilya UsovandAlex Plate f40540d114 Fix IdeaVim state after starting the template in remdev scenario
Now the template is properly detected on client as well.

Related: RIDER-118965
2025-03-13 11:50:10 +02:00
dependabot[bot]andgithub-actions[bot] 79b9dbd656 Bump org.jetbrains.intellij.platform from 2.2.2-SNAPSHOT to 2.3.0
Bumps org.jetbrains.intellij.platform from 2.2.2-SNAPSHOT to 2.3.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-12 18:06:06 +02:00
dependabot[bot]andgithub-actions[bot] f8592a85f7 Bump com.dorongold.task-tree from 4.0.0 to 4.0.1
Bumps com.dorongold.task-tree from 4.0.0 to 4.0.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>
2025-03-12 17:47:51 +02:00
Alex Plate 5b8469c276 Use pattern matching in CI tests 2025-03-12 10:52:51 +02:00
Alex Plate 0729e9623b Bring back the 2024.3.3 version of IdeaVim as a minimal supported version 2025-03-12 10:48:14 +02:00
Alex Plate 90b530e6db Use a different approach for UI tests 2025-03-12 10:08:15 +02:00
Alex Plate dcaef64494 Refactor the way of checking if copy text is presented in UI test 2025-03-11 20:19:53 +02:00
Alex Plate b31f46d9f4 Update UI test 2025-03-11 19:06:52 +02:00
Alex Plate bbab064281 With direct calls for the VimFindActionIdAction in UI tests, there is no need to open the GoToAction 2025-03-11 18:31:35 +02:00
Alex Plate 6f030eb8a6 Increase a timeout for waiting for Idea frame during UI tests 2025-03-11 18:05:52 +02:00
Alex Plate d52d631799 Cleanup of the IjActionExecutor 2025-03-11 17:44:43 +02:00
Alex Plate 84b485c6bc Use the proper context component when firing an action 2025-03-11 17:44:43 +02:00
Alex PláteandGitHub 3808bfea60 Merge pull request #1123 from citizenmatt/bugfix/dotcover-indicator
Move status bar widgets after dotCover indicator
2025-03-11 11:09:59 +02:00
Matt Ellis 3fa20dd417 Move status bar widgets after dotCover indicator
Rider's dotCover indicator is marked as "last" rather than relative to other dotnet icons. This position pushes out IdeaVim widgets, so make sure we're after "dotCoverIndicator"

See also DCVR-13021
2025-03-10 18:52:46 +00:00
Alex Plate f76b07521e Fix(VIM-3827): Fix an incorrect implementation of the >= operator
As a note: This is the first bug in IdeaVim that was fixed by AI (with manual verification, of course).
2025-03-10 10:50:26 +02:00
Alex Plate 55257e1017 Use VimTestCase in operator tests
Otherwise it was not possible to run just one test as the injector was not initialized
2025-03-10 10:42:08 +02:00
Alex Plate cccf2d9d2f The workflow file was broken 2025-03-07 19:03:29 +02:00
Alex Plate 7826de6601 Update codeql github action
Also, use java 21 there
2025-03-07 18:52:09 +02:00
Alex Plate 33441f9ec3 Update UI tests: the project view tree class was renamed 2025-03-07 18:38:12 +02:00
Alex Plate 7d25d6d323 Increase the timeout for waiting for the project tree 2025-03-07 18:17:06 +02:00
Alex Plate fc93661c62 Fix an issue that the XML config can't store nulls 2025-03-07 18:09:49 +02:00
Alex Plate 098243fb12 Fix vim-engine setup if no uploadUrl provided 2025-03-07 18:02:29 +02:00
Alex Plate 09321f409c Fix recursive runForEachCaret and a missing read action 2025-03-07 17:41:13 +02:00
Alex Plate e899a99313 Remove the localization plugins for testing IJ 2025-03-07 17:13:49 +02:00
Alex Plate 393d2d4353 Fix the issue that backspace key was not working in the code review comments for GitHub
The context component should be detected automatically
2025-03-07 16:48:43 +02:00
IdeaVim Bot e7d47fd7f3 Add Nath Tumlin to contributors list 2025-03-07 09:01:59 +00:00
Alex Plate f17345e1ac Use java 21 for Pull Requests verification 2025-03-07 10:05:39 +02:00
Alex Plate 9ba0f5f47a Add information when the characterwise motion changes to the linewise 2025-03-07 10:03:59 +02:00
Alex Plate 4a31e425e0 Support per-caret selection type during yanking 2025-03-07 10:01:36 +02:00
Alex Plate 017b36673b Remove unused range argument from yank motion 2025-03-07 09:40:27 +02:00
Nath TumlinandAlex Pláte 156fbcd60d Make yank motion respect exclusive-linewise
I used the code in VimChangeGroupBase.getDeleteRangeAndType to do the check.

For an example of what this fixes, with the document:
```
    ${c}Hello!
```
executing "y}llp" before this change yields
```
    HelHello!
    lo!
```
but doing it with this change yields
```
    Hello!
    Hello!
````
2025-03-07 09:07:53 +02:00
Alex Plate cda85ae534 Fix missing offset adjusting
This issue was found by property test
2025-03-04 18:46:34 +02:00
Alex Plate 2c7b966ec2 Fix threading in IncrementDecrementCheck.kt property test 2025-03-04 18:16:41 +02:00
Alex Plate cf49c0b76f Fix threading for property tests 2025-03-04 18:06:52 +02:00
Alex Plate ce01318032 Do not run test in nvim which executes IDE action 2025-03-04 17:40:09 +02:00
Alex Plate c9b25cbb27 Remove experimental TC releases 2025-03-04 17:38:12 +02:00
Alex Plate 3d1b502cd0 Wait for the action to be finished before returning the result 2025-03-04 17:31:43 +02:00
Alex Plate 572af0d349 Fix issue with esc
Currently, esc action will return false as it have no action in the editor. However, it doesn't mean that IdeaVim goes into the error mode
2025-03-04 17:27:45 +02:00
Alex Plate 5770fbd70f Missed one path for nvim tests 2025-03-04 16:46:58 +02:00
Alex Plate 1af8d31272 Update links to nvim on TC 2025-03-04 15:50:48 +02:00
Alex Plate 6eb9207ff6 Fix invocation for the long running test 2025-03-04 15:46:17 +02:00
Alex Plate 681cef1d69 Enable the new way of action execution by default 2025-03-04 15:37:54 +02:00
Alex Plate f88a1cbe06 Add more wrappings for read actions 2025-03-04 15:36:18 +02:00
Alex Plate 84df5451b3 Put java 21 in TeamCity configurations 2025-02-28 20:42:49 +02:00
Alex Plate 2c1cba96d2 Update TeamCity config version 2025-02-28 20:28:28 +02:00
Alex Plate 348dfa8af8 Add info about the quality contributions to the what's new 2025-02-28 20:18:59 +02:00
Alex Plate 34c8688dcf Use KSP2 2025-02-28 20:18:06 +02:00
Alex Plate 6f193d8026 Update kotlin API version in vim-engine 2025-02-28 20:15:09 +02:00
Alex Plate 8214202d43 Use java 21 for TeamCity tests 2025-02-28 20:10:13 +02:00
Alex Plate 830a708489 Update kotlin api to 2.0 2025-02-28 19:44:27 +02:00
Alex Plate ee1928c836 Upgrade java version to 21 2025-02-28 19:39:48 +02:00
Alex Plate 38102afc0f Upgrade version of kotlin to 2.0.21 2025-02-28 19:22:16 +02:00
Alex Plate 8483e23ea7 [VIM-3376] Add a new way of executing the action 2025-02-28 19:07:55 +02:00
Alex Plate b3631b59ed Update the logs location 2025-02-28 18:15:29 +02:00
Alex Plate dbc626c794 Add a note about the octopus handler description 2025-02-28 17:38:20 +02:00
Alex Plate 692e4434d1 [VIM-3815]: Disable Octopus Handler for Rider and other IDEs with the new typing engine 2025-02-28 17:14:06 +02:00
Alex Plate a836b31ebe Remove qodana from IdeaVim
There are several problems with it:
- It was highly unstable, so it was constantly disabled
- Qodana baseline file is huge, it's almost the size of the whole repo
2025-02-28 17:14:06 +02:00
Alex Plate 89e530276f Get rid of the AppCode-specific code
AppCode was sunset, so there is no need to support it in IdeaVim
2025-02-28 17:14:06 +02:00
dependabot[bot]andgithub-actions[bot] 0b817ba575 Bump org.junit.jupiter:junit-jupiter-engine from 5.10.5 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.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>
2025-02-26 18:49:11 +02:00
dependabot[bot]andgithub-actions[bot] c2513c8a74 Bump org.junit.jupiter:junit-jupiter-params from 5.10.5 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.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>
2025-02-26 18:32:01 +02:00
dependabot[bot]andgithub-actions[bot] 5b5ff852f1 Bump org.junit.vintage:junit-vintage-engine from 5.10.5 to 5.12.0
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 18:15:11 +02:00
dependabot[bot]andgithub-actions[bot] 7cbc799298 Bump org.junit.jupiter:junit-jupiter-api from 5.10.5 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.5 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.5...r5.12.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>
2025-02-26 18:14:48 +02:00
dependabot[bot]andgithub-actions[bot] 14c0a6dab4 Bump org.junit.jupiter:junit-jupiter from 5.11.4 to 5.12.0
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.11.4 to 5.12.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.4...r5.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-26 18:14:38 +02:00
dependabot[bot]andgithub-actions[bot] 742bf173eb Bump io.ktor:ktor-client-content-negotiation from 3.0.3 to 3.1.1
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.0.3 to 3.1.1.
- [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/3.0.3...3.1.1)

---
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>
2025-02-26 11:25:26 +02:00
dependabot[bot]andgithub-actions[bot] 52e30c4b94 Bump io.ktor:ktor-serialization-kotlinx-json from 3.0.3 to 3.1.1
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.0.3 to 3.1.1.
- [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/3.0.3...3.1.1)

---
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>
2025-02-26 11:09:30 +02:00
dependabot[bot]andgithub-actions[bot] a185f2325d Bump io.ktor:ktor-client-cio from 3.0.3 to 3.1.1
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.0.3 to 3.1.1.
- [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/3.0.3...3.1.1)

---
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>
2025-02-26 10:52:19 +02:00
dependabot[bot]andgithub-actions[bot] 5eefa2baef Bump io.ktor:ktor-client-auth from 3.0.3 to 3.1.1
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.0.3 to 3.1.1.
- [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/3.0.3...3.1.1)

---
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>
2025-02-26 10:36:09 +02:00
dependabot[bot]andgithub-actions[bot] e56785e94d Bump io.ktor:ktor-client-core from 3.0.3 to 3.1.1
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 3.0.3 to 3.1.1.
- [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/3.0.3...3.1.1)

---
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>
2025-02-26 10:35:41 +02:00
Alex Plate 0b7c86fa7e Use the read action to get the caret offset in EditorSelectionHandler 2025-02-26 10:13:45 +02:00
Alex Plate a5ac2e9ca7 Switch to the newest version of the gradle plugin 2025-02-25 15:57:26 +02:00
Matt EllisandAlex Pláte ca4de6f317 Add missing shortcuts for WORD left/right in Select 2025-02-25 15:38:49 +02:00
Filipp Vakhitov 75dadc9610 Fix(VIM-3802): Completion should create undo checkpoint
Do not create checkpoints for Enter keypress
2025-02-25 15:09:41 +02:00
Filipp Vakhitov f6146b8732 Fix(VIM-3802): Completion should create undo checkpoint 2025-02-25 14:36:46 +02:00
Alex Plate 4025619b48 Turn write action while executing the IJ action into an error 2025-02-24 14:40:42 +02:00
Alex Plate 9b1da76499 Remove unneeded write action in output panel 2025-02-24 14:39:59 +02:00
Alex Plate 4ca25eed70 Remove the use of write action in macros 2025-02-24 14:31:14 +02:00
Alex Plate a925676d64 Fix issues with command line prompt processing 2025-02-24 13:59:31 +02:00
Alex Plate 6feb1a4525 Remove the change of ordering inside the clearPromptCharacter 2025-02-24 12:43:39 +02:00
Alex Plate 4cf7685aaf Fix incorrect condition in getting the actual text in command line 2025-02-24 12:21:34 +02:00
Alex Plate e257a10525 Fix an issue that the highlighting was silently missing due to an error 2025-02-24 12:13:51 +02:00
Alex Plate 2e8548cb25 Update gradle wrapper 2025-02-24 12:13:26 +02:00
Alex Plate 1d25927676 [TC] Upgrade the version of IJ for some build 2025-02-24 11:16:08 +02:00
Alex Plate 42d80f6866 Add write action in several places 2025-02-21 19:32:47 +02:00
Alex Plate c9189ed7cb Commands don't start the read and write actions automatically. See the explanation in the previous commit messages.
Related to the implementation of VIM-3376
2025-02-21 19:11:28 +02:00
Alex Plate fedefea0aa Remove the write action in several places 2025-02-21 18:56:52 +02:00
Alex Plate 437fa9a1a0 Remove the root write and read actions
Historically, IdeaVim was starting read or write action based on command type. However, this is incorrect because of several reasons:
- The command of different type may perform a write/read action
- The write lock with a lot of code inside does cause application freezes
- Since a large branching of code happens inside the write action, there is a chance of read action request, resulting in the deadlock

Also, now this prevents from implementing a proper execution of VIM-3376.
2025-02-21 18:44:51 +02:00
Alex Plate 0511ee277f Remove the requirement for the write action in macros
It's not clear why the write action was needed. Probably, it was a mistake and it supposed to be a check for EDT. However, since the check for EDT exists right in the constructor of the potemkin progress, let's remove it at all.
2025-02-21 17:40:40 +02:00
Alex Plate 0b2bda529f Upgrade the minimal supported version to 243 2025-02-21 16:59:28 +02:00
Alex Plate fe91744356 Mention 2024.3.3 in gradle script 2025-02-21 13:40:31 +02:00
Alex Plate 45d92c1981 Use the read action for neovim tests in other place 2025-02-21 13:33:53 +02:00
Alex Plate 58de834832 Use the read action for neovim tests 2025-02-21 13:17:37 +02:00
Alex Plate 8d89847d4b Add tests for 2024.3.3 2025-02-21 13:15:43 +02:00
Alex Plate bf78445ac6 Add links to intellij platform community space 2025-02-21 13:11:59 +02:00
Alex Plate 3866565e51 Remove IdeaVimTestCase and replace it with VimTestCase 2025-02-21 13:03:23 +02:00
Alex Plate 564ab7d75e Remove EDT and write action from the VimTestCase 2025-02-21 09:54:12 +02:00
Matt EllisandAlex Pláte 24c0d31f14 Updated comment and defaults for word end action
The `ge` motion incorrectly had `stopAtEmptyLine` set to false, but `ge` always stops at empty lines. This option is only applicable for forward motion, so is ignored by the implementation of `findPreviousWordEndOne`.
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 43a2bd98db Reduce multiple implementations to one 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte c4f56c40fd Rename findWordUnderCursor to findWordObject
Starting to distinguish between the other findWordUnderCursor implementations!
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 1b4b66dbb1 Minor refactoring 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 4787a5e22a Rewrite backwards search for word under cursor 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte d2b85cbb10 Merge inner and outer motion implementations 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 0428c2aeff Rewrite inner motion to match outer motion
The implementations are so similar and can now be refactored/simplified
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 1a8789b50c Rewrite next/previous word motions and objects 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte b5937e885d Rewrite displayLocationInfo to avoid findNextWord
Simplifies and fixes counting words, especially when selection intersects words. Also moves implementation to engine and adds more tests.
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 8eef802ac7 Add notes on possible refactoring 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte cad6afdc9d Rewrite word end motions and word objects 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 54ef691a98 Add tests for outer word motions and blank lines 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 426c2fd006 Handle blank and empty lines for text objects
Fixes VIM-1642
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte f25c56b545 Refactor checks for including following whitespace 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 960eb50d8c Fix incorrectly selected new line char with viw 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 18b4b76ebf Select trailing whitespace with viw
Inner word/WORD motions will select trailing whitespace at the end of a line without wrapping
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte d9e575d4a2 Select leading whitespace with viw
Inner word/WORD motions will select leading whitespace at the start of a line without wrapping
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 1769804c8a Select leading whitespace with vaw
Outer word/WORD motions will select leading whitespace at the start of a line
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 81e094ac8f Select trailing whitespace with vaw
Outer word/WORD motions will select trailing whitespace at the end of a line
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 4240c429ba Select preceding whitespace if no following (vaw)
Outer word/WORD text objects should select following whitespace, unless there isn't any, and then it should select preceding whitespace.
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 76f7d81129 Minor code cleanup. No logic changes 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 2da77f0f11 Add tests for existing word/WORD text objects 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 580764b30c Match empty line as word/WORD
Unless moving to end of word/WORD, in which case, skip all whitespace to get to end of the next set of word/WORD characters.

Fixes VIM-1650
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte afd69eef95 Fix end of file edge case deleting previous word
Adds extra tests to confirm that deleting previous word in Insert mode was already working as expected (relates to VIM-1650)

Also fixes an edge case for a test that was marked as behaving differently to Vim, but was actually showing buggy behaviour due to its unorthodox caret placement. It looked like the caret was placed at the end of the line, but it was actually placed _passed_ the last character in the file. Adding extra text below the caret placement would cause the action to behave as expected, and the test would then match Vim behaviour. However, it is possible to get this caret position in the editor and in Vim, with `virtualedit=onemore`, and the IdeaVim implementation was wrong. The test has been updated to provide the correct scenario, and the implementation has been fixed.
2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte be1cc67566 Fix previous word end motion at start of file 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte b534708a99 Rename file to show it contains several actions 2025-02-21 09:53:11 +02:00
Matt EllisandAlex Pláte 4bc75e0a9b Add tests for existing word/WORD motion behaviour 2025-02-21 09:53:11 +02:00
Alex Plate fa4c89e134 Add two more interesting facts to the IdeaVim facts about Vim 2025-02-20 19:27:32 +02:00
Matt EllisandAlex Pláte 5740372df9 Add err_teapot function 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 06791b9378 Add float2nr function 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 91e927c913 Add fmod function 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 9a5c558060 Add float classification functions 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte d1127a5238 Add power functions 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 613a8b5792 Add exponential functions 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 6f63371e9b Add rounding functions 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 3b96e2eacd Add trigonometric and hyperbolic builtin functions 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte ffdd6716f5 Refactor some moved tests 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 4453862ea0 Extract function tests 2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte c631d0738e Group function handlers like in Vim help
See `:help function-list`
2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 1bd7a7596b Support binary numbers in vimscript
Also supports octal with an `0o` or `0O` prefix.
2025-02-20 19:21:31 +02:00
Matt EllisandAlex Pláte 23329cc522 Add bitwise functions 2025-02-20 19:21:31 +02:00
Alex Plate be86dc3c78 Rename VimNoWriteActionTestCase to IdeaVimTestCase 2025-02-20 19:15:43 +02:00
Alex Plate d65a219194 Mark VimTestCase as deprecated 2025-02-20 19:13:39 +02:00
Alex Plate e18035b729 Migrate java tests to VimNoWriteActionTestCase 2025-02-20 18:57:52 +02:00
Alex Plate 96a1456dcd Remove the hack for yaml plugin 2025-02-19 16:48:12 +02:00
Alex Plate 83b92d84a6 Disable IdeaVim listeners in places where IdeaVim is disabled
This is needed for the new terminal. Before this change, it was impossible to put the caret at the line end, even taking the fact the IdeaVim is disabled in the new terminal.
2025-02-14 17:59:06 +02:00
Alex Plate 693bb50d5e Do add a yaml module only for the latest snapshot 2025-02-14 17:58:01 +02:00
Alex Plate 0cef0d3d9a Fix EAP tests for IdeaVim 2025-02-11 20:52:21 +02:00
Alex Plate 4ca187926c Use SimpleDataContext instead of the obsolete DataContextWrapper 2025-02-11 11:53:00 +02:00
Alex Plate 7eda176162 Add one more option to adding json plugin 2025-02-11 11:53:00 +02:00
Osvaldo Cordova AburtoandAlex Pláte 491a96825f feat: improve any brackets behavior 2025-02-07 12:56:56 +02:00
Alex Plate ffee3ccbeb Remove the llmInstaller dependency, which was a workaround for LLM-13649 2025-02-03 11:12:02 +02:00
Alex Plate 62ed920363 Use null instead of -1 when the version of IdeaVim is not set 2025-02-03 11:05:17 +02:00
Alex Plate 4fc2c1e04c Text correction for the award program 2025-02-03 09:06:01 +02:00
Alex Plate 91a33e65db Add information about the award program for the contributors 2025-01-31 14:44:34 +02:00
Osvaldo Cordova AburtoandAlex Pláte 7b16deb3e3 fix: calculation to find the closest delimited range 2025-01-30 13:40:26 +02:00
Osvaldo Cordova AburtoandAlex Pláte 01d776957a fix: distanceTo to works with nested quotes and brackets 2025-01-30 13:40:26 +02:00
dependabot[bot]andgithub-actions[bot] ad49800b09 Bump org.jetbrains.kotlin:kotlin-stdlib from 2.1.0 to 2.1.10
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 2.1.0 to 2.1.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-29 17:29:15 +02:00
dependabot[bot]andgithub-actions[bot] dce01350c7 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.1.0-1.0.29 to 2.1.10-1.0.29.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.1.0-1.0.29...2.1.10-1.0.29)

---
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>
2025-01-29 17:28:41 +02:00
Alex Plate 96bff03d99 Refactor VimShortcutKeyAction for clarity and structure.
Simplify and reorganize logic in isEnabled() for improved readability and maintainability. Adjust logging messages for consistency and replace unused exception variable with underscore.
2025-01-29 10:25:20 +02:00
Alex Plate 6eeb0eb47d Fix the issue that the shortcuts where not working in the command line 2025-01-29 10:11:23 +02:00
Alex Plate 610ef73d38 Refresh the contribution guide 2025-01-29 09:26:16 +02:00
IdeaVim Bot 7d7732be76 Add Osvaldo to contributors list 2025-01-28 09:01:54 +00:00
Osvaldo Cordova AburtoandAlex Pláte 31a6d8174a feat: add mini-ai extension 2025-01-27 23:19:24 +02:00
Alex Plate ee548b52db [VIM-3784] Store the information about the first version of IdeaVim for the user. 2025-01-27 11:09:47 +02:00
Alex Plate 1d77b0b059 Fix the incorrect variable name 2025-01-27 10:46:21 +02:00
Alex Plate 304562a2db Remove the notification about the new undo functionality 2025-01-27 10:43:18 +02:00
Alex Plate e358dc9cee Fix(VIM-3640): Enable IdeaVim only in the editor context component
As the GitHub Copilot is placed right in the editor component, the IdeaVim's actions are also collected. Action promoter promotes the IdeaVim's action and, since the data context has the editor, executes a Vim's actions like backspace.
Now we make sure that IdeaVim works only in the actual editor.
Since this change may affect some places where the IdeaVim used to work, but won't work now (this will be a surprise), a registry key is introduced to help the users that face this problem.
2025-01-24 13:34:08 +02:00
Alex Plate 7573d83898 Disable qodana inspections 2025-01-23 18:43:53 +02:00
Alex Plate 00d9ed93ec Fix(VIM-3543): Disable IdeaVim in the new terminal 2025-01-23 12:22:22 +02:00
Alex Plate d3864ab02b Remove the unwanted comma from the authors list 2025-01-23 12:22:22 +02:00
dependabot[bot]andgithub-actions[bot] 3b1e319a8e Bump org.jetbrains:annotations from 26.0.1 to 26.0.2
Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 26.0.1 to 26.0.2.
- [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/26.0.1...26.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-22 18:08:22 +02:00
Matt EllisandAlex Pláte 33b34b84b5 Add doc comment for inCommandLineModeWithVisual 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte 308996c4c1 Remove Visual when updating incsearch for a command 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte 1f68b756d5 Disable incsearch highlight in Visual mode 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte ed6789cb8b Add tests updating Visual while editing incsearch 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte e9e86b07fb Fix incsearch not updating empty selection
As a by-product, this also fixes an off-by-one error where incsearch would effectively treat all Visual searches as exclusive
2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte a969b93ba6 Add tests for updating Visual selection with search 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte 970cfadaec Extract search highlighting related tests 2025-01-22 17:42:30 +02:00
Matt EllisandAlex Pláte 12ed60d88e Remove tests using obsolete newregex option 2025-01-22 17:42:30 +02:00
IdeaVim Bot e0e7817b8b Add Sebastian Dörner to contributors list 2025-01-22 09:01:58 +00:00
Sebastian Doernerandlippfi cb218697fa [VIM-3731] Add support for "jump to previous/next lowercase mark".
Fixes VIM-3731
2025-01-21 22:48:12 +02:00
Alex Plate 3c167f35d4 Fix the incorrect note about the author. 2025-01-21 11:16:48 +02:00
Alex Plate 8a2736e0b7 Add a post about Vim facts 2025-01-20 19:29:49 +02:00
Alex Plate 26edccd85f Add a link to the collection of Vim easter eggs 2025-01-20 16:26:44 +02:00
Alex Plate 91e6ed545e Use the correct output directory for UI tests 2025-01-20 09:19:11 +02:00
Alex Plate c252aeec70 Add a timeout to wait till the popup appears 2025-01-20 09:01:11 +02:00
Alex Plate 2ce3b09650 Remove UI test that doesn't work in new IJ UI 2025-01-20 08:40:25 +02:00
Matt EllisandAlex Pláte 7548b160ae Fix race condition resetting editor on focus gain
Fixes VIM-3773
2025-01-14 17:21:53 +01:00
Alex Plate 1105f61988 [VIM-3620] Use shortened links instead of plain ones 2025-01-14 17:35:09 +02:00
Alex Plate 54b49d3322 [VIM-3620] Do not show the uninstall feedback when updating the plugin 2025-01-14 17:17:15 +02:00
Alex Plate 6ab0add430 Update the twitter icon to X 2025-01-14 13:37:39 +02:00
Matt EllisandAlex Pláte 296288f428 Ensure correct caret position when exiting Select
Fixes VIM-3042
2025-01-13 18:10:01 +01:00
Matt EllisandAlex Pláte 1d5fc01d65 Fix Del and BS not working in Select mode
Fixes VIM-3618
2025-01-13 18:10:01 +01:00
Alex Plate f30e376e11 Fix property tests for random actions 2025-01-10 13:46:55 +03:00
Alex Plate 8ba02a77f1 Enable dependency on llmInstaller to fix the tests for the latest EAP.
LLM-13649
2025-01-10 13:28:49 +03:00
Alex Plate 7cf3b959dd Remove call for the instrumentationTools
Call for this function is not needed anymore
2025-01-10 13:28:48 +03:00
Alex Plate ad584d553c Reformat code 2025-01-10 13:28:48 +03:00
Alex Plate 36556d559f Optimize imports 2025-01-10 13:28:47 +03:00
Alex Plate 378611fe8f Remove outdated documentation 2025-01-10 13:28:47 +03:00
Alex Plate 35c890416d Perform a qodana check every day 2025-01-10 13:28:47 +03:00
Alex Plate ef16181ba2 Clean up code 2025-01-10 13:28:46 +03:00
Alex Plate aaba0a09c2 Remove deprecated function 2025-01-10 13:28:46 +03:00
IdeaVim Bot a7a1c626b6 Add Vladimir Parfinenko to contributors list 2025-01-10 09:01:53 +00:00
Matt EllisandAlex Pláte 0b308769b1 Move select toggle implementation 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte eb19d9fb11 Refactor improper usages of toggleVisual 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte bfa271b089 Reorder functions in file. No code changes 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte e299b27a5c Update docs and remove unnecessary null parameter 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 9306d93cbf Remove unnecessary pushVisualMode helper function 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte a28416dd9f Update mode widget text for Select pending 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 63b3af3f65 Implement v_CTRL-O
From Select mode, enters Visual for a single command
2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte fcc234c4fe Rename submode to selectionType 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 2e0ef7e0b0 Enter Insert Visual/Select mode with shifted key 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte da99e1f1c3 Return to Insert when leaving Insert Normal 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 5827ad1581 Only show mode widget popup on left mouse click 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 0e587211d9 Improve isEndAllowed 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte 8b8ef80a5e Reinstate showmode tests 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte dc5ef487d2 Show additional Insert modes in showmode widget 2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte eaad93903b Simplify Mode hierarchy
Wanting to add `ReturnTo.SELECT` would be very tricky, as we would have to recreate the mode, but have no details about the selection type.
2025-01-10 11:29:44 +03:00
Matt EllisandAlex Pláte a6b2bf1c55 Remove ReturnableFromCmd marker interface 2025-01-10 11:29:44 +03:00
dependabot[bot]andgithub-actions[bot] ae57fb9de0 Bump org.junit.jupiter:junit-jupiter from 5.11.3 to 5.11.4
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.11.3 to 5.11.4.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.3...r5.11.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-10 10:29:17 +03:00
Alex Plate f4f0f7c3ed Apply patch for the release 2025-01-10 10:05:39 +03:00
Alex Plate 7b183f0876 Build searchable options during release. 2025-01-10 10:05:39 +03:00
Matt EllisandAlex Pláte e3a07b6c89 Add support for CTRL-J
Supported in Normal, Visual, Select and Operator-pending. Also adds support for CTRL-M in Select mode.

Fixes VIM-3740
2025-01-10 10:00:28 +03:00
aleksei.plate@jetbrains.comandteamcity 0e8aecf84b TeamCity change in 'Ideavim / IdeaVim releases' project: general settings of 'Publish minor release' build configuration were updated 2025-01-10 06:50:40 +00:00
Alex Plate 2f99d215d6 Do not build searchable options during release.
They're broken at the moment
2025-01-09 17:44:40 +03:00
Vladimir ParfinenkoandAlex Pláte 9cb37de5ea README: fix broken links to wiki 2025-01-09 17:24:47 +03:00
dependabot[bot]andgithub-actions[bot] 1b030a6fb3 Bump io.ktor:ktor-client-core from 3.0.2 to 3.0.3
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 3.0.2 to 3.0.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/3.0.2...3.0.3)

---
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>
2025-01-01 17:08:09 +01:00
dependabot[bot]andgithub-actions[bot] 1f8cbe4b1d Bump io.ktor:ktor-serialization-kotlinx-json from 3.0.2 to 3.0.3
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.0.2 to 3.0.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/3.0.2...3.0.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>
2025-01-01 17:07:57 +01:00
dependabot[bot]andgithub-actions[bot] 438c6f23c8 Bump io.ktor:ktor-client-auth from 3.0.2 to 3.0.3
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.0.2 to 3.0.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/3.0.2...3.0.3)

---
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>
2024-12-25 17:38:38 +01:00
dependabot[bot]andgithub-actions[bot] 59c1efecb6 Bump io.ktor:ktor-client-content-negotiation from 3.0.2 to 3.0.3
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.0.2 to 3.0.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/3.0.2...3.0.3)

---
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>
2024-12-25 17:23:15 +01:00
dependabot[bot]andgithub-actions[bot] d7e4164a46 Bump io.ktor:ktor-client-cio from 3.0.2 to 3.0.3
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.0.2 to 3.0.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/3.0.2...3.0.3)

---
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>
2024-12-25 17:07:42 +01:00
IdeaVim Bot 5023f60315 Add Xinhe Wang to contributors list 2024-12-22 09:01:46 +00:00
Xinhe Wangandlippfi bde4fcdd47 Fix test failure introduced in 5e60ea7 2024-12-21 20:29:18 +02:00
Alex Plate 69811c864e Add checks to avoid incorrect creation of the visual position
Related to VIM-3755
2024-12-18 16:33:18 +02:00
Alex Plate c225452432 [VIM-3577] Store the information if the editor was initialized in insert mode 2024-12-18 13:19:20 +02:00
Filipp Vakhitov 5e60ea7f4c Fix(VIM-3754): set clipboard+=unnamed stopped working in IdeVIM 2.18
I did remove `exclude:cons\\|linux` from the overriden value
2024-12-18 13:11:26 +02:00
Alex Plate 5995a48d7b [VIM-3577] Replace weak reference to focused editor to needed information
The `editorInFocus` used the weak reference in order to avoid editor leaks. However, if the user is unlucky, the GC may be called in between the console closing and switching focus to the new editor. In this case, the logic breaks and the Editor remains in the insert mode.
Now, we store only the required information about the last used editor.
2024-12-17 20:36:51 +02:00
Alex Plate 4614e2ad54 [VIM-3617] Remove the forgotten recursion call 2024-12-17 10:06:48 +02:00
Alex Plate 077de91e01 [VIM-3617] Set a recursion guard for obtaining the editor
Function `selectedTextEditor` in some cases may create a new editor, what causes the recursion and IDE freeze. The guard should protect from it.
2024-12-17 10:02:34 +02:00
Alex Plate 1ce7a97f2a Fix(VIM-3747): There is no need to remove the visual mode if there is still a selection 2024-12-16 13:38:29 +02:00
Alex Plate 02a42843a6 Update gradle wrapper 2024-12-16 09:39:22 +02:00
dependabot[bot]andgithub-actions[bot] eb72762073 Bump org.jetbrains.intellij.platform from 2.1.0 to 2.2.0
Bumps org.jetbrains.intellij.platform from 2.1.0 to 2.2.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-11 17:44:09 +02:00
dependabot[bot]andgithub-actions[bot] 43a94b3d71 Bump io.ktor:ktor-client-auth from 3.0.1 to 3.0.2
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.0.1 to 3.0.2.
- [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/3.0.1...3.0.2)

---
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>
2024-12-11 17:42:42 +02:00
dependabot[bot]andgithub-actions[bot] 1984873b1c Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps [org.eclipse.jgit:org.eclipse.jgit.ssh.apache](https://github.com/eclipse-jgit/jgit) from 6.10.0.202406032230-r to 7.1.0.202411261347-r.
- [Commits](https://github.com/eclipse-jgit/jgit/compare/v6.10.0.202406032230-r...v7.1.0.202411261347-r)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-11 17:42:28 +02:00
Julien PhalipandAlex Pláte 4962baabad Add support for hlsearch variable 2024-12-06 17:21:33 +02:00
Julien PhalipandAlex Pláte 2e550a0960 Add support for escape() vim function 2024-12-06 17:09:59 +02:00
IdeaVim Bot bc48a45cd1 Add Justas Trimailovas, Justas Trimailovas to contributors list 2024-12-05 09:02:20 +00:00
Matt EllisandAlex Pláte a005eb0612 Fix repeating change action with count
Fixes VIM-3729
2024-12-04 18:23:16 +02:00
Justas TrimailovasandAlex Pláte 63297e685c Correctly change surround if it's empty or only spaces
This commit fixes 2 bugs at once:

1. Correctly trim surround with closing brackets motion, e.g.: `cs()`.

   It should trim all surrounding white space or leave things unchanged if
   there's no space.

   For example cases like these:

	"( ${c}foo )"  // single spaces
	"(   ${c}foo   )"  // multiple spaces
	"( ${c}foo)"  // assymetric spaces
	"(${c} )"  // single space without text
	"(${c}   )"  // multiple spaces without text

   Should trim white spaces into these results accordingly:

	"${c}(foo)"
	"${c}(foo)"
	"${c}(foo)"
	"${c}()"
	"${c}()"

In case of no spaces - they should be left unchanged, e.g.:

	"(${c}foo)"  // no spaces around the word
	"(${c})"  // empty parenthesis

2. Leave empty parenthesis unchanged. IdeaVim now deleted them instead.
2024-12-04 18:07:02 +02:00
Justas TrimailovasandAlex Pláte 6c9a5e1f2d [VIM-1824] surround - remove whitespace with closing bracket
**Context**:

In vim surround extendsion closing brackets (`}, ], )`) should remove
whitespace when using `cs` movement.

Example:
- Before: `{ example }`
- Movement: `cs{}`
- After: `{example}`

This was because  were replaced with a string from `SURROUND_PAIRS` map,
which does not have any context about removing characters.

**Solution**:

Inspired from VSCode's VIM plugin[^1], I have introduced new class
`SurroundPair` that will carry this context about need to trim
characters.

**Disclaimer**:

I have never written in `Kotlin` so solution may be not use best
practices, though at least this PR seems to fix the problem and tests
are passing.

**Ticket**:
- https://youtrack.jetbrains.com/issue/VIM-1824/Vim-Surround-Does-not-remove-whitespace-with-the-closing-bracket

[^1]: https://github.com/VSCodeVim/Vim/blob/04fe42aa815f638af14e4cf4c92e88109242c3e6/src/actions/plugins/surround.ts#L455
2024-12-04 18:07:02 +02:00
dependabot[bot]andgithub-actions[bot] 34a5ba0ba7 Bump io.ktor:ktor-client-cio from 3.0.1 to 3.0.2
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.0.1 to 3.0.2.
- [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/3.0.1...3.0.2)

---
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>
2024-12-04 17:59:34 +02:00
dependabot[bot]andgithub-actions[bot] 2354dc9af9 Bump io.ktor:ktor-client-content-negotiation from 3.0.1 to 3.0.2
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 3.0.1 to 3.0.2.
- [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/3.0.1...3.0.2)

---
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>
2024-12-04 17:45:34 +02:00
dependabot[bot]andgithub-actions[bot] be31963a4f Bump io.ktor:ktor-serialization-kotlinx-json from 3.0.1 to 3.0.2
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 3.0.1 to 3.0.2.
- [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/3.0.1...3.0.2)

---
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>
2024-12-04 17:32:02 +02:00
dependabot[bot]andgithub-actions[bot] 277c5ae7a5 Bump io.ktor:ktor-client-core from 3.0.1 to 3.0.2
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 3.0.1 to 3.0.2.
- [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/3.0.1...3.0.2)

---
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>
2024-12-04 17:31:51 +02:00
dependabot[bot]andgithub-actions[bot] 49d03cf7f1 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.0.0-1.0.24 to 2.1.0-1.0.29.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.0.0-1.0.24...2.1.0-1.0.29)

---
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>
2024-12-04 17:31:33 +02:00
Alex Plate f5e7459b37 [IJPL-165238] It seems the issue was fixed 2024-12-03 15:18:20 +02:00
Alex Plate df8144fc00 Temporally bring back first and last checks 2024-12-03 15:03:09 +02:00
dependabot[bot]andgithub-actions[bot] 05f1d7abd7 Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.25 to 2.1.0
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.25 to 2.1.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.0/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.25...v2.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 17:44:55 +02:00
Alex PláteandGitHub 6ca17ae09d Update codeql-analysis.yml 2024-11-26 14:53:10 +02:00
Alex PláteandGitHub f9d8b3a59e Update syncDoc.yml 2024-11-26 14:50:29 +02:00
Alex PláteandGitHub 3279325694 Update closeYoutrackOnCommit.yml 2024-11-26 14:46:54 +02:00
Julien PhalipandAlex Pláte b2a6d0d5c7 Add switch and functiontextobj to list of plugins 2024-11-26 14:15:38 +02:00
Julien Phalipandlippfi e32fa6dd11 Change Variable to an interface 2024-11-26 10:32:11 +02:00
Julien Phalipandlippfi ec3db81c6d Move register variable to its own separate class 2024-11-26 10:32:11 +02:00
Julien Phalipandlippfi 7062dc4860 Add support for the v:register variable 2024-11-26 10:32:11 +02:00
Alex Plate 46619040b1 Add new plugins for checking
From here: https://github.com/JetBrains/ideavim/discussions/1047
2024-11-25 15:32:22 +02:00
Alex Plate 035804860c Fix incorrect configuration in gradle 2024-11-25 15:32:01 +02:00
Alex Plate 0f1a4d523f Move the docs to the init method of VimExtension 2024-11-25 14:01:23 +02:00
Alex Plate 5f5a97a7e1 Lazily load the logger to avoid injector initialization problems 2024-11-25 13:39:24 +02:00
IdeaVim Bot 03996dce59 Add Julien Phalip to contributors list 2024-11-23 09:03:04 +00:00
filippandAlex Pláte 0dd63c7b57 Fix nullable editor in tests 2024-11-22 17:15:07 +02:00
filippandAlex Pláte 94d7902ef2 Remove more deprecated methods 2024-11-22 17:15:07 +02:00
filippandAlex Pláte 3d08170d54 Post-rebase fixes 2024-11-22 17:15:07 +02:00
filippandAlex Pláte cccb23d9ee Specify which commands perform mode change
We need this for undo subsystem. Mode change is not something that we want to be a separate entity in the undo log

P.S. It's not a full list of such commands, e.g. <ESC> for leaving insert mode is missing. It is because <ESC> may insert some text after visual block mode, I'll figure out a solution for this later
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte eae3fb3ebe Introduce VimKeyBasedUndoService and VimTimestampBasedUndoService
Undo is managed differently in Fleet and IJ Platform, so now we have two different interfaces that are aware of that
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 7f5dce4051 Stop using some deprecated methods 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 25e3988dcf Introduce VimCopiedText class
I don't really like that we have `transferableData: List<Any>`
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 36589c5250 Add context argument in clipboard methods
Alas, adding in just to clipboard was not possible, as there are a lot of depending on methods
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte f1f86b5cd2 Simplify Register class
1. `rawText` vs `text` is confusing and `rawText` was misused, we do not need this field in IdeaVim at all
2. `rawText` and `keys` are the same thing, just parsed. And for some reason, rawText was a nullable field
3. Register is an immutable class now
4. Working with Register class is easier and more compact now
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 628b3ca89f Fix <CR> parsing
It's ^M, not ^J
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte d2b929ddd0 Fix parsing for clipboard option
When I added the selection clipboard, it was confusing to explain to people how this option works and why they should prepend, because the parsing was broken
I've also removed "exclude" part, because it doesn't work in IdeaVim and can confuse people
2024-11-22 17:15:07 +02:00
filippandAlex Pláte 43d770ff5a Simplify getTransferableData method signature 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte cde9bc94e6 Fix select mode for immutable caret
Due to implementation details, caret cannot be moved after setting selection
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 63f6e73223 Fix select mode for immutable caret 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte ad28e09fec Move caret when deleting a char
In Fleet deleting text does not move caret, so we add caret moving logic
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte f616f2c3c1 Fix gv in Fleet
Moving caret after setting selection removes the selection
2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 66aec26091 Move ColLineFunctionHandler.kt to vim-engine 2024-11-22 17:15:07 +02:00
Filipp VakhitovandAlex Pláte 1d59c49b95 Move more logic to vim-engine 2024-11-22 17:15:07 +02:00
Matt EllisandAlex Pláte 8da15b8c08 Manually track last selected editor
This is important for initialising options. We can't rely on FileEditorManager.selectedTextEditor, as 2024.2 changed behaviour to reset to null during creation of a new editor. This fixes tests (and option initialisation) for 242.
2024-11-22 17:01:38 +02:00
Matt EllisandAlex Pláte e22c2b6473 Improve updating fallback window option values
The assumption for selection change events is no longer valid in 242, so switch approach to checking when editors are released
2024-11-22 17:01:38 +02:00
Matt EllisandAlex Pláte e293c1b786 Add tests for updating the fallback window 2024-11-22 17:01:38 +02:00
Matt EllisandAlex Pláte 468ca840ed Update options tests
Expanded to assert changes on all open windows, and formatted to make it a little easier to read/comprehend what's being tested
2024-11-22 17:01:38 +02:00
Julien PhalipandAlex Pláte c75e6756c0 Add some tests for the getcmdtype() function 2024-11-22 16:49:04 +02:00
Julien PhalipandAlex Pláte 52737c60cf Add JSON entry for getcmdtype function 2024-11-22 16:49:04 +02:00
Julien PhalipandAlex Pláte e99c191d49 Add partial support for getcmdtype() function
Tests not included
2024-11-22 16:49:04 +02:00
Julien Phalipandlippfi 5db2984fdd Add ability to set the highlightedyank foreground color 2024-11-22 15:48:22 +02:00
Alex Plate 365b58eb56 Update build.gradle checker 2024-11-15 20:54:07 +02:00
Alex Plate b026144254 Add RWLock label to selectionStart & selectionEnd 2024-11-15 20:53:54 +02:00
Alex Plate 0e3cda827c Fix(VIM-3695): Wrap getting a vimLeadSelectionOffset with a read action 2024-11-15 20:44:00 +02:00
Alex Plate ed2fe3dcf0 Fix(VIM-3696): Get the state of the selection in read action 2024-11-15 20:34:41 +02:00
Alex Plate 791edbd29b Restore compatibility with peekaboo plugin
https://plugins.jetbrains.com/plugin/25776-vim-peekaboo
2024-11-13 19:39:24 +02:00
Matt EllisandAlex Pláte 4f9d76ef66 Fix memory leak with non-disposed listeners
Fixes VIM-3319
2024-11-13 18:00:47 +02:00
Matt EllisandAlex Pláte 4b7381901d Fix bug removing map that is also a prefix 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 6e2cb9ba11 Reorder functions. No logic changes 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 91cd4ab01f Add sequences to iterate keystroke trie
Allows iterating the trie entries without having to create a list or create a list for each entry's keystrokes.
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 34d23180bd Avoid wrapping the keys list for each map attempt 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte fc5aaa50d8 Remove unnecessary hasmapfrom function 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte c7bbfdcaf5 Remove some test only functions 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 562906fe6d Filter map output by prefix
Fixes VIM-2981
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 976771d11a Implement smap and snoremap
Support for sunmap and smapclear already exists, and vmap would introduce a Select mode map.

Fixes VIM-2260
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 5fc4462b03 Support map! to map insert and cmdline modes
Also supports `mapclear!` and `unmap!`

Moves parsing of the bang modifier to the parser so we can tell the difference between `map! foo bar` and `map ! foo bar`
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 5f263e7014 Fix output of maps with same keys in multiple modes
E.g. `map foo bar` and `vmap foo baz` would only output one map for `foo` when calling `:map`. Now it will output all maps that match the ex command's modes. This change also improves the marker characters in the first column of map output.
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 4c899fcc93 Simplify test code 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 2f8fe392af Use KeyStrokeTrie for maps 2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 84c7e1159b Introduce KeyStrokeTrie to find commands
Should also restore compatibility with idea-which-key
2024-11-13 17:57:31 +02:00
Matt EllisandAlex Pláte 18d6f79796 Add missing C-PageUp/Down shortcuts to switch tab
Fixes VIM-2044
2024-11-13 17:52:28 +02:00
Matt EllisandAlex Pláte a745da9761 Add Shift+Enter mapping to scroll page forward
Fixes VIM-2752
2024-11-13 17:52:28 +02:00
Matt EllisandAlex Pláte 5eb36ce428 Remove unneeded extended special name parsing
This was needed when action keys were registered in a comma separated list in a single XML attribute string. Additional encoding was needed for angle brackets and commas. Registration has changed, and this is no longer needed
2024-11-13 17:52:28 +02:00
Alex Plate b0951f4a38 Add information about the Vim-Peekaboo plugin 2024-11-08 11:06:32 +02:00
dependabot[bot]andgithub-actions[bot] bcf519027e Bump io.ktor:ktor-client-content-negotiation from 2.3.10 to 3.0.1
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.10 to 3.0.1.
- [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.10...3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-06 17:51:11 +02:00
dependabot[bot]andgithub-actions[bot] 9aece44a00 Bump io.ktor:ktor-client-cio from 3.0.0 to 3.0.1
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 3.0.0 to 3.0.1.
- [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/3.0.0...3.0.1)

---
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>
2024-11-06 17:37:07 +02:00
dependabot[bot]andgithub-actions[bot] 61912e2c9b Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.12 to 3.0.1
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.12 to 3.0.1.
- [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.12...3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-06 17:21:37 +02:00
Matt EllisandAlex Pláte 92ee271f1e Add fallback if ve guicursor option not specified 2024-11-05 12:29:13 +02:00
Matt EllisandAlex Pláte babc5daf3b Use Visual-exclusive caret shape from guicursor 2024-11-05 12:29:13 +02:00
Alex Plate c0a10c65e1 Upgrade TC agents 2024-11-05 11:56:20 +02:00
Alex Plate 5145bb4193 Mute some NeoVim tests 2024-11-05 11:50:44 +02:00
Alex Plate 8825f790d4 Fix the problem with the JSON in tests
In 2025.1 the JSON plugin is extracted from the platform. See IJPL-159354
2024-11-05 11:45:32 +02:00
Alex Plate a0f0f71b6a Revert "Fix deprecated API usage"
This reverts commit b0dd75f77c.

Because of some reason, this place fails on TC. Let's deal with this later
2024-11-05 05:43:14 +02:00
Alex Plate 6a73f9e65a Bump TC configurations to use 2024.2.1 2024-11-05 05:09:19 +02:00
Alex Plate 4ee858877d Revert "Remove pre-242 workaround"
This reverts commit 727cfb36ba.
2024-11-05 04:16:32 +02:00
Matt EllisandAlex Pláte 82d18cfbb9 Remove unused imports 2024-11-05 04:14:12 +02:00
Matt EllisandAlex Pláte b0dd75f77c Fix deprecated API usage 2024-11-05 04:14:12 +02:00
Matt EllisandAlex Pláte 727cfb36ba Remove pre-242 workaround 2024-11-05 04:14:12 +02:00
Matt EllisandAlex Pláte a7d5c5f2d4 Remove custom version for split mode
Split mode run task will use the same version as runIde
2024-11-05 04:14:12 +02:00
Matt EllisandAlex Pláte 1e02848a66 Update target IDEA version to 242
Note that this uses 2024.2.1 as the minimum version because 2024.2.0 is no longer available.
2024-11-05 04:14:12 +02:00
Alex Plate 9d8afc5fcb TC: Use the idea version from the gradle configuration to run github tests 2024-11-05 03:46:32 +02:00
dependabot[bot]andgithub-actions[bot] 15b2a17ae6 Bump org.junit.jupiter:junit-jupiter-engine from 5.10.3 to 5.10.5
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.5.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 18:10:50 +02:00
dependabot[bot]andgithub-actions[bot] 39a2cdcf50 Bump io.ktor:ktor-client-auth from 2.3.12 to 3.0.1
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.12 to 3.0.1.
- [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.12...3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 18:09:09 +02:00
dependabot[bot]andgithub-actions[bot] 2fd488531b Bump org.junit.vintage:junit-vintage-engine from 5.10.3 to 5.10.5
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.5.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 17:55:56 +02:00
dependabot[bot]andgithub-actions[bot] e69b30796c Bump org.junit.jupiter:junit-jupiter-api from 5.10.3 to 5.10.5
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.5.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 17:54:34 +02:00
dependabot[bot]andgithub-actions[bot] 790a0afdf3 Bump io.ktor:ktor-client-core from 2.3.12 to 3.0.1
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.12 to 3.0.1.
- [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.12...3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-30 17:54:12 +02:00
IdeaVim Bot 66b01b0b0d Add Greg Shrago to contributors list 2024-10-26 09:02:33 +00:00
Alex Plate 71ea6184a0 Add Greg Shrago to the contributors list 2024-10-25 18:18:12 +03:00
Greg ShragoandAlex Plate 0b1c79d961 Disable some IJ additional checks 2024-10-25 18:14:37 +03:00
Alex Plate 6b751fae6e Disable some IJ additional checks 2024-10-25 17:29:07 +03:00
Alex Plate 152066b73c Apply TeamCity patches 2024-10-25 17:00:44 +03:00
aleksei.plate@jetbrains.comandteamcity dfe645c4eb TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ 2024.2' build configuration were updated 2024-10-25 13:52:21 +00:00
Alex Plate 5024fd94da There are fails in the configuration, let's revert part of it 2024-10-25 16:47:57 +03:00
Alex Plate 4d3a231a35 Add java and other tests to artifacts 2024-10-25 16:27:53 +03:00
Alex Plate e1a803d310 Disable one more test that doesn't work on 242 2024-10-25 15:59:05 +03:00
Alex Plate 96b224c0d8 Fix compilation issues 2024-10-25 14:47:54 +03:00
Alex Plate 8b6de3f5c6 Fix split window tests for 242
The window splitting was refactored to initialize the editor async. So, we have to wait till the editor will become available.

This can't be done while holding the EDT, so we start this bunch of tests from the non-EDT thread.
2024-10-25 14:35:55 +03:00
Alex Plate 9014d99cde Add a note that PluginStartup code should be updated and migrated to a different approach 2024-10-25 14:35:55 +03:00
Alex Plate 8dfd41a891 Refactoring: Move VimDocumentListener from multicaster to plugin.xml registration
The problem happens in tests: after the refactorings in 242, the `EditorListenerTracker` may be called before the initialization of the IdeaVim. In this case, it'll report the VimDocumentListener as a leaked listener, however, it's incorrect.
Generally, I think that this situation with the listener tracker is a bug.

There should be no changes in IdeaVim behaviour as the multicaster does the same thing: subscribes every editor on this listener. However, the multicaster does this in the "registerEditor" stage. However, I don't think this is a problem.
2024-10-25 14:35:55 +03:00
Alex Plate 7e62e816a5 Refactoring: Move FocusChangeListener from multicaster to per-editor subscription
The problem happens in tests: after the refactorings in 242, the `EditorListenerTracker` may be called before the initialization of the IdeaVim. In this case, it'll report the FocusChangeListener as a leaked listener, however, it's incorrect.
Generally, I think that this situation with the listener tracker is a bug.

There should be no changes in IdeaVim behaviour as the multicaster does the same thing: subscribes every editor on this listener. However, the multicaster does this in the "registerEditor" stage. However, I don't think this is a problem.
2024-10-25 14:35:55 +03:00
dependabot[bot]andgithub-actions[bot] 9c4965581a Bump org.junit.jupiter:junit-jupiter from 5.11.0 to 5.11.3
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.11.0 to 5.11.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.0...r5.11.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 19:04:24 +03:00
dependabot[bot]andgithub-actions[bot] d1abc0c9f9 Bump io.ktor:ktor-client-cio from 2.3.10 to 3.0.0
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.10 to 3.0.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/compare/2.3.10...3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 18:51:08 +03:00
dependabot[bot]andgithub-actions[bot] 43555ad581 Bump org.jetbrains:annotations from 24.1.0 to 26.0.1
Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 24.1.0 to 26.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/24.1.0...26.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>
2024-10-23 18:50:30 +03:00
dependabot[bot]andgithub-actions[bot] 640e5ac552 Bump org.jetbrains.intellij.platform from 2.0.0-rc2 to 2.1.0
Bumps org.jetbrains.intellij.platform from 2.0.0-rc2 to 2.1.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 18:49:52 +03:00
dependabot[bot]andgithub-actions[bot] 40b706bcf4 Bump org.junit.jupiter:junit-jupiter-params from 5.10.3 to 5.10.5
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.5.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 18:49:36 +03:00
Alex Plate 5b355a8e95 TC: Remove old tests configurations
There was not a single case when these tests were needed
2024-10-23 13:31:33 +03:00
IdeaVim Bot 8ed53284e4 Add Kirill Karnaukhov, SanderHestvik to contributors list 2024-10-22 09:01:48 +00:00
Alex Plate 1f6e124f9d Fix(VIM-3676): Allow to set the handle for shortcuts with arrows
With the AI functionality, the shortcut ctrl-right got more important. However, previously it was defined as VIM_ONLY shortcut. However, taking the fact that IJ defines several actions for such shortcuts, it's not clear why we prohibit the users from using these shortcuts with the IDE actions.

Taking the fact, that we default shortcuts to VIM, I expect no changes in the behaviour.

However, just arrows are still hidden from setting the IDE handler. I think, it reduces the cognitive load for the user, especially taking the fact that arrows work almost equally in vim and IJ.
2024-10-21 17:56:44 +03:00
Kirill KarnaukhovandAlex Pláte 5198864f34 [ai-completion] LLM-11886: make AI completion invoke on Enter when IdeaVim is turned on 2024-10-21 17:02:36 +03:00
Alex Plate ecfff61aad Fix the issue in the replacement script 2024-10-21 16:17:49 +03:00
Alex Plate 26909af5de Update the doc sync script to remove the .md from the links. 2024-10-21 16:16:17 +03:00
Alex Plate ad762379fb Update IdeaVim Plugins.md 2024-10-21 16:12:11 +03:00
SanderHestvikandAlex Pláte dd4f2de368 Fix links in doc/Home.md
Currently these links give a 404
2024-10-21 16:11:29 +03:00
Matt EllisandAlex Pláte 879d191800 Scroll caret into view after undo/redo
This is to ensure that 'scrolloff' is applied. Relates to VIM-3671
2024-10-21 15:50:58 +03:00
Matt EllisandAlex Pláte 9d9e38843d Invoke undo/redo on correct editor
Fixes VIM-3671
2024-10-21 15:50:58 +03:00
Matt EllisandAlex Pláte f7aded99e8 Only perform incsearch in current project
Fixes VIM-3682
2024-10-21 15:50:58 +03:00
Igor BabkoandAlex Pláte 4e1de61d77 Update support-guide.md 2024-10-21 14:13:31 +03:00
Matt EllisandAlex Pláte 34fe09c8f9 Use full width of output panel for text 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 10283ce2f8 Add support for custom digraphs 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte cc53b59658 Add digraph headers 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte c758a79f79 Minor refactor outputting digraphs 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 01d00d45d8 Add a default size for the digraph string builder 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 5c7edc498f Rename getDigraph - it gets a char from a digraph 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 9c403d2862 Simplify creating string digraph key 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte ebbd733bba Update default digraphs to match current Vim
List is based on Vim's documentation, although not all digraphs are documented. Additional digraphs are added based on the output of `:digraphs`. These additional digraphs include some digraphs that produce the same character, so the code is updated to handle duplicates, with the same ordering/priority as Vim.

Extra digraphs include the Euro symbol (`=e` and `Eu`), quadruple prime (`4'`) and bullet (`oo`), amongst others.

Also removes a number of non-standard digraphs. The symbols generated don't match the descriptions. The code appears to be private use, so are not reliable. Once custom digraphs are implemented, they can be easily added back in `~/.ideavimrc`
2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 88d1e1d24a Suppress language download inspection 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte c19f2aeee4 Update comments for default digraphs 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 86202c846a Remove unused commented digraph data 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 9a7ff442f3 Correctly format RTL and combining digraph chars 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 3752a97d74 Output digraph character codes in decimal, like Vim
Not sure why IdeaVim has used hex. Vim appears to have used decimal for at least 20 years.
2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 5572dfc80d Update digraph formatting to match Vim
Vim only use the `~` prefix if the encoding is "latin1". We can just treat it as though the encoding is Unicode, and match the other places we format printable characters. Note that for Vim, if `'display'` contains "uhex", then all unprintable characters are shown in hex, including control characters (`^C`, etc.). IdeaVim does not support the `'display'` option.
2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 100f420d46 Strip trailing spaces 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 3fcc4746d8 Migrate digraph output to engine 2024-09-05 19:22:04 +03:00
Matt EllisandAlex Pláte 5c5ac192da Add tests for digraph output 2024-09-05 19:22:04 +03:00
Alex Plate a0a2163ba0 Disable some action tests because they're broken in 242
Related: VIM-3376
2024-09-05 18:58:20 +03:00
Alex Plate 02724cadce Fix the leaking timer in tests 2024-09-05 18:57:43 +03:00
Alex Plate b205f87902 Disable tests for options for split window
The behaviour of FileEditorManagerEx.split has been changed, causing the tests to fail. This should be fixed in a separate commit
2024-09-05 18:57:12 +03:00
Alex Plate 314304246a Fix the LATEST-EAP-SNAPSHOT tests 2024-09-05 17:10:14 +03:00
Alex Plate 785688b1ca Fix compatibility in tests with 2024.2 2024-09-05 16:42:16 +03:00
IdeaVim Bot 4c09ab4766 Add Felix Wiemuth to contributors list 2024-08-31 09:01:59 +00:00
Alex Plate ee447bce07 Add a note to replace the raw string after the changes will be available
https://github.com/JetBrains/intellij-community/pull/2825
2024-08-30 18:57:00 +03:00
Alex Plate 5fb4c10f88 Add 2024.2 IJ for testing on TC 2024-08-30 18:42:02 +03:00
Alex Plate ed2fcb08b0 [VIM-3620] Add a link to the usage survey 2024-08-30 18:34:10 +03:00
chylexandAlex Pláte dedd90ce13 Fix(VIM-3615): Escape closes dialog while waiting for more keys 2024-08-30 16:46:53 +03:00
Alex Plate 73326e623e Use the behavior form in docs 2024-08-30 16:42:03 +03:00
Alex Plate a2bc34d6ec [VIM-3620] Show the uninstall survey only when uninstalling IdeaVim 2024-08-30 16:41:36 +03:00
Felix WiemuthandAlex Pláte b652c7726a Fix typo 2024-08-30 16:41:05 +03:00
Matt EllisandAlex Pláte fb7a2de07b Encapsulate the command builder's state flag
This also gets rid of BAD_COMMAND, which was set but never checked - the function that set the flag would immediately reset the command builder
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte def9ca479b Ensure builder resets to a root command trie node
Also refactors command nodes a bit for better debug/trace output
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0936e0761f Reorder CommandBuilder methods
Try to keep related functions together: awaiting arguments, count, registers, adding action/argument, processing keystrokes, build, reset.
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 09a335bcfe Start to encapsulate setting command builder state
Also rename `pushCommandPart` and `completeCommandPart`
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 37b8d69bac Remove unused EMPTY_COMMAND 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 13308050a8 Remove unnecessary OperatorArguments parameters 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte a1a553ebc9 Deprecate OperatorArguments.mode 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 5bb0c4f7cb Use editor.mode instead of OperatorArguments.mode
`OperatorArguments.mode` is the mode *before* the command was completed, rather than the current mode, which is non-obvious. E.g. for a command in Insert mode, it will still be Insert, and for a (simple) command in Normal, it will still be Normal. The only difference is that a command such as `dw` would be in Operator-pending before the command is completed. That logic is not required for this method, so it's safe to use the current mode.

This allows us to start to deprecate `OperatorArguments.mode`.
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte da6736f24a Simplify the logic when yanking during delete 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 4df1ce2ae8 Remove OperatorArguments.mode usage in block insert
`OperatorArguments.mode` is the mode *before* the command is completed, so might be Visual, Operator-pending, Insert, etc. It's not immediately obvious this is the case, so we're going to deprecate `OperatorArguments.mode` to avoid confusion with `editor.mode`.

It's not required for this method because it's only called for Visual-block mode.
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 00fd4cd491 Handle op-pending for space and backspace 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte d185672e2f Deprecate OperatorArguments.isOperatorPending
Register specific handlers for Operator-pending mode instead of relying on a runtime flag for behaviour. Also refactors and renames some arrow motion handlers.
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 55fef03a4a Add 'whichwrap' to dictionary 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 69b3e4f782 Start to refactor OperatorArguments 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 6be29b0378 Remove KeyHandler.isOperatorPending
It's easier to just look at mode. We don't need the additional check on command builder, because we can't be in OP_PENDING without pushing an operator action to the command builder
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 9965c863a6 Encapsulate command node state in builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 3f11ae512c Move register pending state to command builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 1c842eb3d8 Avoid exposing misleading count on command builder 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte c7fbce675b Update comment 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte d7e68488c8 Make Command.rawCount immutable 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 69d13a74e6 Remove unnecessary copy method 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 5a83df34a7 Replace var properties with read only 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0a18c388e0 Simplify CommandBuilder
Fixes selecting last register if multiple registers are used in a command
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 1a3409e7df Remove count from motion argument
Only Command has a count. The motion argument is now a sealed class hierarchy, and consists only of the motion action and optional argument. This is to reduce confusion over which count to use, and potential incorrect calculation of the count
2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte e93db961a0 Wrap offsets argument as an external action 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 8fd76bd08f Refactor properties for sealed Argument classes 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0eea4a5b2c Introduce sealed classes to represent an argument 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 18a0c533e2 Remove unused OperatedRange type 2024-08-30 16:36:24 +03:00
Matt EllisandAlex Pláte 0bd8d8f4d2 Remove unused digraph command flag 2024-08-30 16:36:24 +03:00
Alex Plate 64a89c8863 [VIM-3620] Add the uninstall survey
We're actively working on understanding the users and what we can improve in the plugin
2024-08-28 18:57:29 +03:00
Filipp Vakhitov 5b17d7740e Update generated files after merging PRs 2024-08-25 21:51:14 +03:00
IdeaVim Bot e406885ec6 Add Igor Babko to contributors list 2024-08-24 09:01:39 +00:00
filippandAlex Pláte 9bbeab8062 VIM-2074 Backspace behaviour is incorrect in Replace mode 2024-08-23 14:22:48 +03:00
filippandAlex Pláte 373bfc4eab Add endOffset to LiveRange 2024-08-23 14:22:48 +03:00
filippandAlex Pláte 050f2f7b97 Respect emojis and don't assume that every character is a single offset 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte e30bc14843 Make closing command line safer 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 76d590be11 Support more flexible command line restrictions for Fleet 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte b005328b4a Exclude generated files from .gitignore
I've also added sorting to be more confident that the generated file will be persistent across different machines
2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte ad20021cee Remove currentAction and some unused code 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 126de5c218 Remove package-info.java 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 0f7aef3f15 Fix tests 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte f352b84922 Move some Executor logic to its base class 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 789faa7cb2 Add entry to history on <Esc> in COMMAND mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte a338f5768a Better reset 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 8205c74571 Remove some old bindings 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte def40eb409 Save last entry on every command line text update 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 010e8a7541 Support <C-U> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 46c6778b3a Support <Down>, <S-Down>, <C-N>, <PageDown> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 0977bd4400 Support <Up>, <S-Up>, <C-P>, <PageUp> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte db092e9b0a Support history in VimCommandLine 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 5cfb98e188 Remove some old bindings 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 3a95b62885 Support <Insert> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 93e6adf5a9 Support <C-W> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 37204398ff Support <C-Right>, <S-Right> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte b2f450d14d Support <C-Left>, <S-Left> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 61da888571 Fix failing tests 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte fcda97cfb8 Update methods to support searching in any text, not just Editor content 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 1dc7ea6363 Register all shortcuts without references on ExKeyBindings
All the shortcuts will be removed from ExKeyBindings, but they still need to be registered
2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte bb507db884 Remove swing bindings that are already implemented 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 7b0482ed94 Fix unwanted beep when can't perform an action 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 1c79b0d59a Support <Right> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte ff4eb31418 Support <Left> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte cb1078cf70 Support <C-H> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte da3e40eaf6 Support <C-E>, <End> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 17f77a9639 Support <C-B>, <Home> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 3d03494354 Support <DEL> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 642caddda7 Support <BS> in command mode 2024-08-23 14:18:03 +03:00
Filipp VakhitovandAlex Pláte 1d97c43e30 Make ExEntryAction public
Fleet registers commands manually, so commands must be accessible
2024-08-23 14:18:03 +03:00
Igor BabkoandAlex Pláte 7ed3e3b53c Update support-guide.md 2024-08-23 12:14:41 +03:00
IdeaVim Bot aa39ca2006 Add shaun to contributors list 2024-08-19 09:01:43 +00:00
shaunandAlex Pláte bb122903de remove Latest Fixes link 2024-08-19 10:23:23 +03:00
shaunandAlex Pláte c84a3cf64d [changelog] add YouTrack link for version fixes 2024-08-19 10:23:23 +03:00
IdeaVim Bot f4c9464b8a Add The1xDeveloper to contributors list 2024-08-17 09:01:38 +00:00
The1xDeveloperandAlex Pláte 3ba14d05b4 VIM-566: Add za motion support for toggling folds 2024-08-16 12:28:18 +03:00
Filipp Vakhitov 2189b70b87 Fix(VIM-3601): The escape characters in IdeaVim's configuration file are invalid 2024-08-14 18:18:55 +03:00
dependabot[bot]andgithub-actions[bot] ea2222f9d5 Bump org.junit.jupiter:junit-jupiter from 5.10.3 to 5.11.0
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.10.3 to 5.11.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 18:53:54 +03:00
Filipp Vakhitov 7d68d41888 Fix(VIM-3580): New terminal switches editor to insert mode 2024-08-12 13:44:24 +03:00
Alex PláteandGitHub 44749b6d8c Update IdeaVim Plugins.md 2024-08-12 12:16:19 +03:00
Alex PláteandGitHub 1ce4dbc569 Update Home.md 2024-08-12 12:14:44 +03:00
Alex PláteandGitHub db59513505 Update Home.md 2024-08-12 12:13:36 +03:00
Filipp Vakhitov 8c9ff9465f Fix(VIM-3584): com.maddyhome.idea.vim.KeyHandler requests com.maddyhome.idea.vim.api.VimKeyGroup instance. Class initialization must not depend on services 2024-08-11 01:12:59 +03:00
Filipp Vakhitov 1a2322ddec OutputPanel no longer ignores key events 2024-08-10 23:55:57 +03:00
dependabot[bot]andgithub-actions[bot] fbbd1ebc0d Bump org.antlr:antlr4 from 4.13.1 to 4.13.2
Bumps [org.antlr:antlr4](https://github.com/antlr/antlr4) from 4.13.1 to 4.13.2.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/dev/CHANGES.txt)
- [Commits](https://github.com/antlr/antlr4/compare/4.13.1...4.13.2)

---
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>
2024-08-07 18:46:09 +03:00
Alex Plate 8d5df11372 Add a warning when the action is executed from the write action
Related: VIM-3376
2024-08-06 11:11:40 +03:00
Matt EllisandAlex Pláte dfebe542d8 Fix incsearch highlight in multiple Rider instances
Unlike other IDEs, Rider has multiple client sessions. The IDE itself is the "local" session, while the external ReSharper process is treated as a "frontend" process. The code to get local editors was erroneously getting `ALL` sessions, rather than just `LOCAL` sessions, and assuming that the first was the local session. In Rider, opening three instances would add three additional clients, and that would change the order.

I don't know why I changed `LOCAL` to `ALL` when previously changing this bit of code. AIUI, using `LOCAL` should work fine. If it turns out that CWM or remote dev require `ALL`, please document why.

Fixes VIM-3549
2024-08-05 18:58:45 +03:00
Matt EllisandAlex Pláte 7fde47c08b Update README.md
Added links to POSIX spec
2024-08-01 14:04:58 +03:00
dependabot[bot]andgithub-actions[bot] 629919f634 Bump org.jetbrains.intellij.platform from 2.0.0-rc1 to 2.0.0-rc2
Bumps org.jetbrains.intellij.platform from 2.0.0-rc1 to 2.0.0-rc2.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-31 17:27:09 +02:00
dependabot[bot]andgithub-actions[bot] 43fff1c73e Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.0.0-1.0.23 to 2.0.0-1.0.24.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.0.0-1.0.23...2.0.0-1.0.24)

---
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>
2024-07-31 17:26:53 +02:00
Alex Plate d02f0e17ca Revert "Fix(VIM-3376): Refactor the way IdeaVim executes actions"
This reverts commit 24514039
2024-07-31 13:14:25 +03:00
Filipp Vakhitov 5dc860f61e Fix(VIM-3569): Pipe-symbol can no longer be used in remaps 2024-07-30 18:02:12 +03:00
Alex Plate 956e726c31 Add test 2024-07-29 17:48:07 +02:00
Alex Plate 446067e2fe Update formatting 2024-07-29 16:57:29 +02:00
Alex Plate bd53a895c0 Return nullability of editor in action 2024-07-29 16:54:02 +02:00
Alex Plate e61fed2467 Revert "Use installer in case of the snapshot dependency"
This reverts commit f5e125759f.
2024-07-29 16:51:25 +02:00
Alex Plate f5e125759f Use installer in case of the snapshot dependency 2024-07-29 16:47:31 +02:00
Alex Plate 622eb887c8 Make style refactoring 2024-07-29 16:37:57 +02:00
Alex Plate 9fb614e16c Pass editor to the "execute" method of the NativeAction 2024-07-29 16:36:01 +02:00
Alex Plate 1e0fa07768 Fix problem with unsatisfied condition 2024-07-29 16:15:58 +02:00
Alex Plate bfb1d5b7f5 Remove accidential return 2024-07-29 14:08:15 +02:00
Alex Plate 2fad8790a9 Reset key handler in property tests 2024-07-29 13:57:32 +02:00
Alex Plate 9719106a14 Fix incorrect assertions after migration to the new version of gradle plugin 2024-07-29 13:52:14 +02:00
Alex Plate 870a0da2a2 Update UI tests without octopus handler 2024-07-29 13:41:24 +02:00
Alex Plate d3c315d299 Update logs location in UI tests 2024-07-29 13:39:53 +02:00
Alex Plate 2583b6e792 Print the list of available keys for debugging 2024-07-29 13:27:15 +02:00
Alex Plate 89417eb4f6 Comment out compatibility check for copilot because it's broken for the moment 2024-07-29 13:16:50 +02:00
Alex Plate 560700c9aa Pass editor to the execution of the action
Related: VIM-3376
2024-07-29 12:49:16 +02:00
Alex Plate 24514039e1 Fix(VIM-3376): Refactor the way IdeaVim executes actions
Now instead of a few hacks, we use a special function from the platform
2024-07-29 12:49:16 +02:00
Alex Plate ff44596c1a Migrate to gradle plugin 2.0.0-rc1 2024-07-26 19:00:31 +03:00
Filipp VakhitovandAlex Pláte b001d63fd9 Do not fire VimInsertListener on every mode change 2024-07-26 17:30:08 +03:00
Filipp VakhitovandAlex Pláte 5db96bef28 Fix compilation with IdeaVimExtension 2024-07-26 17:30:08 +03:00
Filipp VakhitovandAlex Pláte 39c615cddd Do not cast VimStateMachine classes in vim-engine
It will break if we change implementation in Fleet
2024-07-26 17:30:08 +03:00
Filipp VakhitovandAlex Pláte 961173a93b Fix tests 2024-07-26 17:30:08 +03:00
Filipp VakhitovandAlex Pláte 92741c6356 Fix compilation 2024-07-26 17:30:08 +03:00
Filipp VakhitovandAlex Pláte 643eb2a85f Add context to MappingProcessor 2024-07-26 17:30:08 +03:00
filippandAlex Pláte 883744e4ee Move blockInsert to vim-engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte 66173e03be Move reformatCodeRange to vim-engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte e455722758 Move more methods to vim-engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte 823bdc1561 Replace VimYankGroup with implementation that works with VimListenersNotifier 2024-07-26 17:30:08 +03:00
filippandAlex Pláte f91fda2ca5 Remove VimInsertListener
It can be replaced by ModeChangeListener
2024-07-26 17:30:08 +03:00
filippandAlex Pláte 92abd76615 Move more methods to engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte 57c45ca153 Move more methods to engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte 7c623ae4b5 Move case change methods to engine 2024-07-26 17:30:08 +03:00
filippandAlex Pláte f2ef92cdef Remove unused method 2024-07-26 17:30:08 +03:00
Filipp Vakhitov e8e6eabe97 Fix tests
See https://youtrack.jetbrains.com/issue/VIM-3566/Unit-Tests-Test-UI-Caret-Attributes for more details.
2024-07-26 16:31:47 +03:00
Filipp Vakhitov ef1c915264 Fix visual mode not being removed.
Steps to reproduce:
1. Select some text inside diff editor
2. Open 'Find in Files' window and search for file
3. Open the found file

Result: current mode is VISUAL
2024-07-26 14:24:01 +03:00
Filipp Vakhitov a5e2168f7f Fix(VIM-3540): Caret icon is stuck in incorrect mode when having two or more simultaneous instances running
Some of the text input fields where Vim should not work at all had block carets.
It did not happen before, because previously we had a unique VimStateMachine for each editor and for newly created editors it was in INSERT mode. And we did call the updateSecondaryCaretsVisualAttributes method for editors that have nothing to do with Vim, but because of the INSERT mode it was looking OK.
However, now the VimStateMachine is global, and we can't rely on local INSERT anymore.
This commit forbids updating caret visual attributes for editors that do not support Vim.

NOTE: `isIdeaVimDisabledHere` is broken during editor creation handling, it always returns true. However, we do not trigger carets redraws on editor creation and do it on focus events, so it should work.
2024-07-26 00:44:35 +03:00
Filipp Vakhitov 83e5470b3a Fix(VIM-3563): Can't exit insert mode in Readonly File 2024-07-25 22:54:39 +03:00
dependabot[bot]andgithub-actions[bot] c446de8979 Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.24 to 1.9.25
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.24 to 1.9.25.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.9.25/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.24...v1.9.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-24 19:02:14 +03:00
Matt Ellisandlippfi 13426915f4 Remove special case handling for macro recording 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi d766c3b8ee Add test for nested insert literal action 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi 844bc01537 Make functions protected 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi 3d2d32b022 Move special case code to actions 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi a8677d3dd7 Refactor expected argument type
We no longer need to track a previous fallback argument type, since we don't support nested commands inside a command builder. We can just return the current argument type, or its fallback
2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi 7217fdf734 Remove unused special case check
This was to handle nested commands, e.g. inserting a digraph inside a search `d/foo<C-K>OK<CR>`. The command line now has its own command builder, so this check is no longer needed
2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi 0c867b3869 Make some CommandBuilder properties immutable 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi b3bcab4336 Refactor DigraphResult to sealed classes 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi fe1b48a9b3 Refactor digraph prompt handling 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi b5a0862520 The last command part is the current one 2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi babc1f54e5 Return the last valid register if it exists
The last command part is not guaranteed to be a "select register" part. The user might have selected a register then typed an operator, and we might be waiting for a motion.
2024-07-23 23:08:24 +03:00
Matt Ellisandlippfi 32b910a65b Remove unused functions and properties 2024-07-23 23:08:24 +03:00
Filipp Vakhitov 2aa71a0008 Add "Dracula" theme to mode widget 2024-07-23 19:36:07 +03:00
Filipp Vakhitov c2c0c2aba2 Fix(VIM-3552): Undo undoes paste and insert in one keypress 2024-07-22 23:08:56 +03:00
Alex Plate 6a10cf5e0d Update the configuration for PY UI tests 2024-07-22 10:08:56 +03:00
Alex Plate 90474a3a4f Fix the mouse button issue 2024-07-19 20:25:45 +03:00
Alex Plate be43f74bc6 Get rid of deprecated execute method in UI tests 2024-07-19 19:36:11 +03:00
Alex Plate 5916c42cd1 Disable cache for gradle UI tests 2024-07-19 18:52:58 +03:00
Alex Plate a43c7ece32 Remove deprecated execute function in UI tests 2024-07-19 18:37:14 +03:00
Alex Plate 40c1070b1a Update path to logs in UI tests one more time 2024-07-19 17:52:54 +03:00
Alex Plate 75ccdb2a4d Update qodana after moving the vimscript to the engine 2024-07-19 17:47:49 +03:00
Alex Plate 3de7b0ca78 Disable configuration cache for gradle release task 2024-07-19 17:43:26 +03:00
Alex Plate 448e32a6cc Update AceJump dependency to the latest one 2024-07-19 17:27:02 +03:00
Alex Plate 4a85058ba2 Start using kotlin 2.0
Originally this is needed to update the dependency on AceJump, which uses the kotlin 2.0 compiler, and its classes are not compatible with the old compiler
2024-07-19 17:13:59 +03:00
filipp 7e28deb328 Better logic
In case that user will unsubscribe via setting UI and won't call IdeaVim's action
2024-07-19 16:29:15 +03:00
filipp f3767b53b7 Subscribe IDE EAP users to IdeaVim EAP 2024-07-19 16:12:33 +03:00
Alex Plate 1026e27e64 Bring back the old version of AceJump dependency because the new one breaks the compilation 2024-07-19 14:58:20 +03:00
Alex Plate 18d653a9ae Update AceJump dependency to the latest one 2024-07-19 14:32:11 +03:00
Alex Plate fcf4b44443 Save the whole sandbox after the UI test 2024-07-19 09:35:39 +03:00
Alex Plate 907e44b1d7 Change the gradle task for the UI tests 2024-07-19 09:05:11 +03:00
Alex Plate 6c9b39a623 Update gradle plugin and remote robot versions 2024-07-18 17:08:16 +03:00
dependabot[bot]andgithub-actions[bot] a3cb093b42 Bump org.jetbrains.intellij.platform from 2.0.0-beta8 to 2.0.0-beta9
Bumps org.jetbrains.intellij.platform from 2.0.0-beta8 to 2.0.0-beta9.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 15:50:17 +00:00
dependabot[bot]andgithub-actions[bot] 524e854c61 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 2.0.0-1.0.22 to 2.0.0-1.0.23.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/2.0.0-1.0.22...2.0.0-1.0.23)

---
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>
2024-07-17 18:49:49 +03:00
Filipp Vakhitov 5588c27037 Attempt to fix VIM-3540
I'm not sure what causes the issue, but everything was working when we were updating visual attributes per each caret and... let update them per each caret
2024-07-17 14:45:50 +03:00
Filipp VakhitovandAlex Pláte 90d36eea98 Make myInputInterceptor private 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte f4414de86c Safer getCurrentModalInput() 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte d46102ccaf Remove deprecated method from vim-engine 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 82347f5f0d Fix surround 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte c594f28acb Fix compilation 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte bf6517e58f Add comment 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte aec2f4c435 Remove isCancel argument
It was not used anywhere
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 8f905758d5 Remove typing in ModalInput
Typing is more suitable for command lines than a modal input, and most likely it should be used instead
It is still possible to support typing by properly implementing the handleKey method
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 80cc236f48 Remove modal input on click 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte e432a02a45 Remove confirmChoice method
It used secondary loop
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte d7894fa7f4 ProcessSubstituteCommand refactoring part 9
Finally, moved confirmation dialog to modal input
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 853d7032f0 ProcessSubstituteCommand refactoring part 8 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 5f9f57e1c0 ProcessSubstituteCommand refactoring part 7 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte f4381c8216 ProcessSubstituteCommand refactoring part 6 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 20eee7cae7 ProcessSubstituteCommand refactoring part 5 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 33392c2148 ProcessSubstituteCommand refactoring part 4 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte bb67564fbe ProcessSubstituteCommand refactoring part 3 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 61ccbcd788 ProcessSubstituteCommand refactoring part 2
We do not need the `doAll` condition (because the next code block with `doAll` adjusts line and column for the next match to be correct),
And the line2 can't be >= editor.lineCount()
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 1dbaa3be6d ProcessSubstituteCommand refactoring part 1 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 872bc22830 Remove shouldRecord from KeyConsumer
shouldRecord value was only updated in ModeInputConsumer when the key was not handled. But when the key is not handled, it is not passed to finishedCommandPreparation and the shouldRecord value is not used
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte ce23ed814c Move command line key handling logic to KeyConsumer 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 82cd534756 Remove startExEntry method
We may create a command line via the VimCommandLineService and forget (or do not know) about calling startExEntry necessary. So we move its logic inside the creation of the command line
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 673809d6b9 Move lastCommand to CmdFilterCommand 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte cdbaf73b1e Remove unused fields from VimProcessGroup 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 7f911b7e72 Fix VisualAreaMatcher
It looks for the last selection info in all conditions, not the ones that were specified
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte c03a2dfe7e Add support for finishOn in readInputAndProcess 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 75935ce4d1 Add readInputAndProcess to replace inputString and save us from using secondary loop 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte f0b203409e Replace cancelExEntry with close method in VimCommandLine 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte b3b369eb59 Remove unnecessary write action
`insertRegister` is self synchronized
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 96072982cf Replace deprecated inputString() with ModalInput 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte de016fc445 Always register shortcuts
No matter what kind of panel we have, we want VimShortcutKeyAction to be triggered and pass the shortcut keys (e.g. CTRL-C to close panel)
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 554d9b5f7b Create a Wrapper for ExEntryPanel
ExEntryPanel already extends JPanel, so we need a wrapper to make it extend VimModalInputBase
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 149edefad5 Delegate handling closing keystrokes to implementations
Sometimes it may mean aborting interception (CTRL-C), sometimes finishing it (CR)
2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 52d3840c83 Rename argument 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 793677d4fd Add typeText() method to VimModalInput 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 2376ee4877 Fix tests 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 68dcab6262 Introduce ModalInput to get rid of Swing's secondary loop 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte f38fd3512c Fix passing key to editor when the output panel is scrolled to its end 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte e515278ba3 Add label field to VimOutputPanel 2024-07-17 13:30:54 +03:00
Filipp VakhitovandAlex Pláte 9cc69e41ee Add KeyHandling logic to VimOutputPanel 2024-07-17 13:30:54 +03:00
Filipp Vakhitov 2109ff235c Fix tests 2024-07-16 20:32:11 +03:00
Filipp Vakhitov d6910aa81d Fix(VIM-3538): Can't select a block in {} when the cursor is on commented Line 2024-07-16 19:23:43 +03:00
Filipp Vakhitov 8369391902 Fix(VIM-3530): "Yank inner block"/"Change inner block" uses wrong block 2024-07-16 18:47:58 +03:00
Alex Plate f336807498 Bring back IU for copilot compatibility testing 2024-07-16 09:09:35 +03:00
Alex Plate 14ba5d7126 Convert Troubleshooter field to function to avoid early initialization 2024-07-15 13:54:20 +03:00
Alex Plate 288394d25f Update the notification text for undo 2024-07-15 13:19:03 +03:00
Alex Plate fb08b5fd65 Prepare to changing the default value of the undo
A notification added to give the information about what happened

Related: VIM-547
2024-07-15 13:16:01 +03:00
Alex Plate 3465e11c3a Initialize the injector in multiple entry points of IntelliJ
Initially, injector was initialized in VimPlugin, assuming that almost every interaction with the plugin goes through it. However, with the plugin evolution, this class starts to be less used.
As IJ doesn't have any single entry point for the plugins, we initialize it in multiple places.
However, the architecture where the plugin might be not initizlied is considered as a bad acrhitecture and should be reviewed.

Related ticket: VIM-3369
2024-07-12 15:09:18 +03:00
Matt EllisandAlex Pláte e07a16863e Show possible IDs based on the action's shortcuts
Fixes VIM-3499
2024-07-12 15:09:02 +03:00
kun-codesandAlex Pláte 64f7532510 added rename functionality 2024-07-12 09:53:07 +03:00
kun-codesandAlex Pláte dd892e77fb added paste functionality 2024-07-12 09:53:07 +03:00
kun-codesandAlex Pláte 65aeeba521 added copy functionality 2024-07-12 09:53:07 +03:00
dependabot[bot]andgithub-actions[bot] ca3e56d0d6 Bump org.mockito.kotlin:mockito-kotlin from 5.3.1 to 5.4.0
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/5.3.1...5.4.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>
2024-07-10 18:21:34 +03:00
dependabot[bot]andgithub-actions[bot] bcbfb0dc32 Bump org.jetbrains.changelog from 2.2.0 to 2.2.1
Bumps org.jetbrains.changelog from 2.2.0 to 2.2.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>
2024-07-10 18:21:20 +03:00
Alex Plate 46a4a10e63 Reformat code in tests 2024-07-10 10:06:27 +03:00
Alex Plate d5bddd077f Disable Gradle configuration cache in CI tests
With gradle plugin 2.0 this cache fails on GitHub Actions. This solution is temporlly and generally the `integrationsTest` should be migrated from `doLast` to some other task approach
2024-07-10 09:02:26 +03:00
Alex Plate e22fd263cc Test compatibility of copilot on PyCharm
The current execution reports the absence of python plugin. Probably there is a dependency on PyCharm there
2024-07-09 16:35:32 +03:00
Alex Plate f3902d0ae0 Convert property to function to avoid extra service creation 2024-07-09 16:07:57 +03:00
Alex Plate f9213ee45d Mute some tests that depend on oldundo option 2024-07-09 15:46:41 +03:00
Alex Plate 281bc2573e Bring back some methods to preserve the compatibility with other plugins 2024-07-09 15:38:50 +03:00
Alex Plate ae8c7f6bfa Revert "Remove old compatibility layers"
This reverts commit 6cee04a4be.
2024-07-09 15:32:39 +03:00
filippandlippfi c0419d6018 Fix project leak 2024-07-08 13:09:08 +03:00
filippandlippfi ea98e50f65 Sometimes safety is a bad thing 2024-07-08 13:09:08 +03:00
filippandlippfi 168174e383 Add missing resetOpPending to KeyHandler.reset 2024-07-08 13:09:08 +03:00
filippandlippfi 53cd4e1b88 Remove KeyHandlerStateResetter
It's an oneliner that we can live without
2024-07-08 13:09:08 +03:00
filippandlippfi 27e3561bb8 Safer VimListenersNotifier 2024-07-08 13:09:08 +03:00
filippandlippfi 9bb9cb13e3 Fix possible bug in the ExOutputModel.show() method and add documentation 2024-07-08 13:09:08 +03:00
filippandlippfi 16455f7241 Remove the update() method from VimOutputPanel 2024-07-08 13:09:08 +03:00
filippandlippfi 82225aa519 Use new interface instead of the old one 2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi 5f2baefc6c Introduce new interface for VimOutputPanel to support the output panel in Fleet
Why is the old interface bad?
- it is not obvious. You cannot create a new panel or check if it is already created. Only "getOrCreate" it
- output panel is bound to editor while in Vim it is global
- we have the `isActive` field and the `clear()` method at the same time, because interface implies that you store the same instance of the panel and reactivate it for each output and I don't like it. We also can forget to call `clear()` after reusing panel
- we cannot "build" output before showing to make the panel more efficient. With multiple carets we can only cal `output(oldText + newText)` for each caret, and it is bad. (imagine we have global command with a lot of matches and for each time we will need to call the `output(oldText + newText)`)
- the `output()` method shows panel, activates it and updates it
- there are more things that I do not like, but the points above should be already enough
2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi cedcf39723 Fix(VIM-3461): Focus regression 2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi 4925d9aada Remove ideaglobalmode option
Mode is global now
2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi f3e6df32d0 Fix(VIM-3462): IdeaVim not responsive occasionally
This bug was caused by two reasons:
1. KeyHandler state is not longer per-editor and we can't reset it on editor creation
2. We do not need to do such things on editor creation. What actually matters is focusing the editor
2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi 5aaa8752af Move to new API from deprecated one 2024-07-08 13:09:08 +03:00
Filipp Vakhitovandlippfi a1d214316c Make VimStateMachine global
It is global in Vim
2024-07-08 13:09:08 +03:00
filippandlippfi 8a1e3eb066 Move toggleInsertOverwrite() to VimEditor
If we execute it from VimStateMachine directly, then mode change listeners are not notified
2024-07-08 13:09:08 +03:00
Alex Plate 75a417773f [VIM-547]: Turn off new undo for the next release as well 2024-07-05 12:14:10 +03:00
IdeaVim Bot b3b3ee4f21 Add Jake to contributors list 2024-07-04 09:01:54 +00:00
Filipp Vakhitov 07b1db4b28 Fix(VIM-3518): line numbers in :g/ not displayed 2024-07-04 01:50:33 +06:00
Filipp Vakhitov dc775a0f22 Move number option to vim-engine 2024-07-04 00:11:36 +06:00
Filipp Vakhitov 10228f953e Fix(VIM-3517): Add support for global find & replace Vim-ism — :g/pattern/s//replacement/g 2024-07-03 22:34:42 +06:00
Matt EllisandAlex Pláte afceecadbe Disable the configuration cache for GitHub actions
These tasks should be rewritten to work nicely with Gradle's configuration cache. In the meantime, this allows them to still run as actions.
2024-07-03 19:39:55 +03:00
Matt EllisandAlex Pláte b2a4e59571 Update gradle plugin to beta 8
Fixes an issue with resetting the sandbox after killing the IDE instead of quitting gracefully
2024-07-03 19:39:55 +03:00
Alex Plate b0b944bbf3 Temporally get rid of the configuration cache 2024-07-03 19:39:31 +03:00
Alex Plate 89a3d74b93 Try not to use the configuration cache in gradle automations at the moment
This is done because the current implementation of the gradle commands is not correct and the cache fails on GitHub actions.
2024-07-03 19:32:10 +03:00
Alex Plate f4eef04750 Do not bundle kotlin-stdlib and kotlin-reflection to the plugin distribution
IJ has it's own kotlin libs, as well as fleet. So, let's use kotlin reflection library only to compile the project without bundling these jars into the resulting plugin
2024-07-03 19:32:10 +03:00
dependabot[bot]andgithub-actions[bot] e62c86b99f Bump org.junit.jupiter:junit-jupiter-api from 5.10.2 to 5.10.3
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 19:13:37 +03:00
dependabot[bot]andgithub-actions[bot] 82bd792da5 Bump org.junit.jupiter:junit-jupiter-engine from 5.10.2 to 5.10.3
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 18:56:45 +03:00
dependabot[bot]andgithub-actions[bot] a58c9065e6 Bump org.junit.jupiter:junit-jupiter from 5.10.2 to 5.10.3
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 18:39:47 +03:00
dependabot[bot]andgithub-actions[bot] e8bf984b76 Bump org.junit.jupiter:junit-jupiter-params from 5.10.2 to 5.10.3
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 18:39:37 +03:00
Alex Plate 23e1a3499f Do not update the YouTrack tickets in case of patch release
This is usually not needed. Also, if we create a new EAP for the next version, this task will close these tickets on patch release, what is incorrect.
2024-07-03 11:49:14 +03:00
Matt EllisandAlex Pláte 6b4e4bacd7 Fix null reference initialising output panel fonts
Fixes VIM-3515
2024-07-03 09:43:48 +03:00
Alex Plate a84c04ca08 Revert "Temporally comment out release branch reset"
This reverts commit e67c71e440.
2024-07-02 10:38:15 +03:00
Alex Plate e67c71e440 Temporally comment out release branch reset 2024-07-02 10:05:23 +03:00
Alex Plate 5078ff9c7a Disable check size for releases 2024-07-02 10:04:49 +03:00
Alex Plate 647510de5d Optimize imports for the project 2024-06-28 17:30:17 +03:00
Alex Plate 84e11e4236 Add useful .idea files to git
.name will show the correct name "IdeaVim" in IJ
`misc.xml` contains information about the annotations that should be considered as "EntryPoints" for the function. With this, they'll not be marked as unused
2024-06-28 17:25:56 +03:00
Alex Plate 9538714af1 Remove explicit API mode to enhance coding efficiency and maintain Kotlin's conciseness
Explicit API mode has been removed due to several reasons impacting developer productivity and the natural coding style in Kotlin.

Firstly, the mode was found to be more irritating than beneficial, as it forced unnecessary verbosity without enhancing thoughtfulness in coding. It often prompted automatic 'public' insertion reactions to red-highlighted code, which did not genuinely encourage more deliberate coding decisions.

Secondly, our aim is to form a robust API primarily through interfaces, which inherently define public scope and duty, rendering explicit API mode somewhat redundant.

Lastly, the additional verbosity caused by explicit API mode expanded code lines affecting code readability.

The compatibility with the existing plugins is verified via the compatibility checker, so no JetBrains plugins will be affected
2024-06-28 17:11:16 +03:00
Alex Plate ffd832d990 Get rid of RegExp class 2024-06-28 17:01:30 +03:00
filipp 8de2b8976b Avoid using deprecated RegExp in VimRegexService 2024-06-28 16:58:13 +03:00
filipp a6aa26b5d9 Remove deprecated methods 2024-06-28 16:58:13 +03:00
filipp 2505651c68 Deprecate methods in VimStateMachine that duplicate KeyHandler functionality 2024-06-28 16:58:13 +03:00
filipp e67c7b23ff Remove deprecated code from VimStateMachine 2024-06-28 16:58:13 +03:00
filipp 453cca3b0c Remove resetState() from editor
It mostly resets KeyHandler, so it's more a KeyHandler responsibility. It also utilises deprecated API.
2024-06-28 16:58:13 +03:00
filipp 6cee04a4be Remove old compatibility layers
It is necessary to remove deprecated code from VimStateMachine in future commits
2024-06-28 16:58:13 +03:00
filipp ae8b9b4773 Mark isOperatorPending as deprecated
It calls the same method in KeyHandler. We do not need it in VimStateMachine
2024-06-28 16:58:12 +03:00
Matt EllisandAlex Pláte e748b7b265 Fix soft wrap inconsistency in run console
IntelliJ has multiple soft wrap options. One for main editors, another for consoles and a third for previews. This can lead to inconsistencies if initialising a console based on a main editor when both have default values, versus the same scenario when the main editor has an explicit value. Furthermore, the run console's soft-wraps toggle button uses the global value, so can get out of sync if the local value is initialised to an explicit value. This change will only copy the soft wrap value over during initialisation for similar editors (main editor, preview, diff) and not for different editors (console).

Fixes VIM-3450
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte c2401ec013 Protect against recursion when opening editors
Fixes VIM-3066
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte 8073d7ecd0 Fix copying 'fileencoding' during window opening
The option should be "local-noglobal", and reset to default. Copying the value could cause the file to be converted immediately, possibly with a warning dialog

Fixes VIM-3467
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte 64f7859ba7 Fix switching to insert for non-file backed diff
Fixes VIM-3442
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte f1b94d7026 Fix regression ignoring case in global command
Regression in new regex engine
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte 79653b6048 Update ex output asserts to remove trailing newline
The trailing newline was never necessary. The text field always stripped it, but the test code didn't. The previous commit pulled this behaviour out of the UI code, so the test code behaves the same as the UI.

This commit fixes all of the tests that were broken by that change. No other logic has been changed.
2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte b0e6b72281 Fix regression missing newlines in :print output 2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte e6220e5e53 Fix regression clearing output instead of closing 2024-06-28 16:50:25 +03:00
Matt EllisandAlex Pláte 3c064845b1 Fix ex text field handling of zoom and font size
The ex text field and output pane will correctly resize and reposition if visible when the IDE zoom value changes. If the editor's font size is zoomed with the mouse wheel, the panels are hidden, so they do not obscure the font zoom indicator widget

Fixes VIM-3417
2024-06-28 16:50:25 +03:00
Alex Plate 736cb219ca Remove the use of RegExp from ExEntryPanel 2024-06-28 16:47:32 +03:00
Alex Plate fb30e4e387 Adapt the code to the new search helper functions 2024-06-28 16:17:45 +03:00
Alex Plate 74550ffa16 Refactor countWords function 2024-06-28 16:17:45 +03:00
Alex Plate d0a0672282 Rename .java to .kt 2024-06-28 16:17:45 +03:00
Alex Plate 16e92ddf60 Move SearchHelper classes to kotlin file 2024-06-28 16:17:45 +03:00
Alex Plate 4d8e68d800 Get rid of many unused search functions 2024-06-28 16:17:45 +03:00
Alex Plate bbebfaf32a Remove some obsolete and deprecated code 2024-06-28 16:17:44 +03:00
filipp 7e56331e47 Fix failing test 2024-06-28 15:47:19 +03:00
Matt EllisandAlex Pláte 750db8e71c Fix 'incsearch'+'wrapscan' at bottom of file
If all results are before the caret, make sure it's still possible to highlight the closest match if 'wrapscan' is enabled

Fixes VIM-3505
2024-06-28 13:55:57 +03:00
filippandAlex Pláte 4255ef68a3 Post review improvements
Add explanatory comment
2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 3313464214 Fix(VIM-3501): Global commands applied to the following lines if matches > 1 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 683ba32a15 Fix test compilation 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 90a60155e5 Move VimscriptParser to vim-engine 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte b25d06ed9e Move Vimscript visitors to vim-engine 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 706ae3dd91 Move GlobalCommand to vim-engine 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 9b15ed8181 Add VimRangeMarker 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte f355bef36b Remove deprecated SearchGroup.java 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 4391e69c48 Move DocumentSearchListener to IjVimSearchGroup 2024-06-28 13:55:06 +03:00
Filipp VakhitovandAlex Pláte 0710d80391 Remove SearchGroup from GlobalCommand 2024-06-28 13:55:06 +03:00
filipp cf41a3a76c Fix(VIM-3507): Mapping exits early on double backslash 2024-06-28 13:46:06 +03:00
jake.petersandAlex Pláte 31b2cd872f Use when expression instead of convoluted nested if else 2024-06-28 12:39:58 +03:00
jake.petersandAlex Pláte 2b6945cbb2 Add ability to iterate over all states for unassigned handlers
This is still a WIP
2024-06-28 12:39:58 +03:00
jake.petersandAlex Pláte ae5f43918f Use BGT instead of EDT 2024-06-28 12:39:58 +03:00
jake.petersandAlex Pláte 6b6bc2752e Rename method to be more reflective of its toggle functionality. 2024-06-28 12:39:58 +03:00
jake.petersandAlex Pláte 4556adae3c Add ability to change all handlers to use either Vim or IDE shortcuts. 2024-06-28 12:39:58 +03:00
Filipp Vakhitov 1b0886041b Fix(VIM-3506): in command mode no longer change cursor to " 2024-06-27 15:46:22 +05:00
dependabot[bot]andgithub-actions[bot] 16e18f3ca7 Bump io.ktor:ktor-client-core from 2.3.11 to 2.3.12
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.11 to 2.3.12.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.12/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.11...2.3.12)

---
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>
2024-06-26 19:05:22 +03:00
dependabot[bot]andgithub-actions[bot] ee0d67fbbb Bump io.ktor:ktor-client-auth from 2.3.11 to 2.3.12
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.11 to 2.3.12.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.12/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.11...2.3.12)

---
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>
2024-06-26 19:05:12 +03:00
dependabot[bot]andgithub-actions[bot] 450527f172 Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.11 to 2.3.12
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.11 to 2.3.12.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.12/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.11...2.3.12)

---
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>
2024-06-26 18:47:59 +03:00
Matt EllisandAlex Pláte 135518ee39 Enable Gradle caching
Without this, running tests could take up to 1 minute, mostly spent configuring Gradle. It appears that the extractor transformer would extract the IDE on each run.
2024-06-26 17:52:50 +03:00
Matt EllisandAlex Pláte 58715ecb5f Remove obsolete build feature
Binary releases can be used again now that the latest builds of 241 (2024.1.4) and 242 (EAP) include updates to the Plugin DevKit plugin that can download sources for binary releases. (Binary releases mean the referenced IDE is extracted and run from the same binaries as consumer releases).

This fixes verifyPlugin, which didn't support binary releases being disabled.
2024-06-26 17:52:50 +03:00
IdeaVim Bot 75e26b101d Add Bishwa Saha, Alex Fu to contributors list 2024-06-24 09:55:59 +00:00
Alex Plate 6421a6face Update java version to 17 on github actions 2024-06-24 12:53:55 +03:00
filipp 948520f90a Fix(VIM-3485): Stay in the same split when using (Back) or (Forward) 2024-06-21 17:44:44 +03:00
Matt EllisandAlex Pláte 0765118ce2 Stop mapping negative 'scrolljump' to IntelliJ setting 2024-06-21 17:22:36 +03:00
Matt EllisandAlex Pláte efd4c7b617 Fix incorrect scrolling due to 'scrolloff' mapping
If IntelliJ's vertical scroll offset is set to the value of the 'scrolloff' option, IntelliJ's own implementation kicks in. This implementation includes virtual space at the bottom of the file in its calculation, scrolling to a different offset to IdeaVim's. In some circumstances, IdeaVim no longer scrolls, so the last line would no longer stick to the bottom of the screen after `G`. In other circumstances, the scroll would correctly reset, but there would be a visible flash as the editor scrolls to the wrong offset and then back, especially when using backspace at the bottom of the file.

Fixes VIM-3474
2024-06-21 17:22:36 +03:00
Alex Plate c5346fbece Update NERDTree documentation with newly added commands 2024-06-21 16:56:04 +03:00
Alex PláteandGitHub fe8e8ccc3e Merge pull request #912 from kun-codes/create-files-and-directories
add NERDTree action to create new files and directories
2024-06-21 16:53:01 +03:00
Alex PláteandGitHub eae111bc2c Merge branch 'master' into create-files-and-directories 2024-06-21 16:52:46 +03:00
kun-codesandAlex Pláte 6a6c1dc6b4 add NERDTree action to delete files and directories 2024-06-21 16:52:01 +03:00
Alex PláteandGitHub 86bbb282ab Merge pull request #879 from citizenmatt/feature/gradle-intellij-plugin-v2
Migrate to IntelliJ Platform Gradle Plugin 2.0
2024-06-21 16:31:56 +03:00
Alex PláteandGitHub 28aa156cb7 Merge branch 'master' into feature/gradle-intellij-plugin-v2 2024-06-21 16:30:25 +03:00
Matt EllisandAlex Pláte a7814e69de Fix incorrect double registration when opening editors
Ensures that the editor listeners are only registered once when the editor is created. IdeaVim uses two different events to track editor creation, to try to understand how the editor is being created (new window, split, preview, etc.) and this can lead to calling the `EditorListeners.add` method twice. This would create a second `Disposable` and cause handlers to leak. This is most visible when creating the first window and then disabling IdeaVim. This window would still handle drag events like IdeaVim, even changing the caret back to block after the drag finishes.
2024-06-21 13:13:15 +03:00
Alex FuandAlex Pláte 1452c116cf Update to include other default key binds 2024-06-21 13:04:36 +03:00
Alex FuandAlex Pláte 23dfc4b339 Update docs for multiple-cursors plugin 2024-06-21 13:04:36 +03:00
kun-codes 931d4be972 add NERDTree action to create new files and directories 2024-06-20 17:51:15 +05:30
dependabot[bot]andgithub-actions[bot] 7dceda587b Bump org.jetbrains.intellij from 1.17.3 to 1.17.4
Bumps org.jetbrains.intellij from 1.17.3 to 1.17.4.

---
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>
2024-06-19 18:22:11 +03:00
dependabot[bot]andgithub-actions[bot] 52a969074d Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps org.eclipse.jgit:org.eclipse.jgit.ssh.apache from 6.9.0.202403050737-r to 6.10.0.202406032230-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>
2024-06-19 18:22:01 +03:00
lippfiandGitHub e7b87d31cf Merge pull request #904 from citizenmatt/bugfix/jumplist
Fix jumplist no longer updated from IDE actions
2024-06-17 17:45:25 +05:00
Matt Ellis 5eb0fae08f Remove explicit since-build from plugin.xml
Let the Gradle plugin manage since-build, based on our target compile version. We leave until-build open ended
2024-06-17 11:18:50 +01:00
Matt Ellis 798d805a0f Provide hint for the CodeQL autobuilder GH action
The autobuilder action can't resolve the 'by project' property to know what our source compatibility is, so we need to give it a hint. If we don't, it will assume the lowest version compatible with the current version of Gradle, which right now is 11.

This value doesn't have to match the `javaVersion` property, but has to allow us to resolve dependencies. Currently, we require at least version 17.
2024-06-17 11:18:50 +01:00
Matt Ellis 0d4ba06e57 Add task to run IDE in split mode 2024-06-17 11:18:43 +01:00
Matt Ellis 4913b13a2d Migrate to IntelliJ Platform Gradle Plugin 2.0
Also updates the GitHub workflows to use the new name for the testIdeUi task, and the TeamCity files to use the new name for the VerifyPlugin task
2024-06-17 11:03:17 +01:00
Matt Ellis b0bab992db Convert settings.gradle to Kotlin 2024-06-17 10:05:45 +01:00
Matt Ellis af5f4227b7 Rename settings.gradle to settings.gradle.kts 2024-06-17 10:05:44 +01:00
Matt Ellis fa6a694ea4 Move some Gradle config blocks around 2024-06-17 10:05:43 +01:00
Filipp Vakhitov 1da7ffc052 Add more logging to spot bug in CommandConsumer 2024-06-15 22:36:28 +02:00
Matt Ellis c673f5818c Make jumplist project ID key unique
Fixes an issue if multiple projects with the same name are open at the same time
2024-06-14 14:35:48 +01:00
Matt Ellis ec78a87644 Fix recent places adding to jump list
Fixes VIM-3424
2024-06-14 14:29:12 +01:00
Matt Ellis 69d14ddcf5 Implement clearjumps command 2024-06-14 14:29:12 +01:00
Matt Ellis f62819df00 Add generated parser files to gitignore 2024-06-14 14:29:11 +01:00
Filipp Vakhitov 39a85b6bc2 Add more logging 2024-06-13 20:58:07 +02:00
dependabot[bot]andgithub-actions[bot] f76ae3e867 Bump com.dorongold.task-tree from 3.0.0 to 4.0.0
Bumps com.dorongold.task-tree from 3.0.0 to 4.0.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-12 18:15:21 +03:00
dependabot[bot]andgithub-actions[bot] 3651e5f2f0 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.24-1.0.20 to 2.0.0-1.0.22.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.24-1.0.20...2.0.0-1.0.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-12 18:15:16 +03:00
Filipp Vakhitov 89e016ef6c Fix infinite loop stuck because of a confirmation dialog appearing over and over 2024-06-12 10:57:45 +03:00
Filipp Vakhitov e4996f4c4d Reduce distribution size 2024-06-11 01:41:24 +03:00
Filipp Vakhitov c44ed58142 Make text deletion in change actions a part of insert sequence 2024-06-09 00:33:07 +03:00
Filipp Vakhitov 0091af2a41 Fix(VIM-547): Undo splits Insert mode edits into separate undo chunks
Add tests
2024-06-07 23:03:53 +03:00
Filipp Vakhitov d1eea68719 Support i_CTRL-G_U 2024-06-07 21:38:11 +03:00
Filipp Vakhitov 133aff7fd8 Add a return type to getInsertSequence method 2024-06-07 21:29:44 +03:00
Filipp Vakhitov efde94db7a Fix recursive forEachCaretInvocation 2024-06-07 18:05:02 +03:00
Filipp Vakhitov 6ec072b34e End inputSequence on motion in insert mode 2024-06-07 17:12:11 +03:00
Filipp Vakhitov 4027a21514 Support most* cases for starting / ending inputSequence
* - Ending inputSequence on motion in insert mode is not supported in this commit
2024-06-07 16:55:22 +03:00
Filipp Vakhitov 3665b1ab00 Improve UndoRedoHelper to split insert input into multiple undo sequences 2024-06-07 16:27:58 +03:00
Filipp Vakhitov cf6b292f0c Add methods to work with InsertSequence 2024-06-07 16:24:37 +03:00
Filipp Vakhitov 507e4173d3 Introduce InsertSequence class 2024-06-07 16:09:25 +03:00
Filipp Vakhitov abc3575d3e Fix command registration order
We should prioritize ij commands over the engine ones
2024-06-07 16:03:27 +03:00
Filipp VakhitovandAlex Pláte 2c0ff587e3 Post-review improvements 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 26c87535d6 Fix focus 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 6ac8e672be Fix compilation 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 04ee2dd1e7 Post-rebase fixes 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 3106a98aee Make IjVimSearchGroup a PersistentStateComponent instead of deprecated SearchGroup 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 73769a3472 Move one method to VimProcessGroupBase 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 085e253d77 Fix possible bug in Fleet
Previously, we executed processings first and updated the state afterward. This approach could be problematic for asynchronous key processing, as Fleet might access the current state, which, in the context of async key processing, is a snapshot before execution and does not reflect the actual current KeyHandlerState
2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte b2af8f153e Add VimScriptFunctionServiceBase 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 37fb41fca8 Remove exCommandAnnotation option 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte e2b05ab639 Move Vimscript grammar to engine 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 354fd8fef0 Remove EditorHolderService.kt 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 9b97867be1 Support replace mode in command line 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 06685d1721 Move more logic to VimCommandLine interface 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte ae4b88a06b Remove ExEntryPanel and move its method to VimCommandLine 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte c83ecc46ed Rename method 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte c32050a208 Introduce actualText and visibleText for command line 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 4a8c7227e6 Remove default value 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 55e61a7094 Remove count for command line
It was not used anywhere
2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 60977d05b6 Deprecate ExEntryPanel 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 601747f720 Changes to replace ExEntryPanel with interface and move more code to engine 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte 0c91bc3207 Changes to replace ExEntryPanel with interface and move more code to engine 2024-06-05 11:35:58 +03:00
Filipp VakhitovandAlex Pláte f5cd2c173f Changes to replace ExEntryPanel with interface and move more code to engine 2024-06-05 11:35:58 +03:00
Matt EllisandAlex Pláte d00bd8bb25 Fix incsearch highlights with operator count
E.g. `2"a3"b4"c5d6/foo` will now highlight the current match correctly
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte a66e44d835 Fix [count]: initial range text in ex field
Fixes regression from changes in ex field handling
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte ce05317634 Maintain Visual when cancelling search entry 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 33d88d55c9 Remove unused branch in SortCommand
Commands are executed in Normal mode, although there may be multiple carets
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte a31a4a8ca7 Share ex entry set up with filter commands 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte c34d000b91 Reintroduce ProcessGroup.startExEntry
We need to share the implementation between starting an Ex command, and starting a filter command, which is just an Ex command with initial text
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte a2bfe950fa Fix move command moving to current line
Removes a workaround that would break moving a range to the current line because it would always move the caret to the start of the range. Now positions the caret to the start of the selection if there is one. This also means we can remove the SAVE_VISUAL flag from JoinLinesCommand

Fixes VIM-2936
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte b44f40acd6 Fix incorrect output for line() in Normal mode 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 5169093bbf Clear ex output after assert and fix tests
This ensures that a failing action doesn't pass due to previous state
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte b15b1cd3f8 Fix range with missing last address
Fixes VIM-992
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte f7b6a97435 Support 0 as part of a range address
Fixes VIM-1137
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte f64c99c406 Support incsearch highlighting for global command
Fixes VIM-2891
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte f552e43c5b Refactor handling of default range
Specify a default range instead of default line for count.
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 4798198e41 Minor refactorings 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte a59de4ce05 Add tests and fixes for yank command
Handles validation for count and ensures correct behaviour for registers.
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 2dea525665 Add tests and fixes for join command
Handles validation for count and positions caret in the correct place. Also handles join with visual multicaret scenarios.
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 8ecb1f7296 Add tests and fixes for print command
Handles validation of count and correctly moves caret to end of range after execution. Also fix issue where the results of :print are accumulated and not cleared.

Fixes VIM-2570
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 9ca9530061 Add tests and fixes for shift commands
Shift left and right now work with counts, validate the counts and move the caret to the correct end position
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 54e27afc3f Simplify getCount functions
Made it explicit to get the count from argument and/or range. Default count is not passed, because it was never used. Added some tests where possible, but hard to test select file and friends
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 5e67032655 Add tests and fixes for delete lines command
Validates register before use and correctly uses register and count
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte cb37f6df63 Add tests and fixes for goto line command
Correctly handles some validation, and also allows going to line zero
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte ca3a18cf37 Add tests for goto character command
Also start to refactor handling of count
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte cac36627aa Support 0 in copy command to copy to top of file 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 6404e1127e Remove incorrect VimBehaviourDiffers annotation 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte e762a3093b Range is already normalised 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 739ac2ae5e Simplify getting address from argument 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 77c364a2d0 Move count handling out of range into command 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 103cd9f5ce Fix off-by-one error in count
Count needs to be one-based, lines must be zero-based. So store addresses as one-based until processed
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 99859fe857 Rename test classes
Also ensure that test derives from VimTestCase so that injector is correctly initialised
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 4778995f3b Remove unnecessary getFirstLine function 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 0a14150840 Extract TextRange from Ex range class 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte e8ffc0313f Remove Range overloads that don't require a caret
Provide caret when calling from Command
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 7dbd3886b1 Introduce addresses for current line and last line
Remove mutation from LineAddress
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 8c83164d76 Remove mutable state from Range
Sometimes we cache things, and other times it's relative to a passed caret. Let's always calculate it
2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 076aab1ccf Rename Ranges, and ExRanges.kt 2024-06-03 11:54:48 +03:00
Matt EllisandAlex Pláte 751f51c88f Rename Range and related classes to Address
An address evaluates to a line, and a range is a collection of addresses
2024-06-03 11:54:48 +03:00
Filipp Vakhitov ab7359ffd3 Fix options test for Windows
Thanks @citizenmatt for this patch
2024-05-29 18:48:05 +03:00
Alex Plate d795d70041 Disable some tests due to VIM-3376 2024-05-29 18:33:31 +03:00
aleksei.plate@jetbrains.comandteamcity 1320034e7e TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Publish EAP Build from branch' build configuration were updated 2024-05-29 12:45:26 +00:00
Alex Plate 79a216043f Use a ReleasesVcsRoot for the ReleaseEapFromBranch configuration 2024-05-29 15:42:24 +03:00
Alex Plate c508a3cc32 Add a build configuration that creates a EAP release from the release branch 2024-05-29 15:40:25 +03:00
Alex Plate d40d8f34c5 Apply patches for TeamCity configs 2024-05-29 15:18:15 +03:00
Alex PláteandGitHub b561a13e7c Merge pull request #893 from JetBrains/fleet
Moving away from Swing TextAction to KeyHandler
2024-05-29 14:16:44 +03:00
aleksei.plate@jetbrains.comandteamcity 71bcee2a07 TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:40:30 +00:00
aleksei.plate@jetbrains.comandteamcity 6c490b1baa TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:40:09 +00:00
aleksei.plate@jetbrains.comandteamcity 4ab6a36aca TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:39:01 +00:00
aleksei.plate@jetbrains.comandteamcity c4355841ad TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:38:13 +00:00
aleksei.plate@jetbrains.comandteamcity f163946e38 TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:37:43 +00:00
Filipp Vakhitov 7abb1fd630 Finalizing merge 2024-05-28 23:35:31 +03:00
aleksei.plate@jetbrains.comandteamcity f78d3387a5 TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:35:10 +00:00
aleksei.plate@jetbrains.comandteamcity 69e2e3c047 TeamCity change in 'Ideavim' project: 'IdeaVim Releases' VCS root was updated 2024-05-28 20:34:19 +00:00
aleksei.plate@jetbrains.comandteamcity 52832cbe22 TeamCity change in 'Ideavim' project: 'IdeaVim Releases' VCS root was updated 2024-05-28 20:32:36 +00:00
aleksei.plate@jetbrains.comandteamcity 82ca2be51c TeamCity change in 'Ideavim' project: 'IdeaVim Releases' VCS root was updated 2024-05-28 20:30:53 +00:00
aleksei.plate@jetbrains.comandteamcity 8552bb8a17 TeamCity change in 'Ideavim' project: 'IdeaVim Releases' VCS root was updated 2024-05-28 20:30:05 +00:00
Alex Plate b49a38b6d0 Rename ReleasesVcsRoot 2024-05-28 23:24:03 +03:00
Alex Plate ad0751677a Add a special VCS root for releases 2024-05-28 23:18:45 +03:00
aleksei.plate@jetbrains.comandteamcity dd8bb20ba9 TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'EXP: Print release branch' build configuration were updated 2024-05-28 20:13:24 +00:00
Alex Plate 03f5f27901 Experiment: print release branch in TC 2024-05-28 23:08:02 +03:00
Filipp Vakhitov 9e3ca56afd Merge branch 'refs/heads/master' into fleet
# Conflicts:
#	src/main/java/com/maddyhome/idea/vim/ui/ex/ExEntryPanel.java
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/ex/LeaveCommandLineAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryFwdAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/action/motion/search/SearchEntryRevAction.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/key/consumers/CommandConsumer.kt
2024-05-28 22:19:17 +03:00
Filipp Vakhitov 5379528e3e Minor post-review PR improvements 2024-05-28 21:52:43 +03:00
Filipp Vakhitov 12201359bc Fix unwanted triggering of IDE actions instead of Vim ones
https://github.com/JetBrains/ideavim/pull/893#pullrequestreview-2082768468
2024-05-28 21:39:14 +03:00
Alex Plate ba50fcf85e Add ssh agent for the configuration 2024-05-28 19:19:06 +03:00
Alex Plate 24c0db563c Use releases prefix instead of release 2024-05-28 19:10:40 +03:00
Alex Plate 33c4905dcb Add testing TC job for calculating new version of the release 2024-05-28 19:05:37 +03:00
Alex Plate 9296c3f9a0 Bring back tests before the release 2024-05-28 14:50:11 +03:00
Alex Plate 7ecc566169 Temporally skip tests for this release
As this is considered as a VERY bad practice, it makes sense in this particular case. Generally, we need an updated release process so such things don’t happen
2024-05-28 14:31:46 +03:00
Alex Plate a918da36d3 Bring back the old value of the release constant 2024-05-28 14:27:29 +03:00
Alex Plate 91ff5fdb02 Temporally change the release constant to make the last release based on 2023.3.2 2024-05-28 14:15:49 +03:00
Alex Plate 4481631547 Disable RedrawListener if the plugin is not enabled 2024-05-28 13:55:47 +03:00
Matt EllisandAlex Pláte 7865388086 Fix regression when sub string ends with backslash
Fixes VIM-3428
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 26297bc5a9 Fix last line sometimes obscured by scrollbar
Fixes VIM-3028
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 9db5cdd8e3 Fix last line sometimes obscured by ex entry prompt
When performing a substitute command with confirmation, the height of the editor content pane should be reduced by the height of the ex entry panel. IdeaVim would do this correctly when moving a search result to the bottom of the file, but not when the result was on the last line of the file. Because the wrong height was used, IdeaVim would decide that no scrolling was necessary and the result in the last line would be obscured.

Fixes VIM-1560
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 2b17534a08 Fix infinite loop while highlighting in old regex
Fixes VIM-2510
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 4e2db68acf Update selection when searching in Visual mode 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte ddabf8df5e Fix regression finding endpos in new regex engine
Fixes VIM-3344
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 3f28e197ca Clear status bar on scrolling, add/remove lines, etc.
Also implements <C-L> to "redraw" screen and clear status line
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 3a67524e8a Show status bar message when search wraps
Fixes VIM-1043
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 33312d95b0 Remove wrapscan flag for substitute
Substitute always works on a known range
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte f554b21cd9 Support count for search
Fixes VIM-2836
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte d9fa4e4648 Fix end of file atom for old regex engine
Fixes VIM-2888
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte e98a284d40 Fix multiline regex substitution
Fixes VIM-2141
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 38ef8c1053 Fix removing search highlight that crosses newline 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte d3f560a31c Add special case to match newline with end of file 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte e2cb3ff284 Stop subst skipping too far with multiline pattern
Fixes VIM-698
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 0f5a3953e1 Don't break ex field with exceptions from incsearch 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 633667ed7f Fix regression with global not saving used patterns
This is a messy quick fix, as the search group needs a lot of tidying up right now. Perhaps a better implementation would be to move the implementation of the global command into the search group - processGlobalCommand, like we already have processSearchCommand and processSubstituteCommand

Fixes VIM-3348
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 656e975562 Fix reset of last substitution string on use
Fixes VIM-3354
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte f7fbe89de4 Use EnumSet instead of list of enums 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 509829b052 Fix force ignorecase atom in search highlights
Fixes VIM-3391
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte efd61e17f2 Reset CMD_LINE mode when losing focus
Fixes VIM-3293
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte cf2b021d02 Fix search for last search pattern with new offset
Fixes VIM-2356
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 67f10aece5 Fix search motion type when providing offset
Search motion type should be linewise if there's a line offset, or inclusive if the `e` flag is provided. Otherwise, it's exclusive.

Fixes VIM-1940
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 9b5c777fcf Update highlights when editor scheme changes 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte c65e5f8341 Fix highlighting for 'incsearch' and 'nohlsearch'
Setting 'incsearch' and 'nohlsearch' should highlight only the current match in the current editor
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 053bb603cd Fix errors with incsearch and substitute command
Fixes VIM-3325
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 93b07bbb90 Update comments and fix warnings 2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 764a115601 Show search highlights in all visible editors
Fixes VIM-2174
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte 1adfe53f29 Fix wrong offset returned for current search result
Fixes VIM-2779
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte bfe0f51cb1 Restore current match highlighting for :s command
Regression while migrating to the new regex engine removed the highlights shown when confirming each change
2024-05-28 13:53:13 +03:00
Matt EllisandAlex Pláte ffce61906a Restore search highlights when setting 'hlsearch'
Fixes VIM-3257
2024-05-28 13:53:13 +03:00
Filipp Vakhitov 3843a193cb Deprecate classes related to Swing TextActions 2024-05-26 23:56:27 +03:00
IdeaVim Bot b2410dab0b Add Egor Nikolaevsky to contributors list 2024-05-25 09:01:49 +00:00
Matt EllisandAlex Pláte f382544101 Fix clearing highlighted yank in modal dialogs
Also fixes a memory leak registering a disposable for each yank, allows config variables to be numbers rather than strings and removes highlights when IdeaVim is disabled

Fixes VIM-2236
2024-05-24 18:05:51 +03:00
Filipp Vakhitov a81d54eb90 Remove VimCommandLineHelper 2024-05-24 17:18:24 +03:00
Filipp Vakhitov 23519bbdae Refactoring to use interfaces from vim-engine 2024-05-24 16:51:38 +03:00
Alex Plate 73fd25773a Add test for VimIndentObject
For PR https://github.com/JetBrains/ideavim/pull/884
2024-05-24 16:20:36 +03:00
Egor NikolaevskyandAlex Pláte 746d483179 Fix indent size calculation 2024-05-24 16:19:50 +03:00
Alex Plate 1a7e90c7d7 Bump the minimal version of IJ to 241
There are a lot of incompatibilities with IdeaVim on 241 if it's built on 233

Also, this time the special branch for the IJ version won't be created. Previously on bumping the version of IJ, we've created the branch to keep the reference to the moment when it happened. However, IJ version bumps are easy to trace anyway by git.
2024-05-24 15:37:05 +03:00
Filipp Vakhitov 8e2fd44f55 Remove unnecessary methods from ProcessGroup 2024-05-24 14:25:51 +03:00
Filipp Vakhitov 1c84917b29 Move LeaveCommandLineAction to its own class 2024-05-24 12:58:04 +03:00
Filipp Vakhitov c5522ed19d Move ExEntryAction to vim-engine 2024-05-24 12:56:52 +03:00
IdeaVim Bot 33a5480456 Add Eduardo Haesbaert to contributors list 2024-05-24 09:01:57 +00:00
Alex Plate 16cd05fc76 Fix incorrect use of visual position instead of buffer position
We should calculate the line above based on logical position rather than visual position.

This issue was detected thanks to newly introduced soft wraps and proprty tests
2024-05-24 11:39:45 +03:00
Eduardo HaesbaertandAlex Pláte 4788dacc86 Fix wording
There is one additional `the` before the preview gif, and also, changing the wording from "to" to " for".
2024-05-24 10:10:46 +03:00
Filipp Vakhitov 91e54c8b0d Replace c_CTRL-R swing TextAction implementation with proper Vim engine implementation 2024-05-23 17:31:18 +03:00
Filipp Vakhitov 15ccebfe11 Cleanup 2024-05-23 15:27:18 +03:00
Filipp Vakhitov 5c849c9105 Fix ExEntryAction 2024-05-23 02:24:34 +03:00
Filipp Vakhitov 9e99506223 Move some logic to engine 2024-05-23 01:32:48 +03:00
Filipp Vakhitov 53ea90379f Moved some search related logic to commands to simplify KeyHandler and ProcessGroup 2024-05-23 00:15:46 +03:00
Filipp Vakhitov 2619d7ebb4 Moved some classes to the same file in vim-engine
They will share some logic in future commits
2024-05-22 22:14:54 +03:00
Filipp Vakhitov 8c8a7aceca Moved some classes to the same file in vim-engine
They will share some logic in future commits
2024-05-22 22:12:34 +03:00
Filipp Vakhitov 726b885b60 More obvious processing of ex-commands.
1. Now we have two parallel commandBuilders: for the editor and for the command prompt. It's done for sequence of keys like `d/foo<C-R>"<CR>` where we have two different commands that are built at the same time.
2. We simplified the CommandConsumer and made the logic more straightforward. `/`, `?` and `:` enter the command mode, while pressing final `<CR>` fires the command execution.
2024-05-22 22:04:32 +03:00
Filipp Vakhitov a6994a09c3 Add support for commands that can be executed either once or for each caret depending on some circumstances
In a future commit, I'm going to make ProcessExEntryAction responsible for processing both search and ex commands. Search commands are motions that are executed for each caret, while ex-commands are executed once. The per-caret code is held internally by the ex commands themselves.

The current solution is definitely not the right one, and the whole ex command subsystem needs to be reviewed and refactored:

1. Some commands can be motions, which is currently not supported.
2. We need to figure out a gentle way of handling multiple carets.
2024-05-22 15:44:12 +03:00
Alex Plate 1616aff5a1 Update version of TC config 2024-05-10 16:06:28 +03:00
Alex Plate 5a82f05be8 Update version of IJ in TC tests 2024-05-10 15:46:31 +03:00
Alex Plate 3020504cdc Rename kotlin TC config to avoid compilation issues 2024-05-10 15:36:41 +03:00
Matt EllisandAlex Pláte d00e802674 Update options documentation 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c46008dddc Update Vim option even when IdeaVim is disabled 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 755000c376 Reset Vim options when IDE setting changes
Options are not reset if they've been explicitly set by the user (e.g. `:set list` or _View | Active Editor | Show Whitespaces_). They are reset if they were explicitly set in `~/.ideavimrc`.

Also bumps the IDE build number to 233.11799.241 in order to use EditorSettingsExternalizable.PropNames
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 1e4a60bfe6 Fix nullability warning 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c9ee685956 Codify assumption re global-local external setting 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c2b1083836 Updated descriptions as per review comments 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 3518528f22 Prevent resetting options when plugin re-enabled 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 9bed8fec79 Map 'scrolloff' and 'sidescrolloff' options
Fixes VIM-3110
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 3ffbea7d42 Match Vim's behaviour for :set[local] {option}<
String and number/toggle options have different and opposite behaviour for `:set {option}<` and `:setlocal {option}<`. This change matches Vim's behaviour.
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 39b42193cb Map 'scrolljump' and 'sidescroll' options
Fixes VIM-3110
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c69e080b05 Add 'fileencoding' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 50b42036d1 Add 'bomb' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 340c40ceff Add 'fileformat' option
No tests, as I don't know how to test interaction with saving to disk
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 6aeffe71de Map 'number' and 'relativenumber' options 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 04c33d719e Improve relative line converter for soft wraps
It now shows visual lines relative to the caret's visual line, rather than relative to the caret's logical line. This still isn't correct, and we should be showing the relative count of Vim logical lines (buffer lines + fold lines) but this matches movement so is more helpful
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 07f1d1e8e6 Move number/relativenumber options out of engine
While they are core Vim options, they are implemented by the host, not by the engine. If another host wants to support these options, they can add them in their implementation layer.
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 6c61254c50 Add 'colorcolumn' option to show visual guides
IntelliJ ties the hard wrap right margin guide with the other visual guides, and it's not possible to show one without the other. In Vim, you can show the hard wrap margin by adding "+0" to 'colorcolumn', so in IdeaVim, we automatically add this.
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte c6efea8c34 Add 'textwidth' option
Also supports overriding local-to-buffer options with IDE values, ensuring that changes to the option/IDE value are applied to all editors for the buffer.

Fixes VIM-1310
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 80f43a7c66 Add 'cursorline' option 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 9f5d3a9a28 Add 'list' option to show whitespace
Fixes VIM-267
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 8800a4f70b Add 'breakindent' option
Fixes VIM-2748
2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 990254dcac Sort ideavim.dic to make it easier to modify 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 73a1118e78 Extract base implementation for IDE backed options 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte d3bedf26cf Treat IDE value as default for 'wrap' option 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 25b29f429a Track how option value is set 2024-05-10 15:27:24 +03:00
Matt EllisandAlex Pláte 363f821962 Introduce 'wrap' option based on IntelliJ setting
Fixes VIM-1265
2024-05-10 15:27:24 +03:00
Alex Plate 8d873c0bf1 Fix(VIM-3418): Restore mappings after plugin disable/enable
There is no need to clean up the requiredShortcuts after turning off the plugin. Also, previously this set was not populated properly and keys that were added by ideavimrc or by user were not restored
2024-05-09 08:57:12 +03:00
Alex Plate 955676ed9e Add comments about structures for testing
Also, there is no need to clear these structures during plugin disabling
2024-05-09 08:30:47 +03:00
Alex Plate a2439a37e4 Make RequiredShortcut as a data class
This will simplify reading the data during the debug
2024-05-09 08:21:26 +03:00
dependabot[bot]andgithub-actions[bot] 7b6daa8e4e Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.10 to 2.3.11
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.10 to 2.3.11.
- [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-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 19:15:51 +03:00
dependabot[bot]andgithub-actions[bot] fcf782296a Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.23 to 1.9.24
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.23 to 1.9.24.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.23...v1.9.24)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 19:15:37 +03:00
dependabot[bot]andgithub-actions[bot] 44889b635c Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.23-1.0.20 to 1.9.24-1.0.20.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.23-1.0.20...1.9.24-1.0.20)

---
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>
2024-05-08 19:03:20 +03:00
dependabot[bot]andgithub-actions[bot] bc12ba11cd Bump io.ktor:ktor-client-core from 2.3.10 to 2.3.11
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.10 to 2.3.11.
- [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-client-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 19:01:14 +03:00
dependabot[bot]andgithub-actions[bot] 9b08db75e3 Bump io.ktor:ktor-client-auth from 2.3.10 to 2.3.11
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.10 to 2.3.11.
- [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-client-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-08 19:00:51 +03:00
chylexandAlex Pláte 4c3ad3f263 Add NERDTree action to toggle excluded files 2024-05-08 10:02:10 +03:00
Alex Plate 598bcc7edd Do not notify slack about the new release 2024-05-07 14:18:31 +03:00
Alex Plate b86ec03dc4 Update UI tests for python. Open tool window by calling API 2024-04-26 19:13:53 +03:00
Alex Plate ae75498f8a Update the UI test to search for the new name of the copy dialog 2024-04-26 18:44:31 +03:00
Alex Plate 9d0b68b0f8 Use the correct context after executing the ex command
With the incorrect context the action EditorSelectWord didn't make any effect because it worked on the ex-entry panel editor
2024-04-26 18:22:53 +03:00
Alex Plate eeb5939e59 Use brew to install ffmpeg on GitHub actions
After GitHub updated macos from version 12 to version 14, the existing action stopped working
2024-04-26 17:37:21 +03:00
Alex Plate ef235a47bf Try to install ffmpeg on GitHub actions using homebrew
After GitHub updated macos from version 12 to version 14, the existing action stopped working
2024-04-26 17:25:54 +03:00
Alex Plate b66da76880 VIM-3376: Remove usages of the EditorDataContext
EditorDataContext cannot be used because the platform cannot convert it to the async data context. Taking the fact that it's not clear why this custom context exists, I decided to get rid of it at all.

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```

Class EditorDataContext cannot be removed because it's used in github.zgqq.intellij-enhance plugin
2024-04-26 14:52:47 +03:00
Alex Plate 54d6119784 VIM-3376: Working on removing EditorDataContext. Remove it from ReplaceWithRegister
EditorDataContext cannot be used because the platform cannot convert it to the async data context. Taking the fact that it's not clear why this custom context exists, I decided to get rid of it at all.

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```
2024-04-26 14:19:47 +03:00
Alex Plate 0b8c081425 VIM-3376: Working on removing EditorDataContext. Remove it from multiple places
EditorDataContext cannot be used because the platform cannot convert it to the async data context. Taking the fact that it's not clear why this custom context exists, I decided to get rid of it at all.

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```
2024-04-26 14:16:52 +03:00
Alex Plate 209052ffa6 Create a function to get the execution context from the editor
This is a part of VIM-3376. This context will not be a custom EditorDataContext, but some context created by the platform.
In some places we don't have any kind of "current context", but we have to use it for the function. However, such context can be simply retrieved from the editor.
2024-04-26 14:03:37 +03:00
Alex Plate fe9a6b5cfb Remove context argument when creating a pad for the string
It's unclear why it was needed to get the project from the context, but it's easy to get the project from the existing editor
2024-04-26 13:56:10 +03:00
Alex Plate 9c0f74369f VIM-3376: Working on removing EditorDataContext. Remove from ExEditorKit
This one was added after the implementation of cmap in 5c9faba7f4

EditorDataContext cannot be used because the platform cannot convert it to the async data context. Taking the fact that it's not clear why this custom context exists, I decided to get rid of it at all.

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```
2024-04-26 13:49:59 +03:00
Alex Plate cd27e5229b VIM-3376: Working on removing EditorDataContext. Remove from CommandLineHelper
EditorDataContext cannot be used because the platform cannot convert it to the async data context. Taking the fact that it's not clear why this custom context exists, I decided to get rid of it at all.

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```
2024-04-26 13:40:18 +03:00
Alex Plate 472732905c VIM-3376: Get rid of IjCaretAndEditorExecutionContext
This context was added long ago, but I wasn't able to find specific reasons for that. Currently, such custom contexts cannot work with the intellij platform and should be refactored or removed. The issues with this context are that it cannot be converted to the async data context by the platform.
Taking the fact that the reason for this context was not found, I decided to get rid of it.

The issue from the platform looks like this

```
Cannot convert to AsyncDataContext at 'keyboard shortcut' DataContextWrapper(CaretSpecificDataContext(com.maddyhome.idea.vim.helper.EditorDataContext)). Please use CustomizedDataContext or its inheritors like SimpleDataContext
```
Here the EditorDataContext is mentioned instead of CaretAndEditorData context, however, I'll clean up both contexts during this refactoring

It was used in the action system for mapping to the `<Action>` keyword and in commit 256f5fcd0e it's mentioned that the EditorActionHandler was not working without this context. However, currently both cases work fine without addition wrapping.
2024-04-26 13:27:56 +03:00
Alex Plate 485d9f81cd VIM-3376: Use SimpleDataContext in tests 2024-04-26 12:25:56 +03:00
Alex Plate 8cf136ce4c Add toString representations for IjNativeAction and ActionEnableStatus 2024-04-26 10:22:50 +03:00
Alex Plate 116a8ac9d2 Reformat test code 2024-04-26 09:58:27 +03:00
Alex Plate fda310bda6 Create a configuration for 2024.1 tests 2024-04-26 09:44:46 +03:00
dependabot[bot]andgithub-actions[bot] e55619ea33 Bump io.ktor:ktor-client-auth from 2.3.9 to 2.3.10
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.10/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.9...2.3.10)

---
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>
2024-04-17 18:57:24 +03:00
dependabot[bot]andgithub-actions[bot] b952b20128 Bump io.ktor:ktor-client-content-negotiation from 2.3.9 to 2.3.10
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.10/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.9...2.3.10)

---
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>
2024-04-17 18:43:04 +03:00
dependabot[bot]andgithub-actions[bot] 62d1f85648 Bump io.ktor:ktor-client-core from 2.3.9 to 2.3.10
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.10/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.9...2.3.10)

---
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>
2024-04-10 19:01:40 +03:00
dependabot[bot]andgithub-actions[bot] 5e3c8c0e92 Bump io.ktor:ktor-client-cio from 2.3.9 to 2.3.10
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.10/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.9...2.3.10)

---
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>
2024-04-10 18:46:53 +03:00
dependabot[bot]andgithub-actions[bot] b58dddf2ff Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.23-1.0.19 to 1.9.23-1.0.20.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.23-1.0.19...1.9.23-1.0.20)

---
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>
2024-04-10 18:34:54 +03:00
dependabot[bot]andgithub-actions[bot] 78d351a0b0 Bump org.mockito.kotlin:mockito-kotlin from 5.2.1 to 5.3.1
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 5.2.1 to 5.3.1.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/5.2.1...5.3.1)

---
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>
2024-04-10 18:33:14 +03:00
dependabot[bot]andgithub-actions[bot] 61dbc948cc Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.9 to 2.3.10
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.9 to 2.3.10.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.10/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.9...2.3.10)

---
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>
2024-04-10 18:33:02 +03:00
Alex Plate c4d92ebe73 VIM-308 In intellij 2024.1+ the caret movement won't be detected as a separate undo action 2024-04-05 17:50:42 +03:00
dependabot[bot]andgithub-actions[bot] d0cf827638 Bump org.jetbrains.intellij from 1.17.2 to 1.17.3
Bumps org.jetbrains.intellij from 1.17.2 to 1.17.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>
2024-04-03 16:38:41 +00:00
dependabot[bot]andgithub-actions[bot] 6a6a92b6b9 Bump com.dorongold.task-tree from 2.1.1 to 3.0.0
Bumps com.dorongold.task-tree from 2.1.1 to 3.0.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 16:36:28 +00:00
Alex Plate 9869b8a34e Add new UI tests for the actions
NewElementSamePlace
CopyReferencePopupGroup
2024-04-03 18:01:45 +03:00
Alex Plate 60fbf88322 Add UI test for generate action 2024-04-03 17:36:22 +03:00
Alex Plate fae3924062 Update a version of IJ for tests 2024-04-02 11:56:59 +03:00
Alex Plate dc2ce64823 Revert changes in action processing to fix VIM-3351 2024-04-02 11:52:56 +03:00
Alex Plate d0d86d9178 Print the exceptin in logger.warn instead of just a message 2024-03-29 16:53:22 +02:00
Alex Plate f417af6148 Specify ActionUpdateThread for FindActionIdAction 2024-03-29 15:38:05 +02:00
Alex Plate 2fe2860a09 Remove Offset and Pointer and switch to the regular Ints
Details on that can be found here: VIM-3368
2024-03-29 15:38:05 +02:00
filippandAlex Pláte cb40426976 Fix(FL-25338): Vim plugin stopped working in 1.31.107 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 423ed390a2 Fix(FL-25087): p in vim mode
Pasting was broken with immutable carets because the old caret was not updated during execution
2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 7652b16ca6 Move more MotionGroup methods to its base class 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 618a010c15 Move some MotionGroup methods to its base class 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte d44a34ed9b Remove unnecessary abstract method 2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte c84fc996db Move some methods to vim-engine
The more methods we have in the engine, the fewer number of methods we will need to implement in the Fleet
2024-03-29 14:52:52 +02:00
Filipp VakhitovandAlex Pláte 43f232543b Replace findBlockRange with newer implementation
The newer implementation is a part of the vim-engine library and uses new methods from the SearchGroup.kt, but it is not fully refactored yet
2024-03-29 14:52:52 +02:00
filippandAlex Pláte 3f65d1d99a Revert "Revert changes to SearchGroup"
This reverts commit 00ccddf8cf.
2024-03-29 14:52:52 +02:00
Alex Plate bfcf706ca7 Change the logic for detecting new dependencies on IdeaVim plugin 2024-03-29 09:27:09 +02:00
Alex Plate 8c1103c461 Add comment about the fix for project leak in tests 2024-03-28 10:30:19 +02:00
Alex Plate ab75ace8db Fix(VIM-3331): Support custom registers in replaceWithRegister plugin 2024-03-25 09:40:45 +02:00
Alex Plate 4a58e6a282 Add test with custom register for textObjEntire extension 2024-03-25 09:34:58 +02:00
Alex Plate ac9e4f69b4 Remove affectedRate related automation 2024-03-22 20:04:13 +02:00
Alex Plate 581edba7fd Remove the specification of the plugin verifier
The latest version of the verified was broken at some moment, so I specified the static version. Now these issues are fixed.
2024-03-22 13:53:55 +02:00
Alex Plate 58a8b96c3c Revert "Stop IdeaVim actions flowing into JB Client"
This reverts commit bd192561ae.

This commit reverts the fix for VIM-3283 because it causes VIM-3346 and VIM-3347
2024-03-20 13:08:04 +02:00
dependabot[bot]andgithub-actions[bot] 0e057ca9ae Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps org.eclipse.jgit:org.eclipse.jgit.ssh.apache from 6.8.0.202311291450-r to 6.9.0.202403050737-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>
2024-03-13 16:06:19 +00:00
dependabot[bot]andgithub-actions[bot] 36bf2639bb Bump io.ktor:ktor-client-cio from 2.3.8 to 2.3.9
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.9/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.8...2.3.9)

---
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>
2024-03-13 18:04:55 +02:00
dependabot[bot]andgithub-actions[bot] 0c1326e689 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.22-1.0.18 to 1.9.23-1.0.19.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/commits/1.9.23-1.0.19)

---
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>
2024-03-13 18:04:38 +02:00
dependabot[bot]andgithub-actions[bot] dd74438f68 Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.22 to 1.9.23
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.22 to 1.9.23.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/v1.9.23/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.22...v1.9.23)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 18:04:26 +02:00
Alex Plate a9ddfac782 Add test that shows an issue when deleting a line at the end of file 2024-03-12 21:21:15 +02:00
Alex Plate 79437df894 Fix(VIM-3330): Use Z backward visual search in sneak plugin 2024-03-12 20:01:35 +02:00
Alex Plate b5a04af089 Switch to a stable version of the plugin verifier because the latest version is broken.
Broken version: https://github.com/JetBrains/intellij-plugin-verifier/releases/tag/1.364

Internal discussion: https://jetbrains.slack.com/archives/C03RHGR7J/p1710229884548179
2024-03-12 12:02:21 +02:00
Alex Plate 52372ae3d3 Disable plugin verifier for tests 2024-03-12 09:34:55 +02:00
Alex Plate 65d755d9b2 Bring back the getMappingMode function for binary compatibility with the which-key plugin 2024-03-12 09:31:59 +02:00
Alex Plate 1f1a8f3395 Avoid generation of the huge amount of sets during regex search
The tests shows that the depth of `epsilonVisited` is usually around 0-3, so there is no need to use the set. However, when the set is used, we have to make a new copy everytime we create a new `SimulationStackFrame`.
Now, the previous stack is reused.
2024-03-11 18:51:46 +02:00
Alex Plate 629e4e7053 Fix(VIM-3336): Improve the performance of n in large files
The git history shows that the force update of the search highlights was accidentally enabled during the refactorings
2024-03-11 18:49:38 +02:00
Alex Plate c50a299cfd Remove the unused import 2024-03-11 18:48:27 +02:00
Alex Plate 4bad129caf Do not register clipboard option change listener for caret registers
Register groups for the caret do not use some fields from the base class, however the listener for these fiels is still registered. Now we don't register this listener.
Generally it looks like a bigger refactoring can be performed in order to separate the common registers logic from caret registers logic.

This change should improve the performance of the IjVimCaret initialization because now we won't register a new disposable on each instance of IjVimCaret

This is a part of VIM-3336
2024-03-11 17:41:54 +02:00
Alex Plate 1ffb28e21b Wait for some checks in UI tests instead of immediate verification 2024-03-11 14:29:08 +02:00
dependabot[bot]andgithub-actions[bot] c126243367 Bump io.ktor:ktor-client-auth from 2.3.8 to 2.3.9
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.9/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.8...2.3.9)

---
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>
2024-03-06 18:30:12 +02:00
dependabot[bot]andgithub-actions[bot] 6da6e461a8 Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.8 to 2.3.9
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.9/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.8...2.3.9)

---
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>
2024-03-06 18:15:59 +02:00
dependabot[bot]andgithub-actions[bot] 103101bbcb Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.22-1.0.17 to 1.9.22-1.0.18.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/commits)

---
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>
2024-03-06 18:04:15 +02:00
dependabot[bot]andgithub-actions[bot] f737fcba1a Bump io.ktor:ktor-client-core from 2.3.8 to 2.3.9
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.9/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.8...2.3.9)

---
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>
2024-03-06 18:03:05 +02:00
dependabot[bot]andgithub-actions[bot] c5fa0678b8 Bump io.ktor:ktor-client-content-negotiation from 2.3.8 to 2.3.9
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.8 to 2.3.9.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.9/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.8...2.3.9)

---
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>
2024-03-06 18:02:42 +02:00
filipp 00ccddf8cf Revert changes to SearchGroup
Wrong branch. The changes should be merged to master only after review in the Fleet branch
2024-03-03 22:16:19 +02:00
filipp 00cbf188fb Replace findUnmatchedBlock method with a new implementation 2024-03-03 22:05:28 +02:00
filipp 988ea74461 Fix(VIM-3294): %-movement mismatches braces 2024-03-03 22:05:28 +02:00
filipp 0914cda7e5 Better matching for a sequence of single-line comments 2024-03-03 22:05:28 +02:00
filipp 5959e9aaa1 Fix(VIM-1399): Uncommented brackets are matched to commented ones in VIM mode 2024-03-03 22:05:28 +02:00
filipp 434df565ae Migrate % command to work with newer method in SearchGroup.kt 2024-03-03 22:05:28 +02:00
filipp c8f36504d8 Fix tests for % 2024-03-03 22:05:28 +02:00
filipp 06e1af371e Add SearchGroup.kt
In the future, it should become a container for all the search methods that we have in IdeaVim
At the moment we have a bunch of SearchGroups and SearchHelpers, and it may be confusing.
We also want to avoid using unnecessary OOP.
2024-03-03 22:05:28 +02:00
filipp d744987ac8 Add VimPsiService
We want to avoid unnecessary OOP and use interfaces only for cases where we will have different implementations for different IDEs
This service will help us in our future refactorings of SearchGroup and SearchHelper
2024-03-03 22:03:58 +02:00
filipp b4eef17aaa Add StringUtil.kt class
Methods in this file will be helpful in future search refactorings
2024-03-03 22:03:58 +02:00
filipp 5c50e8607c Fix search 2024-03-01 08:50:18 +02:00
Filipp Vakhitov 9a324ab448 Reset KeyHandlerState when switching Editors
Now we have a single state for all the editors, so we should not mix their states
2024-02-29 20:27:46 +02:00
dependabot[bot]andgithub-actions[bot] c3978335f5 Bump org.mockito.kotlin:mockito-kotlin from 5.0.0 to 5.2.1
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 5.0.0 to 5.2.1.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/5.0.0...5.2.1)

---
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>
2024-02-28 16:01:23 +00:00
Alex Plate 051296c2aa UI tests: make sure the text appear in the editor before running tests 2024-02-28 09:37:05 +02:00
Alex Plate 90f2d2ff29 Small update of the minimal version of IJ 2024-02-27 14:43:23 +02:00
Alex Plate 4c2edab406 Run optimize imports 2024-02-27 13:17:02 +02:00
Alex Plate 76e8fd69bf Increase timeout in UI tests 2024-02-27 11:30:51 +02:00
IdeaVim Bot 5dd458bcf7 Add lippfi, FilipParker to contributors list 2024-02-24 09:02:05 +00:00
Filipp Vakhitov a94a8b8539 Fix tests 2024-02-24 01:03:18 +02:00
Filipp Vakhitov 261230b23a Remove experimental showmodewidget option 2024-02-24 00:36:36 +02:00
Filipp Vakhitov b90317e00e More visible text color for mode widget
Visibility may be unexpected for custom themes with non-obvious colors
2024-02-24 00:27:48 +02:00
Filipp Vakhitov 21c9dc8785 Add statistic collector for mode widget 2024-02-24 00:15:01 +02:00
Alex Plate 31bbc60325 Fix all reports of the inspection that prohibits the use of companion objects
This is a requirement from the platform, as a huge amount of companion objects leads to a higher level of classloading
2024-02-23 18:55:01 +02:00
Alex Plate fec6e5c189 Remove the last argument in EventLogGroup as the compatibility was fixed on the platform side 2024-02-23 18:35:21 +02:00
Alex Plate 23c1493f17 Fix(VIM-3306): Vim paragraph motion won't make mappings if there is already such mapping defined by user 2024-02-23 18:26:50 +02:00
lippfiandGitHub 00808af569 Merge pull request #824 from JetBrains/fleet
Asynchronous key processing for Fleet
2024-02-23 17:25:21 +02:00
filipp 3c94091d30 Merge branch 'refs/heads/master' into fleet 2024-02-23 17:24:08 +02:00
filipp b737362aba Update CaretVisualAttributesListener to use new Editor API 2024-02-23 17:21:18 +02:00
Parker7123andAlex Pláte db722fc4e5 VIM-1472 Add support for sorting with pattern 2024-02-23 17:15:21 +02:00
filipp 7d679e68dc Merge branch 'refs/heads/master' into fleet
# Conflicts:
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/api/VimEditorGroup.kt
#	vim-engine/src/main/kotlin/com/maddyhome/idea/vim/impl/state/VimStateMachineImpl.kt
2024-02-23 17:08:01 +02:00
Matt EllisandAlex Pláte bc808403fb Rename localEditors to getEditors
The fact that these methods only return local editors (i.e., editors for the local user while hosting a Code With Me session) is an implementation detail
2024-02-23 17:01:32 +02:00
Matt EllisandAlex Pláte 9d6dc317a4 Only notify editors for the current buffer 2024-02-23 17:01:32 +02:00
Matt EllisandAlex Pláte cf29c50f31 Ensure editors are initialised before use
Fixes VIM-3256
2024-02-23 17:01:32 +02:00
Alex Plate 2a3c4cc441 Use a link to changelog 2024-02-23 16:02:38 +02:00
Matt EllisandAlex Pláte bd192561ae Stop IdeaVim actions flowing into JB Client
IdeaVim actions are local only - they control local behaviour and should not be visible in the Client

Fixes VIM-3283
2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte 66ff56a05e Move document listeners to global listeners
This means we listen to changes in all documents, rather than just the changes in the documents for open local editors. And this means that we correctly update e.g. marks when a non-local editor changes a file that isn't open in a local editor.
2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte def86d179e Review disabled editor checks 2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte 3c9a343f8b Review listeners to only work with local editors
Reviews all IntelliJ listeners to ensure that they only work with supported local editors. Editor creation was initialising IdeaVim for all editors, which meant that behaviour could leak into Code With Me guest editors. E.g. guest editors incorrectly drawing relative line numbers, or the host using the guest's last selected tab when switching to an alternate file.

This leads to a change in behaviour with some local editors. The editor creation listener will now check to see if the editor is local *and supported*. This means it can exclude single line editors, editors in database cells or dialogs, depending on the state of 'ideavimsupport' at creation time. The behaviour at creation time is now more correct, but if 'ideavimsupport' is modified, existing matching editors will not be initialised.

Fixes VIM-3274, fixes VIM-3275
2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte 10b6b05fab Clear disposable after disposing 2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte caa4ef736a Rename method for clarity 2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte 23702345a9 Fix comments 2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte ba89babd10 Move listener to app level
Fixes VIM-2167
2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte 2ce3fbd677 Use common APIs to get local editors 2024-02-23 15:54:20 +02:00
Matt EllisandAlex Pláte d8de73a06d Use correct APIs to get local only editors
Always ignores non-local, hidden editors opened by remote guests in Code With Me sessions.

Fixes VIM-3268
2024-02-23 15:54:20 +02:00
Alex Plate 8094e6711a Update qodana baseline 2024-02-23 15:38:33 +02:00
Alex Plate 10edccc1d6 Add matchit test for jump from try to catch and to finally
From PR https://github.com/JetBrains/ideavim/pull/802
2024-02-23 15:36:38 +02:00
Alex Plate 247aaed188 Use the property to change the state of the octopus handler 2024-02-23 15:32:35 +02:00
Filipp Vakhitovandfilipp 1a4333fa1b Move implementations to upper level
It will simplify support of immutable editors in Fleet
2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 8eaa6df318 Throw error instead of warning on state conflict
It may indicate some serious issues, and we would like to know if anything goes wrong
2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 7523db186f Empty status bar message after each test 2024-02-23 15:09:45 +02:00
filipp 4aac113522 Remove duplicate method 2024-02-23 15:09:45 +02:00
filipp 795abd77a7 Add documentation 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 38bc914504 Avoid using annotation-processors in vim-engine 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp c8113eea83 Commit state after receiving unknown key 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 924b7418e8 Fix DigraphSequence cloning 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp a7dfef61e9 Make LazyVimCommand open 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp db35c979b4 Move some editor methods to the base class 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 2de933c723 Make processKey public 2024-02-23 15:09:45 +02:00
filipp d3704d602f Cleanup after moving logic to other classes 2024-02-23 15:09:45 +02:00
filipp ea62f227bf Remove piece of code for handling bad commands
Bad commands are handled in consumers
2024-02-23 15:09:45 +02:00
filipp 23fdadc32e Fix test
Sometimes it's not a plugin error and may indicate that key is propagated for later handling by IDE
But what we know for sure - that for both cases we should reset command builder
2024-02-23 15:09:45 +02:00
filipp e9bf06686f Add synchronize blocks to minimize risk of concurrent key processing and changing of the KeyHandlerState 2024-02-23 15:09:45 +02:00
filipp 7842b155c1 Move some logic to ModeInputConsumer 2024-02-23 15:09:45 +02:00
filipp 74a8277e10 Move some logic to SelectRegisterConsumer 2024-02-23 15:09:45 +02:00
filipp ddb1b80463 Move some logic to CommandConsumer 2024-02-23 15:09:45 +02:00
filipp eea3336934 Move some logic to CommandConsumer 2024-02-23 15:09:45 +02:00
filipp f801145712 Update MappingInfo to match newer signature 2024-02-23 15:09:45 +02:00
filipp e033b08535 Move some logic to DigraphConsumer 2024-02-23 15:09:45 +02:00
filipp 1d9514a205 Move some logic to RegisterConsumer 2024-02-23 15:09:45 +02:00
filipp 6741120f19 Move some logic to CharArgumentConsumer 2024-02-23 15:09:45 +02:00
filipp c501457322 Move some logic to EditorResetConsumer 2024-02-23 15:09:45 +02:00
filipp 46425a24c3 Move some logic to DeleteCommandConsumer 2024-02-23 15:09:45 +02:00
filipp 9826f0a7f0 Move some logic to CommandCountConsumer 2024-02-23 15:09:45 +02:00
filipp 43175061e0 Fix broken digraphSequence
It shouldn't be retested on partial reset
2024-02-23 15:09:45 +02:00
filipp 0ab32cac34 Make MappingProcessor a KeyConsumer 2024-02-23 15:09:45 +02:00
filipp e3ec9c614b Add KeyConsumer
It will help us to have a more modular KeyHandler in future (chain of different consumers)
2024-02-23 15:09:45 +02:00
filipp f454d60234 Add MutableBoolean to be able to pass and modify shouldRecord in methods 2024-02-23 15:09:45 +02:00
filipp 19fa00837c Use KeyProcessResultBuilder
It will help us to build the KeyProcessResult that we need for asynchronous key processing
2024-02-23 15:09:45 +02:00
filipp 275c5d28e1 Add KeyProcessResultBuilder 2024-02-23 15:09:45 +02:00
filipp 15ae069f6f Make keyHandlerState argument not null
Applying default values may lead to unexpected results, especially if we sometimes want to use the global state (IJ), and at other times, its clone for asynchronous processing (Fleet).
2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 00f5541dc6 Add KeyProcessResult interface 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 02540eb303 Pass KeyHandlerState as a method argument 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 282e581bdb Make state cloneable 2024-02-23 15:09:45 +02:00
Filipp Vakhitovandfilipp 31e7c49608 Add equals & hashCode 2024-02-23 15:09:45 +02:00
filipp 7966a6dc91 Create KeyHandlerState
We do not need multiple commandBuilder, digraphSequence or mappingState and this class will be a singleton containing them
2024-02-23 15:09:45 +02:00
filipp 5fc2f04224 Remove mappingMode from MappingState
It unnecessarily binds mappingState to mode and thus to editor. And we want to simplify things and have a single MappingState instead of multiple of them
2024-02-23 15:09:45 +02:00
filipp 6edfd8ed22 Remove deprecated showmode status bar text update that does not work with the new UI and will be replaced with widget 2024-02-23 15:09:45 +02:00
filipp 363db05db7 Macro recording state is no longer per editor
It will not only simplify VimStateMachine, but also help us to support multi-editor macros in future
2024-02-23 15:09:45 +02:00
filipp 3738012dd6 Listeners refactoring
1. Listeners now disposed after turning plugin off
2. Change widget listeners to be recreated on plugin toggle
3. Add CaretVisualAttributesListener
2024-02-23 15:09:45 +02:00
filipp 355cfe035d Remove Editor from VimStateMachine
Rationale:
1. A much more experienced developer, whom I highly respect, suggested to empty VimStateMachineImpl constructor in his TODO comment.
2. I aim for VimStateMachine to be a data class rather than being a container for both data and complex logic.
3. From an architectural perspective, it is more correct. Editors do have state (or they may possess a single global state if the corresponding option is set), but a state does not own an editor.
2024-02-23 15:09:44 +02:00
Alex Plate 6d01b5be77 Stop maintaining the changelog file
We have quite a fucntionality to maintain the changelof in actual state
However, since we switched to release from the latest EAP, we can't just update the changelog on master because it will contains also unreleased changes since the latest EAP.
The proper support for such change will require a lot of coding that will take a lot of time to implement and will eventually break.
So, it was decided to keep the changelog on YouTrack only and not to maintain the changes file.

This change still may be reverted, so the code around the changelog is note removed, but only commented out
2024-02-23 14:05:12 +02:00
Alex Plate 4938957483 Add a comment line with LATEST-EAP-SNAPSHOT 2024-02-23 13:37:36 +02:00
Alex Plate 46f4fa7cdd Make tests about join notification more stable
Now we track only new notifications instead of just taking the last one
2024-02-23 11:27:15 +02:00
Alex Plate f696135f31 Now we execute beforeActionPerformedUpdate instead of lastUpdateAndCheckDumb right before action execution
This is done because of platform changes. Now the `lastUpdateAndCheckDumb` doesn't update an action that supposed to be updated on background.
The problem was detected with commentary tests. The test supposed to use the line comment in case the block comment is not available. However, the since the action was not updated, the presentation was not reset to false and the fallback to line action was not performed.
2024-02-23 11:26:45 +02:00
Alex Plate 52e0fcdc7d Use the custom version of IntIterator.skip because it was removed from the library 2024-02-23 10:29:33 +02:00
Alex Plate ac17518a23 Update the changelog 2024-02-23 10:19:39 +02:00
chylexandAlex Pláte 6dd924b2b2 Implement motions to go to next/previous misspelled word 2024-02-23 10:17:25 +02:00
Matt EllisandAlex Pláte f439474b73 Fix set command tests
Also hides more feature flags and diagnostic settings from users and unit tests. Shows them when in internal mode.
2024-02-23 10:04:23 +02:00
Matt EllisandAlex Pláte d6cd92e256 Migrate extensions to use operatorfunc option 2024-02-23 10:04:23 +02:00
Matt EllisandAlex Pláte 3a294268d9 Introduce operatorfunc option
Allows creating custom operators in script, as shown in JetBrains/ideavim#702
2024-02-23 10:04:23 +02:00
Alex Plate 9b81c7e650 Update junit version 2024-02-23 10:03:30 +02:00
Alex Plate e229fb3ad7 Add new plugin that depends on IdeaVim 2024-02-23 09:26:46 +02:00
Alex Plate 720eae63fa Fix the incorrect condition in UI tests 2024-02-23 09:23:42 +02:00
Alex Plate 0df96a24bd Add a missing @BeforeEach in tests 2024-02-22 09:19:24 +02:00
Alex Plate 21a1588ede Increase wait timeout for UI tests 2024-02-22 09:02:03 +02:00
Alex Plate 7970006e8c Log the base commit during dev version calculation 2024-02-22 09:02:02 +02:00
dependabot[bot]andgithub-actions[bot] 418d0cff7f Bump org.junit.jupiter:junit-jupiter from 5.10.1 to 5.10.2
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit5) from 5.10.1 to 5.10.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.1...r5.10.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 17:42:43 +02:00
dependabot[bot]andgithub-actions[bot] 7284360774 Bump org.jetbrains.intellij from 1.17.0 to 1.17.2
Bumps org.jetbrains.intellij from 1.17.0 to 1.17.2.

---
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>
2024-02-21 17:42:15 +02:00
dependabot[bot]andgithub-actions[bot] 9fc3fadee8 Bump org.antlr:antlr4 from 4.10.1 to 4.13.1
Bumps [org.antlr:antlr4](https://github.com/antlr/antlr4) from 4.10.1 to 4.13.1.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/dev/CHANGES.txt)
- [Commits](https://github.com/antlr/antlr4/compare/4.10.1...4.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 17:42:05 +02:00
Alex Plate 3d2db56f63 Use sets during plugin detection to avoid sorting problems 2024-02-21 10:43:44 +02:00
Alex Plate e9c7cb8670 Update logic of calculation of dev version 2024-02-21 10:40:20 +02:00
dependabot[bot]andgithub-actions[bot] 87d19274c5 Bump io.ktor:ktor-client-content-negotiation from 2.3.7 to 2.3.8
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.7 to 2.3.8.
- [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-client-content-negotiation
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 17:10:25 +02:00
dependabot[bot]andgithub-actions[bot] 3161bf8ffd Bump io.ktor:ktor-client-core from 2.3.7 to 2.3.8
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.7 to 2.3.8.
- [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-client-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 17:10:21 +02:00
Alex Plate b68865587e Wait up to 5 mins for initialization of PyCharm 2024-02-20 17:06:32 +02:00
dependabot[bot]andgithub-actions[bot] 7dc0dbe944 Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.7 to 2.3.8
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.7 to 2.3.8.
- [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-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 16:56:35 +02:00
dependabot[bot]andgithub-actions[bot] f50a363525 Bump io.ktor:ktor-client-cio from 2.3.7 to 2.3.8
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.7 to 2.3.8.
- [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-client-cio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 16:56:16 +02:00
Alex Plate 57ad4c70d1 Do not analyze test fixtures by qodana 2024-02-20 16:46:43 +02:00
Alex Plate d3d93b898f Unregister NotificationService project service
It's not registered as a light service and doesn't need to be registered in xml files
2024-02-20 16:46:07 +02:00
Alex Plate 7d8973edb2 Add tests for new java matchit functionality
From PR https://github.com/JetBrains/ideavim/pull/802
2024-02-20 16:42:28 +02:00
dependabot[bot]andgithub-actions[bot] 2302b576b0 Bump io.ktor:ktor-client-auth from 2.3.7 to 2.3.8
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.7 to 2.3.8.
- [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-client-auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-20 16:42:07 +02:00
chylexandAlex Pláte f4782630d4 Add Matchit support for Java statements 2024-02-20 16:41:34 +02:00
IdeaVim Bot 8c1a2a686f Update changelog after merging PR 2024-02-20 14:33:04 +00:00
chylexandAlex Pláte 32d5e1e6fa Enforce LF line separator in project code style 2024-02-20 16:31:36 +02:00
Alex Plate a381a1cacc Wait till all toolwindows initialziation 2024-02-20 16:19:29 +02:00
Alex Plate 73c3c9f7fe Replace Enum.values() with Enum.entries, as suggested since 1.9 2024-02-20 16:12:34 +02:00
Alex Plate 67ef0a75d5 Update capitalization 2024-02-20 16:12:11 +02:00
Alex Plate 328bc5e95a Convert some services to light services 2024-02-20 16:10:07 +02:00
Alex Plate 7f8021e37e Update the function that waits for smart mode 2024-02-20 15:49:42 +02:00
Alex Plate 9701b7e79b Add test reports to artifacts 2024-02-20 15:10:15 +02:00
Alex Plate 7a52c6fec9 Cleanup tests 2024-02-20 14:51:13 +02:00
Alex Plate 1503639d4b Remove generated lexing from qodana analyze 2024-02-20 14:51:06 +02:00
Alex Plate e82f19c852 Add test for checking an issue that
was caught by property tests
2024-02-20 13:52:17 +02:00
Alex Plate edd69c9c25 Apply patch for qodata TC config 2024-02-20 13:12:14 +02:00
Alex Plate fc61e369fb Fix some deprecated calls 2024-02-20 13:11:10 +02:00
aleksei.plate@jetbrains.comandteamcity 113586b59b TeamCity change in 'Ideavim' project: runners of 'Qodana checks' build configuration were updated 2024-02-20 10:53:37 +00:00
Alex Plate 5dbd5e1c89 Update the changelog 2024-02-20 12:47:06 +02:00
IdeaVim Botandteamcity 04b7d9e2c3 Preparation to 2.9.0 release 2024-02-20 10:41:06 +00:00
Alex Plate 5f2743176a Update qodana configuration on TC 2024-02-20 12:18:24 +02:00
aleksei.plate@jetbrains.comandteamcity 3723488617 TeamCity change in 'Ideavim' project: runners of 'Qodana checks' build configuration were updated 2024-02-20 10:16:06 +00:00
Alex Plate 0cc17a0791 Make a correct service level for VimProjectService 2024-02-20 12:12:50 +02:00
aleksei.plate@jetbrains.comandteamcity 05a21e6091 TeamCity change in 'Ideavim' project: 'Qodana checks' build configuration settings were updated 2024-02-20 08:58:47 +00:00
Alex Plate fc06bc7c6f Update the qodana baseline 2024-02-20 10:58:08 +02:00
Alex Plate 1bd005adc1 Fix the name of the compatibility function 2024-02-20 10:39:34 +02:00
Alex Plate 4f208d1577 Add new plugin to the list 2024-02-20 10:37:10 +02:00
aleksei.plate@jetbrains.comandteamcity eb6e0557a7 TeamCity change in 'Ideavim' project: runners of 'Qodana checks' build configuration were updated 2024-02-20 08:23:51 +00:00
Alex Plate cf09d66be6 Prototype for vimscript inspection 2024-02-20 06:13:26 +02:00
Alex Plate 76cd127a8a Bring back function to fix compatibility 2024-02-20 05:25:22 +02:00
Alex Plate f6dd2a9968 Do not call for setCaretVisible in tests as this causes project leak 2024-02-20 05:20:05 +02:00
aleksei.plate@jetbrains.comandteamcity ae05a33e14 TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ Latest EAP' build configuration were updated 2024-02-19 07:13:35 +00:00
aleksei.plate@jetbrains.comandteamcity b38fad323b TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ Latest EAP' build configuration were updated 2024-02-19 07:12:50 +00:00
Alex Plate c6027fcf0f Add new plugin for compatibility checks 2024-02-19 09:01:10 +02:00
IdeaVim Bot f4cf06a50e Update changelog. Action id - 7940923443 2024-02-17 10:05:47 +00:00
Alex Plate 86bf8dcc60 Fix the compatibility with platform 2024-02-17 08:56:17 +02:00
Alex Plate d37898b6d3 Fix(VIM-3234): The space character won't mix in the tab chars after >> and << commands
Because of some reason, the visual position function from the platform starts to return an incorrect column for offsets with tabs. Maybe this is a correct behaviour for the platform, but for IdeaVim it breaks the calculation of the current caret position.

The visual position for calculating the shift was used since 2003, but there is no specific reason to use it and not the buffer (logical) position. So, since it started to cause issues, it's replaced with the buffer position.
2024-02-17 08:54:42 +02:00
Alex Plate 1edd6a9002 Fix the compatibility with the new version of the platform 2024-02-17 08:15:11 +02:00
Alex Plate f7fa0dcbd1 Update YouTrack query for updating the release status after the release 2024-02-17 08:15:11 +02:00
Alex Plate 4f0a95a803 Bring back setCompletionPhase as this incompatibility was fixed in the latest EAP of the IntelliJ platform 2024-02-17 08:15:11 +02:00
IdeaVim Bot e443cb0d3c Update changelog. Action id - 7928973613 2024-02-16 10:06:24 +00:00
Alex Plate 6fa228ee08 Fix(VIM-3291): Remove sync of editor selection between different opened editors
This is an old feature implemented by Rick Maddy in 2004, taken from Vim.
 c294063223

 If several buffers for the same file are opened, the selection is synchronized between buffers.
This doesn't happen in IJ natively and I don't see a reason to keep it like that.
This behaviour is removed because it causes issues now, but if we'll figure out the usage, we can bring it back.
2024-02-15 20:34:57 +02:00
Alex Plate fb9bfbaeeb Do not check the compatibility of the sneak plugin 2024-02-14 18:05:56 +02:00
Alex Plate 09668f4fcb Update gradle wrapper to version 8.6 2024-02-14 17:07:20 +02:00
Alex Plate 4c7a6165ed Fix incorrect logs location in UI tests 2024-02-13 19:26:58 +02:00
Alex Plate 12d0d2613f Allow sneak plugin to be registered with the original mappings from the sneak plugin 2024-02-13 19:20:41 +02:00
Alex Plate 42ee78cd3d Disable runIde task for test subprojects 2024-02-13 19:18:18 +02:00
Alex Plate 58d308c1ed Fix the logging reporting for UI tests 2024-02-13 18:02:55 +02:00
Alex Plate 29e1bcc53d Wait longer for the python console to intialize 2024-02-13 14:56:14 +02:00
Alex Plate 3531574e5e Remove intellij plugin dependency for UI tests 2024-02-13 12:59:13 +02:00
Alex Plate b9721218ab Enable PyCharm for python UI tests 2024-02-13 12:42:33 +02:00
Alex Plate a119ea6a29 Fix octopus UI test 2024-02-13 12:34:56 +02:00
Alex Plate 95ef5f5f32 Fix incorrect configuration for UI tests 2024-02-13 08:43:12 +02:00
Alex Plate b81b18645b Disable publishPlugin task for tests 2024-02-13 08:34:51 +02:00
Alex Plate ce591f1b43 Configure UI robot for the root project 2024-02-12 14:49:38 +02:00
Alex Plate 28afa4b3ce Change the gradle config for UI tests 2024-02-12 13:37:10 +02:00
IdeaVim Bot 89a24d71a6 Update changelog after merging PR 2024-02-10 18:07:26 +00:00
chylexandlippfi f69630b668 VIM-3238 Fix recording a macro that replays another macro 2024-02-10 20:05:47 +02:00
Alex Plate a2d34a883b Fix verifyPlugin task 2024-02-09 16:45:57 +02:00
Alex Plate 5c79b887d8 Do not ask for license for py tests 2024-02-09 16:31:25 +02:00
Alex Plate d0475bf659 Explicitly specify jupyter version 2024-02-09 16:27:22 +02:00
Alex Plate 85c9576699 Extract common UI test fixtures 2024-02-09 16:22:22 +02:00
Alex Plate 2483450a1f Rename ui tests for better consistency 2024-02-09 16:11:14 +02:00
Alex Plate 519d5eed06 Set up PyCharm UI test 2024-02-09 16:03:31 +02:00
Alex Plate d87965775a Update version of robot 2024-02-08 16:48:03 +02:00
Alex Plate 8c6f81aa00 Fix incorrect location of the video 2024-02-08 16:46:03 +02:00
Alex Plate 6ea0ab0968 Print if neovim testing is enabled or not 2024-02-08 15:22:54 +02:00
Alex Plate 70ab3ecdbe Make a custom expand function for UI tests 2024-02-08 15:10:47 +02:00
Alex Plate a24ae616df Fix the creation of the video for the UI tests 2024-02-08 15:10:36 +02:00
Alex Plate cc838f614f Remove the testWithNeovim task
Now you can just run `gradlew test -Dnvim`
2024-02-08 14:53:43 +02:00
Alex Plate ae62a9f378 Fix the incorrect test 2024-02-08 14:35:52 +02:00
Alex Plate 1b5778a58c Remove configurations for UI tests 2024-02-08 14:33:02 +02:00
Alex Plate 27a689e7b8 Extract UI tests into the separate module 2024-02-08 14:21:09 +02:00
Alex Plate 8e6c490c62 Reformat the config file 2024-02-08 09:50:13 +02:00
Alex Plate ccda70fe53 Remove mentions of ktlint 2024-02-08 09:49:17 +02:00
Alex Plate 26c42e4f0d Turn off fixes for the gradle release with test search issues 2024-02-08 09:48:38 +02:00
Alex Plate 3244dd52eb The line with compilation error is disabled
In 2024.1 EAP this line causes compilation error due to platform conversion from java to kotlin
The fix is landed in the platform and it should work fine with the new EAP.
However, since our tests are fail now, I'll comment out this line and bring it back in one week.
2024-02-08 09:39:54 +02:00
Alex Plate 4c6807a0c2 Extract long running tests into a separate module 2024-02-08 09:28:26 +02:00
Alex Plate 03a6a2749a Clean up build.gradle.kts 2024-02-08 09:16:16 +02:00
Alex Plate 82f69456e9 Exclude propery tests into a separate project 2024-02-08 09:14:52 +02:00
filipp.vakhitovandteamcity 6beda371fb TeamCity change in 'Ideavim / IdeaVim releases' project: VCS roots of 'Publish vim-engine' build configuration were updated 2024-02-07 19:42:16 +00:00
Alex Plate 5b9cb2efc5 Explicitly specify java version for java IDE tests 2024-02-07 16:18:54 +02:00
Alex Plate 733968723c Explicitly specify an IDE type in the configuration 2024-02-07 16:07:35 +02:00
Alex Plate 63c81d67f2 Extract java tests for IdeaVim to a separate gradle subproject 2024-02-07 16:04:10 +02:00
Alex Plate ad8ba1dd24 Move @VimBehaviourDiffers into a correct package of testFixtures 2024-02-07 10:07:16 +02:00
Alex Plate 04f821e3e1 Create a testFixtures for the project
This will be needed for extracting the java tests into a separate subproject
Also, cleaned up the ordering of dependencies in build.gradle.kts
2024-02-07 10:05:56 +02:00
Alex Plate 4937985e2c Bump kotlin version from 1.8.21 to 1.9.22
One of the reasons for that is that 1.9.22 allows internal classes to be available in testFixtures from java KT-34901.
2024-02-07 09:29:15 +02:00
Alex Plate 5fd7d83a70 Apply patches to TeamCity configurations 2024-02-07 08:22:42 +02:00
aleksei.plate@jetbrains.comandteamcity 699a19d202 TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish EAP Build' build configuration were updated 2024-02-07 06:12:25 +00:00
Alex Plate 0b42938197 New testing of the eap release job 2024-02-07 08:05:02 +02:00
Alex Plate 1e2bfb6216 Trying to figure out how to get the youtrack token 2024-02-06 19:25:19 +02:00
Alex Plate f755a4b23f Trying to figure out how to get the youtrack token 2024-02-06 19:20:38 +02:00
Alex Plate 4f58e12fca Trying to figure out how to get the youtrack token 2024-02-06 19:15:14 +02:00
Alex Plate 588cf89531 Rename the youtrackToken for the EAP release 2024-02-06 19:02:58 +02:00
Alex Plate 4fe2dd2706 Add a clearer error message about the missing youtrack token 2024-02-06 18:31:48 +02:00
Alex Plate 11ad605cd6 Add YouTrack token to the EAP release job 2024-02-06 18:28:57 +02:00
Alex Plate fa9f160bd1 Fix incorrect names in EAP release jobs 2024-02-06 18:21:05 +02:00
Alex Plate dae1fad54e Add commenting on YouTrack tickets as a part of EAP release process 2024-02-06 18:08:16 +02:00
IdeaVim Bot 52200188d4 Add Emanuel Gestosa to contributors list 2024-02-06 09:02:35 +00:00
Alex Plate 0d74b9ef0b Fix tag pushing in the release branch 2024-02-06 10:41:14 +02:00
Alex Plate 549163d274 Comment out everything for pycharm tests because it fails on GitHub 2024-02-06 10:32:58 +02:00
Alex Plate 755018c783 Update release jobs 2024-02-06 10:09:53 +02:00
Filipp Vakhitov 2a1c4b3a1c Better widget order 2024-02-06 00:32:25 +02:00
Alex Plate aae0d825e7 Move the ideavim-sneak plugin into IdeaVim
The author of the original plugin announced the deprecation of the plugin.
However, we've got an approval to move the sources into IdeaVim and continue the development.

Original repo: https://github.com/Mishkun/ideavim-sneak
Approval: https://twitter.com/ideavim/status/1754512214344478939
2024-02-05 19:28:36 +02:00
Alex Plate 855dbfab16 Fix issues with enter in python console
VIM-3287
2024-02-05 18:31:43 +02:00
IdeaVim Bot f3a357c559 Update changelog after merging PR 2024-02-05 14:31:53 +00:00
Filipp Vakhitovandlippfi 63995e8c61 Support e flag for search 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 7062d9b8f8 Enable new regex engine by default 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi ede62f5c75 Fix compilation 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 6386770ff3 Move more tests to src 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi b4e831a81f Fix VisualAreaMatcher & TextRange 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi 9b283360ce Minor improvements 2024-02-05 16:29:49 +02:00
Filipp Vakhitovandlippfi fabbd4d156 Better SelectionInfo implementation 2024-02-05 16:29:49 +02:00
filippandlippfi 9bea5bf5f7 Remove deprecated code 2024-02-05 16:29:49 +02:00
filippandlippfi 9fbc990493 Fix visual matching 2024-02-05 16:29:49 +02:00
filippandlippfi b05fdaaa73 Fix tests 2024-02-05 16:29:49 +02:00
filippandlippfi 52d5d4d64c Fix Keyword token 2024-02-05 16:29:49 +02:00
filippandlippfi 6ec712466c Fix StartOfWordMatcher & EndOfWordMatcher 2024-02-05 16:29:49 +02:00
filippandlippfi 6616b8dc07 Simplify MarkMatchers 2024-02-05 16:29:49 +02:00
filippandlippfi 807457c718 Hide method and add Deprecated annotation 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 13d2a40903 removing print 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 022b196d6a adding comments and small refactors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7a64216830 getting rid of usages of deprecated classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bf7d2bd465 marking classes as deprecated 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6e97b591de fixing some error messages 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fc7c470966 fixing nohlsearch command 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 51492ca121 moving seach methods back to VimSearchGroup base 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ce1df84330 creating new IjVimSearchGroup class 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9b43e2a715 working on kotlin implementation of SearchGroup class 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 732cabd6aa working on processSearchCommand 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7c14801d5c deprecating most of SearchHelper 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 66df09c065 use injector for IjVimSearchHelper calls 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 8fd6985316 deprecating SearchHelper find and findAll 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi feac001499 substitute command working with new engine 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4c47e3a8eb integrating new regex into global command 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7773b625a5 \c token can't get overrided by \C 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi abe1abec72 test for \c token always taking priority 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 023838a96b working on implicit DFA algorithm optimization 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f4e743acc5 VimRegex uses wrapscan option 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 06d58cbda5 integrating options into the main module 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d199dea204 using options in findPrevious 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5722060ed9 testing VimRegex with smartcase set 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d4f7e727c1 VimRegex methods now receive options 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ba9afc3f8e adding usenewregex option to set command tests
rebasing
2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 39897bd012 allow findAll to have a max index 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 575d563154 show pattern not found error message 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 2bf46ce2f3 fixing findPrevious not wraping around in some cases 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b49a185efc using the count parameter in find() 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e305ebd1ed fixing patterns with just a AND operator 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6f5c9826f4 fixing patterns with single ^ or $ 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6025eaaca9 showing pattern not found error 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b2441c3cca throwing and catching VimRegexException 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a73599e9ee use non-exact nfas for slightly faster matches 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 58398f40fa using useNewRegex option 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 43f5d5a8e8 integrating findAll 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b20cbd3558 fix findNext getting stuck at line ends 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7f835a407c fix findPrevious not finding matches that start at end-of-line 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9859974db7 integrating findNext and findPrevious 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6c24ddd1a0 adding useNewEngine option 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bd92ef08ec use explicit stack instead of recursion for backtracking 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 8de6107a17 getting rid of handleTransition method 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e639f03ac7 stop using non-exact start nfas 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f9aac442c1 findAll returns List instead of Sequence 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5fdf675168 rename NFATest to VimRegexEngineTest 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 232f81ff48 commenting new classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1c4a6b2274 refactoring nfa simulation logic to its own class 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi deb71f8efc cleaning comments 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4596596d9f new findPrevious API method 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bbb6d42f8d changing find to findNext 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 01efd0f9f0 trying to get antlr to report vim errors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 2d7597d206 clearing some TODOS in VimRegex 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 221741c891 assuring that cursor line and column tokens belong to the same cursor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9f69beb450 test for pattern with multiple cursors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e843d9e9c3 assuring that visual selection tokens belong to the same cursor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 008b3d94fb assuring that all cursor and mark tokens belong to the same cursor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6756d83c55 test for tokens belonging to the same cursor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b52072a2e3 visitors for mark related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3afb00d563 tests for mark related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a30c94fd2f mock mark related methods for regex testing 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f50c29a285 matchers for mark related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f238b0f138 parsing more mark registers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d0a8c98040 parsing mark related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b3d161ad97 fix tests not detecting visual area selection properly 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fce9cf2077 visitor for visual area token 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi efd0e56697 visual area matcher 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b94a9bb9d9 nfa tests for matching inside visual area 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c153cc5a29 mock visual selection 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a680e9a25a visual columns matching 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3c18c4ef22 fixing parsing of optionally matched sequence 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c4e11b5976 visitor for optionally matched sequence 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 65be51dd48 tests for optionally matched sequence 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9684103f97 parsing optionally matched atoms tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f4c647d430 new doTest method for VimRegexTest 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f1eab3b9c1 dividing regex api tests into seperate classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 545d52bd93 dividing regex tests into internal and public api tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4e42198c09 using multi line strings in VimRegexTest 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 44736a51b9 new NFA doTest method 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e675ffd623 cleaning multiline strings in tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1f14e06bd3 refactoring editor mock methods 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9871078269 tests receive caret indexes in the text 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5e7a7f4d62 fixing cursor line and column matchers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7d690c6809 visitors for cursor line and column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6edb4266d5 nfa tests for cursor line and column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 799e82d501 matchers for cursor line anc column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a2370bff68 parsing cursor column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c72f3bcd12 parsing cursor line tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 295964a74d mocking VimEditor.offsetToBuffer position and fixing visitors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d77cda0fae visitors for line and column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6da072d47d matchers for line and column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 471a5a1b3e tests for line and column tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cd5da2d237 parsing column related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 62f67cd626 parsing line related tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 70db96d9e5 allow larger decimal codes inside collections 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 98470111fb fixing octal codes larger than 0o377 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 557a3bb01f fixing mixing % in match character by code tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi dee70acdcb tests for match character by code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 862b16879c visitors for character codes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ed7249558e parsing match character by code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4f6c6f4d10 fixing rebase problems 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 650d02d9b3 using TextRange instead of IntRange 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e4041a2f69 adding comments 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4c284a6d13 visitor for negative limited lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e14fc801bd fix lookbehinds matches not ending where they were supposed to 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 0478d468e0 adding tests for limited lookbehinds 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4ac98710fb implement limit lookbehinds 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f256f6417e parsing limited lookbehinds 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ca94d55b62 implementing negative lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c11c061113 add tests for negative lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c15c3eb802 implementing positive lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 0ce102b782 visitor for positive lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cc48207a99 adding tests for positive lookbehind 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 353ea5fc5d reworking nfa to ignore input until first match 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 64138310cc add more complex \& tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1c4538af72 implementing \& operator 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 755b47ef19 adding nfa tests for \& operator 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c78a5d3cab allow for a state to have multiple assertitions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b9b8d30f3b fixing collections with only char class expressions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9be93212c3 fname class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 89973809af keyword class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e324af356d ident class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f51fc6ed47 return, tab, escape, backspace class visitors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ecce98289a xdigit class 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 23c14aa2e4 upper class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 678d04c5db space class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 691ba75372 punct class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d2d7bbc632 print class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b3b1a6bdb9 lower class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 310125ea01 graph class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 208d1cbba2 digit class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e94154ba80 cntrl class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 582fbdd9e7 blank class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi dd175912f4 alnum class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a6a0ae7a51 alpha class visitor 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 8cdac91a01 base code for char classes expressions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4c89f41daa adding nfa tests for collection char classes expressions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 512e826a42 adding new parser tests for collection char classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bc0d277a21 parsing collection char class expressions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 169fe5fc5b parse visual \%V token 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 30867702a4 parsing lookbehind tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6131f92ae6 parsing ~ token 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 823a52583c documenting regex code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e2c6c0539f add more lookahead tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f7f1c0e90d making nested lookahead tests pass 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi eca12607dd pattern visitor is now a singleton 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 006e3e11f9 parser class is now a singleton 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a9982cbdca refactoring temporary field out of parser class 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 0fa9c5a2a2 moving all parsing logic to VimRegexParser class
rebasing
2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cdcc9729d3 add more failing lookahead tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4acf651aa7 adding tests for nested lookahead tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4bba791c65 adding comments and small cleanups 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 662688d3b9 refactoring inappropriate intimacy between nfa and nfaassertion classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 21a3e8fdc4 extract methods refactor in nfa simulation code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3815a1d538 add more lookahead tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cbe0c5cfec implementing negative lookahead 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 15db9b30e1 add tests for negative lookahead 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi e891294c0f parsing negative lookahead 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f6b9e7cc26 implementing positive lookahead 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 052fd7162f parsing positive lookahead 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 189acb73f5 dealing with atomic groups in a different way 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ec7c1677b4 allow special escape characters in collections \e \t \r \b \n 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a9474c8e67 allow character codes inside collections \d \o \x \u \U 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3a70dfc5f3 implementing collections with EOL \_[] 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 669177d803 implementing and testing start and end of word tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b1f43b061c parsing start and end of word tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7ff3c84deb commenting new atomic groups code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ee642b63ce adding explanatory comment on wierd atomic group test 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 17315e5096 implementing atomic groups 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4e9d52fc62 placeholder for atomic groups 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d7e87f8fc8 rename MultiBoundary to RangeBoundary 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3efe11f393 refactoring visitors to prepare for different types of multis 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 26c6c464d8 adding tests for atomic groups 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4db654e653 parsing atomic groups 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 048759d374 implement and test start and end of line anywhere in pattern 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi db2424057f parsing start and end line anywhere in pattern 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 472a53e3b9 start and end of line anchors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9e15d91900 adding tests for empty editors 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d5cff281c0 adding comments on new Matchers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 57b6c4dffb collection matcher uses set instead of list 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 908a2d1d8c start and end of file 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 69bdea9273 character classes never ignore case 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5b21a653ee add test for case insensitive matching 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cfddcf1630 ignore case tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f009687ddf matchesAt API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6ddfe29465 matches API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 715c51f673 matchEntire API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b443e8f06a fix quantified capture groups not updating properly 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 0bd0466c9c cleaning adding transitions to states 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ad5db3c9e5 fix capturing groups not updating properly 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fa3182cb5e adding failing backreferences test 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 3f44bed66e adding comments to Matchers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 2a70530d0f matchAt API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7c542d5fc7 implementing character classes with EOL 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 638dfb7777 parsing character classes with new line 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1323536a63 testing and implementing backreferences 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 419212e2d4 parsing backreferences 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5f1c234a7d refactor Matcher to return number of consumed characters 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi db1e8301cd implementing and testing lazy quantifiers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bf94a3c68d parsing lazy quantifiers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 96baa4ffc6 all named character classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 7d472afe61 set match start and end \zs \ze 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f32a4d33a7 support unicode escape sequence in collections 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 0722991955 add test for collection with not special escaped character 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi bcc740cdbc implementing custom collections 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5cf46097f7 ascii character classes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 61dc189f8b char classes and collections base code 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 23c2b008c9 implementing cursor and using mockito to mock editor
rebasing
2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi db14afdf3a dot with and without newline 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b7927336d1 implementing dot 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ee23a3d4cd commenting findAll 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 63c0112ffb findAll API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi db08d7d280 find API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 9892525fbc containsMatchIn API function 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 34b87ff6bf adding comments 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 241ad68bd5 fix nfa looping in epsilon transitions 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi a0ec18921b more correct way of handling quantifiers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 45e17eb0b2 fixing quantifiers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 59f0e9ae67 add test for updating capture group 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi af24611c73 capture group submatch 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d4502dda3f VimMatchResult stores matched string value 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c0efa8af5d use IntRange for match range 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1c06a3fc89 add test for empty group 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi c19fb38d1c implementing grouping 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 5dc1de9daf add nfa test for escaped character 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6774301938 updating comments 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4ef6cf0428 implementing quantifiers 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi ca5f8e4b44 skeleton for NFA testing 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 1907f03abe nfa simulation uses VimEditor instead of String 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 6351a4e4f3 initial nfa 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fa34c3937f initial nfa definition 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cdac97ebf5 adding some zero-width tokens 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fe958d28b8 lexer fixing what chars are taken literally 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f71982e1d5 support unicode in collections 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi cb2bfcea53 unicode chars in all lexer modes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 4a9d5bbceb lexer support for unicode characters 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 10809eade6 regex very magic and very nomagic modes 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 43d63527f8 adding comments to parser grammar 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi df51eb54ed using antlr token types 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi b47109ab4d grammar add EOF at end of pattern 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 15b2b68940 making new collection tests pass 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 62a239f6fe add tests for collections 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi d89bc95a0a altering antlr error handling 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 2a76f21b31 regex range basic tests 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi f07e22d742 delete duplicate files 2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi 058ab7a1ea gradle generate antlr files
rebasing
2024-02-05 16:29:49 +02:00
Emanuel Gestosaandlippfi fae3baa640 initial regex grammar 2024-02-05 16:29:49 +02:00
IdeaVim Bot 2c4da9c634 Update changelog. Action id - 7766144293 2024-02-03 10:06:57 +00:00
Alex Plate 8de0313aca Preparing the UI tests for the PyCharm 2024-02-02 20:16:47 +02:00
Alex Plate 143c5b17f9 Fix(VIM-3055): Fix the issue with double deleting after dot 2024-02-02 19:30:58 +02:00
Alex Plate ec32fde60d Release job: Update version of kotlin dsl 2024-02-02 09:16:49 +02:00
Alex Plate f2ac5d4995 Release job: Do not make slack notification for the patch version 2024-02-02 09:07:17 +02:00
Alex Plate 716962af03 Release job: Use the command line runner to start the tests
TC detects tests and report them in the release job. I just want to have a "Success" word when everything done.
You cannot disable the tests detection on TC, but the detection doesn't work if the tests were started from the command line
2024-02-02 08:57:28 +02:00
Alex Plate 156efde6b9 Release job: Do not make a commit if there are no changes 2024-02-02 08:50:47 +02:00
IdeaVim Botandteamcity a9b7716dfe Preparation to 2.8.2 release 2024-02-01 09:47:48 +00:00
Alex Plate 76a67a6715 Do not add an update entry if missing 2024-02-01 11:43:16 +02:00
Filipp Vakhitov c3defdcda4 Add sources and JavaDoc to vim-engine jar 2024-02-01 11:07:28 +02:00
filipp.vakhitovandteamcity d8092aa916 TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2024-02-01 08:15:00 +00:00
filipp.vakhitovandteamcity 8b5a3d31aa TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2024-02-01 08:14:45 +00:00
Filipp Vakhitov 11761b66b2 Revert "Fix(VIM-3183): Execute .ideavimrc on pooled thread"
This reverts commit 1d7796805c.
2024-01-31 20:10:32 +02:00
Filipp Vakhitov f83f107bd1 Revert "Support triggering option listeners outside EDT"
This reverts commit 5a6f54c96c.
2024-01-31 20:10:18 +02:00
Filipp Vakhitov f1b90857ff Revert "Fix code in execute requiring EDT or write actions"
This reverts commit e7236beedd.
2024-01-31 20:10:15 +02:00
Filipp Vakhitov 5aea4cdd65 Revert "Avoiding slow operations on EDT"
This reverts commit 00fb5bc6cf.
2024-01-31 20:09:55 +02:00
Filipp Vakhitov 1822a59c70 Revert "Fix(VIM-3273): Config file stopped working"
This reverts commit 04230fdd9c.
2024-01-31 20:09:31 +02:00
Filipp Vakhitov 37c6934802 Revert "Update changelog. Action id - 7724318708"
This reverts commit 434511658b.
2024-01-31 20:09:27 +02:00
Filipp Vakhitov 90c7f747a4 Revert "Fix(VIM-3278) Relative number is broken in 2.8.0"
This reverts commit a1646a7a88.
2024-01-31 20:09:23 +02:00
Filipp Vakhitov b7efa3dcd6 Revert "Add EDT where it is needed"
This reverts commit 3e9706e6ce.
2024-01-31 20:09:19 +02:00
Filipp Vakhitov da80f537ac Revert "Avoid concurrent VimScript execution"
This reverts commit 0e03151505.
2024-01-31 20:09:15 +02:00
Filipp Vakhitov 0119912318 Revert "Add readActions & EDT"
This reverts commit 45a2eadc58.
2024-01-31 20:09:08 +02:00
Alex Plate 5e0b1d0161 Update the way the changelog is updated for the patch release 2024-01-31 19:24:27 +02:00
Alex Plate 35145d100b Update the release jobs to make releases only from the release branch
In this way, we'll avoid the problem that some breaking commits may be added between the last EAP and master branch
2024-01-31 18:50:26 +02:00
Alex Plate 584dd0ba89 Run tests before releasing IdeaVim 2024-01-31 18:21:03 +02:00
Alex Plate e5f5dc56c9 Remove the obsolete gradle scripts 2024-01-31 18:21:03 +02:00
Alex Plate 880efb012a Fix compilation issues for the latest EAP 2024-01-31 17:58:19 +02:00
Alex Plate b95308ac24 Migrate CopilotKeymapCorrector to the new API 2024-01-31 17:42:08 +02:00
aleksei.plate@jetbrains.comandteamcity 3b192ad357 TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2024-01-31 15:01:37 +00:00
aleksei.plate@jetbrains.comandteamcity b04938ac5e TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish vim-engine' build configuration were updated 2024-01-31 13:37:25 +00:00
Alex Plate 56410ac1f2 Make some classes public because they're used in EasyMotion plugin tests 2024-01-31 15:25:33 +02:00
Filipp Vakhitov 45a2eadc58 Add readActions & EDT 2024-01-31 14:43:23 +02:00
Filipp Vakhitov 0e03151505 Avoid concurrent VimScript execution 2024-01-31 14:42:58 +02:00
Filipp Vakhitov 3e9706e6ce Add EDT where it is needed 2024-01-31 14:09:06 +02:00
Filipp Vakhitov a1646a7a88 Fix(VIM-3278) Relative number is broken in 2.8.0
Proper options initialization order
2024-01-31 13:34:33 +02:00
IdeaVim Bot 434511658b Update changelog. Action id - 7724318708 2024-01-31 10:06:47 +00:00
Filipp Vakhitov 04230fdd9c Fix(VIM-3273): Config file stopped working 2024-01-31 09:12:23 +02:00
Filipp Vakhitov 2e16ad8a2a Revert "Downgrade ktor dependencies to check if "Publish vim-engine" fails because of them"
This reverts commit 7fb59b0fa9.
2024-01-30 20:13:36 +02:00
Filipp Vakhitov 7fb59b0fa9 Downgrade ktor dependencies to check if "Publish vim-engine" fails because of them 2024-01-30 20:05:45 +02:00
Filipp Vakhitov 24e044bcda Remove deprecated ComplicatedKeysAction.kt 2024-01-30 18:56:38 +02:00
IdeaVim Botandteamcity 1093656ec5 Preparation to 2.8.0 release 2024-01-30 10:46:04 +00:00
Alex Plate 674e997060 Fix the condition for the release branch reset step 2024-01-30 12:33:28 +02:00
Alex Plate 37fd124f56 Use bash to reset the branch 2024-01-30 11:34:25 +02:00
Alex Plate 7df2e67312 Re-request commit message 2024-01-30 10:00:08 +02:00
Alex Plate 8ea1f0796c Add logs to release job 2024-01-30 09:53:51 +02:00
Filipp Vakhitov 00fb5bc6cf Avoiding slow operations on EDT 2024-01-29 13:30:41 +02:00
Filipp Vakhitov 5e01f726d3 Revert "Remove deprecated VimScriptGlobalEnvironment.java"
This reverts commit 5c64ebf1cc.
2024-01-29 12:58:46 +02:00
Filipp Vakhitov e87290aeea Simplify storing global variables 2024-01-29 12:58:31 +02:00
Filipp Vakhitov e7236beedd Fix code in execute requiring EDT or write actions 2024-01-29 10:00:55 +02:00
Filipp Vakhitov 5a6f54c96c Support triggering option listeners outside EDT 2024-01-28 14:00:36 +02:00
filipp 7769985439 Merge remote-tracking branch 'origin/master' 2024-01-28 13:37:58 +02:00
IdeaVim Bot f4afdb21b2 Update changelog. Action id - 7677896605 2024-01-27 10:06:55 +00:00
Alex Plate cc1b9e0a50 Expand all works a way worse 2024-01-27 07:43:28 +02:00
Alex Plate 2c58740cbb Expand the full tree in UI tests 2024-01-26 21:49:49 +02:00
Alex Plate 808533b110 Fix(VIM-3260): Processing the offsets at the file end 2024-01-26 17:49:44 +02:00
Alex Plate e04a15bb99 Add new plugin to check plugin dependencies 2024-01-26 17:23:55 +02:00
Alex Plate 26d4074a61 [VIM-2974] Adopt other parts of key handling to the octopus handler switcher 2024-01-26 16:40:34 +02:00
filipp 0137de5ca2 Add Term widget theme 2024-01-26 15:52:07 +02:00
Alex Plate b0a1b2edba Do not make cd in tests 2024-01-26 15:47:13 +02:00
Alex Plate 355c560ddc Add UI test with disabled octopus handler 2024-01-26 15:32:30 +02:00
Alex Plate 72f286d9c6 Add UI test for multicaret enter in select mode 2024-01-26 15:32:30 +02:00
Alex Plate db6786414a [VIM-2974] WIP: Bringing back the octopus handler switch 2024-01-26 15:32:29 +02:00
filipp f8f046f193 Fix plugin.xml 2024-01-26 14:00:07 +02:00
filipp 6c9ad4ded2 Remove deprecated xml-related code 2024-01-26 13:45:46 +02:00
filipp 32cae8ca11 Remove more deprecated things 2024-01-26 13:05:48 +02:00
filipp 0cb65279d9 Remove deprecated mark-related methods 2024-01-26 13:02:23 +02:00
filipp 412da06554 Remove deprecated ToggleOption.kt 2024-01-26 12:47:06 +02:00
filipp 247f8a2778 Remove deprecated OptionsManager.kt 2024-01-26 12:45:46 +02:00
filipp 017c9a6a70 Remove deprecated OptionService.kt 2024-01-26 12:43:06 +02:00
filipp eccb2430b5 Remove deprecated MarkGroup.java 2024-01-26 12:39:30 +02:00
filipp 5c64ebf1cc Remove deprecated VimScriptGlobalEnvironment.java 2024-01-26 12:38:28 +02:00
filipp 1d7796805c Fix(VIM-3183): Execute .ideavimrc on pooled thread 2024-01-26 12:27:03 +02:00
dependabot[bot]andgithub-actions[bot] 3479aaf6f6 Bump org.jetbrains.intellij from 1.16.1 to 1.17.0
Bumps org.jetbrains.intellij from 1.16.1 to 1.17.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>
2024-01-24 20:02:11 +04:00
dependabot[bot]andgithub-actions[bot] d2071cf05c Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.22-1.0.16 to 1.9.22-1.0.17.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.22-1.0.16...1.9.22-1.0.17)

---
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>
2024-01-24 20:02:01 +04:00
Filipp Vakhitov fb75508258 Support widget themes 2024-01-23 23:59:57 +02:00
Filipp Vakhitov 0e69168382 Make the Apply button disabled by default 2024-01-23 18:54:47 +02:00
Filipp Vakhitov 9970ab8643 Allow to open only one widget settings window at a time 2024-01-23 18:53:41 +02:00
Filipp Vakhitov 7ff82010c3 Rename "Foreground:" field to "Text:" in mode widget settings 2024-01-23 16:47:21 +02:00
Filipp Vakhitov 1da8cd53d2 VIM-1377 Normal mode needs to be more obvious
Save mode widget colors state in XML
2024-01-23 01:27:57 +02:00
Filipp Vakhitov 9337a89eac VIM-1377 Normal mode needs to be more obvious
Redraw widget after applying new colors
2024-01-23 01:27:57 +02:00
Filipp Vakhitov 510564dd91 VIM-1377 Normal mode needs to be more obvious
Do not show widget with no files opened
2024-01-23 01:27:57 +02:00
Filipp Vakhitov a9ededc997 VIM-1377 Normal mode needs to be more obvious
Add color customization to mode widget
2024-01-23 01:27:57 +02:00
Alex Plate 722cffbd48 [RIDER-85968] Do not format inserted code for CLion Nova
CLion Nova gets the  same problem with formatting as Rider has
2024-01-22 10:20:07 +04:00
Alex Plate a787befd72 Add special esc processor for CLion Nova
CLion Nova has a similar architecture like Rider. So, it got the same problem like Rider has with the esc after adding the octopus handler.
2024-01-22 09:51:31 +04:00
Alex Plate 8ddd71a65a Switch all releases to 2023.3.2 2024-01-18 10:03:07 +04:00
filipp 280e1ec16d Fix updating widget for cases when statusbar is not initialized 2024-01-17 11:15:54 +02:00
Filipp Vakhitov 52cf10cb2e Better widget 2024-01-13 23:01:01 +02:00
dependabot[bot]andgithub-actions[bot] c12082affc Bump io.ktor:ktor-client-content-negotiation from 2.3.6 to 2.3.7
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.7/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.6...2.3.7)

---
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>
2024-01-10 17:59:13 +02:00
dependabot[bot]andgithub-actions[bot] c0d7d74dac Bump io.ktor:ktor-client-core from 2.3.6 to 2.3.7
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.7/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.6...2.3.7)

---
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>
2024-01-10 17:58:42 +02:00
Alex Plate df72b24ad2 Wait smart mode before starting to create files 2024-01-09 17:34:03 +02:00
Alex Plate 26bdd15400 Do not try to turn off IdeaVim dialog as we don't show it anymore in UI tests 2024-01-08 18:52:09 +02:00
Alex Plate e13310b4e0 Get rid of typing the action name 2024-01-08 18:51:30 +02:00
Alex Plate e9d4218705 Try another way to search for the action 2024-01-08 17:13:31 +02:00
Alex Plate 56b80e4e60 Fix UI test with action search 2024-01-08 15:23:12 +02:00
Alex Plate 679f6471e6 Wait longer for the track action id action 2024-01-05 20:16:13 +02:00
Alex Plate 984179695c Explicitly specify the save version of action cache
GitHub shows a security notification about this dependency. It's also said that setting a v2 version is enough, however the notification still persists, so let's specify the full version
2024-01-05 20:08:37 +02:00
Alex Plate 5cca484a82 Do not use sample code for this case 2024-01-05 19:51:18 +02:00
Alex Plate d91e2296b0 Fix incorrect version of the dependency 2024-01-05 19:37:54 +02:00
Alex Plate 59768c16e2 Wait for track action id test to appear in search results 2024-01-05 19:36:03 +02:00
Alex Plate 580efeae1a Update version of the robot 2024-01-05 19:35:47 +02:00
Alex Plate 0a3b508c8a Update versions of actions for ui tests 2024-01-05 19:19:55 +02:00
Alex Plate 5e2f590b76 Try to use gradle-build-action in UI tests 2024-01-05 19:00:36 +02:00
Alex Plate ee94396afa Double escape to exit multicaret is required 2024-01-05 18:53:22 +02:00
Alex Plate 98764b6356 Change the set up of sandbox idea 2024-01-05 18:37:34 +02:00
Alex Plate f01cc4d0d0 Add UI test for enter in insert and select modes 2024-01-05 18:31:02 +02:00
Alex Plate 4c0f17429b Get rid of function and clean up UI test 2024-01-05 18:15:16 +02:00
Alex Plate 6a2ae1c572 Increase the expand timeout for the tree. For some reason it doesn't open quickly during tests on GH 2024-01-05 18:10:53 +02:00
Alex Plate a2681ce6cc Add UI test for multicaret enter
For ticket VIM-3186
2024-01-05 18:01:23 +02:00
Alex Plate 4e43606932 GH actions: always store the execution of the test 2024-01-05 17:44:44 +02:00
Alex Plate 28c0c3207a Add UI test for mappings on A-Enter and C-Enter
For ticket VIM-3190
2024-01-05 17:40:40 +02:00
Alex Plate ecfa0e2b49 Fix incorrect reference for the test 2024-01-05 17:24:20 +02:00
Alex Plate ec3122f320 Upload the logs of the sandbox 2024-01-05 17:21:19 +02:00
Alex Plate 7e4b4c973c Add UI tests for adding new line above and below via action in normal mode
For ticket VIM-3190
2024-01-05 17:05:07 +02:00
Alex Plate 64753df2dd Always store the execution of the test 2024-01-05 16:41:22 +02:00
Alex Plate 75b36ab886 Do not show tips on startup for UI tests 2024-01-05 16:34:50 +02:00
Alex Plate 208a78c748 Get rid of testing error 2024-01-05 16:34:24 +02:00
Alex Plate 027249c575 Incorrect import was used for video 2024-01-05 16:15:00 +02:00
Alex Plate 5ceb960205 Use junit 5 version of video-recorder 2024-01-05 15:56:07 +02:00
Alex Plate 1cea156c5a Try to update the ffmpeg downloader 2024-01-05 15:41:53 +02:00
Alex Plate e1efa1ecbc Update copyright template 2024-01-05 15:41:53 +02:00
IdeaVim Bot 517de5e179 Update changelog after merging PR 2024-01-04 14:00:52 +00:00
Matt EllisandAlex Pláte 825b62a2a9 Refactor to remove lazy properties 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 5ec817776c Use "vim" prefix for option keys 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 3ad0519add Extract initialisation strategies to new class 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 9868522341 Only calculate stack trace if logging is enabled 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 5b8d8c617f Improve type handling 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte a1f66061e3 Extract option storage to separate class 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte d8811933c9 Simplify resetting options for testing 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte c9864dde8d Extract parsed values cache 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte ca849d6649 Simplify API of OptionListenersImpl 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 95a2354a86 Fix issue where global value wasn't properly set 2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 538e0ac48c Extract listener notification
Refactoring - no intentional changes in behaviour
2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 1c17411f04 Add test for changing number global-local options
The local value is not unset, but set to a copy of the new value, so we need to make sure that we notify editors that are not "unset"
2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte cbe0f89548 Extract listener registration to separate class
Refactoring - no intentional changes in behaviour
2024-01-04 15:58:36 +02:00
Matt EllisandAlex Pláte 615b071dcb Rename methods for clarity 2024-01-04 15:58:36 +02:00
Filipp Vakhitov 2d74f121aa Set min width for widget 2024-01-04 10:45:59 +02:00
dependabot[bot]andgithub-actions[bot] f65c180b8f Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.6 to 2.3.7
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.7/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.6...2.3.7)

---
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>
2024-01-03 17:42:36 +02:00
dependabot[bot]andgithub-actions[bot] eb389c472d Bump io.ktor:ktor-client-cio from 2.3.6 to 2.3.7
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.7/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.6...2.3.7)

---
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>
2024-01-03 17:42:06 +02:00
dependabot[bot]andgithub-actions[bot] befdf08035 Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.21-1.0.15 to 1.9.22-1.0.16.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.21-1.0.15...1.9.22-1.0.16)

---
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>
2024-01-03 17:28:58 +02:00
dependabot[bot]andgithub-actions[bot] 7a43ac865e Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.21 to 1.9.22
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.21 to 1.9.22.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.21...v1.9.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-03 17:28:26 +02:00
dependabot[bot]andgithub-actions[bot] c43fcf9fbf Bump io.ktor:ktor-client-auth from 2.3.6 to 2.3.7
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.6 to 2.3.7.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.7/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.6...2.3.7)

---
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>
2024-01-03 17:27:46 +02:00
IdeaVim Bot 472a633010 Update changelog after merging PR 2024-01-03 10:17:35 +00:00
Filipp VakhitovandAlex Pláte fc46acb2e4 Move to concurrent list 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 7fde66eb40 Better color 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte b3cea3997d Safer changes to VimPlugin
(avoid changes to old code that worked)
2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 2f20193086 Post-review improvements 2024-01-03 12:15:31 +02:00
filippandAlex Pláte 601e207f04 Remove comment 2024-01-03 12:15:31 +02:00
filippandAlex Pláte f0d3d8b276 Add colors to showmode widget 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte e02d34f023 Better ShowMode widget & Macro recording widget 2024-01-03 12:15:31 +02:00
Filipp VakhitovandAlex Pláte 0504be84b6 Add base implementation of showmode widget 2024-01-03 12:15:31 +02:00
filippandAlex Pláte 216f020b70 Add new listeners 2024-01-03 12:15:31 +02:00
IdeaVim Bot 66505eedfa Add Leonid Danilov to contributors list 2024-01-03 09:02:40 +00:00
Alex Plate b307c7d88b [VIM-2929]: Reset the key stack in case of exception during the execution 2024-01-02 13:57:12 +02:00
Alex Plate 47d4445fa8 Check the key stack at the end of every test 2024-01-02 13:57:12 +02:00
Alex Plate 7098d2633a Add a helper function to key keystokes from string 2024-01-02 13:57:12 +02:00
IdeaVim Bot 61b5393b54 Update changelog after merging PR 2024-01-02 10:14:39 +00:00
Leonid DanilovandAlex Pláte 6fe2cf13b6 Added "Which-Key" to Plugins 2024-01-02 12:11:58 +02:00
dependabot[bot]andAlex Pláte cc971eb2df Bump org.jetbrains.intellij from 1.16.0 to 1.16.1
Bumps org.jetbrains.intellij from 1.16.0 to 1.16.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>
2023-12-28 12:45:26 +02:00
dependabot[bot]andgithub-actions[bot] a260987f5c Bump org.eclipse.jgit:org.eclipse.jgit.ssh.apache
Bumps org.eclipse.jgit:org.eclipse.jgit.ssh.apache from 6.7.0.202309050840-r to 6.8.0.202311291450-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-12-28 12:07:46 +02:00
dependabot[bot]andgithub-actions[bot] 5eb8f44dfc Bump org.mockito.kotlin:mockito-kotlin from 5.1.0 to 5.2.1
Bumps [org.mockito.kotlin:mockito-kotlin](https://github.com/mockito/mockito-kotlin) from 5.1.0 to 5.2.1.
- [Release notes](https://github.com/mockito/mockito-kotlin/releases)
- [Commits](https://github.com/mockito/mockito-kotlin/compare/5.1.0...5.2.1)

---
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-12-28 12:07:16 +02:00
Alex Plate e36131b38b [VIM-2929]: Adding logging for tracing the keyStack 2023-12-28 11:24:13 +02:00
Alex Plate b67868afde Extract the companion object into the top level
As the inspection says, due to eager companion object initialization, it's better to keep such things on the top level
2023-12-28 10:03:50 +02:00
Alex Plate 328fdee281 Add comment about autocompletion in macros 2023-12-22 10:55:16 +02:00
Matt EllisandAlex Pláte 8ab43e98fe Remove unnecessary keeping visual mode flag
The value was only ever set to false.
2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 4f407ccc03 Remove unused multikey-undo flag
It's uncertain what this was introduced for, and it's no longer used for any behaviour
2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 5f3fddd3e4 Remove unnecessary post process method
We no longer need to post process the selection because it is up to the operator implementation to end in the correct mode
2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 392f3b536d Remove unnecessary mode reset
Visual mode should already have been exited before executing the operator. The operator's implementation is responsible for handling the final mode
2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 155de2b396 Remove always true check and always exit visual 2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 6c9930ac2a Removes unnecessary 'exit visual' command flag
This flag is only used to modify the behaviour of visual operators, but all visual operators have the flag, which means it's unnecessary. The only behaviour for visual operators now is to exit visual mode.

Note that visual motions are implemented separately, and handle their own visual mode requirements (e.g. MotionArrowLeftAction).
2023-12-22 10:55:00 +02:00
Matt EllisandAlex Pláte 9dddf4f4bc Minor cleanup 2023-12-22 10:55:00 +02:00
IdeaVim Bot 314506c15c Update changelog after merging PR 2023-12-22 07:34:37 +00:00
chylexandAlex Pláte 673222da6c Prevent code completion popup from appearing after running a macro 2023-12-22 09:32:33 +02:00
Alex Plate 58b97e6361 Get back to regular agents 2023-12-19 10:45:40 +02:00
Alex Plate 8bc2032b07 Do not override all artifact rules 2023-12-19 10:44:49 +02:00
Alex Plate 40d4354dfc Avoid issue with blocked execution due to starting a coroutine in ProjectActivity 2023-12-19 10:30:14 +02:00
Alex Plate 27f2f5bb2b Migrate KeymapChecker to ProjectActivity 2023-12-19 10:08:01 +02:00
Alex Plate 490b934269 Turn on leaks check on local development 2023-12-19 10:00:10 +02:00
Alex Plate e2e2b4d176 Proper tear down with tests with mock 2023-12-19 09:59:54 +02:00
Alex Plate 7a1763bbee Dispose carets of custom editor in test 2023-12-19 02:21:34 +02:00
Alex Plate ca8904b6bb Refactor common extension tests in order to avoid double remove of extension.
Firstly extension is removed in tearDown, then as disposable of VimPlugin.getInstance()
2023-12-19 02:21:18 +02:00
Alex Plate 6384b28689 Refactor listeners to avoid manual unregister
However, manual removal of listeners may cause "double" remove in cause the user turns off the plugin and then closes IDE: firstly listener is removed manually, and then by dispose call
2023-12-19 01:44:57 +02:00
Alex Plate e661466558 Small refactorings on IdeaSelectionControl
They are done because if we don't set timer to null after tests, we have a leaked project
2023-12-19 00:12:54 +02:00
Alex Plate 8faf2beba4 Refactor IdeaRefactorModeHelper for splitting logic into change calculation and change apply 2023-12-19 00:12:54 +02:00
Alex Plate fb29319ec6 Add VimPlugin.isNotEnabled function to simplify a lot of checks for !isEnabled() 2023-12-19 00:12:54 +02:00
Alex Plate 7779d7d193 This Easter egg caused a bug that a disposable balloon was leaked.
As smart people suggest, it's better not to have easter eggs at all.
2023-12-19 00:12:54 +02:00
Alex Plate 2c5246b62f Avoid project leak via KeyEvent 2023-12-19 00:12:53 +02:00
Alex Plate e43a3f4518 Avoid disposable leak because of widget
With the call that was removed, we initialized the widget too early, and the widget wasn't properly registered as disposable. This caused disposable leak.
Also, there is no understanding why this code was used to update the widget. The call for ShowCmd.update seems enough
2023-12-19 00:12:53 +02:00
Alex Plate b5716f7a6d Fix incorrect error handling
Since TestLoggerAssertionError is not available in production, we can't catch this exception in production code
2023-12-19 00:12:53 +02:00
Alex Plate fac5a3cc6f Remove XYZ testing configuration 2023-12-19 00:12:53 +02:00
Alex Plate 671793078a Revert "Downgrade version of IJ plugin"
This reverts commit 258203f400.
2023-12-19 00:12:53 +02:00
Alex Plate 4f5ea1696f Revert "Add back-to-232 branch"
This reverts commit 20832f11b6.
2023-12-19 00:12:53 +02:00
Alex Plate b3e47e3bac Revert "Disable some tests"
This reverts commit 95838d045d.
2023-12-19 00:12:52 +02:00
IdeaVim Bot d67e990065 Update changelog. Action id - 7231244078 2023-12-16 10:06:23 +00:00
Alex Plate 7fb6f4b47f Revert "Refactor key cache"
This reverts commit e159866d3b.
2023-12-15 18:49:18 +02:00
Alex Plate df3b435a1f Revert "Clean swing timer"
This reverts commit 5b65f1b544.
2023-12-15 18:49:18 +02:00
Alex Plate 5b65f1b544 Clean swing timer 2023-12-15 18:43:49 +02:00
Alex Plate e159866d3b Refactor key cache 2023-12-15 18:40:04 +02:00
Alex Plate aa0ce71612 Temporally switch to larger agents 2023-12-15 18:24:31 +02:00
Alex Plate 522e547f99 Clean up patch 2023-12-15 17:45:01 +02:00
Alex Plate 9430341d4e Add artifact rules for all builds 2023-12-15 17:42:08 +02:00
Alex Plate 95838d045d Disable some tests 2023-12-15 17:17:01 +02:00
Alex Plate 20832f11b6 Add back-to-232 branch 2023-12-15 17:01:08 +02:00
Alex Plate 258203f400 Downgrade version of IJ plugin 2023-12-15 16:52:59 +02:00
Alex Plate 3b1768fa4e Update new build configuration name 2023-12-15 16:41:48 +02:00
Alex Plate 23a3085bad Add xyz branch for testing 2023-12-15 16:34:38 +02:00
Alex Plate 78c12e0ea6 Switch to stable version of IDEA 2023-12-15 16:34:38 +02:00
Alex Plate 997cb85663 Do not log LOG.error during test execution 2023-12-15 16:34:37 +02:00
aleksei.plate@jetbrains.comandteamcity 968d5eabfa TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-15 14:26:47 +00:00
aleksei.plate@jetbrains.comandteamcity 590ce1f7ed TeamCity change in 'Ideavim' project: runners of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-15 14:19:03 +00:00
aleksei.plate@jetbrains.comandteamcity 416a8838e4 TeamCity change in 'Ideavim' project: runners of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-15 14:16:39 +00:00
aleksei.plate@jetbrains.comandteamcity f6c349ac31 TeamCity change in 'Ideavim' project: runners of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-15 14:15:47 +00:00
Alex Plate 517c6b40b5 Fix issue with disposed editor
If we process a focus change event, there is a chance that the editor is already disposed
2023-12-15 14:51:27 +02:00
Alex Plate 1fa78935a6 Factor disposable objects on editor opening 2023-12-15 14:28:18 +02:00
Alex Plate 4ddcd56740 Fix(VIM-3085): Open access to VimTypedActionHandler and VimShortcutKeyAction 2023-12-15 12:46:35 +02:00
aleksei.plate@jetbrains.comandteamcity e5a2f33584 TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-08 16:58:34 +00:00
aleksei.plate@jetbrains.comandteamcity c17cf3256a TeamCity change in 'Ideavim' project: project settings were updated 2023-12-08 16:50:30 +00:00
aleksei.plate@jetbrains.comandteamcity 5415bda02d TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ Latest EAP' build configuration were updated 2023-12-08 16:45:24 +00:00
Alex Plate 07cbaeb7aa Add 2023.3 test on TeamCity dashboard 2023-12-08 18:23:23 +02:00
Alex Plate 9d5aa83786 Add info that ideamarks works with global marks only 2023-12-01 15:26:56 +02:00
Alex Plate 463164cb88 [VIM-3214] Add information that ideajoin is not supported everywhere 2023-12-01 14:13:30 +02:00
Alex Plate 4809742088 Do not run tests for esc iin neovim 2023-12-01 12:13:44 +02:00
Alex Plate 9cf0e285b4 Revert "TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Dev Build' build configuration were updated"
This reverts commit b35b51c203.
2023-12-01 11:51:19 +02:00
Alex Plate a6ca6f1cf9 Revert "TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Dev Build' build configuration were updated"
This reverts commit bd7479e1c0.
2023-12-01 11:51:18 +02:00
aleksei.plate@jetbrains.comandteamcity bd7479e1c0 TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Dev Build' build configuration were updated 2023-12-01 09:50:48 +00:00
aleksei.plate@jetbrains.comandteamcity b35b51c203 TeamCity change in 'Ideavim / IdeaVim releases' project: runners of 'Publish Dev Build' build configuration were updated 2023-12-01 09:50:17 +00:00
Alex Plate 5652774888 Exclude kotlin stdlib from the distribution 2023-12-01 11:19:18 +02:00
Alex Plate 836e9a2fbc The dev version of IdeaVim should calculate the version based on a previous non-patched release version
As the patch versions are placed not in the master branch, we should calculate the diff between releases only for releases that are located in master branch
2023-12-01 10:53:01 +02:00
dependabot[bot]andgithub-actions[bot] 64538c255d Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.20 to 1.9.21
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.20 to 1.9.21.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.20...v1.9.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 17:48:06 +02:00
dependabot[bot]andgithub-actions[bot] 62a9293dcf Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.20-1.0.14 to 1.9.21-1.0.15.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.20-1.0.14...1.9.21-1.0.15)

---
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-11-29 17:46:33 +02:00
IdeaVim Bot 1faae92f33 Update changelog after merging PR 2023-11-25 11:16:31 +00:00
samabcdeandlippfi dee808752f Fix(VIM-3176) add test for restore selection after pasting in/below selection 2023-11-25 13:14:29 +02:00
IdeaVim Bot 5590af6995 Update changelog. Action id - 6988421362 2023-11-25 10:06:22 +00:00
filipp 5afd161fba Update minimal supported version to 2023.3 2023-11-24 20:42:48 +02:00
Alex Plate 336efa1e8b Add some tests for one time mode 2023-11-24 17:49:04 +02:00
Alex Plate 568d5ca4ff Fix(VIM-3090): Cmd line mode saves the visual mode
Previously, cmd line mode always returned to normal mode. However, it should keep the visual or one-time modes
2023-11-24 17:42:33 +02:00
Alex Plate a9991f2a50 Convert ProcessGroup to kotlin 2023-11-24 17:00:06 +02:00
Alex Plate 1c8096444a Rename .java to .kt 2023-11-24 17:00:05 +02:00
IdeaVim Bot f424de46e6 Update changelog. Action id - 6979369267 2023-11-24 10:06:47 +00:00
Filipp Vakhitov 8fcca05565 Fix(VIM-3176): Reselecting visual selection after pasting above it select wrong lines 2023-11-23 22:53:07 +02:00
Alex Plate ed1f3cec59 Make sure the injector is initialized in VimShortcutKeyAction 2023-11-23 16:19:13 +02:00
Alex Plate c29a409f28 Log other actions assigned to the escape and enter actions 2023-11-23 15:07:01 +02:00
Alex Plate 1a46936ad6 Suggest fix when two escape shortcuts are assigned to the editor escape action
The case is here: https://youtrack.jetbrains.com/issue/VIM-3162/Escape-stopped-working-after-updating-to-2.7.0#focus=Comments-27-8421289.0-0
2023-11-23 15:07:00 +02:00
Alex Plate e82abfb948 Do not perform keymap check if the plugin is disabled 2023-11-23 15:07:00 +02:00
Alex Plate c3409be780 Fix(VIM-3206): Disable both copilot suggestion and insert mode on a single escape 2023-11-23 15:07:00 +02:00
Alex Plate 1557ab3474 Use single alarm to schedule verifications of the keymap 2023-11-23 15:07:00 +02:00
IdeaVim Bot 75fdda4fbf Update changelog. Action id - 6968202628 2023-11-23 10:06:29 +00:00
Alex Plate 4d75ef2849 Fix(VIM-3204): Add checker that verifies the configuratin of the keymap 2023-11-23 12:01:42 +02:00
Alex Plate a1da23d1ba Log the name of the keymap 2023-11-23 10:14:58 +02:00
Alex Plate c4bc751df7 Fix(VIM-3084): Double update for the status bar icon 2023-11-23 09:01:18 +02:00
Alex Plate 972d89ec6e Refactor companion object to util object 2023-11-23 09:01:17 +02:00
Alex Plate 70f040e104 Create an outline version of icon 2023-11-23 09:01:17 +02:00
Alex Plate d4de0b49c8 Do not run ActionsTest with neovim 2023-11-23 09:01:17 +02:00
dependabot[bot]andgithub-actions[bot] 2a42d58361 Bump io.ktor:ktor-client-cio from 2.3.5 to 2.3.6
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.6/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.5...2.3.6)

---
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-11-22 17:20:49 +02:00
dependabot[bot]andgithub-actions[bot] 14308956d7 Bump org.jetbrains:annotations from 24.0.1 to 24.1.0
Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 24.0.1 to 24.1.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/24.0.1...24.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 17:20:29 +02:00
dependabot[bot]andgithub-actions[bot] 71339a66d7 Bump org.junit.jupiter:junit-jupiter-api from 5.10.0 to 5.10.1
Bumps [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 17:20:10 +02:00
Alex Plate 85f0664b56 Fix the incorrect condition in release actions 2023-11-22 15:34:35 +02:00
Alex Plate 2f86ac0dfa Log the shortcuts that are assigned to esc and enter 2023-11-22 12:20:05 +02:00
IdeaVim Bot 79d7b7a08d Update changelog. Action id - 6955729845 2023-11-22 10:06:50 +00:00
Alex Plate b550d1990e Fix(VIM-3195): Fix escape in injected editor 2023-11-22 12:04:37 +02:00
Alex Plate 22062f0c77 Fix(VIM-3190): Do not use octopus handler if the enter key is used with modifiers like shift or control 2023-11-22 11:51:57 +02:00
Alex Plate 515f613a53 Add tests for other actions 2023-11-22 10:17:30 +02:00
Alex Plate 615ed6b713 Fix(VIM-3203): Split action not works in normal mode 2023-11-22 10:14:37 +02:00
Alex Plate f6eab62c3c Fix(VIM-3184): Revert "VIM-3184: Temporally disable new handlers for the thin client"
This reverts commit 6960a34d02.
2023-11-22 09:42:59 +02:00
Alex Plate 7d1e00ff0d Print information about the existing version id 2023-11-21 13:30:42 +02:00
Filipp Vakhitov 692439953c Rollback to working Idea Version 2023-11-21 13:18:01 +02:00
Alex Plate 6960a34d02 VIM-3184: Temporally disable new handlers for the thin client 2023-11-21 13:09:52 +02:00
Alex Plate b3662d4e6e Fix(VIM-3157): For for PyCharm 2023.1 2023-11-17 16:09:38 +02:00
Alex Plate 50c9b7c352 Fix(VIM-3159): Start new line before current action works in normal mode now 2023-11-17 15:23:31 +02:00
Alex Plate f395d3b2bf Fix(VIM-3186): Do not multiply the enter action by the amount of carets 2023-11-17 15:10:16 +02:00
filipp 4fbf6cbc50 Update minimal supported version to 2023.3 in TeamCity 2023-11-17 14:39:38 +02:00
filipp.vakhitovandteamcity 9916958d6c TeamCity change in 'Ideavim' project: VCS roots of 'Tests for IntelliJ IC-2023.2' build configuration were updated 2023-11-17 12:32:34 +00:00
filipp.vakhitovandteamcity 184a069c7f TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ IC-2023.2' build configuration were updated 2023-11-17 12:32:20 +00:00
filipp.vakhitovandteamcity 0b65346633 TeamCity change in 'Ideavim' project: VCS roots of 'Tests for IntelliJ IC-2023.1' build configuration were updated 2023-11-17 12:31:30 +00:00
filipp.vakhitovandteamcity 11f23dcc9e TeamCity change in 'Ideavim' project: general settings of 'Tests for IntelliJ IC-2023.1' build configuration were updated 2023-11-17 12:29:32 +00:00
filipp f80d1defcb Add Javadoc 2023-11-17 14:00:38 +02:00
Alex Plate e95d6343cb Fix(VIM-3177): Formatting of commit message works again 2023-11-17 13:52:25 +02:00
filipp a9052a068f Fix property tests 2023-11-17 13:05:30 +02:00
filipp b1323c0d67 Fix(VIM-1611): actions related to resolving conflicts doesn't seem to work 2023-11-17 12:43:04 +02:00
filipp 87ceb8fb58 Much better undo 2023-11-17 11:59:27 +02:00
dependabot[bot]andgithub-actions[bot] c3134b9426 Bump org.junit.jupiter:junit-jupiter-engine from 5.10.0 to 5.10.1
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 17:36:01 +02:00
dependabot[bot]andgithub-actions[bot] 06c036d373 Bump org.jetbrains.kotlin:kotlin-stdlib from 1.9.10 to 1.9.20
Bumps [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) from 1.9.10 to 1.9.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.10...v1.9.20)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 17:34:21 +02:00
dependabot[bot]andgithub-actions[bot] 2f8bd29725 Bump com.squareup.okhttp3:okhttp from 4.11.0 to 4.12.0
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 4.11.0 to 4.12.0.
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okhttp/compare/parent-4.11.0...parent-4.12.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-11-15 17:23:00 +02:00
dependabot[bot]andgithub-actions[bot] 1eae211b41 Bump io.ktor:ktor-client-core from 2.3.4 to 2.3.6
Bumps [io.ktor:ktor-client-core](https://github.com/ktorio/ktor) from 2.3.4 to 2.3.6.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.6/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.4...2.3.6)

---
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-11-15 17:21:35 +02:00
IdeaVim Bot b02eb7a422 Update changelog. Action id - 6862042155 2023-11-14 10:06:35 +00:00
Alex Plate 3db31e9347 Fix(VIM-3159): Shift-enter now works in normal mode again 2023-11-14 11:12:49 +02:00
Alex Plate 1dc6045ae1 Fix(VIM-3157): Do not invoke enter in invokeLater for python console 2023-11-13 12:25:49 +02:00
IdeaVim Bot 2436164b1e Update changelog. Action id - 6848428489 2023-11-13 10:07:34 +00:00
Alex Plate c13fc8a805 Fix(VIM-3168): Do not switch to block caret after enter if the IdeaVim is disabled 2023-11-13 11:39:07 +02:00
Alex Plate 41025d78de Fix(VIM-3165): Do not process enter key as IdeaVim shortcut if it's not an actual keypress 2023-11-13 11:23:26 +02:00
Filipp Vakhitov b3ad222cdc Change default undo behavior 2023-11-10 19:22:43 +02:00
Alex Plate efd9ed0a5f Add logs around pressing of esc and enter keys of the user 2023-11-10 17:17:13 +02:00
Alex Plate 9d20061924 Do not register VimShortcutKeyAction for esc and enter keys
This is no more needed as we have a different way of getting the key. Also, this causes a bug VIM-3169
2023-11-10 17:17:13 +02:00
Filipp Vakhitov ddfe8cf361 Support temporary options 2023-11-10 16:01:22 +02:00
Filipp Vakhitov 93c83f773a Add generated JSON files to gitignore 2023-11-10 16:01:22 +02:00
Filipp Vakhitov 876e16fa9e Support registering commands from json 2023-11-10 16:01:21 +02:00
Filipp Vakhitov 37067d5c72 Fix typos 2023-11-10 16:01:21 +02:00
Filipp Vakhitov 083ac8cfa3 Convert RegisterActions to Kotlin 2023-11-10 16:01:21 +02:00
Filipp Vakhitov fe6c1ae452 Add LazyVimCommand and CommandProvider 2023-11-10 16:01:21 +02:00
Filipp Vakhitov 30165f5047 Support keypad keys in Vim key notation 2023-11-10 16:01:21 +02:00
Filipp Vakhitov 3046c61447 Generating json by annotations 2023-11-10 16:01:21 +02:00
Filipp Vakhitov ced50bb2e8 Mark xml related classes for commands as deprecated 2023-11-10 16:01:21 +02:00
Filipp Vakhitov dee84bcc63 Annotate commands 2023-11-10 16:01:21 +02:00
dependabot[bot]andgithub-actions[bot] 0f0bafb66a Bump io.ktor:ktor-client-auth from 2.3.4 to 2.3.6
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 2.3.4 to 2.3.6.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.6/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.4...2.3.6)

---
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-11-08 16:23:42 +00:00
dependabot[bot]andgithub-actions[bot] 7cdc3611a5 Bump io.ktor:ktor-client-content-negotiation from 2.3.5 to 2.3.6
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.6/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.5...2.3.6)

---
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-11-08 18:06:47 +02:00
dependabot[bot]andgithub-actions[bot] 6eda6aebba Bump com.google.devtools.ksp:symbol-processing-api
Bumps [com.google.devtools.ksp:symbol-processing-api](https://github.com/google/ksp) from 1.9.10-1.0.13 to 1.9.20-1.0.14.
- [Release notes](https://github.com/google/ksp/releases)
- [Commits](https://github.com/google/ksp/compare/1.9.10-1.0.13...1.9.20-1.0.14)

---
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-11-08 17:56:23 +02:00
dependabot[bot]andgithub-actions[bot] 2d23c81ebb Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.5 to 2.3.6
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.6/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.5...2.3.6)

---
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-11-08 17:54:12 +02:00
dependabot[bot]andgithub-actions[bot] 5602058849 Bump org.junit.jupiter:junit-jupiter-params from 5.10.0 to 5.10.1
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 17:53:43 +02:00
IdeaVim Bot b1ec021c1e Update changelog. Action id - 6782896069 2023-11-07 10:07:22 +00:00
IdeaVim Botandteamcity 7073b2410b Preparation to 2.7.0 release 2023-11-07 07:51:06 +00:00
aleksei.plate@jetbrains.comandteamcity ab9068bc0a TeamCity change in 'Ideavim / IdeaVim releases' project: parameters of 'Publish minor release' build configuration were updated 2023-11-07 07:46:22 +00:00
Alex Plate 0c66fb474e Fix(VIM-3130): Change the build version to 2023.1.2
There is a problem with building IdeaVim on newer version. Some of the internal classes
was migrated from java to kotlin. However, this change is not binary compatible because of a kotlin bug.
Building IdeaVim on java version of this class fixes this problem.
2023-11-07 09:43:11 +02:00
IdeaVim Bot fef6c651ea Update changelog. Action id - 6754174825 2023-11-04 10:06:18 +00:00
Alex Plate 620f54344f Fix(VIM-3138): Do not try to register disposer if the caret is already disposed 2023-11-03 19:19:17 +02:00
Alex Plate ef1259a87a Print the name of the branch when we check it out 2023-11-03 18:32:57 +02:00
Alex Plate 5ef4af6b55 Revert "Testing CI integrations: simple change"
This reverts commit b294bdd013.
2023-11-03 18:20:00 +02:00
Alex Plate 6d17304e4e Revert "Testing CI integration: build plugin instead of pushing it"
This reverts commit dc95c7fc2c.
2023-11-03 18:19:48 +02:00
Alex Plate 2e4062b5db Fix the incorrect checkout command 2023-11-03 18:14:30 +02:00
Alex Plate b294bdd013 Testing CI integrations: simple change 2023-11-03 17:41:16 +02:00
Alex Plate dc95c7fc2c Testing CI integration: build plugin instead of pushing it 2023-11-03 17:40:06 +02:00
Alex Plate dfe8c43c33 Fix VIM-3146 for Rider
Now we process IdeaVim esc before Rider's esc
2023-11-03 17:23:41 +02:00
Alex Plate 3e54ad5a68 Get rid of ordering with terminalEnter
This caused a blocker issue VIM-3124. The problem is that this ordering doesn't work well in PyCharm.
Unfortunately, this means that we have to reopen VIM-3122
2023-11-03 16:36:45 +02:00
Alex Plate 288c66d8a2 Refactor execution of vim script
Now we set the flag `executingVimscript` during execution of any vimscript and we run initialization of delayed plugins after every call for execute.

This is needed to properly initialize plugins after call for `source` command. Previously this command initialized extensions as they met in the script, what may cause incorrect behaviour. With this update, we unified an approach for executing vim script.
2023-11-03 13:27:38 +02:00
Alex Plate 44c8a97f44 Consider the case when we load .ideavimrc file from using the source command
This includes updating the "ReloadIdeaVimRc" button and setting the correct mapping owner

Previously, the `source` command loaded ~/.ideavimrc file as a regular file, thus several features didn't work properly.
This refactoring was caused by this PR: https://github.com/JetBrains/ideavim/pull/736
2023-11-03 13:27:38 +02:00
Alex Plate 60c27b1dea Add documentation about some aspects of IdeaVim implementation 2023-11-03 13:27:38 +02:00
IdeaVim Bot ce8b77b240 Update changelog. Action id - 6743778172 2023-11-03 10:08:12 +00:00
IdeaVim Bot 718c5fb30e Update changelog after merging PR 2023-11-03 09:31:18 +00:00
chylexandAlex Pláte 419160724c Fix(VIM-2933): Reloading/sourcing .ideavimrc does not initialize new plugins 2023-11-03 11:27:41 +02:00
dependabot[bot]andgithub-actions[bot] c905dfe6d8 Bump io.ktor:ktor-client-cio from 2.3.4 to 2.3.5
Bumps [io.ktor:ktor-client-cio](https://github.com/ktorio/ktor) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.5/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.4...2.3.5)

---
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-11-03 07:17:54 +00:00
dependabot[bot]andgithub-actions[bot] 70eb008412 Bump io.ktor:ktor-client-content-negotiation from 2.3.4 to 2.3.5
Bumps [io.ktor:ktor-client-content-negotiation](https://github.com/ktorio/ktor) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.5/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.4...2.3.5)

---
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-11-03 09:02:20 +02:00
dependabot[bot]andgithub-actions[bot] 93feaadacf Bump org.jetbrains.intellij from 1.15.0 to 1.16.0
Bumps org.jetbrains.intellij from 1.15.0 to 1.16.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-11-03 06:53:44 +00:00
dependabot[bot]andgithub-actions[bot] 0b7610607d Bump io.ktor:ktor-serialization-kotlinx-json from 2.3.4 to 2.3.5
Bumps [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/ktorio/ktor/releases)
- [Changelog](https://github.com/ktorio/ktor/blob/2.3.5/CHANGELOG.md)
- [Commits](https://github.com/ktorio/ktor/compare/2.3.4...2.3.5)

---
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-11-03 08:50:30 +02:00
IdeaVim Bot 922fea5395 Update changelog after merging PR 2023-11-03 06:49:12 +00:00
Matt EllisandAlex Pláte 1841b7c4e6 Allow tilde forward slash on Windows 2023-11-03 08:46:57 +02:00
Alex Plate ed966faaf4 Update changelog 2023-10-30 11:23:01 +02:00
Alex Plate 03efeed6ae Use the correct version of IdeaVim in changelog 2023-10-30 09:42:21 +02:00
Alex Plate 675c5ae480 Update changelog 2023-10-30 09:12:35 +02:00
Alex Plate d575b22e2e Set the origin branch for "release" 2023-10-30 09:08:30 +02:00
Alex Plate 5e4ee1b60f Fix the issue with the status bar icon
In the 2023.3 EAP call to isAvailable seems to happen much earlier than it used to be.
This caused the fact that `injector` is not yet initialised at that moment and we fail with an exception. All other status bar icons are also not loaded because of this exception.
Adding `VimPlugin.getInstance()` is a quick workaround to initialize the needed injector
2023-10-28 08:53:21 +03:00
IdeaVim Botandteamcity d8ce20c2f9 Preparation to 2.6.0 release 2023-10-27 19:04:28 +00:00
Alex Plate b164dc1b55 Revert "Remove deprecated MarkGroup.java"
This reverts commit fdd32cb954.
2023-10-27 21:41:18 +03:00
filipp 530eba3d00 Update tests for disabled oldundo option 2023-10-27 19:18:53 +03:00
filipp 808066f2e2 Disable new undo before release 2023-10-27 19:18:53 +03:00
Alex Plate cb3e683c8e Use different API for creating editor disposable 2023-10-27 17:00:06 +03:00
Alex Plate 6ff57775ed Add has feature info to the changelog 2023-10-27 17:00:06 +03:00
Alex Plate 6c07687a86 Fix enter in read-only files
VIM-3122
2023-10-27 17:00:06 +03:00
Alex Plate 497a8c19c5 Update information about new ShowHoverInfo action 2023-10-27 17:00:06 +03:00
IdeaVim Bot c13f7468ef Update changelog. Action id - 6665767330 2023-10-27 10:06:58 +00:00
IdeaVim Bot 847872cdb6 Update changelog after merging PR 2023-10-27 09:47:54 +00:00
Matt EllisandAlex Pláte f0abe5d80d Fix range for fall back comment mode
Callback to reset caret was always called, even if action was unavailable. Fall back action would therefore act on current line only.
2023-10-27 12:45:02 +03:00
IdeaVim Bot 465c5b9e77 Update changelog after merging PR 2023-10-27 09:31:25 +00:00
chylexandAlex Pláte fb78cdd304 Add operating system type to has() function 2023-10-27 12:28:06 +03:00
IdeaVim Bot 5b17fe2410 Update changelog after merging PR 2023-10-27 08:08:57 +00:00
Matt EllisandGitHub 5fd54dccd3 Add support for ShowHoverInfo action to 2023.1 and 2023.2 (#733)
* Fix(VIM-2106) Implement ShowHoverInfo if not provided by platform

* Bump minimum build to 2023.1 RTM
2023-10-27 11:06:11 +03:00
Alex Plate 1695afd915 Use 2023.2.4 version for releases 2023-10-27 10:42:36 +03:00
Alex Plate 5ab549ae96 Switch to 2023.2.4 for github, nvim, proprty, and long running tests as the compilation with the latest EAP is now broken 2023-10-27 10:42:16 +03:00
Alex Plate 35123e7c1e Remove the unused property in TC configuration 2023-10-27 10:40:49 +03:00
Alex Plate 1badade841 Fix incorrect condition for update changelog action 2023-10-27 10:34:36 +03:00
Alex Plate b357625529 Add check that actions should work only on the original repo
Because of some reason actions started on
https://github.com/JetBrains/ideavim/pull/731
pull request and updated it.
With this change, forks won't be affected by forked actions. If the action is still needed on fork, these conditions can be changes
2023-10-27 10:33:26 +03:00
filipp 9ccd39d724 Better VIM-696 2023-10-26 16:38:12 +03:00
filipp c876079e04 Fix(VIM-1639): Ctrl-o and Ctrl-i jumping in files of different projects
A commit with proper notation to run all the "Fixed tasks"
2023-10-26 13:38:45 +03:00
IdeaVim Bot 162c1c59fe Update changelog. Action id - 6652550069 2023-10-26 10:07:46 +00:00
filipp 06ef1c1182 VIM-1639 Ctrl-o and Ctrl-i jumping in files of different projects 2023-10-26 10:23:16 +03:00
filipp a9ba9789fd Fix(VIM-696): Vim selection issue after undo 2023-10-25 16:55:32 +03:00
filipp fdd32cb954 Remove deprecated MarkGroup.java 2023-10-25 16:55:32 +03:00
IdeaVim Bot 9fd7d86998 Add pWydmuch to contributors list 2023-10-25 09:03:21 +00:00
IdeaVim Bot 5973903313 Update changelog after merging PR 2023-10-25 06:13:45 +00:00
Patryk WydmuchandAlex Pláte 75e4b19b88 Fix md links in doc 2023-10-25 09:10:24 +03:00
Alex Plate af7bdb55a1 Fix rider issues with the new handler 2023-10-20 17:42:05 +03:00
Alex Plate 69af9aeff0 Fix(IDEA-300030): Mapping with enter to action may not work 2023-10-20 16:16:28 +03:00
Alex Plate 88f4192d61 Fix tests 2023-10-20 12:32:05 +03:00
Alex Plate 96db8a326e Add teamcity tests for stable versions of IJ 2023-10-20 11:16:50 +03:00
Alex Plate 8c06767fdc Show error instead of warning in case of exception 2023-10-20 11:10:55 +03:00
Alex Plate 25877e369b Add comment saying that the ideaglobalmode option is experimental 2023-10-20 10:15:42 +03:00
Alex Plate 0271a475a2 Update docs 2023-10-20 10:15:42 +03:00
IdeaVim Bot eef3ab5a15 Update changelog. Action id - 6481002995 2023-10-11 10:07:13 +00:00
Alex Plate 26f48c5820 Fix(VIM-3095): Fix missing ellipsis digraph 2023-10-11 12:27:00 +03:00
IdeaVim Bot 236ca36c79 Update changelog after merging PR 2023-10-11 08:11:10 +00:00
Matt EllisandAlex Pláte 405b9ba7ea Fix(VIM-2562): Fix hang with multi-width chars in command line 2023-10-11 11:08:08 +03:00
Alex Plate ab9bd76d34 Update isOctopusEnabled function 2023-10-11 09:38:30 +03:00
Alex Plate 677da7d80a Create a test with different combination of enter handlers 2023-10-11 09:18:51 +03:00
Alex Plate b3ad2fd715 Next handler may be null 2023-10-10 16:01:24 +03:00
Alex Plate 97ca6ce5b8 Dialogs are now closed by esc 2023-10-10 15:33:49 +03:00
Alex Plate e1abc4374e Correct the shape of the caret after entering the cell in py notebooks 2023-10-10 13:08:26 +03:00
Alex Plate 9eeeb15c6c Enable octopus handler by default 2023-10-10 11:39:14 +03:00
aleksei.plate@jetbrains.comandteamcity 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]andgithub-actions[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]andgithub-actions[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 EllisandAlex Pláte 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 EllisandAlex Pláte c37e2f4176 Update fallback window when all windows close 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 626d59d3fc Only use fallback for first initialisation
Subsequent initialisation will be treated like EDIT
2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte ddd058a26f Fix name of usage statistic 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 32b8d03c5e Improve modifying string and string list options 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 71f3e1b4f1 Support per-window global values
For local-to-window options
2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte aa6f53fa68 Require editor when getting/setting global option 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 1335e9f7f2 Improve detection of editor open scenarios 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte c75599b6a0 Refactor editor options initialisation 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 2efdfbd988 Remove unnecessary calls from tests 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 700198d8bc Remove test only vimscript execute method 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 3efab5928e Evaluate ideavimrc in the fallback window context 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 93037b6866 Add fallback window to capture local option state 2023-09-11 11:04:09 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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áteandGitHub 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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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áteandGitHub 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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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: https://github.com/vim/vim/commit/e978b4534a5e10471108259118c0ef791106fd92
2023-08-18 17:04:58 +03:00
filipp.vakhitovandteamcity 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.vakhitovandteamcity 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.vakhitovandteamcity 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.vakhitovandteamcity 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]andAlex Pláte 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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andAlex Pláte 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]andgithub-actions[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]andAlex Pláte 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 VasquezandAlex Pláte 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 VasquezandAlex Pláte 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 EllisandAlex Pláte cb8385a092 Fix issue adding back hidden status bar widget 2023-08-03 15:00:28 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte d112030a8e Add explanatory comment about InsertExitModeAction 2023-08-01 12:22:26 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte dd24ebf184 Rename OptionsScope.AUTO to EFFECTIVE 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 7ef2be625f Refactor parseOptionLine for readability 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte e3957d2207 Minor updates from code review 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 8ce1307d51 Fix tests under latest SDK 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte e1141dcd1c Remove old option listener API 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 4e33b5f351 Migrate to effective value change listeners 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 54dc184dd0 Introduce option effective value change listener 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 1977ce3ea5 Add simple one to many collection 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte c8c9d1729e Introduce listener for global option changes 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte e6e4b81f3b Simplify guicursor caret attributes cache 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 1c465f028e Fix option scopes for :let command 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 12824c22c4 Add :setglobal command 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 64c5ad72a3 Use accessor API to set global-local value 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 080c2059ee Format unset global-local toggle options 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte a288850010 Add support for resetting option to global value 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 16811602d2 Support global-local options 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 6d94d719e3 Only notify change if option has changed 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 749d111e89 Reset options for current editor only
Matches Vim behaviour for `:set all&`
2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 365d8d34ce Introduce AUTO scope for effective option values 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 7e1ce5a203 Use Vim terminology in storage service 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte aeec754f7e Override IjVimEditor.toString for better debugging 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte aff956f4c8 Update parsed value cache for declared scope 2023-07-31 11:28:32 +03:00
Matt EllisandAlex Pláte 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.comandteamcity 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.comandteamcity 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.comandteamcity 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.comandteamcity 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.comandteamcity 6efa30152f TeamCity change in 'Ideavim' project: 'Qodana checks' build configuration settings were updated 2023-07-24 13:13:53 +00:00
aleksei.plate@jetbrains.comandteamcity 781fb476e7 TeamCity change in 'Ideavim' project: 'Qodana checks' build configuration settings were updated 2023-07-21 09:46:26 +00:00
aleksei.plate@jetbrains.comandteamcity 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.comandteamcity 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.comandteamcity 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.comandteamcity 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 EllisandAlex Pláte 6bd1782c4b Fix OS specific values in tests 2023-07-19 18:04:02 +03:00
Matt EllisandAlex Pláte 2f5d402c61 Support :set! to output as a single column 2023-07-19 18:04:02 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 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 EllisandAlex Pláte 2e9b626523 Fix formatting of value pair options 2023-07-19 18:04:02 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 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
samabcdeandAlex Pláte 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 VasquezandAlex Pláte 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áteandGitHub 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 YzeiriandAlex Pláte dd490967d3 Add Matchit PHP patterns 2023-06-12 10:39:45 +03:00
Martin YzeiriandAlex Pláte 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 YzeiriandAlex Pláte 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 YzeiriandAlex Pláte 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.comandteamcity 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
samabcdeandAlex Pláte 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
samabcdeandAlex Pláte 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 EllisandAlex Pláte 94ef9692f2 Fix typo in ideajoin notification 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte 798750bf95 Use options API for more cached values 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte e8d9bd551f Add helper functions to storage service 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte d08ea2ee9b Introduce simple cache for parsed option values 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte 52dcb2d290 Treat 'iskeyword' as a local-to-buffer option 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 5a3c5bd761 Treat 'virtualedit' as a global-local option 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte 66830b7cb3 Treat 'idearefactor' as a global-local option 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte b742865e8a Treat 'ideajoin' as a global-local option 2023-05-17 10:54:13 +02:00
Matt EllisandAlex Pláte 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 YzeiriandAlex Pláte 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 YzeiriandAlex Pláte 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 YzeiriandAlex Pláte 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 YzeiriandAlex Pláte d834d0fdd9 Move a unit test 2023-04-26 11:14:06 +03:00
dependabot[bot]andAlex Pláte 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]andAlex Pláte 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]andAlex Pláte 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 EllisandAlex Pláte 29bd7cbe6e Update note to include how to add an option 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte a51fc9c612 Add extra notes about the history of refactorings 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 77ad9deeba Use interface for IJ specific options 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte ffa6c45b62 Reset test injector after each test 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 957874ce2b Remove unused @JvmField annotations 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 330d92116c Refine inheritance of IJ specific option classes 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 899adfc1b0 More refactoring to use new API 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 23535a6ad5 Remove OptionValueAccessor 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte e8b7f00370 Remove accessor from new API 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 3f2c5070ee Migrate local option access to new API 2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 50384a526b Introduce option accessor delegated properties
Also migrates tests to use new properties
2023-04-26 10:26:06 +03:00
Matt EllisandAlex Pláte 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.comandteamcity 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.comandteamcity 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.comandteamcity 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.comandteamcity 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.comandteamcity 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
StzxandAlex Pláte 26ed6670d5 Fix dispose operation 2023-04-04 08:02:03 +03:00
Alex PláteandGitHub 0aa4ea7bc8 Update updateAffectedRate.yml 2023-04-04 07:59:34 +03:00
dependabot[bot]andAlex Pláte 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áteandGitHub 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 EllisandAlex Pláte f803c0aa72 Add deterministic initialisation of options 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte cbf6c30be6 Make option value accessor more strongly typed 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte a6f62dd837 Remove unnecessary assert
checkIfValueValid will check datatype is correct
2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 18d52c2459 Make addListener more strongly typed 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 3ab5fc1120 Improve handling of variance 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte f7f60f5079 Fix warnings 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte b7dcff79ae Improve modifyOptionValue 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte c857b9d6dd Make functions private to SetCommand 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 8f8c05e451 Remove string based option helper functions 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte af3ebe60f4 Use strongly typed options instead of constants 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte be64d24c00 Introduce strongly typed properties for options 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 8f04575efd Extract IJ specific options to own file 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 4e1b8f3ec4 Extract IJ specific options to own class 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte c8ca6671ab Remove unused functions 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 88f0d2e532 Replace constants with strongly typed properties 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 76a4499c9f Introduce properties for option definitions 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte e1bd790294 Add tests to ensure ideaput is added or required 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 6d193ca1f8 Extract option definitions to own file 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte d932172e70 Extract option definitions to own class 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 9bbf5824fe Use lazy property delegate 2023-03-31 17:37:48 +03:00
Matt EllisandAlex Pláte 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.vakhitovandtcuser 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.vakhitovandtcuser 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.vakhitovandtcuser 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.vakhitovandtcuser 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.vakhitovandtcuser 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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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]andgithub-actions[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.plateandtcuser 2a6b6f89f4 TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project parameters were changed 2023-03-30 04:55:46 +00:00
aleksei.plateandtcuser ca459bef0d TeamCity change in 'IntelliJ IDEA plugins / IdeaVim' project: project parameters were changed 2023-03-30 04:55:10 +00:00
aleksei.plateandtcuser 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áteandGitHub 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]andAlex Pláte 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 SevastianovandAlex Pláte 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 Ellisandlippfi c192f319d1 Simplify setting known options a little 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 097dfa06a6 Add a couple of convenience functions 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 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 Ellisandlippfi 2bc9640b88 Remove last of 'set' validation code 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 40ffddf5ef Push toggle option validation into ':set' command 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi bd28c9da23 Push more ':set' command validation into command 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 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 Ellisandlippfi 40d9a201ea Use bundle for exception messages 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 6e2ac21fab Refactor getDefaultValue into property 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 7858cf57c6 Fix number operations for set command 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 91c8e7ebda Rename getOptionByNameOrAbbrev 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 6332ee6955 Remove unnecessary argument text 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 3c3014fdc6 Remove unused getAbbrevs function 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi d97e4c44ee Rename "token" and remove default argument 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 1b88c514da Move IjVimOptionGroup to correct package & rename 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 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 Ellisandlippfi b3551b4ee5 Remove empty file 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 4232d3d8a2 Remove unused local options types 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 73b64c19ff Move OptionValueAccessor to options package 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 15ccdb2055 Remove unnecessary getOptionServiceImpl 2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 418067b077 Remove unused deprecated method
No external usages
2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 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 Ellisandlippfi b831aa8eca Fix incorrect type parameter in cast
Cast succeeds, but only due to erasure
2023-03-10 10:17:45 +02:00
Matt Ellisandlippfi 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
kawaghandAlex Pláte 9f5ed99b79 Add tests to secure % motion behavior with escaped parentheses 2023-03-10 09:37:46 +02:00
kawaghandAlex Pláte 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 PalmerandAlex Pláte 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 PalmerandAlex Pláte 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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áteandGitHub 2834e25945 Update README.md 2023-01-23 10:07:12 +02:00
dependabot[bot]andAlex Pláte 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.koshcheevandtcuser 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 EllisandAlex Pláte 308e8bfbc3 Replace default interface methods with extensions 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 62ecddb719 Replace setOptionValue with :set in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte a852b0efbc Replace unsetOption with :set in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 3dd6a55727 Replace setOption with :set in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 3993e3b9c0 Migrate getOptionValue to new API in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 42b8b5814f Simplify check for option existence 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 60de6f57fd Replace isDefault calls in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 11fcb17c29 Replace appendValue with :set in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 98246e23dd Introduce options value accessor to VimTestCase 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 61e2e81719 Avoid race condition initialising OptionService 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 62e600443e Remove unnecessary options reset in tests 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 5bde4d75ce Remove test option after tests finish 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 9c54fbe733 Migrate isSet to option value accessor API 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 9cc206d548 Introduce friendly API for consuming options 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte a97cf8a3ec Remove unnecessarily cached list field 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte f0ea5f3968 Extract IDEA specific option constants 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 8d44afc8e6 Sort option name constants 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 62ed3bd7f2 Rename option name constants 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 89889924fc Tidy up imports 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte dda592cb39 Small refactor 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte bb44044956 Move IJ specific options out of engine 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte d95810f6e5 Sort options 2023-01-18 17:47:32 +02:00
Matt EllisandAlex Pláte 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 ElmquistandAlex Pláte 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 EllisandAlex Pláte 3be6acf5b5 Restore type qualifiers for some static methods 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte b5619adf45 Cleanup MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 62540fe1b2 Reformat MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte fd85fdf0ac Convert MotionGroup to Kotlin 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte e09208c757 Rename MotionGroup.java to MotionGroup.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 753f2110c6 Clean up ScrollGroup.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 7917e8417b Import EditorHelper methods 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte a0447b4840 Convert ScrollGroup from Java to Kotlin 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 2e561a2af4 Rename ScrollGroup.java to ScrollGroup.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte a330a3e472 Make editor converter property accessors inline 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 229d64fcf8 Add ScrollViewHelper.kt to ThirdPartyLicenses.md 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 6df695f650 Cleanup ScrollViewHelper.kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte d77edaa056 Convert ScrollViewHelper to Kotlin 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 4f78246c7f Rename ScrollViewHelper.java to .kt 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 8d3ccdaf9c Extract scroll functionality into ScrollGroup 2023-01-06 09:22:08 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 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 YzeiriandAlex Pláte 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áteandGitHub 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 YzeiriandAlex Pláte 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
RuninhoandAlex Pláte faebf66065 improve formating 2022-12-28 08:58:14 +02:00
RuninhoandAlex Pláte 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 EllisandAlex Pláte c0e17a6c61 Fix issue with lastColumn not being invalidated 2022-12-27 15:45:18 +02:00
Matt EllisandAlex Pláte 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áteandGitHub 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
AdaandAlex Pláte 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.plateandtcuser 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.plateandtcuser 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 PlateandAlex Pláte 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
RuninhoandAlex Pláte ceaf290f5e check offset, add test for put before guard 2022-11-29 08:44:13 +02:00
RuninhoandAlex Pláte 5df9ae57ce Fix(VIM-2577) paste not working at end of notebook cell 2022-11-29 08:44:13 +02:00
Alex PláteandGitHub 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 EllisandAlex Pláte 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 EllisandAlex Pláte 22e7fa1cf3 Add comments 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte 101dc355ba Rename parameters in Mark and Jump 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 53cb5d1fe9 Rename more logical position helper functions 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte 0978ca616f Rename caret logical position helper functions 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte bbf42c0a28 Rename editor logical position helper functions 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte 7df04c6e2e Rename VimLogicalPosition to BufferPosition 2022-11-17 14:07:46 +01:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 27d1170c75 Move creating adjusted offset out of action 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte 11c850a41e Remove unused property 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte ff4ee06a1f Remove unnecessary setting of vimLastColumn 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte 0549f32d6e Remove unnecessary base class 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 50ba1a1c4e Simplify overloads 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte ee45d2fb38 Remove unused postMove hooks 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte a94822b79a Remove unused preMove hooks 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte b5aba454ae Remove more postMove overrides 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte a49631e986 Start to refactor postMove and intended column 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte bb31b5f2d3 Remove unused hooks for SingleExecution 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte 8ad08d466e Refactor motion handler to combine caret move 2022-11-16 09:41:59 +01:00
Matt EllisandAlex Pláte ab31183a93 Regroup line motion functions 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte ef73733596 Remove unnecessary method from VimCaret 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 4b45d4cf09 Group VimCaret related functions and properties 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte e0b3e1db24 Move StrictMode to engine 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte e0b51d653a Move action to correct package 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte c17ebbf4d7 Rename various scroll functions 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 44a26d59a4 Rename screen line functions to "display" 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 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 EllisandAlex Pláte 9a4b9419eb Rearrange VimMotionGroup to group related functions
No code changes
2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 89548d132a Remove obsolete helper method 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte 45dbb2cd3b Remove JavaVimTestCase base class
Can also now apply @TestWithoutNeovim to an entire class
2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte a95203e2c9 Fix Gradle warning for missing task dependency 2022-11-15 10:34:12 +02:00
Matt EllisandAlex Pláte a79fc4980e Fix Gradle warning from verifyPluginConfiguration 2022-11-15 10:34:12 +02:00
aleksei.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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 EllisandAlex Pláte 45908f2a84 Remove unnecessary scroll method 2022-10-28 08:15:32 +03:00
Matt EllisandAlex Pláte 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
TeamCityandtcuser 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áteandGitHub 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 EllisandAlex Pláte 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
chylexandAlex Pláte 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.plateandtcuser 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:
https://github.com/vim/vim/commit/b9115da4bec5e6cfff69da85cc47c42dd67e42e4
https://github.com/vim/vim/pull/8670

VIM-2699
2022-07-14 12:08:26 +03:00
aleksei.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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áteandAlex 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.plateandtcuser 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.plateandtcuser 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 EllisandAlex Pláte 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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.plateandtcuser 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
1740 changed files with 139395 additions and 68906 deletions
+1
View File
@@ -7,3 +7,4 @@ indent_style = space
[*.kt]
indent_size = 2
indent_style = space
ktlint_standard_no-wildcard-imports = disabled
+1
View File
@@ -0,0 +1 @@
* text=auto eol=lf
+32
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
# This workflow syncs changes from the docs folder of IdeaVim to the IdeaVim.wiki repository
name: Check new plugin dependencies
on:
workflow_dispatch:
schedule:
- cron: '0 5 * * *'
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- name: Fetch origin repo
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '21'
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
@@ -0,0 +1,50 @@
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
name: Close YouTrack on commit
on:
workflow_dispatch:
push:
branches: [ master ]
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 300
- name: Get tags
run: git fetch --tags origin
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
# The last successful job was marked with a tag
- name: Get commit with last workflow
run: |
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-close-youtrack)" >> $GITHUB_ENV
- name: Update YouTrack
run: ./gradlew --no-configuration-cache updateYoutrackOnCommit
env:
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}
- name: Update tags
run: |
git tag --delete workflow-close-youtrack || true
git push origin :refs/tags/workflow-close-youtrack || true
git tag workflow-close-youtrack
git push origin workflow-close-youtrack
+15 -4
View File
@@ -20,6 +20,11 @@ on:
schedule:
- cron: '44 12 * * 4'
permissions:
actions: read
contents: read
security-events: write
jobs:
analyze:
name: Analyze
@@ -34,12 +39,18 @@ jobs:
# 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: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '21'
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -50,7 +61,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v3
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -64,4 +75,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v3
+33
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
name: Testing CI integrations
on:
workflow_dispatch:
schedule:
- cron: '0 5 * * *'
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 300
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Run tests
run: ./gradlew --no-configuration-cache integrationsTest
env:
YOUTRACK_TOKEN: ${{ secrets.YOUTRACK_TOKEN }}
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
+36
View File
@@ -0,0 +1,36 @@
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
name: Kover
on:
workflow_dispatch:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 300
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '21'
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
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]' && github.repository == 'JetBrains/ideavim' }}
steps:
- name: Auto-merge Dependabot PR
run: gh pr merge --auto --rebase "$PR_URL"
env:
PR_URL: ${{github.event.pull_request.html_url}}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
+13 -10
View File
@@ -4,39 +4,42 @@
name: Update Changelog On PR
on:
pull_request:
workflow_dispatch:
pull_request_target:
types: [ closed ]
jobs:
build:
if: github.event.pull_request.merged == true
if: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Set up JDK 11
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '11'
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Update authors
id: update_authors
run: ./gradlew updateMergedPr -PprId=${{ github.event.number }}
run: ./gradlew --no-configuration-cache updateMergedPr -PprId=${{ github.event.number }}
env:
GITHUB_OAUTH: ${{ secrets.AUTOMATION_TOKEN }}
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: master
commit_message: Update changelog after merging PR
commit_user_name: Alex Plate
commit_user_email: aleksei.plate@jetbrains.com
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
commit_message: Update changelog after merging PR
commit_user_name: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
file_pattern: CHANGES.md
+81
View File
@@ -0,0 +1,81 @@
name: Run Non Octopus UI Tests
on:
workflow_dispatch:
schedule:
- cron: '0 12 * * *'
jobs:
build-for-ui-test-mac-os:
if: github.repository == 'JetBrains/ideavim'
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 21
- name: Setup FFmpeg
run: brew install ffmpeg
# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2.4.2
- name: Build Plugin
run: gradle :buildPlugin
- name: Run Idea
run: |
mkdir -p build/reports
gradle --no-configuration-cache runIdeForUiTests -Doctopus.handler=false > build/reports/idea.log &
- name: Wait for Idea started
uses: jtalk/url-health-check-action@v3
with:
url: http://127.0.0.1:8082
max-attempts: 20
retry-delay: 10s
- name: Tests
run: gradle :tests:ui-ij-tests:testUi
- name: Move video
if: always()
run: mv tests/ui-ij-tests/video build/reports
- name: Move sandbox logs
if: always()
run: mv build/idea-sandbox/IC-*/log_runIdeForUiTests idea-sandbox-log
- name: Save report
if: always()
uses: actions/upload-artifact@v4
with:
name: ui-test-fails-report-mac
path: |
build/reports
tests/ui-ij-tests/build/reports
idea-sandbox-log
# build-for-ui-test-linux:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - name: Setup Java
# uses: actions/setup-java@v2.1.0
# with:
# distribution: zulu
# java-version: 11
# - name: Build Plugin
# run: gradle :buildPlugin
# - name: Run Idea
# run: |
# export DISPLAY=:99.0
# Xvfb -ac :99 -screen 0 1920x1080x16 &
# mkdir -p build/reports
# gradle :runIdeForUiTests #> build/reports/idea.log
# - name: Wait for Idea started
# uses: jtalk/url-health-check-action@1.5
# with:
# url: http://127.0.0.1:8082
# max-attempts: 15
# retry-delay: 30s
# - name: Tests
# run: gradle :testUi
# - name: Save fails report
# if: ${{ failure() }}
# uses: actions/upload-artifact@v2
# with:
# name: ui-test-fails-report-linux
# path: |
# ui-test-example/build/reports
+52
View File
@@ -0,0 +1,52 @@
name: Run UI PyCharm Tests
on:
workflow_dispatch:
schedule:
- cron: '0 12 * * *'
jobs:
build-for-ui-test-mac-os:
if: github.repository == 'JetBrains/ideavim'
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 21
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Setup FFmpeg
run: brew install ffmpeg
# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2.4.2
- name: Build Plugin
run: gradle :buildPlugin
- name: Run Idea
run: |
mkdir -p build/reports
gradle --no-configuration-cache :runIdeForUiTests -PideaType=PC > build/reports/idea.log &
- name: Wait for Idea started
uses: jtalk/url-health-check-action@v3
with:
url: http://127.0.0.1:8082
max-attempts: 20
retry-delay: 10s
- name: Tests
run: gradle :tests:ui-py-tests:testUi
- name: Move video
if: always()
run: mv tests/ui-py-tests/video build/reports
- name: Move sandbox logs
if: always()
run: mv build/idea-sandbox/PC-*/log_runIdeForUiTests idea-sandbox-log
- name: Save report
if: always()
uses: actions/upload-artifact@v4
with:
name: ui-test-fails-report-mac
path: |
build/reports
tests/ui-py-tests/build/reports
idea-sandbox-log
+51
View File
@@ -0,0 +1,51 @@
name: Run UI Rider Tests
on:
workflow_dispatch:
schedule:
- cron: '0 12 * * *'
jobs:
build-for-ui-test-mac-os:
if: github.repository == 'JetBrains/ideavim'
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 21
- name: Setup FFmpeg
run: brew install ffmpeg
# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2.4.2
- name: Build Plugin
run: gradle :buildPlugin
- name: Run Idea
run: |
mkdir -p build/reports
gradle --no-configuration-cache :runIdeForUiTests -PideaType=RD > build/reports/idea.log &
- name: Wait for Idea started
uses: jtalk/url-health-check-action@v3
with:
url: http://127.0.0.1:8082
max-attempts: 100
retry-delay: 10s
- name: Tests
run: gradle :tests:ui-rd-tests:testUi
env:
RIDER_LICENSE: ${{ secrets.RIDER_LICENSE }}
- name: Move video
if: always()
run: mv tests/ui-rd-tests/video build/reports
- name: Move sandbox logs
if: always()
run: mv build/idea-sandbox/RD-*/log_runIdeForUiTests idea-sandbox-log
- name: Save report
if: always()
uses: actions/upload-artifact@v4
with:
name: ui-test-fails-report-mac
path: |
build/reports
tests/ui-rd-tests/build/reports
idea-sandbox-log
+21 -17
View File
@@ -5,44 +5,48 @@ on:
- cron: '0 12 * * *'
jobs:
build-for-ui-test-mac-os:
if: github.repository == 'JetBrains/ideavim'
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v2.1.0
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 11
java-version: 21
- name: Setup FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v1
with:
# Not strictly necessary, but it may prevent rate limit
# errors especially on GitHub-hosted macos machines.
token: ${{ secrets.GITHUB_TOKEN }}
run: brew install ffmpeg
# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2.4.2
- name: Build Plugin
run: gradle :buildPlugin
- name: Run Idea
run: |
mkdir -p build/reports
gradle :runIdeForUiTests > build/reports/idea.log &
gradle --no-configuration-cache runIdeForUiTests > build/reports/idea.log &
- name: Wait for Idea started
uses: jtalk/url-health-check-action@1.5
uses: jtalk/url-health-check-action@v3
with:
url: http://127.0.0.1:8082
max-attempts: 20
retry-delay: 10s
- name: Tests
run: gradle :testUi
run: gradle :tests:ui-ij-tests:testUi
- name: Move video
if: ${{ failure() }}
run: mv video build/reports
- name: Save fails report
if: ${{ failure() }}
uses: actions/upload-artifact@v2
if: always()
run: mv tests/ui-ij-tests/video build/reports
- name: Move sandbox logs
if: always()
run: mv build/idea-sandbox/IC-*/log_runIdeForUiTests idea-sandbox-log
- name: Save report
if: always()
uses: actions/upload-artifact@v4
with:
name: ui-test-fails-report-mac
path: |
build/reports
tests/ui-ij-tests/build/reports
idea-sandbox-log
# build-for-ui-test-linux:
# runs-on: ubuntu-latest
# steps:
@@ -74,4 +78,4 @@ jobs:
# with:
# name: ui-test-fails-report-linux
# path: |
# ui-test-example/build/reports
# ui-test-example/build/reports
+59
View File
@@ -0,0 +1,59 @@
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
# This workflow syncs changes from the docs folder of IdeaVim to the IdeaVim.wiki repository
name: Sync docs
on:
workflow_dispatch:
push:
branches: [ master ]
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- name: Fetch origin repo
uses: actions/checkout@v3
with:
path: origin
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Fetch docs repo
uses: actions/checkout@v3
with:
repository: JetBrains/ideavim.wiki
path: docs
- name: Sync docs
id: update_authors
run: cp -a origin/doc/. docs
# The Wiki for github should have no `.md` in references
# Otherwise, such links will lead to the raw text.
# However, the `.md` should exist to have a navigation in GitHub code.
- name: Replace `.md)` with `)`
run: |
# Define the directory you want to process
DIRECTORY="docs"
# Find all files in the directory and perform the replacement
find $DIRECTORY -type f -exec sed -i 's/\.md)/)/g' {} +
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
branch: master
repository: docs
commit_message: Update docs
commit_user_name: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
+30 -17
View File
@@ -5,45 +5,58 @@ name: Update Authors
on:
workflow_dispatch:
push:
branches: [ master ]
schedule:
- cron: '0 9 * * *'
# Workflow run on push is disabled to avoid conflicts when merging PR
# push:
# branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 300
- name: Set up JDK 11
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Get tags
run: git fetch --tags origin
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '11'
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- uses: nrwl/last-successful-commit-action@v1
id: last_successful_commit
with:
branch: 'master'
workflow_id: 'updateAuthors.yml'
github_token: ${{ secrets.GITHUB_TOKEN }}
# The last successful job was marked with a tag
- name: Get commit with last workflow
run: |
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-authors)" >> $GITHUB_ENV
- name: Update authors
id: update_authors
run: ./gradlew updateAuthors --stacktrace
run: ./gradlew --no-configuration-cache updateAuthors --stacktrace
env:
SUCCESS_COMMIT: ${{ steps.last_successful_commit.outputs.commit_hash }}
GITHUB_OAUTH: ${{ secrets.AUTOMATION_TOKEN }}
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
GITHUB_OAUTH: ${{ secrets.GITHUB_TOKEN }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Add ${{ steps.update_authors.outputs.authors }} to contributors list
commit_user_name: Alex Plate
commit_user_email: aleksei.plate@jetbrains.com
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
commit_user_name: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
file_pattern: AUTHORS.md
- name: Update tags
run: |
git tag --delete workflow-authors || true
git push origin :refs/tags/workflow-authors || true
git tag workflow-authors
git push origin workflow-authors
+34 -18
View File
@@ -5,43 +5,59 @@ name: Update Changelog
on:
workflow_dispatch:
push:
branches: [ master ]
schedule:
- cron: '0 10 * * *'
jobs:
build:
runs-on: ubuntu-latest
if: false
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 300
- name: Set up JDK 11
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Get tags
run: git fetch --tags origin
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '11'
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- uses: nrwl/last-successful-commit-action@v1
id: last_successful_commit
with:
branch: 'master'
workflow_id: 'updateChangelog.yml'
github_token: ${{ secrets.GITHUB_TOKEN }}
# The last successful job was marked with a tag
- name: Get commit with last workflow
run: |
echo "LAST_COMMIT=$(git rev-list -n 1 tags/workflow-changelog)" >> $GITHUB_ENV
- name: Update changelog
run: ./gradlew updateChangelog
run: ./gradlew --no-configuration-cache updateChangelog
env:
SUCCESS_COMMIT: ${{ steps.last_successful_commit.outputs.commit_hash }}
SUCCESS_COMMIT: ${{ env.LAST_COMMIT }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Update changelog
commit_user_name: Alex Plate
commit_user_email: aleksei.plate@jetbrains.com
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
file_pattern: CHANGES.md
commit_message: Update changelog. Action id - ${{ github.run_id }}
commit_user_name: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
file_pattern: CHANGES.md
- name: Update tags
run: |
git tag --delete workflow-changelog || true
git push origin :refs/tags/workflow-changelog || true
git tag workflow-changelog
git push origin workflow-changelog
# Regarding secrets.PUSH_TO_PROTECTED_BRANCH_SECRET - we use branch protection rules to automate merges of the
# dependabot updates. See mergeDependatobPR.yml file.
# However, it turned out that GitHub accepts pushes from the actions as a PR and requires checks, that are always
# false for pushing from actions.
# This secret is created to implement the workaround described in https://stackoverflow.com/a/76135647/3124227
+12 -7
View File
@@ -12,26 +12,31 @@ jobs:
build:
runs-on: ubuntu-latest
if: github.repository == 'JetBrains/ideavim'
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 50
- name: Set up JDK 11
# See end of file updateChangeslog.yml for explanation of this secret
ssh-key: ${{ secrets.PUSH_TO_PROTECTED_BRANCH_SECRET }}
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
java-version: '11'
java-version: '21'
distribution: 'adopt'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- name: Format files
run: ./gradlew ktlintFormat
- uses: findologic/intellij-format-action@1.0.1
with:
include-glob: '*.kt,*.java'
path: .
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Update formatting
commit_user_name: Alex Plate
commit_user_email: aleksei.plate@jetbrains.com
commit_author: Alex Plate <aleksei.plate@jetbrains.com>
commit_user_name: IdeaVim Bot
commit_user_email: maintainers@ideavim.dev
commit_author: IdeaVim Bot <maintainers@ideavim.dev>
+11 -1
View File
@@ -1,5 +1,6 @@
*.swp
/.gradle/
/.intellijPlatform/
/.idea/
!/.idea/scopes
@@ -9,6 +10,10 @@
!/.idea/fileTemplates
!/.idea/runConfigurations
!/.idea/codeStyles
!/.idea/vcs.xml
!/.idea/misc.xml
!/.idea/.name
!/.idea/gradle.xml
**/build/
**/out/
@@ -21,7 +26,12 @@
.teamcity/*.iml
# Generated by gradle task "generateGrammarSource"
src/main/java/com/maddyhome/idea/vim/vimscript/parser/generated
vim-engine/src/main/java/com/maddyhome/idea/vim/parser/generated
vim-engine/src/main/java/com/maddyhome/idea/vim/regexp/parser/generated
# Created by github automation
settings.xml
.kotlin
.claude/settings.local.json
Generated
+1
View File
@@ -0,0 +1 @@
IdeaVim
+5
View File
@@ -6,6 +6,7 @@
<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" />
@@ -191,6 +192,10 @@
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
+1 -1
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-&amp;#36;today.year 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>
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/annotation-processors" />
<option value="$PROJECT_DIR$/scripts" />
<option value="$PROJECT_DIR$/tests" />
<option value="$PROJECT_DIR$/tests/java-tests" />
<option value="$PROJECT_DIR$/tests/long-running-tests" />
<option value="$PROJECT_DIR$/tests/property-tests" />
<option value="$PROJECT_DIR$/tests/ui-fixtures" />
<option value="$PROJECT_DIR$/tests/ui-ij-tests" />
<option value="$PROJECT_DIR$/tests/ui-py-tests" />
<option value="$PROJECT_DIR$/tests/ui-rd-tests" />
<option value="$PROJECT_DIR$/vim-engine" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
+14
View File
@@ -33,9 +33,11 @@
<option name="ignoreToString" value="false" />
<option name="nonNlsCommentPattern" value="NON-NLS" />
</inspection_tool>
<inspection_tool class="MagicConstant" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="MissortedModifiers" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_requireAnnotationsFirst" value="true" />
</inspection_tool>
<inspection_tool class="SameParameterValue" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SameReturnValue" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
@@ -44,5 +46,17 @@
</inspection_tool>
<inspection_tool class="SuperTearDownInFinally" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UnstableApiUsage" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="unused" enabled="false" level="WARNING" enabled_by_default="false" checkParameterExcludingHierarchy="false">
<option name="LOCAL_VARIABLE" value="true" />
<option name="FIELD" value="true" />
<option name="METHOD" value="true" />
<option name="CLASS" value="true" />
<option name="PARAMETER" value="true" />
<option name="REPORT_PARAMETER_FOR_PUBLIC_METHODS" value="true" />
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
</inspection_tool>
</profile>
</component>
+22
View File
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<list size="3">
<item index="0" class="java.lang.String" itemvalue="com.intellij.vim.annotations.CommandOrMotion" />
<item index="1" class="java.lang.String" itemvalue="com.intellij.vim.annotations.ExCommand" />
<item index="2" class="java.lang.String" itemvalue="com.intellij.vim.annotations.VimscriptFunction" />
</list>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/.teamcity/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK" />
</project>
+2 -1
View File
@@ -12,7 +12,7 @@
<option name="taskNames">
<list>
<option value="check" />
<option value="runPluginVerifier" />
<option value="verifyPlugin" />
</list>
</option>
<option name="vmOptions" value="" />
@@ -20,6 +20,7 @@
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
+2 -1
View File
@@ -5,7 +5,7 @@
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="scriptParameters" value="-x :tests:property-tests:test -x :tests:long-running-tests:test" />
<option name="taskDescriptions">
<list />
</option>
@@ -19,6 +19,7 @@
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
@@ -0,0 +1,25 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Start IJ with IdeaVim (Split Mode)" type="GradleRunConfiguration" factoryName="Gradle">
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log" />
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="runIdeSplitMode" />
</list>
</option>
<option name="vmOptions" value="" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
+1 -1
View File
@@ -1,3 +1,3 @@
<component name="DependencyValidationManager">
<scope name="Copyright" pattern="(file[IdeaVIM.main]:*/||file[IdeaVIM.test]:*/)&amp;&amp;!file[IdeaVIM.main]:resources//*" />
<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>
Generated
+16
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="" vcs="Git" />
</component>
</project>
+6 -14
View File
@@ -5,19 +5,11 @@ object Constants {
const val EAP_CHANNEL = "eap"
const val DEV_CHANNEL = "Dev"
const val VERSION = "1.10.3"
const val DEV_VERSION = "1.11.0"
const val NVIM_TESTS = "2025.1"
const val PROPERTY_TESTS = "2025.1"
const val LONG_RUNNING_TESTS = "2025.1"
const val RELEASE = "2025.1"
const val GITHUB_TESTS = "LATEST-EAP-SNAPSHOT"
const val NVIM_TESTS = "LATEST-EAP-SNAPSHOT"
const val PROPERTY_TESTS = "LATEST-EAP-SNAPSHOT"
const val LONG_RUNNING_TESTS = "LATEST-EAP-SNAPSHOT"
const val QODANA_TESTS = "LATEST-EAP-SNAPSHOT"
const val RELEASE = "2022.1.3"
// Use LATEST-EAP-SNAPSHOT only when we'll update the minimum version of IJ to 222+
// Because of some API inconcistincies, IdeaVim built on 2022+ won't run on older versions of IJ
const val RELEASE_DEV = "2022.1.3"
const val RELEASE_EAP = "2022.1.3"
const val RELEASE_DEV = "2025.1"
const val RELEASE_EAP = "2025.1"
}
+42 -71
View File
@@ -1,91 +1,62 @@
package _Self
import _Self.buildTypes.*
import _Self.buildTypes.Compatibility
import _Self.buildTypes.LongRunning
import _Self.buildTypes.Nvim
import _Self.buildTypes.PluginVerifier
import _Self.buildTypes.PropertyBased
import _Self.buildTypes.TestingBuildType
import _Self.subprojects.GitHub
import _Self.subprojects.OldTests
import _Self.subprojects.Releases
import _Self.vcsRoots.Branch_181
import _Self.vcsRoots.Branch_183
import _Self.vcsRoots.Branch_191_193
import _Self.vcsRoots.Branch_201
import _Self.vcsRoots.Branch_202
import _Self.vcsRoots.Branch_203_212
import _Self.vcsRoots.Branch_Release
import _Self.vcsRoots.GitHubPullRequest
import _Self.vcsRoots.ReleasesVcsRoot
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
object Project : Project({
description = "Vim emulation plugin for the IntelliJ platform products"
description = "Vim engine for JetBrains IDEs"
subProjects(Releases, OldTests, GitHub)
subProjects(Releases, GitHub)
// VCS roots
vcsRoot(Branch_183)
vcsRoot(Branch_181)
vcsRoot(Branch_191_193)
vcsRoot(Branch_201)
vcsRoot(Branch_202)
vcsRoot(Branch_203_212)
vcsRoot(Branch_Release)
vcsRoot(GitHubPullRequest)
vcsRoot(ReleasesVcsRoot)
// Builds
buildType(TestsForIntelliJ20213)
buildType(TestsForIntelliJEAP)
// Active tests
buildType(TestingBuildType("Latest EAP", version = "LATEST-EAP-SNAPSHOT"))
buildType(TestingBuildType("2025.1"))
buildType(TestingBuildType("Latest EAP With Xorg", "<default>", version = "LATEST-EAP-SNAPSHOT"))
buildType(PropertyBased)
buildType(LongRunning)
buildType(Nvim)
buildType(PluginVerifier)
buildType(Qodana)
// Unknown staff generated by TeamCity
features {
feature {
type = "CloudImage"
id = "PROJECT_EXT_768"
param("agent_pool_id", "41")
param("amazon-id", "ami-0d1a6a32faa92923e")
param("ebs-optimized", "false")
param("image-instances-limit", "")
param("image-name-prefix", "BuildAgentsIdeaVim")
param("instance-type", "c5d.xlarge")
param("key-pair-name", "teamcity-prod-pub")
param("profileId", "amazon-48")
param("security-group-ids", "sg-eda08696,sg-7332cf0f,")
param("source-id", "BuildAgentsIdeaVim")
param("spot-instance-price", "0.12")
param("subnet-id", "subnet-58839511")
param("use-spot-instances", "true")
param("user-tags", "project=idea-vim")
param("key-pair-name", "")
param("spot-instance-price", "")
}
feature {
type = "CloudProfile"
id = "amazon-48"
param("agentPushPreset", "")
param("cloud-code", "amazon")
param("description", "")
param("enabled", "true")
param("max-running-instances", "10")
param("name", "Cloud Agents")
param("next-hour", "")
param("not-checked", "")
param("profileId", "amazon-48")
param("profileServerUrl", "")
param("region", "eu-west-1")
param("secure:access-id", "credentialsJSON:dbcdb2a2-de5f-4bc9-9421-292b19e83947")
param("secure:secret-key", "credentialsJSON:65a87fe7-0977-4af9-96f1-344f2b82d269")
param("system.cloud.profile_id", "amazon-48")
param("terminate-idle-time", "15")
param("total-work-time", "")
param("user-script", "")
param("spot-fleet-config", "")
param("terminate-after-build", "true")
param("name", "Cloud Agents - Single Build")
}
}
buildType(Compatibility)
})
// Common build type for all configurations
abstract class IdeaVimBuildType(init: BuildType.() -> Unit) : BuildType({
artifactRules = """
+:build/reports => build/reports
+:tests/java-tests/build/reports => java-tests/build/reports
+:tests/long-running-tests/build/reports => long-running-tests/build/reports
+:tests/property-tests/build/reports => property-tests/build/reports
+:/mnt/agent/temp/buildTmp/ => /mnt/agent/temp/buildTmp/
""".trimIndent()
init()
requirements {
// These requirements define Linux-Medium configuration.
// Unfortunately, requirement by name (teamcity.agent.name) doesn't work
// IDK the reason for it, but on our agents this property is empty
equals("teamcity.agent.hardware.cpuCount", "16")
equals("teamcity.agent.os.family", "Linux")
}
failureConditions {
// Disable detection of the java OOM
javaCrash = false
}
})
+69
View File
@@ -0,0 +1,69 @@
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-2.jar "https://packages.jetbrains.team/files/p/ideavim/plugin-verifier/verifier-cli-dev-all-2.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-2.jar check-plugin '${'$'}org.jetbrains.IdeaVim-EasyMotion' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}eu.theblob42.idea.whichkey' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.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-2.jar check-plugin '${'$'}com.github.copilot' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.github.dankinsoid.multicursor' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.joshestein.ideavim-quickscope' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.julienphalip.ideavim.peekaboo' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.julienphalip.ideavim.switch' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.julienphalip.ideavim.functiontextobj' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.miksuki.HighlightCursor' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}com.ugarosa.idea.edgemotion' [latest-IU] -team-city
java -jar verifier1/verifier-cli-dev-all-2.jar check-plugin '${'$'}cn.mumukehao.plugin' [latest-IU] -team-city
""".trimIndent()
}
}
triggers {
schedule {
schedulingPolicy = daily {
hour = 4
}
branchFilter = ""
triggerBuild = always()
withPendingChangesOnly = false
}
}
features {
golang {
testFormat = "json"
}
}
})
-77
View File
@@ -1,77 +0,0 @@
package _Self.buildTypes
import _Self.Constants.GITHUB_TESTS
import _Self.vcsRoots.GitHubPullRequest
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.PullRequests
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.commitStatusPublisher
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.pullRequests
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object GithubTests : Github("clean test", "Tests")
sealed class Github(command: String, desc: String) : BuildType({
name = "GitHub Pull Requests $desc"
description = "Test GitHub pull requests $desc"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", GITHUB_TESTS)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(GitHubPullRequest)
checkoutMode = CheckoutMode.AUTO
branchFilter = """
+:*
-:<default>
""".trimIndent()
}
steps {
gradle {
tasks = command
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT
branchFilter = ""
}
}
features {
pullRequests {
provider = github {
authType = token {
token = "credentialsJSON:43afd6e5-6ad5-4d12-a218-cf1547717a7f"
}
filterTargetBranch = "refs/heads/master"
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
}
}
commitStatusPublisher {
vcsRootExtId = "${GitHubPullRequest.id}"
publisher = github {
githubUrl = "https://api.github.com"
authType = personalToken {
token = "credentialsJSON:43afd6e5-6ad5-4d12-a218-cf1547717a7f"
}
}
param("github_oauth_user", "AlexPl292")
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
+14 -9
View File
@@ -1,13 +1,14 @@
package _Self.buildTypes
import _Self.Constants.LONG_RUNNING_TESTS
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object LongRunning : BuildType({
object LongRunning : IdeaVimBuildType({
name = "Long running tests"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
@@ -17,26 +18,30 @@ object LongRunning : BuildType({
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean testLongRunning"
tasks = "clean :tests:long-running-tests:test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
branchFilter = ""
enabled = false
branchFilter = "+:<default>"
}
schedule {
enabled = true
schedulingPolicy = daily {
hour = 5
}
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
+10 -13
View File
@@ -1,7 +1,7 @@
package _Self.buildTypes
import _Self.Constants.NVIM_TESTS
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
@@ -10,7 +10,7 @@ import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailu
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object Nvim : BuildType({
object Nvim : IdeaVimBuildType({
name = "Tests with nvim"
description = "Running tests with nvim integration"
@@ -18,11 +18,12 @@ object Nvim : BuildType({
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")
param("env.ideavim.nvim.path", "./nvim-linux-x86_64/bin/nvim")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
@@ -31,30 +32,26 @@ object Nvim : BuildType({
script {
name = "Set up NeoVim"
scriptContent = """
wget https://github.com/neovim/neovim/releases/download/v0.4.4/nvim-linux64.tar.gz
tar xzf nvim-linux64.tar.gz
cd nvim-linux64/bin
wget https://github.com/neovim/neovim/releases/download/nightly/nvim-linux-x86_64.tar.gz
tar xzf nvim-linux-x86_64.tar.gz
cd nvim-linux-x86_64/bin
chmod +x nvim
""".trimIndent()
}
gradle {
tasks = "clean testWithNeovim"
tasks = "clean test -x :tests:property-tests:test -x :tests:long-running-tests:test -Dnvim"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
branchFilter = ""
branchFilter = "+:<default>"
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
+6 -9
View File
@@ -1,12 +1,12 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object PluginVerifier : BuildType({
object PluginVerifier : IdeaVimBuildType({
name = "Plugin verification"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
@@ -15,26 +15,23 @@ object PluginVerifier : BuildType({
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean runPluginVerifier"
tasks = "clean verifyPlugin"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
branchFilter = ""
branchFilter = "+:<default>"
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
+7 -9
View File
@@ -1,13 +1,13 @@
package _Self.buildTypes
import _Self.Constants.PROPERTY_TESTS
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object PropertyBased : BuildType({
object PropertyBased : IdeaVimBuildType({
name = "Property based tests"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
@@ -17,26 +17,24 @@ object PropertyBased : BuildType({
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean testPropertyBased"
clearConditions()
tasks = "clean :tests:property-tests:test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
branchFilter = ""
branchFilter = "+:<default>"
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
+64
View File
@@ -0,0 +1,64 @@
package _Self.buildTypes
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
object PublishVimEngine : IdeaVimBuildType({
name = "Publish vim-engine"
description = "Build and publish vim-engine library"
artifactRules = "build/distributions/*"
buildNumberPattern = "0.0.%build.counter%"
params {
param("env.ORG_GRADLE_PROJECT_engineVersion", "%build.number%")
param("env.ORG_GRADLE_PROJECT_uploadUrl", "https://packages.jetbrains.team/maven/p/ij/intellij-dependencies")
password("env.ORG_GRADLE_PROJECT_spacePassword", "credentialsJSON:5ea56f8c-efe7-4e1e-83de-0c02bcc39d0b", display = ParameterDisplay.HIDDEN)
param("env.ORG_GRADLE_PROJECT_spaceUsername", "a121c67e-39ac-40e6-bf82-649855ec27b6")
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:fleet"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = ":vim-engine:publish"
buildFile = ""
enableStacktrace = true
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
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()
}
}
}
})
-80
View File
@@ -1,80 +0,0 @@
package _Self.buildTypes
import _Self.Constants.QODANA_TESTS
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.qodana
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object Qodana : BuildType({
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)
checkoutMode = CheckoutMode.AUTO
}
steps {
qodana {
name = "Qodana"
/*
reportAsTestsEnable = ""
failBuildOnErrors = ""
codeInspectionXmlConfig = "Custom"
codeInspectionCustomXmlConfigPath = ".idea/inspectionProfiles/Qodana.xml"
reportAsTestsEnable = "true"
*/
clearConditions()
param("licenseaudit-enable", "true")
param("clonefinder-languages", "Java")
param("clonefinder-mode", "")
param("report-version", "")
param("clonefinder-languages-container", "Java Kotlin")
param("namesAndTagsCustom", "repo.labs.intellij.net/static-analyser/qodana")
param("clonefinder-queried-project", "src")
param("clonefinder-enable", "true")
param("clonefinder-reference-projects", "src")
param("yaml-configuration", "")
}
}
triggers {
vcs {
enabled = false
branchFilter = ""
}
schedule {
schedulingPolicy = weekly {
dayOfWeek = ScheduleTrigger.DAY.Tuesday
}
branchFilter = ""
triggerBuild = always()
}
}
failureConditions {
failOnMetricChange {
threshold = 0
units = BuildFailureOnMetric.MetricUnit.DEFAULT_UNIT
comparison = BuildFailureOnMetric.MetricComparison.MORE
compareTo = value()
metric = BuildFailureOnMetric.MetricType.TEST_FAILED_COUNT
param("metricKey", "QodanaProblemsTotal")
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
})
-76
View File
@@ -1,76 +0,0 @@
package _Self.buildTypes
import _Self.Constants.DEFAULT_CHANNEL
import _Self.Constants.DEV_CHANNEL
import _Self.Constants.EAP_CHANNEL
import _Self.Constants.RELEASE
import _Self.Constants.VERSION
import _Self.vcsRoots.Branch_Release
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.vcsLabeling
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
object Release : BuildType({
name = "Publish Release"
description = "Build and publish IdeaVim plugin"
artifactRules = "build/distributions/*"
buildNumberPattern = VERSION
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE)
password(
"env.ORG_GRADLE_PROJECT_publishToken",
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
label = "Password"
)
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_publishChannels", "$DEFAULT_CHANNEL,$EAP_CHANNEL,$DEV_CHANNEL")
password(
"env.ORG_GRADLE_PROJECT_slackUrl",
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
label = "Slack Token"
)
}
vcs {
root(Branch_Release)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean publishPlugin slackNotification"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
features {
vcsLabeling {
vcsRootId = "${DslContext.settingsRoot.id}"
labelingPattern = "%system.build.number%"
successfulOnly = true
branchFilter = ""
}
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
threshold = 5
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.DIFF
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
+31 -10
View File
@@ -1,22 +1,22 @@
package _Self.buildTypes
import _Self.Constants.DEV_CHANNEL
import _Self.Constants.DEV_VERSION
import _Self.Constants.RELEASE_DEV
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
object ReleaseDev : BuildType({
object ReleaseDev : IdeaVimBuildType({
name = "Publish Dev Build"
description = "Build and publish Dev of IdeaVim plugin"
artifactRules = "build/distributions/*"
buildNumberPattern = "$DEV_VERSION-dev.%build.counter%"
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_DEV)
@@ -25,23 +25,38 @@ object ReleaseDev : BuildType({
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
label = "Password"
)
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_publishChannels", DEV_CHANNEL)
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
script {
name = "Pull git tags"
scriptContent = "git fetch --tags origin"
}
script {
name = "Pull git history"
scriptContent = "git fetch --unshallow"
}
gradle {
tasks = "clean publishPlugin"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
name = "Calculate new dev version"
tasks = "scripts:calculateNewDevVersion"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
name = "Set TeamCity build number"
tasks = "scripts:setTeamCityBuildNumber"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
tasks = "publishPlugin"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
@@ -55,6 +70,12 @@ object ReleaseDev : BuildType({
}
}
features {
sshAgent {
teamcitySshKey = "IdeaVim ssh keys"
}
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.ARTIFACT_SIZE
+65 -16
View File
@@ -1,22 +1,22 @@
package _Self.buildTypes
import _Self.Constants.DEV_VERSION
import _Self.Constants.EAP_CHANNEL
import _Self.Constants.RELEASE_EAP
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.vcsLabeling
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
object ReleaseEap : BuildType({
object ReleaseEap : IdeaVimBuildType({
name = "Publish EAP Build"
description = "Build and publish EAP of IdeaVim plugin"
artifactRules = "build/distributions/*"
buildNumberPattern = "$DEV_VERSION-eap.%build.counter%"
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE_EAP)
@@ -25,37 +25,78 @@ object ReleaseEap : BuildType({
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
label = "Password"
)
param("env.ORG_GRADLE_PROJECT_version", "%build.number%")
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_publishChannels", EAP_CHANNEL)
password(
"env.ORG_GRADLE_PROJECT_slackUrl",
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
label = "Slack Token"
)
password(
"env.YOUTRACK_TOKEN",
"credentialsJSON:2479995b-7b60-4fbb-b095-f0bafae7f622",
display = ParameterDisplay.HIDDEN
)
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
script {
name = "Pull git tags"
scriptContent = "git fetch --tags origin"
}
script {
name = "Pull git history"
scriptContent = "git fetch --unshallow"
}
gradle {
tasks = "clean publishPlugin"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
name = "Calculate new eap version"
tasks = "scripts:calculateNewEapVersion"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
name = "Set TeamCity build number"
tasks = "scripts:setTeamCityBuildNumber"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
name = "Add release tag"
tasks = "scripts:addReleaseTag"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
name = "Publish plugin"
tasks = "publishPlugin"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
script {
name = "Push changes to the repo"
scriptContent = """
branch=$(git branch --show-current)
echo current branch is ${'$'}branch
if [ "master" != "${'$'}branch" ];
then
exit 1
fi
git push origin %build.number%
""".trimIndent()
}
gradle {
name = "YouTrack post release actions"
tasks = "scripts:eapReleaseActions"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
features {
vcsLabeling {
vcsRootId = "${DslContext.settingsRoot.id}"
labelingPattern = "%system.build.number%"
successfulOnly = true
branchFilter = ""
sshAgent {
teamcitySshKey = "IdeaVim ssh keys"
}
}
@@ -70,4 +111,12 @@ object ReleaseEap : BuildType({
}
}
}
requirements {
// These requirements define Linux-XLarge configuration.
// Unfortunately, requirement by name (teamcity.agent.name) doesn't work
// IDK the reason for it, but on our agents this property is empty
// equals("teamcity.agent.hardware.cpuCount", "16")
// equals("teamcity.agent.os.family", "Linux")
}
})
+168
View File
@@ -0,0 +1,168 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package _Self.buildTypes
import _Self.Constants.DEFAULT_CHANNEL
import _Self.Constants.DEV_CHANNEL
import _Self.Constants.EAP_CHANNEL
import _Self.Constants.RELEASE
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.ParameterDisplay
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.sshAgent
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.script
object ReleaseMajor : ReleasePlugin("major")
object ReleaseMinor : ReleasePlugin("minor")
object ReleasePatch : ReleasePlugin("patch")
sealed class ReleasePlugin(private val releaseType: String) : IdeaVimBuildType({
name = "Publish $releaseType release"
description = "Build and publish IdeaVim plugin"
artifactRules = """
build/distributions/*
build/reports/*
""".trimIndent()
params {
param("env.ORG_GRADLE_PROJECT_ideaVersion", RELEASE)
password(
"env.ORG_GRADLE_PROJECT_publishToken",
"credentialsJSON:61a36031-4da1-4226-a876-b8148bf32bde",
label = "Password"
)
param("env.ORG_GRADLE_PROJECT_publishChannels", "$DEFAULT_CHANNEL,$EAP_CHANNEL,$DEV_CHANNEL")
password(
"env.ORG_GRADLE_PROJECT_slackUrl",
"credentialsJSON:a8ab8150-e6f8-4eaf-987c-bcd65eac50b5",
label = "Slack Token"
)
password(
"env.ORG_GRADLE_PROJECT_youtrackToken",
"credentialsJSON:7bc0eb3a-b86a-4ebd-b622-d4ef12d7e1d3",
display = ParameterDisplay.HIDDEN
)
param("env.ORG_GRADLE_PROJECT_releaseType", releaseType)
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:<default>"
checkoutMode = CheckoutMode.AUTO
}
steps {
script {
name = "Pull git tags"
scriptContent = "git fetch --tags origin"
}
script {
name = "Pull git history"
scriptContent = "git fetch --unshallow"
}
script {
name = "Reset release branch"
scriptContent = """
if [ "major" = "$releaseType" ] || [ "minor" = "$releaseType" ]
then
echo Resetting the release branch because the release type is $releaseType
git checkout master
latest_eap=${'$'}(git describe --tags --match="[0-9].[0-9]*.[0-9]-eap.[0-9]*" --abbrev=0 HEAD)
echo Latest EAP: ${'$'}latest_eap
commit_of_latest_eap=${'$'}(git rev-list -n 1 ${'$'}latest_eap)
echo Commit of latest EAP: ${'$'}commit_of_latest_eap
git checkout release
git reset --hard ${'$'}commit_of_latest_eap
else
git checkout release
echo Do not reset the release branch because the release type is $releaseType
fi
echo Checked out release branch
""".trimIndent()
}
gradle {
name = "Calculate new version"
tasks = "scripts:calculateNewVersion"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
gradle {
name = "Set TeamCity build number"
tasks = "scripts:setTeamCityBuildNumber"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
// gradle {
// name = "Update change log"
// tasks = "scripts:changelogUpdateUnreleased"
// }
// gradle {
// name = "Commit preparation changes"
// tasks = "scripts:commitChanges"
// }
gradle {
name = "Add release tag"
tasks = "scripts:addReleaseTag"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
script {
name = "Run tests"
scriptContent = "./gradlew test -x :tests:property-tests:test -x :tests:long-running-tests:test"
}
gradle {
name = "Publish release"
tasks = "publishPlugin"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
// script {
// name = "Checkout master branch"
// scriptContent = """
// echo Checkout master
// git checkout master
// """.trimIndent()
// }
// gradle {
// name = "Update change log in master"
// tasks = "scripts:changelogUpdateUnreleased"
// }
// gradle {
// name = "Commit preparation changes in master"
// tasks = "scripts:commitChanges"
// }
script {
name = "Push changes to the repo"
scriptContent = """
git checkout release
echo checkout release branch
git branch --set-upstream-to=origin/release release
git push origin --force
# Push tag
git push origin %build.number%
""".trimIndent()
}
gradle {
name = "Run Integrations"
tasks = "releaseActions"
gradleParams = "--no-configuration-cache"
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
// gradle {
// name = "Slack Notification"
// tasks = "slackNotification"
// }
}
features {
sshAgent {
teamcitySshKey = "IdeaVim ssh keys"
}
}
})
@@ -1,6 +1,8 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import _Self.IdeaVimBuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.DslContext
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
@@ -8,39 +10,49 @@ import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailu
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class ActiveTests(buildName: String, ijVersion: String) : BuildType({
name = buildName
open class TestingBuildType(
private val testName: String,
private val branch: String = "<default>",
private val version: String = testName,
private val javaVersion: String? = null,
private val javaPlugin: Boolean = true,
) : IdeaVimBuildType({
id("IdeaVimTests_${testName.vanish()}")
name = "Tests for IntelliJ $testName"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", ijVersion)
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", javaPlugin.not().toString())
param("env.ORG_GRADLE_PROJECT_ideaVersion", version)
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
if (javaVersion != null) {
param("env.ORG_GRADLE_PROJECT_javaVersion", javaVersion)
}
}
vcs {
root(DslContext.settingsRoot)
branchFilter = "+:$branch"
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean check -x ktlintMainSourceSetCheck -x ktlintTestSourceSetCheck"
clearConditions()
tasks = "clean test -x :tests:property-tests:test -x :tests:long-running-tests:test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
branchFilter = ""
branchFilter = "+:$branch"
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
@@ -54,5 +66,9 @@ sealed class ActiveTests(buildName: String, ijVersion: String) : BuildType({
}
})
object TestsForIntelliJEAP : ActiveTests("Tests for IntelliJ Latest EAP", "LATEST-EAP-SNAPSHOT")
object TestsForIntelliJ20213 : ActiveTests("Tests for IntelliJ 2021.3", "2021.3.2")
private fun String.vanish(): String {
return this
.replace(' ', '_')
.replace('.', '_')
.replace('-', '_')
}
-58
View File
@@ -1,58 +0,0 @@
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object TestsForIntelliJ20183 : BuildType({
name = "Tests for IntelliJ 2018.3"
description = "branch 183"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-2018.3")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_183)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
-61
View File
@@ -1,61 +0,0 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class TestsForIntelliJ_181_branch(private val version: String) : BuildType({
name = "Tests for IntelliJ $version"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_181)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
object TestsForIntelliJ20181 : TestsForIntelliJ_181_branch("2018.1")
object TestsForIntelliJ20182 : TestsForIntelliJ_181_branch("2018.2")
-63
View File
@@ -1,63 +0,0 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class TestsForIntelliJ_191_193_branch(private val version: String) : BuildType({
name = "Tests for IntelliJ $version"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_191_193)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
object TestsForIntelliJ20191 : TestsForIntelliJ_191_193_branch("2019.1")
object TestsForIntelliJ20192 : TestsForIntelliJ_191_193_branch("2019.2")
object TestsForIntelliJ20193 : TestsForIntelliJ_191_193_branch("2019.3")
-60
View File
@@ -1,60 +0,0 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class TestsForIntelliJ_201_branch(private val version: String) : BuildType({
name = "Tests for IntelliJ $version"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_201)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
object TestsForIntelliJ20201 : TestsForIntelliJ_201_branch("2020.1")
-60
View File
@@ -1,60 +0,0 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class TestsForIntelliJ_202_branch(private val version: String) : BuildType({
name = "Tests for IntelliJ $version"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_202)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
object TestsForIntelliJ20202 : TestsForIntelliJ_202_branch("2020.2")
-64
View File
@@ -1,64 +0,0 @@
@file:Suppress("ClassName")
package _Self.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.BuildFailureOnMetric
import jetbrains.buildServer.configs.kotlin.v2019_2.failureConditions.failOnMetricChange
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
sealed class TestsForIntelliJ_203_212_branch(private val version: String) : BuildType({
name = "Tests for IntelliJ $version"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_legacyNoJavaPlugin", "true")
param("env.ORG_GRADLE_PROJECT_ideaVersion", "IC-$version")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
param("env.ORG_GRADLE_PROJECT_javaVersion", "1.8")
}
vcs {
root(_Self.vcsRoots.Branch_203_212)
checkoutMode = CheckoutMode.AUTO
}
steps {
gradle {
tasks = "clean test"
buildFile = ""
enableStacktrace = true
param("org.jfrog.artifactory.selectedDeployableServer.defaultModuleVersionConfiguration", "GLOBAL")
}
}
triggers {
vcs {
branchFilter = ""
}
}
requirements {
noLessThanVer("teamcity.agent.jvm.version", "1.8")
}
failureConditions {
failOnMetricChange {
metric = BuildFailureOnMetric.MetricType.TEST_COUNT
threshold = 20
units = BuildFailureOnMetric.MetricUnit.PERCENTS
comparison = BuildFailureOnMetric.MetricComparison.LESS
compareTo = build {
buildRule = lastSuccessful()
}
}
}
})
object TestsForIntelliJ20212 : TestsForIntelliJ_203_212_branch("2021.2.2")
object TestsForIntelliJ20211 : TestsForIntelliJ_203_212_branch("2021.1")
object TestsForIntelliJ20203 : TestsForIntelliJ_203_212_branch("2020.3")
+68 -2
View File
@@ -1,11 +1,77 @@
package _Self.subprojects
import _Self.buildTypes.GithubTests
import _Self.IdeaVimBuildType
import _Self.vcsRoots.GitHubPullRequest
import jetbrains.buildServer.configs.kotlin.v2019_2.CheckoutMode
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.PullRequests
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.commitStatusPublisher
import jetbrains.buildServer.configs.kotlin.v2019_2.buildFeatures.pullRequests
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.gradle
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
object GitHub : Project({
name = "Pull Requests checks"
description = "Automatic checking of GitHub Pull Requests"
buildType(GithubTests)
buildType(GithubBuildType("clean test -x :tests:property-tests:test -x :tests:long-running-tests:test", "Tests"))
})
class GithubBuildType(command: String, desc: String) : IdeaVimBuildType({
name = "GitHub Pull Requests $desc"
description = "Test GitHub pull requests $desc"
params {
param("env.ORG_GRADLE_PROJECT_downloadIdeaSources", "false")
param("env.ORG_GRADLE_PROJECT_instrumentPluginCode", "false")
}
vcs {
root(GitHubPullRequest)
checkoutMode = CheckoutMode.AUTO
branchFilter = """
+:*
-:<default>
""".trimIndent()
}
steps {
gradle {
tasks = command
buildFile = ""
enableStacktrace = true
jdkHome = "/usr/lib/jvm/java-21-amazon-corretto"
}
}
triggers {
vcs {
quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT
branchFilter = ""
}
}
features {
pullRequests {
provider = github {
authType = token {
token = "credentialsJSON:90f3b439-6e91-40f7-a086-d4dd8e0ea9b8"
}
filterTargetBranch = "refs/heads/master"
filterAuthorRole = PullRequests.GitHubRoleFilter.EVERYBODY
}
}
commitStatusPublisher {
vcsRootExtId = "${GitHubPullRequest.id}"
publisher = github {
githubUrl = "https://api.github.com"
authType = personalToken {
token = "credentialsJSON:90f3b439-6e91-40f7-a086-d4dd8e0ea9b8"
}
}
param("github_oauth_user", "AlexPl292")
}
}
})
-31
View File
@@ -1,31 +0,0 @@
package _Self.subprojects
import _Self.buildTypes.TestsForIntelliJ20181
import _Self.buildTypes.TestsForIntelliJ20182
import _Self.buildTypes.TestsForIntelliJ20183
import _Self.buildTypes.TestsForIntelliJ20191
import _Self.buildTypes.TestsForIntelliJ20192
import _Self.buildTypes.TestsForIntelliJ20193
import _Self.buildTypes.TestsForIntelliJ20201
import _Self.buildTypes.TestsForIntelliJ20202
import _Self.buildTypes.TestsForIntelliJ20203
import _Self.buildTypes.TestsForIntelliJ20211
import _Self.buildTypes.TestsForIntelliJ20212
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
object OldTests : Project({
name = "Old IdeaVim tests"
description = "Tests for older versions of IJ"
buildType(TestsForIntelliJ20181)
buildType(TestsForIntelliJ20182)
buildType(TestsForIntelliJ20183)
buildType(TestsForIntelliJ20191)
buildType(TestsForIntelliJ20192)
buildType(TestsForIntelliJ20193)
buildType(TestsForIntelliJ20201)
buildType(TestsForIntelliJ20202)
buildType(TestsForIntelliJ20203)
buildType(TestsForIntelliJ20211)
buildType(TestsForIntelliJ20212)
})
+28 -2
View File
@@ -1,15 +1,41 @@
package _Self.subprojects
import _Self.buildTypes.Release
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"
buildType(Release)
params {
password(
"env.CERTIFICATE_CHAIN",
"credentialsJSON:1bab4a88-10e7-4bf9-856c-e6253499dc95",
display = ParameterDisplay.HIDDEN
)
password(
"env.PRIVATE_KEY_PASSWORD",
"credentialsJSON:7c12c867-fe09-4a2f-884d-6fd0ec0a1e79",
display = ParameterDisplay.HIDDEN
)
password(
"env.PRIVATE_KEY",
"credentialsJSON:5d8b553d-fd7e-4347-abd2-51d8d0f2b3f7",
display = ParameterDisplay.HIDDEN
)
}
// buildType(Release)
buildType(ReleaseMajor)
buildType(ReleaseMinor)
buildType(ReleasePatch)
buildType(ReleaseEap)
buildType(ReleaseDev)
buildType(PublishVimEngine)
})
-12
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
})
-12
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
})
-12
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
})
-12
View File
@@ -1,12 +0,0 @@
@file:Suppress("ClassName")
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object Branch_201 : GitVcsRoot({
name = "https://github.com/JetBrains/ideavim (branch 201)"
url = "https://github.com/JetBrains/ideavim.git"
branch = "201"
useMirrors = false
})
-12
View File
@@ -1,12 +0,0 @@
@file:Suppress("ClassName")
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object Branch_202 : GitVcsRoot({
name = "https://github.com/JetBrains/ideavim (branch 202)"
url = "https://github.com/JetBrains/ideavim.git"
branch = "202"
useMirrors = false
})
-12
View File
@@ -1,12 +0,0 @@
@file:Suppress("ClassName")
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object Branch_203_212 : GitVcsRoot({
name = "https://github.com/JetBrains/ideavim (branch 203-212)"
url = "https://github.com/JetBrains/ideavim.git"
branch = "203-212"
useMirrors = false
})
-11
View File
@@ -1,11 +0,0 @@
@file:Suppress("ClassName")
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object Branch_Release : GitVcsRoot({
name = "https://github.com/JetBrains/ideavim (branch release)"
url = "https://github.com/JetBrains/ideavim.git"
branch = "release"
})
+1 -1
View File
@@ -7,6 +7,6 @@ object GitHubPullRequest : GitVcsRoot({
url = "git@github.com:JetBrains/ideavim.git"
branchSpec = "+:refs/(pull/*)/head"
authMethod = uploadedKey {
uploadedKey = "Alex Plate TeamCity key"
uploadedKey = "IdeaVim ssh keys"
}
})
+13
View File
@@ -0,0 +1,13 @@
package _Self.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
object ReleasesVcsRoot : GitVcsRoot({
name = "IdeaVim Releases"
url = "git@github.com:JetBrains/ideavim.git"
branch = "refs/heads/master"
branchSpec = "+:refs/(*)"
authMethod = uploadedKey {
uploadedKey = "IdeaVim ssh keys"
}
})
-40
View File
@@ -1,40 +0,0 @@
package patches.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
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.vcs
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, create a buildType with id = 'Build'
in the root project, and delete the patch script.
*/
create(DslContext.projectId, BuildType({
id("Build")
name = "IdeaVim compatibility with external plugins"
vcs {
root(RelativeId("HttpsGithubComAlexPl292IdeaVimCompatibilityRefsHeadsMaster"))
}
steps {
script {
scriptContent = "go run test.go"
}
}
triggers {
vcs {
}
}
features {
golang {
testFormat = "json"
}
}
}))
@@ -0,0 +1,20 @@
package patches.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, change the buildType with id = 'IdeaVimTests_Latest_EAP_With_Xorg'
accordingly, and delete the patch script.
*/
changeBuildType(RelativeId("IdeaVimTests_Latest_EAP_With_Xorg")) {
requirements {
add {
matches("teamcity.agent.jvm.os.family", "Linux")
}
add {
exists("env.DISPLAY")
}
}
}
-25
View File
@@ -1,25 +0,0 @@
package patches.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, change the buildType with id = 'Nvim'
accordingly, and delete the patch script.
*/
changeBuildType(RelativeId("Nvim")) {
triggers {
val trigger1 = find<VcsTrigger> {
vcs {
branchFilter = ""
}
}
trigger1.apply {
enabled = false
}
}
}
-25
View File
@@ -1,25 +0,0 @@
package patches.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.VcsTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, change the buildType with id = 'PluginVerifier'
accordingly, and delete the patch script.
*/
changeBuildType(RelativeId("PluginVerifier")) {
triggers {
val trigger1 = find<VcsTrigger> {
vcs {
branchFilter = ""
}
}
trigger1.apply {
enabled = false
}
}
}
-55
View File
@@ -1,55 +0,0 @@
package patches.buildTypes
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.Qodana
import jetbrains.buildServer.configs.kotlin.v2019_2.buildSteps.qodana
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.ScheduleTrigger
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, change the buildType with id = 'Qodana'
accordingly, and delete the patch script.
*/
changeBuildType(RelativeId("Qodana")) {
expectSteps {
qodana {
name = "Qodana"
param("clonefinder-enable", "true")
param("clonefinder-languages", "Java")
param("clonefinder-languages-container", "Java Kotlin")
param("clonefinder-mode", "")
param("clonefinder-queried-project", "src")
param("clonefinder-reference-projects", "src")
param("licenseaudit-enable", "true")
param("namesAndTagsCustom", "repo.labs.intellij.net/static-analyser/qodana")
param("report-version", "")
param("yaml-configuration", "")
}
}
steps {
update<Qodana>(0) {
clearConditions()
linter = jvm {
version = Qodana.JVMVersion.LATEST
}
}
}
triggers {
val trigger1 = find<ScheduleTrigger> {
schedule {
schedulingPolicy = weekly {
dayOfWeek = ScheduleTrigger.DAY.Tuesday
}
branchFilter = ""
triggerBuild = always()
}
}
trigger1.apply {
enabled = false
}
}
}
-74
View File
@@ -1,74 +0,0 @@
package patches.projects
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.AmazonEC2CloudImage
import jetbrains.buildServer.configs.kotlin.v2019_2.AmazonEC2CloudProfile
import jetbrains.buildServer.configs.kotlin.v2019_2.Project
import jetbrains.buildServer.configs.kotlin.v2019_2.amazonEC2CloudImage
import jetbrains.buildServer.configs.kotlin.v2019_2.amazonEC2CloudProfile
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 root project
accordingly, and delete the patch script.
*/
changeProject(DslContext.projectId) {
features {
val feature1 = find<AmazonEC2CloudImage> {
amazonEC2CloudImage {
id = "PROJECT_EXT_768"
profileId = "amazon-48"
agentPoolId = "41"
name = "BuildAgentsIdeaVim"
vpcSubnetId = "subnet-58839511"
keyPairName = ""
instanceType = "c5d.xlarge"
securityGroups = listOf("sg-eda08696", "sg-7332cf0f")
useSpotInstances = true
instanceTags = mapOf(
"project" to "idea-vim"
)
source = Source("ami-0d1a6a32faa92923e")
param("image-instances-limit", "")
param("spot-instance-price", "")
}
}
feature1.apply {
profileId = "amazon-48"
agentPoolId = "41"
name = "BuildAgentsIdeaVim"
vpcSubnetId = "subnet-58839511"
keyPairName = ""
instanceType = "c5d.xlarge"
securityGroups = listOf("sg-eda08696", "sg-7332cf0f")
useSpotInstances = true
instanceTags = mapOf(
"project" to "idea-vim"
)
source = Source("ami-0fa17ce8238eb8868")
}
val feature2 = find<AmazonEC2CloudProfile> {
amazonEC2CloudProfile {
id = "amazon-48"
name = "Cloud Agents - Single Build"
terminateAfterBuild = true
terminateIdleMinutes = 15
region = AmazonEC2CloudProfile.Regions.EU_WEST_DUBLIN
maxInstancesCount = 10
authType = accessKey {
keyId = "credentialsJSON:dbcdb2a2-de5f-4bc9-9421-292b19e83947"
secretKey = "credentialsJSON:65a87fe7-0977-4af9-96f1-344f2b82d269"
}
param("agentPushPreset", "")
}
}
feature2.apply {
name = "Cloud Agents - Single Build"
terminateAfterBuild = true
terminateIdleMinutes = 15
region = AmazonEC2CloudProfile.Regions.EU_WEST_DUBLIN
maxInstancesCount = 10
}
}
}
@@ -1,25 +0,0 @@
package patches.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, create a vcsRoot with id = 'HttpsGithubComAlexPl292IdeaVimCompatibilityRefsHeadsMaster'
in the root project, and delete the patch script.
*/
create(DslContext.projectId, GitVcsRoot({
id("HttpsGithubComAlexPl292IdeaVimCompatibilityRefsHeadsMaster")
name = "https://github.com/AlexPl292/IdeaVimCompatibility#refs/heads/master"
url = "https://github.com/AlexPl292/IdeaVimCompatibility"
branch = "refs/heads/master"
branchSpec = "refs/heads/*"
authMethod = password {
userName = "AlexPl292"
password = "credentialsJSON:43afd6e5-6ad5-4d12-a218-cf1547717a7f"
}
param("oauthProviderId", "PROJECT_EXT_1")
param("useAlternates", "true")
}))
-23
View File
@@ -1,23 +0,0 @@
package patches.vcsRoots
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.ui.*
import jetbrains.buildServer.configs.kotlin.v2019_2.vcs.GitVcsRoot
/*
This patch script was generated by TeamCity on settings change in UI.
To apply the patch, create a vcsRoot with id = 'IdeaVimCompatibility'
in the root project, and delete the patch script.
*/
create(DslContext.projectId, GitVcsRoot({
id("IdeaVimCompatibility")
name = "IdeaVimCompatibility"
url = "git@github.com:AlexPl292/IdeaVimCompatibility.git"
branch = "refs/heads/master"
authMethod = uploadedKey {
userName = "git"
uploadedKey = "Alex Plate TeamCity key"
}
param("useAlternates", "true")
}))
+1 -1
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>
+4 -3
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.2"
project(_Self.Project)
version = "2024.12"
project(_Self.Project)
+246 -28
View File
@@ -26,22 +26,61 @@ Previous maintainers:
&nbsp;
Andrey Vlasovskikh
Previous support members:
* [![icon][mail]](mailto:lejia.chen@jetbrains.com)
[![icon][github-off]](#)
&nbsp;
Lejia Chen
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)
@@ -57,7 +96,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)
@@ -65,7 +104,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)
@@ -77,11 +116,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)
@@ -89,19 +128,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)
@@ -109,7 +148,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)
@@ -133,11 +172,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)
@@ -149,11 +188,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)
@@ -161,7 +200,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)
@@ -188,12 +227,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)
@@ -208,10 +243,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;
@@ -284,10 +322,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;
@@ -416,6 +450,190 @@ Contributors:
[![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
* [![icon][mail]](mailto:pvydmuch@gmail.com)
[![icon][github]](https://github.com/pWydmuch)
&nbsp;
pWydmuch
* [![icon][mail]](mailto:leonid989@gmail.com)
[![icon][github]](https://github.com/Infonautica)
&nbsp;
Leonid Danilov
* [![icon][mail]](mailto:emanuel-367@hotmail.com)
[![icon][github]](https://github.com/emanuelgestosa)
&nbsp;
Emanuel Gestosa
* [![icon][mail]](mailto:81118900+lippfi@users.noreply.github.com)
[![icon][github]](https://github.com/lippfi)
&nbsp;
lippfi
* [![icon][mail]](mailto:fillipser143@gmail.com)
[![icon][github]](https://github.com/Parker7123)
&nbsp;
FilipParker
* [![icon][mail]](mailto:7138209+duhaesbaert@users.noreply.github.com)
[![icon][github]](https://github.com/duhaesbaert)
&nbsp;
Eduardo Haesbaert
* [![icon][mail]](mailto:nikolaevsky.egor@gmail.com)
[![icon][github]](https://github.com/Aisper)
&nbsp;
Egor Nikolaevsky
* [![icon][mail]](mailto:77796630+throwaway69420-69420@users.noreply.github.com)
[![icon][github]](https://github.com/kun-codes)
&nbsp;
Bishwa Saha
* [![icon][mail]](mailto:alexfu@fastmail.com)
[![icon][github]](https://github.com/alexfu)
&nbsp;
Alex Fu
* [![icon][mail]](mailto:jakepeters199@hotmail.com)
[![icon][github]](https://github.com/LazyScaper)
&nbsp;
Jake
* [![icon][mail]](mailto:the1xdeveloper@gmail.com)
[![icon][github]](https://github.com/The1xDeveloper)
&nbsp;
The1xDeveloper
* [![icon][mail]](mailto:shaunewilliams@gmail.com)
[![icon][github]](https://github.com/shaunlebron)
&nbsp;
shaun
* [![icon][mail]](mailto:i.i.babko@gmail.com)
[![icon][github]](https://github.com/igorbabko)
&nbsp;
Igor Babko
* [![icon][mail]](mailto:533601+felixwiemuth@users.noreply.github.com)
[![icon][github]](https://github.com/felixwiemuth)
&nbsp;
Felix Wiemuth
* [![icon][mail]](mailto:kirill.karnaukhov@jetbrains.com)
[![icon][github]](https://github.com/kkarnauk)
&nbsp;
Kirill Karnaukhov
* [![icon][mail]](mailto:sander.hestvik@gmail.com)
[![icon][github]](https://github.com/SanderHestvik)
&nbsp;
SanderHestvik
* [![icon][mail]](mailto:gregory.shrago@jetbrains.com)
[![icon][github]](https://github.com/gregsh)
&nbsp;
Greg Shrago
* [![icon][mail]](mailto:jphalip@gmail.com)
[![icon][github]](https://github.com/jphalip)
&nbsp;
Julien Phalip
* [![icon][mail]](mailto:j.trimailovas@gmail.com)
[![icon][github]](https://github.com/trimailov)
&nbsp;
Justas Trimailovas
* [![icon][mail]](mailto:justast@wix.com)
[![icon][github]](https://github.com/justast-wix)
&nbsp;
Justas Trimailovas
* [![icon][mail]](mailto:wangxinhe06@gmail.com)
[![icon][github]](https://github.com/wxh06)
&nbsp;
Xinhe Wang
* [![icon][mail]](mailto:vladimir.parfinenko@jetbrains.com)
[![icon][github]](https://github.com/cypok)
&nbsp;
Vladimir Parfinenko
* [![icon][mail]](mailto:sdoerner@google.com)
[![icon][github]](https://github.com/sdoerner)
&nbsp;
Sebastian Dörner
* [![icon][mail]](mailto:ocordova@pulsarml.com)
[![icon][github]](https://github.com/oca159)
&nbsp;
Osvaldo
* [![icon][mail]](mailto:nath@squareup.com)
[![icon][github]](https://github.com/nath)
&nbsp;
Nath Tumlin
* [![icon][mail]](mailto:ilya.usov@jetbrains.com)
[![icon][github]](https://github.com/Iliya-usov)
&nbsp;
Ilya Usov
* [![icon][mail]](mailto:peterHoburg@users.noreply.github.com)
[![icon][github]](https://github.com/peterHoburg)
&nbsp;
Peter Hoburg
* [![icon][mail]](mailto:erotourtes@gmail.com)
[![icon][github]](https://github.com/erotourtes)
&nbsp;
Max Siryk
* [![icon][mail]](mailto:ivan.yarkov@jetbrains.com)
[![icon][github]](https://github.com/MToolMakerJB)
&nbsp;
Ivan Yarkov
* [![icon][mail]](mailto:mia.vucinic@jetbrains.com)
[![icon][github]](https://github.com/vumi19)
&nbsp;
Mia Vucinic
* [![icon][mail]](mailto:canava.thomas@gmail.com)
[![icon][github]](https://github.com/Malandril)
&nbsp;
Thomas Canava
* [![icon][mail]](mailto:xinhe.wang@jetbrains.com)
[![icon][github]](https://github.com/wxh06)
&nbsp;
Xinhe Wang
* [![icon][mail]](mailto:zuber.kuba@gmail.com)
[![icon][github]](https://github.com/zuberol)
&nbsp;
Jakub Zuber
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.
+237 -2
View File
@@ -23,7 +23,234 @@ It is important to distinguish EAP from traditional pre-release software.
Please note that the quality of EAP versions may at times be way below even
usual beta standards.
## To Be Released
## End of changelog file maintenance
Since version 2.9.0, the changelog can be found on YouTrack
* [To Be Released](https://youtrack.jetbrains.com/issues/VIM?q=%23%7BReady%20To%20Release%7D%20)
* [Version Fixes](https://youtrack.jetbrains.com/issues/VIM?q=State:%20Fixed%20sort%20by:%20%7BFix%20versions%7D%20asc)
## 2.9.0, 2024-02-20
### Fixes:
* [VIM-3055](https://youtrack.jetbrains.com/issue/VIM-3055) Fix the issue with double deleting after dot
### Merged PRs:
* [805](https://github.com/JetBrains/ideavim/pull/805) by [chylex](https://github.com/chylex): VIM-3238 Fix recording a macro that replays another macro
## 2.8.0, 2024-01-30
### Fixes:
* [VIM-3130](https://youtrack.jetbrains.com/issue/VIM-3130) Change the build version to 2023.1.2
* [VIM-3168](https://youtrack.jetbrains.com/issue/VIM-3168) Do not switch to block caret after enter if the IdeaVim is disabled
* [VIM-3165](https://youtrack.jetbrains.com/issue/VIM-3165) Do not process enter key as IdeaVim shortcut if it's not an actual keypress
* [VIM-3159](https://youtrack.jetbrains.com/issue/VIM-3159) Shift-enter now works in normal mode again
* [VIM-3157](https://youtrack.jetbrains.com/issue/VIM-3157) Do not invoke enter in invokeLater for python console
* [VIM-3195](https://youtrack.jetbrains.com/issue/VIM-3195) Fix escape in injected editor
* [VIM-3190](https://youtrack.jetbrains.com/issue/VIM-3190) Do not use octopus handler if the enter key is used with modifiers like shift or control
* [VIM-3203](https://youtrack.jetbrains.com/issue/VIM-3203) Split action not works in normal mode
* [VIM-3184](https://youtrack.jetbrains.com/issue/VIM-3184) Revert "VIM-3184: Temporally disable new handlers for the thin client"
* [VIM-3186](https://youtrack.jetbrains.com/issue/VIM-3186) Do not multiply the enter action by the amount of carets
* [VIM-3177](https://youtrack.jetbrains.com/issue/VIM-3177) Formatting of commit message works again
* [VIM-1611](https://youtrack.jetbrains.com/issue/VIM-1611) actions related to resolving conflicts doesn't seem to work
* [VIM-3204](https://youtrack.jetbrains.com/issue/VIM-3204) Add checker that verifies the configuratin of the keymap
* [VIM-3084](https://youtrack.jetbrains.com/issue/VIM-3084) Double update for the status bar icon
* [VIM-3176](https://youtrack.jetbrains.com/issue/VIM-3176) Reselecting visual selection after pasting above it select wrong lines
* [VIM-3206](https://youtrack.jetbrains.com/issue/VIM-3206) Disable both copilot suggestion and insert mode on a single escape
* [VIM-3090](https://youtrack.jetbrains.com/issue/VIM-3090) Cmd line mode saves the visual mode
* [VIM-3085](https://youtrack.jetbrains.com/issue/VIM-3085) Open access to VimTypedActionHandler and VimShortcutKeyAction
* [VIM-3260](https://youtrack.jetbrains.com/issue/VIM-3260) Processing the offsets at the file end
* [VIM-3183](https://youtrack.jetbrains.com/issue/VIM-3183) Execute .ideavimrc on pooled thread
### Merged PRs:
* [763](https://github.com/JetBrains/ideavim/pull/763) by [Sam Ng](https://github.com/samabcde): Fix(VIM-3176) add test for restore selection after pasting in/below s…
* [772](https://github.com/JetBrains/ideavim/pull/772) by [chylex](https://github.com/chylex): Prevent code completion popup from appearing after running a macro
* [787](https://github.com/JetBrains/ideavim/pull/787) by [Leonid Danilov](https://github.com/Infonautica): Added "Which-Key" to Plugins
* [778](https://github.com/JetBrains/ideavim/pull/778) by [lippfi](https://github.com/lippfi): Showmode
* [788](https://github.com/JetBrains/ideavim/pull/788) by [Matt Ellis](https://github.com/citizenmatt): Refactor VimOptionGroupBase
## 2.7.0, 2023-11-07
### Fixes:
* [VIM-2933](https://youtrack.jetbrains.com/issue/VIM-2933) Reloading/sourcing .ideavimrc does not initialize new plugins
* [VIM-3138](https://youtrack.jetbrains.com/issue/VIM-3138) Do not try to register disposer if the caret is already disposed
### Merged PRs:
* [734](https://github.com/JetBrains/ideavim/pull/734) by [Matt Ellis](https://github.com/citizenmatt): Support `~/` on Windows
* [736](https://github.com/JetBrains/ideavim/pull/736) by [chylex](https://github.com/chylex): Fix(VIM-2933): Reloading/sourcing .ideavimrc does not initialize new plugins
## 2.6.3, 2023-10-30
### Changes:
- 2.6.0 and 2.6.1 releases are broken. Version 2.6.3 reverts IdeaVim plugin to the working state as for 2.5.1.
## 2.6.0, 2023-10-27
This version of IdeaVim contains a lot of issues. Version 2.6.3 reverts these changes.
### Features:
* `ShowHoverInfo` action can be used in mappings to open a tooltip that is shown by
mouse hovering | [VIM-2106](https://youtrack.jetbrains.com/issue/VIM-2106)
* `has` Vim Script function supports the most common OS checks: win32, win64, linux, mac, macunix, osx, osxdarwin, bsd, sun, unix
* See https://github.com/JetBrains/ideavim#vim-script for details about Vim Script
### Fixes:
* [VIM-3060](https://youtrack.jetbrains.com/issue/VIM-3060) Clipboard interaction stopped working
* [VIM-3095](https://youtrack.jetbrains.com/issue/VIM-3095) Fix missing ellipsis digraph
* [VIM-2562](https://youtrack.jetbrains.com/issue/VIM-2562) Fix hang with multi-width chars in command line
* [VIM-696](https://youtrack.jetbrains.com/issue/VIM-696) Vim selection issue after undo
* [VIM-1639](https://youtrack.jetbrains.com/issue/VIM-1639) Ctrl-o and Ctrl-i jumping in files of different projects
### Merged PRs:
* [697](https://github.com/JetBrains/ideavim/pull/697) by [Matt Ellis](https://github.com/citizenmatt): Support per-window "global" values for local-to-window options
* [717](https://github.com/JetBrains/ideavim/pull/717) by [Matt Ellis](https://github.com/citizenmatt): Fix(VIM-2562): Fix hang with multi-width chars in command line
* [732](https://github.com/JetBrains/ideavim/pull/732) by [pWydmuch](https://github.com/pWydmuch): Fix md links in doc
* [733](https://github.com/JetBrains/ideavim/pull/733) by [Matt Ellis](https://github.com/citizenmatt): Add support for ShowHoverInfo action to 2023.1 and 2023.2
* [729](https://github.com/JetBrains/ideavim/pull/729) by [chylex](https://github.com/chylex): Add operating system type to `has()` function
* [726](https://github.com/JetBrains/ideavim/pull/726) by [Matt Ellis](https://github.com/citizenmatt): Fix range for fall back comment mode
## 2.5.0, 2023-09-01
### Fixes:
* [VIM-802](https://youtrack.jetbrains.com/issue/VIM-802) IdeaVim vs. Vim: discrepancies in using registers
* [VIM-2246](https://youtrack.jetbrains.com/issue/VIM-2246) X11/Xorg Primary selection register "* not supported
* [VIM-2313](https://youtrack.jetbrains.com/issue/VIM-2313)
[VIM-2318](https://youtrack.jetbrains.com/issue/VIM-2318)
[VIM-2666](https://youtrack.jetbrains.com/issue/VIM-2666)
[VIM-2951](https://youtrack.jetbrains.com/issue/VIM-2951)
IdeaVim works correctly in read-only editors like log or tests output.
### Merged PRs:
* [666](https://github.com/JetBrains/ideavim/pull/666) by [Matt Ellis](https://github.com/citizenmatt): Improve formatting of `:set` command output
* [667](https://github.com/JetBrains/ideavim/pull/667) by [Matt Ellis](https://github.com/citizenmatt): Eagerly initialise local options and introduce option scope
* [672](https://github.com/JetBrains/ideavim/pull/672) by [Matt Ellis](https://github.com/citizenmatt): Fix issue adding back hidden status bar widget
* [668](https://github.com/JetBrains/ideavim/pull/668) by [ludwig-jb](https://github.com/ludwig-jb): Handle unicode grapheme clusters
## 2.4.0, 2023-07-18
### Fixes:
* [VIM-2975](https://youtrack.jetbrains.com/issue/VIM-2975) Fix the offset after the rendered docs
* [VIM-2685](https://youtrack.jetbrains.com/issue/VIM-2685) Register command outputs different values for same registers
* [VIM-1294](https://youtrack.jetbrains.com/issue/VIM-1294) unvoluntary unfolding when using ideavim
* [VIM-2818](https://youtrack.jetbrains.com/issue/VIM-2818) Wrong caret position after multicaret paste
### Merged PRs:
* [662](https://github.com/JetBrains/ideavim/pull/662) by [ludwig-jb](https://github.com/ludwig-jb): Update VimMessages#updateStatusBar to accept VimEditor
* [659](https://github.com/JetBrains/ideavim/pull/659) by [Sam Ng](https://github.com/samabcde): VIM-2920 fix select block expansion when enclose boundary is line break
## 2.3.0, 2023-06-14
### Features:
* Matchit now supports PHP files | [VIM-2678](https://youtrack.jetbrains.com/issue/VIM-2678)
### Fixes:
* [VIM-2909](https://youtrack.jetbrains.com/issue/VIM-2909) Fix incorrect file detection while closing diff window
* [VIM-2912](https://youtrack.jetbrains.com/issue/VIM-2912) Fix focus after :q
* [VIM-2930](https://youtrack.jetbrains.com/issue/VIM-2930) vim-multiple-cursors + ReplaceWithRegister issue
* [VIM-2945](https://youtrack.jetbrains.com/issue/VIM-2945) %-movement mismatches braces
* [VIM-2953](https://youtrack.jetbrains.com/issue/VIM-2953) The previous fix for :q command caused weird behavior of tab closing
* [VIM-2964](https://youtrack.jetbrains.com/issue/VIM-2964) Fix an issue with leaking caret instance
### Merged PRs:
* [616](https://github.com/JetBrains/ideavim/pull/616) by [Matt Ellis](https://github.com/citizenmatt): Refactor/option delegated properties
* [626](https://github.com/JetBrains/ideavim/pull/626) by [Martin Yzeiri](https://github.com/myzeiri): Matchit bug fixes
* [619](https://github.com/JetBrains/ideavim/pull/619) by [Matt Ellis](https://github.com/citizenmatt): Fix some local options being used as global options
* [638](https://github.com/JetBrains/ideavim/pull/638) by [Sam Ng](https://github.com/samabcde): VIM-2615 add support to sort u command
* [646](https://github.com/JetBrains/ideavim/pull/646) by [Sam Ng](https://github.com/samabcde): VIM-1990 fix repeat delete find or till wrong MotionType
* [649](https://github.com/JetBrains/ideavim/pull/649) by [Martin Yzeiri](https://github.com/myzeiri): Add Matchit support for PHP
## 2.2.0, 2023-04-20
### Features:
* Now every secondary caret has its own marks. You can use marks and `gv` in multiple-caret mode now.
### Fixes:
* [VIM-1829](https://youtrack.jetbrains.com/issue/VIM-1829/key-combinations-are-not-working-in-visual-mode-IdeaVim) Fix marks when moving lines up/down
* [VIM-2130](https://youtrack.jetbrains.com/issue/VIM-2130/Vim-visual-mode-mapping-isnt-behaving-correctly-in-ideavim-it-leaves-visual-mode-after-its-executed) Fix marks when moving lines up/down
* [VIM-2428](https://youtrack.jetbrains.com/issue/VIM-2428/The-gv-command-doesnt-work) Fix marks when moving lines up/down
* [VIM-2686](https://youtrack.jetbrains.com/issue/VIM-2686/Multiple-caret-marks) Add individual mark storage for each secondary caret
* [VIM-2840](https://youtrack.jetbrains.com/issue/VIM-2840) Replace with register does not work with count
* [VIM-658](https://youtrack.jetbrains.com/issue/VIM-658) Stop macro on error
* [VIM-2787](https://youtrack.jetbrains.com/issue/VIM-2787) Save ideavimrc loading
* [VIM-2850](https://youtrack.jetbrains.com/issue/VIM-2850) Marks exception during IDE startup
* [VIM-2804](https://youtrack.jetbrains.com/issue/VIM-2804) IdeaVim multiple-cursors copy and paste issue when "set clipboard+=unnamed"
* [VIM-1768](https://youtrack.jetbrains.com/issue/VIM-1768) Delete surrounding character while in multiple cursors mode
* [VIM-282](https://youtrack.jetbrains.com/issue/VIM-282) Cursor line wrapping support (whichwrap)
* [VIM-2315](https://youtrack.jetbrains.com/issue/VIM-2315) Fix overlapping mappings execution
* [VIM-44](https://youtrack.jetbrains.com/issue/VIM-44) Unify navigation history between ideavim and idea
* [VIM-1735](https://youtrack.jetbrains.com/issue/VIM-1735) Fix enabling mulple carets after line selection
* [VIM-2881](https://youtrack.jetbrains.com/issue/VIM-2881) ReplaceRegister does no longer worker with MultiCursor
* [VIM-2244](https://youtrack.jetbrains.com/issue/VIM-2244) nnoremap mapping doesn't work correctly
* [VIM-2885](https://youtrack.jetbrains.com/issue/VIM-2885) "v:searchforward" does't work for IdeaVim
* [VIM-2733](https://youtrack.jetbrains.com/issue/VIM-2733) vim-surround emulation interacts incorrectly with unmatched quotes on previous lines
* [VIM-2884](https://youtrack.jetbrains.com/issue/VIM-2884) Moving multiple lines in visual mode is not working
* [VIM-2868](https://youtrack.jetbrains.com/issue/VIM-2868) Pasting in visual mode with P should not replace yank register like when pasting with p
* [VIM-2819](https://youtrack.jetbrains.com/issue/VIM-2819) Move command works incorrectly
* [VIM-795](https://youtrack.jetbrains.com/issue/VIM-795) Ctrl-w + h doesn't alway work (window navigation to the left window)
* [VIM-1551](https://youtrack.jetbrains.com/issue/VIM-1551) Surround: line surround not working
* [VIM-1746](https://youtrack.jetbrains.com/issue/VIM-1746) IdeaVim Surround removes unwanted characters
* [VIM-1750](https://youtrack.jetbrains.com/issue/VIM-1750) Surround with tag wrong position
* [VIM-2286](https://youtrack.jetbrains.com/issue/VIM-2286) Set surround not working for me as expected
* [VIM-2433](https://youtrack.jetbrains.com/issue/VIM-2433) Do not clear clipboard after inserting with ideaput
* [VIM-2896](https://youtrack.jetbrains.com/issue/VIM-2896) Correct ordering of handlers
* [VIM-2912](https://youtrack.jetbrains.com/issue/VIM-2912) Fix focus after :q
* [VIM-2909](https://youtrack.jetbrains.com/issue/VIM-2909) Fix incorrect file detection while closing diff window
### Merged PRs:
* [589](https://github.com/JetBrains/ideavim/pull/589) by [Matt Ellis](https://github.com/citizenmatt): Refactor option usage and introduce accessor API
* [604](https://github.com/JetBrains/ideavim/pull/604) by [Dominic Palmer](https://github.com/dominicpalmer): VIM-2773: Include empty lines in the selection when dragging backwards from EOL
* [603](https://github.com/JetBrains/ideavim/pull/603) by [Dominic Palmer](https://github.com/dominicpalmer): VIM-2773: Prevent viewport displacement on undo
* [602](https://github.com/JetBrains/ideavim/pull/602) by [Matt Ellis](https://github.com/citizenmatt): Refactor options service
* [612](https://github.com/JetBrains/ideavim/pull/612) by [Dani Sevastianov](https://github.com/danisevas): Fix quick-scope setup documentation
* [617](https://github.com/JetBrains/ideavim/pull/617) by [Silence Tai](https://github.com/Stzx): Fix dispose operation
## 2.1.0, 2023-01-10
### Features:
* Add IdeaVim tutor. You can access it via the status bar icon.
### Fixes:
* [VIM-2797](https://youtrack.jetbrains.com/issue/VIM-2797) Introduce variable to mute default argtextobj mappings
* [VIM-758](https://youtrack.jetbrains.com/issue/VIM-758) Support d mappings
* [VIM-2577](https://youtrack.jetbrains.com/issue/VIM-2577) Fix paste at the end of notebook cell
* [VIM-2813](https://youtrack.jetbrains.com/issue/VIM-2813) Migrate update checker to VimStandalonePluginUpdateChecker
* [VIM-2833](https://youtrack.jetbrains.com/issue/VIM-2833) Fix rare deadlock during put in insert mode from clipboard
### Merged PRs:
* [558](https://github.com/JetBrains/ideavim/pull/558) by [Matt Ellis](https://github.com/citizenmatt): Fix incorrect normalising for trailing inlay
* [554](https://github.com/JetBrains/ideavim/pull/554) by [Matt Ellis](https://github.com/citizenmatt): Refactor "last column" calculations
* [553](https://github.com/JetBrains/ideavim/pull/553) by [Matt Ellis](https://github.com/citizenmatt): Rearrange and rename some code in engine
* [560](https://github.com/JetBrains/ideavim/pull/560) by [Runinho](https://github.com/Runinho): Fix(VIM-2577) paste not working at end of notebook cell
* [571](https://github.com/JetBrains/ideavim/pull/571) by [Ada](https://github.com/adaext): Remove the redundant quotation mark at the end of "packadd matchit" command
* [561](https://github.com/JetBrains/ideavim/pull/561) by [Matt Ellis](https://github.com/citizenmatt): Fix incremental search not scrolling to current match
* [559](https://github.com/JetBrains/ideavim/pull/559) by [Runinho](https://github.com/Runinho): Fix(VIM-2760) notebookCommandMode detection
* [579](https://github.com/JetBrains/ideavim/pull/579) by [Martin Yzeiri](https://github.com/myzeiri): VIM-2799: Add Matchit support for cshtml files
* [580](https://github.com/JetBrains/ideavim/pull/580) by [Martin Yzeiri](https://github.com/myzeiri): Matchit: Add more Rider file types
* [583](https://github.com/JetBrains/ideavim/pull/583) by [Matt Ellis](https://github.com/citizenmatt): Introduce ScrollGroup
* [586](https://github.com/JetBrains/ideavim/pull/586) by [Patrick Elmquist](https://github.com/patrick-elmquist): Fixed number references in Tutor
## 2.0.0, 2022-11-01
### Changes:
* IdeaVim changes license from GPL-2.0 or later to MIT. [VIM-2782](https://youtrack.jetbrains.com/issue/VIM-2782)
## 1.12.0, 2022-11-01
### Fixes:
* [VIM-1758](https://youtrack.jetbrains.com/issue/VIM-1758) Commentary plugin in rider
* [VIM-1903](https://youtrack.jetbrains.com/issue/VIM-1903) Autoindent now works in rider
* [VIM-2744](https://youtrack.jetbrains.com/issue/VIM-2744) Fix undo from ex line
* [VIM-2749](https://youtrack.jetbrains.com/issue/VIM-2749) Fix :tabn and :tabN commands
* [VIM-2718](https://youtrack.jetbrains.com/issue/VIM-2718) Fixed case where the primary caret was changed
* [VIM-2766](https://youtrack.jetbrains.com/issue/VIM-2766) Move NERDTree update to background thread
* [VIM-2768](https://youtrack.jetbrains.com/issue/VIM-2768) Refactor listeners
* [VIM-2776](https://youtrack.jetbrains.com/issue/VIM-2776) Use filename index for file search
### Merged PRs:
* [550](https://github.com/JetBrains/ideavim/pull/550) by [Matt Ellis](https://github.com/citizenmatt): Fix(VIM-2778) Remove override of editor scroll setting
## 1.11.0, 2022-08-09
### Features:
* Add `gcu` command for Commentary plugin
@@ -36,6 +263,7 @@ usual beta standards.
E.g. `<Plug>Commentary` instead of `<Plug>(CommentMotion)`. Old mappings are maintained for compatibility.
* If you open `~/.ideavimrc` in IDE, remove a mapping, and reload the config using the reload button,
the mapping will actually be unmapped.
* New vim (and IdeaVim) behaviour: `ci(`& friends searches for the brackets in the line.
### Fixes:
* [VIM-2587](https://youtrack.jetbrains.com/issue/VIM-2587) Use ctrl-6 as ctrl-^
@@ -52,11 +280,14 @@ usual beta standards.
* [VIM-2595](https://youtrack.jetbrains.com/issue/VIM-2595) Support plugins in macro execution
* [VIM-2671](https://youtrack.jetbrains.com/issue/VIM-2671) Fix using plugins from mappings
* [VIM-2675](https://youtrack.jetbrains.com/issue/VIM-2675) Fix numbering register in visual mode
* [VIM-696](https://youtrack.jetbrains.com/issue/VIM-696/vim-selection-issue-after-undo) Fix selection after undo
* [VIM-744](https://youtrack.jetbrains.com/issue/VIM-744/Use-undoredo-with-count-modifier) Add count to undo/redo
* [VIM-1862](https://youtrack.jetbrains.com/issue/VIM-1862/Ex-commands-executed-in-keymaps-and-macros-are-added-to-the-command-history) Fix command history
* [VIM-2227](https://youtrack.jetbrains.com/issue/VIM-2227) Wrong behavior when deleting / changing surround with invalid character
* [VIM-2691](https://youtrack.jetbrains.com/issue/VIM-2691) Save file on :w
* [VIM-2710](https://youtrack.jetbrains.com/issue/VIM-2710) Show options value on `set opt`
* [VIM-913](https://youtrack.jetbrains.com/issue/VIM-913) Partially fix the issue with macros and autocompletion
* [VIM-2723](https://youtrack.jetbrains.com/issue/VIM-2723) Move focus to editor after :q
* [VIM-2728](https://youtrack.jetbrains.com/issue/VIM-2728) Give access to global variables
### Merged PRs:
* [468](https://github.com/JetBrains/ideavim/pull/468) by [Thomas Schouten](https://github.com/PHPirates): Implement UserDataHolder for EditorDataContext
@@ -66,6 +297,10 @@ usual beta standards.
* [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
+74 -22
View File
@@ -1,26 +1,50 @@
[![TeamCity Build][teamcity-build-status-svg]][teamcity-build-status]
IdeaVim is an open source project created by 80+ contributors. Would you like to make it even better? Thats wonderful!
IdeaVim is an open source project created by 130+ 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/).
# Awards for Quality Contributions
In February 2025, were starting a program to award one-year All Products Pack subscriptions to the implementers of quality contributions to the IdeaVim project. The program will continue for all of 2025 and may be prolonged.
Subscriptions can be awarded for merged pull requests that meet the following requirements:
- The change should be non-trivial, though there might be exceptions — for example, where a trivial fix requires a complicated investigation.
- The change should fully implement a feature or fix the root cause of a bug. Workarounds or hacks are not accepted.
- If applicable, the change should be properly covered with unit tests.
- The work should be performed by the contributor, though the IdeaVim team is happy to review it and give feedback.
- The change should fix an issue or implement a feature filed by another user. If you want to file an issue and provide a solution to it, your request for a license should be explicitly discussed with the IdeaVim team in the ticket comments.
We'd like to make sure this award program is helpful and fair. Since we just started it and still fine-tuning the details, the final say on giving licenses remains with the IdeaVim team and the requirements might evolve over time.
Also, a few notes:
- If you have any doubts about whether your change or fix is eligible for the award, get in touch with us in the comments on YouTrack or in any other way.
- Please mention this program in the pull request text. This is not an absolute requirement, but it will help ensure we know you would like to be considered for an award, but this is not required.
- During 2025, a single person may only receive a single subscription. Even if you make multiple contributions, you will not be eligible for multiple awards.
- Any delays caused by the IdeaVim team will not affect eligibility for an award if the other requirements are met.
- Draft pull requests will not be reviewed unless explicitly requested.
- Tickets with the [ideavim-bounty](https://youtrack.jetbrains.com/issues?q=tag:%20%7BIdeaVim-bounty%7D) tag are good candidates for this award.
## Before you begin
- The project is written in Kotlin and Java. Choose whichever language you feel more comfortable with,
or maybe one that youd like to get to know better (why not start [learning Kotlin](https://kotlinlang.org/docs/tutorials/) right now?).
- The project is primarily written in Kotlin with a few Java files. When contributing to the project, use Kotlin unless
youre working in areas where Java is explicitly used.
- If you come across some IntelliJ Platform code, these links may prove helpful:
* [IntelliJ architectural overview](https://www.jetbrains.org/intellij/sdk/docs/platform/fundamentals.html)
* [IntelliJ plugin development resources](https://www.jetbrains.org/intellij/sdk/docs/welcome.html)
* [IntelliJ Platform SDK](https://plugins.jetbrains.com/docs/intellij/welcome.html)
* [IntelliJ architectural overview](https://plugins.jetbrains.com/docs/intellij/fundamentals.html)
* [IntelliJ Platform community space](https://platform.jetbrains.com/)
- Having any difficulties?
Join the brand new
[![Join the chat at https://gitter.im/JetBrains/ideavim](https://badges.gitter.im/JetBrains/ideavim.svg)](https://gitter.im/JetBrains/ideavim?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
for IdeaVim developers and contributors!
Ask any questions in [GitHub discussions](https://github.com/JetBrains/ideavim/discussions) or [IntelliJ Platform community space](https://platform.jetbrains.com/).
OK, ready to do some coding?
@@ -32,12 +56,16 @@ OK, ready to do some coding?
Yoo hoo! Youre all set to begin contributing.
We've prepared some useful configurations for you:
![Prepared configurations](assets/contributing/configurations.png)
- `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.
* `./gradlew test -x :tests:property-tests:test -x :tests:long-running-tests:test` — run tests.
* `./gradlew buildPlugin` — build the plugin. The result will be located in `build/distributions`. This file can be
installed by using `Settings | Plugin | >Gear Icon< | Install Plugin from Disk...`. You can stay with your personal build
for a few days or send it to a friend for testing.
@@ -58,12 +86,16 @@ for a few days or send it to a friend for testing.
If you are looking for:
- Vim commands (`w`, `<C-O>`, `p`, etc.):
- Any particular command: `package-info.java`.
- Any particular command:
- [Commands common for Fleet and IdeaVim](vim-engine/src/main/resources/ksp-generated/engine_commands.json)
- [IdeaVim only commands](src/main/resources/ksp-generated/intellij_commands.json)
- How commands are executed in common: `EditorActionHandlerBase`.
- Key mapping: `KeyHandler.handleKey()`.
- Ex commands (`:set`, `:s`, `:nohlsearch`):
- Any particular ex command: package `com.maddyhome.idea.vim.ex.handler`.
- Any particular command:
- [Commands common for Fleet and IdeaVim](vim-engine/src/main/resources/ksp-generated/engine_ex_commands.json)
- [IdeaVim only commands](src/main/resources/ksp-generated/intellij_ex_commands.json)
- Vim script grammar: `Vimscript.g4`.
- Vim script parsing: package `com.maddyhome.idea.vim.vimscript.parser`.
- Vim script executor: `Executor`.
@@ -74,7 +106,7 @@ If you are looking for:
- Common features:
- State machine. How every particular keystroke is parsed in IdeaVim: `KeyHandler.handleKey()`.
- Options (`incsearch`, `iskeyword`, `relativenumber`): `OptionServiceImpl`.
- Options (`incsearch`, `iskeyword`, `relativenumber`): `VimOptionGroup`.
- Plugin startup: `PluginStartup`.
- Notifications: `NotificationService`.
- Status bar icon: `StatusBar.kt`.
@@ -87,15 +119,22 @@ 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.
##### Neovim
IdeaVim has an experimental integration with neovim in tests. Tests that are performed with `doTest` also executed in
IdeaVim has an integration with neovim in tests. Tests that are performed with `doTest` also executed in
neovim instance, and the state of IdeaVim is asserted to be the same as the state of neovim.
- Only tests that use `doTest` are checked with neovim.
- Tests with `@VimBehaviorDiffers` or `@TestWithoutNeovim` annotations don't use neovim.
@@ -120,6 +159,18 @@ 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
The IdeaVim plugin is divided into two main modules: IdeaVim and vim-engine.
IdeaVim serves as a plugin for JetBrains IDEs, while vim-engine is an IntelliJ Platform-independent Vim engine.
This engine is utilized in both the Vim plugin for Fleet 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.
If you still encounter any issues with the newer versions of IdeaVim, please [contact maintainers](https://github.com/JetBrains/ideavim#contact-maintainers).
-----
### I read the whole page but something is still unclear.
@@ -138,13 +189,14 @@ 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)
* [IntelliJ Platform community space](https://platform.jetbrains.com/)
* [Chat on gitter](https://gitter.im/JetBrains/ideavim)
* [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_TestsForIntelliJEAP&guest=1
[teamcity-build-status-svg]: https://teamcity.jetbrains.com/app/rest/builds/buildType:(id:IdeaVim_TestsForIntelliJEAP)/statusIcon.svg?guest=1
[teamcity-build-status]: https://ideavim.teamcity.com/viewType.html?buildTypeId=Ideavim_IdeaVimTests_Latest_EAP&guest=1
[teamcity-build-status-svg]: https://ideavim.teamcity.com/app/rest/builds/buildType:(id:Ideavim_IdeaVimTests_Latest_EAP)/statusIcon.svg?guest=1
+17 -335
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.
+55 -48
View File
@@ -9,9 +9,10 @@ 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 IntelliJ Platform-based IDEs.
IdeaVim is a Vim engine for JetBrains IDEs.
##### Contact maintainers:
* [Bug tracker](https://youtrack.jetbrains.com/issues/VIM)
@@ -21,14 +22,15 @@ IdeaVim is a Vim emulation plugin for IntelliJ Platform-based IDEs.
##### Resources:
* [Plugin homepage](https://plugins.jetbrains.com/plugin/164-ideavim)
* [Plugin homepage](https://lp.jetbrains.com/ideavim/)
* [Plugin on Marketplace](https://plugins.jetbrains.com/plugin/164-ideavim)
* [Changelog](CHANGES.md)
* [Continuous integration builds](https://teamcity.jetbrains.com/project.html?projectId=IdeaVim&guest=1)
* [Continuous integration builds](https://ideavim.teamcity.com/)
#### Compatibility
IntelliJ IDEA, PyCharm, CLion, PhpStorm, WebStorm, RubyMine, AppCode, DataGrip, GoLand, Rider, Cursive,
Android Studio and other IntelliJ platform based IDEs.
IntelliJ IDEA, PyCharm, GoLand, CLion, PhpStorm, WebStorm, RubyMine, DataGrip, DataSpell, Rider, Cursive,
Android Studio, and other [JetBrains IDEs](https://www.jetbrains.com/ides/).
Setup
------------
@@ -36,7 +38,7 @@ Setup
- IdeaVim can be installed via `Settings | Plugins`.
See the [detailed instructions](https://www.jetbrains.com/help/idea/managing-plugins.html#).
- Use `Tools | Vim Emulator` in the menu to enable or disable emulation.
- Use `Tools | Vim` in the menu to enable or disable vim.
- Use the `~/.ideavimrc` file as an analog of `~/.vimrc` ([learn more](#Files)). The XDG standard is supported, as well.
@@ -52,7 +54,7 @@ Would you like to try new features and fixes? Join the Early Access Program and
receive EAP builds as updates!
1. Click the IdeaVim icon <img src="src/main/resources/META-INF/pluginIcon_noBorders.svg" width="16" height="16" alt="icon"/>
in the status bar | `Early Access Program` | `Subscibe to EAP`
in the status bar | `Early Access Program` | `Subscribe to EAP`
Or subscribe to EAP updates manually:
@@ -83,33 +85,16 @@ 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](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands)
* Some [set commands](https://github.com/JetBrains/ideavim/wiki/set-commands)
* Full Vim regexps for search and search/replace
* Vim web help
* `~/.ideavimrc` configuration file
[Emulated Vim plugins](https://github.com/JetBrains/ideavim/wiki/Emulated-plugins):
* vim-easymotion
* NERDTree
* vim-surround
* vim-multiple-cursors
* vim-commentary
* argtextobj.vim
* vim-textobj-entire
* ReplaceWithRegister
* vim-exchange
* vim-highlightedyank
* vim-paragraph-motion
* vim-indent-object
* match.it
* Vim script
* IdeaVim plugins
See also:
* [The list of all supported commands](src/main/java/com/maddyhome/idea/vim/package-info.java)
* [Top feature requests and bugs](https://youtrack.jetbrains.com/issues/VIM?q=%23Unresolved+sort+by%3A+votes)
* [Vimscript support roadmap](vimscript-info/VIMSCRIPT_ROADMAP.md)
* [List of supported in-build functions](vimscript-info/FUNCTIONS_INFO.MD)
Files
-----
@@ -198,10 +183,10 @@ Alternatively, you can set up initialization commands using [XDG](https://specif
Put your settings to `$XDG_CONFIG_HOME/ideavim/ideavimrc` file.
Emulated Vim Plugins
IdeaVim Plugins
--------------------
See [doc/emulated-plugins.md](https://github.com/JetBrains/ideavim/wiki/Emulated-plugins)
See [doc/IdeaVim Plugins.md](https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins)
Executing IDE Actions
---------------------
@@ -210,23 +195,26 @@ IdeaVim adds various commands for listing and executing arbitrary IDE actions as
Ex commands or via `:map` command mappings:
### Executing actions:
* `:action {action_id}`
* Execute an action by `{action_id}`. Works from Ex command line.
* Please don't use `:action` in mappings. Use `<Action>` instead.
* `<Action>({action_id})`
* For the mappings you can use a special `<Action>` keyword. Don't forget the parentheses.
* E.g. `map gh <Action>(ShowErrorDescription)` <- execute hover on `gh`.
* :warning: Mappings to `<Action>` don't work with `noremap`.
If you know the case when it's needed, please [let us know](https://github.com/JetBrains/ideavim#contact-maintainers).
* `:action {action_id}`
* Execute an action by `{action_id}`. Works from Ex command line.
* Please don't use `:action` in mappings. Use `<Action>` instead.
### Finding action ids:
### Finding action IDs:
* IJ provides `IdeaVim: track action Ids` command to show the id of the executed actions.
* IJ provides `IdeaVim: track action IDs` command to show the id of the executed actions.
This command can be found in "Search everywhere" (double `shift`).
<details>
<summary><strong>"Track action Ids" Details</strong> (click to see)</summary>
<img src="assets/readme/track_action_id.gif" alt="track action ids"/>
<summary><strong>"Track action IDs" Details</strong> (click to see)</summary>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/readme/track_action_dark.gif">
<img src="assets/readme/track_action_light.gif" alt="track action ids"/>
</picture>
</details>
@@ -249,8 +237,7 @@ Ex commands or via `:map` command mappings:
##### Some popular actions:
```
QuickJavaDoc - Quick Documentation (not only for java, all languages)
ShowErrorDescription - Show description of the error under the caret (cursor hovering)
ShowHoverInfo - Quick Documentation and Error Description
QuickImplementations - Quick Definition
```
@@ -261,8 +248,7 @@ 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.
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).
[Vim Script Discussion](https://github.com/JetBrains/ideavim/discussions/357).
### IDE specific options
@@ -305,7 +291,9 @@ endif
The power of contributing drives IdeaVim :muscle:. Even small contributions matter!
See [CONTRIBUTING.md](CONTRIBUTING.md) to start bringing your value to the project.
See the contribution guide in [CONTRIBUTING.md](CONTRIBUTING.md) to start bringing your value to the project.
😎 In 2025, we launched a rewards program. See the guide for details.
Authors
-------
@@ -319,12 +307,12 @@ IdeaVim tips and tricks
- Use the power of IJ and Vim:
- `set ideajoin` to enable join via the IDE. See the [examples](https://jb.gg/f9zji9).
- Make sure `ideaput` is enabled for `clipboard` to enable native IJ insertion in Vim.
- Sync IJ bookmarks and Vim marks: `set ideamarks`
- Check out more [ex commands](https://github.com/JetBrains/ideavim/wiki/%22set%22-commands).
- Sync IJ bookmarks and IdeaVim global marks: `set ideamarks` (works for marks with capital letters only)
- Check out more [ex commands](https://github.com/JetBrains/ideavim/wiki/set-commands).
- Use your vim settings with IdeaVim. Put `source ~/.vimrc` in `~/.ideavimrc`.
- 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).
- Control the status bar icon via the [`ideastatusicon` option](https://github.com/JetBrains/ideavim/wiki/set-commands).
- Not familiar with the default behaviour during a refactoring? See the [`idearefactormode` option](https://github.com/JetBrains/ideavim/wiki/set-commands).
Some facts about Vim
-------
@@ -347,9 +335,12 @@ is the source of this knowledge.
[Here](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/normal.c#L5365)
is the full list of synonyms.
- You can read a [post](https://github.com/JetBrains/ideavim/wiki/how-many-modes-does-vim-have) about how modes work in Vim and IdeaVim.
- Have you ever used `U` after `dd`? [Don't even try](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/ops.c#L874).
- A lot of variables that refers to visual mode start with two uppercase letters, e.g. `VIsual_active`. [Some examples](https://github.com/vim/vim/blob/master/src/normal.c#L17).
- A lot of variables that refer to visual mode start with two uppercase letters, e.g. `VIsual_active`. [Some examples](https://github.com/vim/vim/blob/master/src/normal.c#L17).
As mentioned [here](https://vi.stackexchange.com/a/42885/12441), this was done this way to avoid the clash with X11.
- Other [strange things](https://github.com/vim/vim/blob/759d81549c1340185f0d92524c563bb37697ea88/src/ex_docmd.c#L1845) from vi:
* ":3" jumps to line 3
@@ -358,11 +349,27 @@ is the full list of synonyms.
- Vim script doesn't skip white space before comma. `F(a ,b)` => E475.
- Fancy constants for [undolevels](https://vimhelp.org/options.txt.html#%27undolevels%27):
> The local value is set to -123456 when the global value is to be used.
- Vi (not Vim) is a POSIX standard, and [has a spec](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html)! Vim is mostly POSIX compliant when Vi compatibility is selected with the `'compatible'` option, but there are still some differences that can be changed with `'copoptions'`. The spec is interesting because it documents the behaviour of different commands in a stricter style than the user documentation, describing the current line and column after the command, for example. [More details can be found by reading `:help posix`](https://vimhelp.org/vi_diff.txt.html#posix).
- The Vim documentation contains many easter eggs. We encounter them occasionally, but GitHub user mikesmithgh has compiled a substantial collection [here](https://github.com/mikesmithgh/vimpromptu).
- In addition to `:call err_teapot()`, which returns `E418: I'm a teapot`, there is also `:call err_teapot(1)`, which returns `E503: Coffee is currently not available`. Naturally, this is also supported in IdeaVim.
- Insert mode has all `Ctrl` keys mapped, except `Ctrl-B`. In the documentation, it is marked as **"CTRL-B in Insert
mode gone"**. Call `:h i_CTRL-B-gone` in Vim to read why `Ctrl-B` was removed.
License
-------
IdeaVim is licensed under the terms of the GNU Public License version 2
or any later version.
IdeaVim is licensed under the MIT license.
Third-party components and licenses are listed in [ThirdPartyLicenses.md](ThirdPartyLicenses.md).
All releases before 2.0.0 were licensed under terms of GPL-2.0 or later.
The last commit before switch to MIT is 05852b07c6090ad40fde7d3cafe0b074604f7ac5.
You can read more about the license change here: https://github.com/JetBrains/ideavim/discussions/543
<!-- Badges -->
+90
View File
@@ -0,0 +1,90 @@
IdeaVim project is licensed under MIT license except the following parts of it:
* File [ScrollViewHelper.kt](com/maddyhome/idea/vim/helper/ScrollViewHelper.kt) is licensed under Vim License.
* File [Tutor.kt](src/main/java/com/maddyhome/idea/vim/ui/Tutor.kt) is licensed under Vim License.
```
VIM LICENSE
I) There are no restrictions on distributing unmodified copies of Vim except
that they must include this license text. You can also distribute
unmodified parts of Vim, likewise unrestricted except that they must
include this license text. You are also allowed to include executables
that you made from the unmodified Vim sources, plus your own usage
examples and Vim scripts.
II) It is allowed to distribute a modified (or extended) version of Vim,
including executables and/or source code, when the following four
conditions are met:
1) This license text must be included unmodified.
2) The modified Vim must be distributed in one of the following five ways:
a) If you make changes to Vim yourself, you must clearly describe in
the distribution how to contact you. When the maintainer asks you
(in any way) for a copy of the modified Vim you distributed, you
must make your changes, including source code, available to the
maintainer without fee. The maintainer reserves the right to
include your changes in the official version of Vim. What the
maintainer will do with your changes and under what license they
will be distributed is negotiable. If there has been no negotiation
then this license, or a later version, also applies to your changes.
The current maintainers are listed here: https://github.com/orgs/vim/people.
If this changes it will be announced in appropriate places (most likely
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
impossible to contact the maintainer, the obligation to send him
your changes ceases. Once the maintainer has confirmed that he has
received your changes they will not have to be sent again.
b) If you have received a modified Vim that was distributed as
mentioned under a) you are allowed to further distribute it
unmodified, as mentioned at I). If you make additional changes the
text under a) applies to those changes.
c) Provide all the changes, including source code, with every copy of
the modified Vim you distribute. This may be done in the form of a
context diff. You can choose what license to use for new code you
add. The changes and their license must not restrict others from
making their own changes to the official version of Vim.
d) When you have a modified Vim which includes changes as mentioned
under c), you can distribute it without the source code for the
changes if the following three conditions are met:
- The license that applies to the changes permits you to distribute
the changes to the Vim maintainer without fee or restriction, and
permits the Vim maintainer to include the changes in the official
version of Vim without fee or restriction.
- You keep the changes for at least three years after last
distributing the corresponding modified Vim. When the maintainer
or someone who you distributed the modified Vim to asks you (in
any way) for the changes within this period, you must make them
available to him.
- You clearly describe in the distribution how to contact you. This
contact information must remain valid for at least three years
after last distributing the corresponding modified Vim, or as long
as possible.
e) When the GNU General Public License (GPL) applies to the changes,
you can distribute the modified Vim under the GNU GPL version 2 or
any later version.
3) A message must be added, at least in the output of the ":version"
command and in the intro screen, such that the user of the modified Vim
is able to see that it was modified. When distributing as mentioned
under 2)e) adding the message is only required for as far as this does
not conflict with the license used for the changes.
4) The contact information as required under 2)a) and 2)d) must not be
removed or changed, except that the person himself can make
corrections.
III) If you distribute a modified version of Vim, you are encouraged to use
the Vim license for your changes and make them available to the
maintainer, including the source code. The preferred way to do this is
by e-mail or by uploading the files to a server and e-mailing the URL.
If the number of changes is small (e.g., a modified Makefile) e-mailing a
context diff will do. The e-mail address to be used is
<maintainer@vim.org>
IV) It is not allowed to remove this license from the distribution of the Vim
sources, parts of it or from a modified version. You may use this
license for previous Vim releases instead of the license that they came
with, at your option.
```
---
File [sneakIcon.png](doc/images/sneakIcon.svg), which is originally an icon of the ideavim-sneak plugin,
is merged icons of IdeaVim plugin and a random sneaker by FreePic from flaticon.com.
+42
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
+30
View File
@@ -0,0 +1,30 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
plugins {
kotlin("jvm")
kotlin("plugin.serialization") version "2.2.0"
}
val kotlinxSerializationVersion: String by project
group = "com.intellij"
version = "SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
compileOnly("com.google.devtools.ksp:symbol-processing-api:2.1.21-2.0.2")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:$kotlinxSerializationVersion") {
// kotlin stdlib is provided by IJ, so there is no need to include it into the distribution
exclude("org.jetbrains.kotlin", "kotlin-stdlib")
exclude("org.jetbrains.kotlin", "kotlin-stdlib-common")
}
}
@@ -0,0 +1,55 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.annotations
// TODO support numpad keys parsing, see :keycodes
/**
* It's not necessary a Vim command
* This annotation may be used for:
* - commands
* - motions
*/
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class CommandOrMotion(val keys: Array<String>, vararg val modes: Mode)
annotation class TextObject(val keys: String)
enum class Mode(val abbrev: Char) {
/**
* Indicates this key mapping applies to Normal mode
*/
NORMAL('N'),
/**
* Indicates this key mapping applies to Visual mode
*/
VISUAL('X'),
/**
* Indicates this key mapping applies to Select mode
*/
SELECT('S'),
/**
* Indicates this key mapping applies to Operator Pending mode
*/
OP_PENDING('O'),
/**
* Indicates this key mapping applies to Insert or Replace modes
*/
INSERT('I'),
/**
* Indicates this key mapping applies to Command Line mode
*/
CMD_LINE('C'),
}
@@ -0,0 +1,16 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.annotations
/**
* [command] is formatted the same way it is formatted in Vim (with optional part in square brackets).
*/
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class ExCommand(val command: String)
@@ -0,0 +1,13 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.annotations
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
annotation class VimscriptFunction(val name: String)
@@ -0,0 +1,14 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.processors
import kotlinx.serialization.Serializable
@Serializable
data class CommandBean(val keys: String, val `class`: String, val modes: String)
@@ -0,0 +1,63 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.processors
import com.google.devtools.ksp.KspExperimental
import com.google.devtools.ksp.getAnnotationsByType
import com.google.devtools.ksp.processing.Resolver
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.symbol.KSAnnotated
import com.google.devtools.ksp.symbol.KSClassDeclaration
import com.google.devtools.ksp.symbol.KSFile
import com.google.devtools.ksp.symbol.KSVisitorVoid
import com.intellij.vim.annotations.CommandOrMotion
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.nio.file.Files
import kotlin.io.path.Path
import kotlin.io.path.writeText
class CommandOrMotionProcessor(private val environment: SymbolProcessorEnvironment): SymbolProcessor {
private val visitor = CommandOrMotionVisitor()
private val commands = mutableListOf<CommandBean>()
private val json = Json { prettyPrint = true }
override fun process(resolver: Resolver): List<KSAnnotated> {
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
val generatedDirPath = Path(environment.options["generated_directory"]!!)
Files.createDirectories(generatedDirPath)
val filePath = generatedDirPath.resolve(environment.options["commands_file"]!!)
val sortedCommands = commands.sortedWith(compareBy({ it.keys }, { it.`class` }))
val fileContent = json.encodeToString(sortedCommands)
filePath.writeText(fileContent)
return emptyList()
}
private inner class CommandOrMotionVisitor : KSVisitorVoid() {
@OptIn(KspExperimental::class)
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
val commandAnnotation = classDeclaration.getAnnotationsByType(CommandOrMotion::class).firstOrNull() ?: return
for (key in commandAnnotation.keys) {
commands.add(
CommandBean(key, classDeclaration.qualifiedName!!.asString(), commandAnnotation.modes.map { it.abbrev }.joinToString(separator = ""))
)
}
}
override fun visitFile(file: KSFile, data: Unit) {
file.declarations.forEach { it.accept(this, Unit) }
}
}
}
@@ -0,0 +1,61 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.processors
import com.google.devtools.ksp.KspExperimental
import com.google.devtools.ksp.getAnnotationsByType
import com.google.devtools.ksp.processing.Resolver
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.symbol.KSAnnotated
import com.google.devtools.ksp.symbol.KSClassDeclaration
import com.google.devtools.ksp.symbol.KSFile
import com.google.devtools.ksp.symbol.KSVisitorVoid
import com.intellij.vim.annotations.ExCommand
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.nio.file.Files
import kotlin.io.path.Path
import kotlin.io.path.writeText
class ExCommandProcessor(private val environment: SymbolProcessorEnvironment): SymbolProcessor {
private val visitor = EXCommandVisitor()
private val commandToClass = mutableMapOf<String, String>()
private val json = Json { prettyPrint = true }
override fun process(resolver: Resolver): List<KSAnnotated> {
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
val generatedDirPath = Path(environment.options["generated_directory"]!!)
Files.createDirectories(generatedDirPath)
val filePath = generatedDirPath.resolve(environment.options["ex_commands_file"]!!)
val sortedCommandToClass = commandToClass.toList().sortedWith(compareBy({ it.first }, { it.second })).toMap()
val fileContent = json.encodeToString(sortedCommandToClass)
filePath.writeText(fileContent)
return emptyList()
}
private inner class EXCommandVisitor : KSVisitorVoid() {
@OptIn(KspExperimental::class)
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
val exCommandAnnotation = classDeclaration.getAnnotationsByType(ExCommand::class).firstOrNull() ?: return
val commands = exCommandAnnotation.command.split(",")
for (command in commands) {
commandToClass[command] = classDeclaration.qualifiedName!!.asString()
}
}
override fun visitFile(file: KSFile, data: Unit) {
file.declarations.forEach { it.accept(this, Unit) }
}
}
}
@@ -0,0 +1,61 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.processors
import com.google.devtools.ksp.KspExperimental
import com.google.devtools.ksp.getAnnotationsByType
import com.google.devtools.ksp.processing.Resolver
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.symbol.KSAnnotated
import com.google.devtools.ksp.symbol.KSClassDeclaration
import com.google.devtools.ksp.symbol.KSFile
import com.google.devtools.ksp.symbol.KSVisitorVoid
import com.intellij.vim.annotations.VimscriptFunction
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.nio.file.Files
import kotlin.io.path.Path
import kotlin.io.path.writeText
class VimscriptFunctionProcessor(private val environment: SymbolProcessorEnvironment) : SymbolProcessor {
private val visitor = VimscriptFunctionVisitor()
private val nameToClass = mutableMapOf<String, String>()
private val json = Json { prettyPrint = true }
override fun process(resolver: Resolver): List<KSAnnotated> {
resolver.getAllFiles().forEach { it.accept(visitor, Unit) }
val generatedDirPath = Path(environment.options["generated_directory"]!!)
Files.createDirectories(generatedDirPath)
val filePath = generatedDirPath.resolve(environment.options["vimscript_functions_file"]!!)
val sortedNameToClass = nameToClass.toList().sortedWith(compareBy({ it.first }, { it.second })).toMap()
val fileContent = json.encodeToString(sortedNameToClass)
filePath.writeText(fileContent)
return emptyList()
}
// todo inspection that annotation is properly used on proper classes
private inner class VimscriptFunctionVisitor : KSVisitorVoid() {
@OptIn(KspExperimental::class)
override fun visitClassDeclaration(classDeclaration: KSClassDeclaration, data: Unit) {
val vimscriptFunctionAnnotation = classDeclaration.getAnnotationsByType(VimscriptFunction::class).firstOrNull() ?: return
val functionName = vimscriptFunctionAnnotation.name
nameToClass[functionName] = classDeclaration.qualifiedName!!.asString()
}
override fun visitFile(file: KSFile, data: Unit) {
file.declarations.forEach { it.accept(this, Unit) }
}
}
}
@@ -0,0 +1,20 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.providers
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.processing.SymbolProcessorProvider
import com.intellij.vim.processors.CommandOrMotionProcessor
class CommandOrMotionProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
return CommandOrMotionProcessor(environment)
}
}
@@ -0,0 +1,20 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.providers
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.processing.SymbolProcessorProvider
import com.intellij.vim.processors.ExCommandProcessor
class ExCommandProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
return ExCommandProcessor(environment)
}
}
@@ -0,0 +1,20 @@
/*
* Copyright 2003-2023 The IdeaVim authors
*
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE.txt file or at
* https://opensource.org/licenses/MIT.
*/
package com.intellij.vim.providers
import com.google.devtools.ksp.processing.SymbolProcessor
import com.google.devtools.ksp.processing.SymbolProcessorEnvironment
import com.google.devtools.ksp.processing.SymbolProcessorProvider
import com.intellij.vim.processors.VimscriptFunctionProcessor
class VimscriptFunctionProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor {
return VimscriptFunctionProcessor(environment)
}
}
@@ -0,0 +1,3 @@
com.intellij.vim.providers.CommandOrMotionProcessorProvider
com.intellij.vim.providers.ExCommandProcessorProvider
com.intellij.vim.providers.VimscriptFunctionProcessorProvider
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 KiB

+839 -419
View File
File diff suppressed because it is too large Load Diff
-6
View File
@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<baseline version="1.0">
<file name="src/main/java/com/maddyhome/idea/vim/listener/RiderSpecifics.kt">
<error line="1" column="1" source="filename" />
</file>
</baseline>
-248
View File
@@ -1,248 +0,0 @@
Emulated Vim Plugins
--------------------
IdeaVim extensions emulate plugins of the original Vim. In order to use
IdeaVim extensions, you have to enable them via this command in your `~/.ideavimrc`:
```
Plug '<extension-github-reference>'
```
If you reuse your existing `.vimrc` file using `source ~/.vimrc`, IdeaVim can parse and enable plugins that are defined
using [vim-plug](https://github.com/junegunn/vim-plug) or [vundle](https://github.com/VundleVim/Vundle.vim).
No additional set commands in `~/.ideavimrc` are required.
If you'd like to disable some plugin that's enabled in `.vimrc`, you can use `set no<extension-name>`
in `~/.ideavimrc`. E.g. `set nosurround`.
Available extensions:
## easymotion
* Setup:
* Install [IdeaVim-EasyMotion](https://plugins.jetbrains.com/plugin/13360-ideavim-easymotion/)
and [AceJump](https://plugins.jetbrains.com/plugin/7086-acejump/) plugins.
* `Plug 'easymotion/vim-easymotion'`
* <details>
<summary>Alternative syntax</summary>
<code>Plug 'https://github.com/easymotion/vim-easymotion'</code>
<br/>
<code>Plug 'vim-easymotion'</code>
<br/>
<code>set easymotion</code>
</details>
* Emulates [vim-easymotion](https://github.com/easymotion/vim-easymotion)
* Commands: All commands with the mappings are supported. See the [full list of supported commands](https://github.com/AlexPl292/IdeaVim-EasyMotion#supported-commands).
## NERDTree
* Setup: `Plug 'preservim/nerdtree'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/preservim/nerdtree'</code>
<br/>
<code>Plug 'nerdtree'</code>
<br/>
<code>set NERDTree</code>
</details>
* Emulates [NERDTree](https://github.com/preservim/nerdtree)
* Commands: [[see here|NERDTree-support]]
## surround
* Setup: `Plug 'tpope/vim-surround'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/tpope/vim-surround'</code>
<br/>
<code>Plug 'vim-surround'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=1697'</code>
<br/>
<code>set surround</code>
</details>
* Emulates [vim-surround](https://github.com/tpope/vim-surround)
* Commands: `ys`, `cs`, `ds`, `S`
## multiple-cursors
* Setup: `Plug 'terryma/vim-multiple-cursors'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/terryma/vim-multiple-cursors'</code>
<br/>
<code>Plug 'vim-multiple-cursors'</code>
<br/>
<code>set multiple-cursors</code>
</details>
* Emulates [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
* Commands: `<A-n>`, `<A-x>`, `<A-p>`, `g<A-n>`
## commentary
* Setup: `Plug 'tpope/vim-commentary'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/tpope/vim-commentary'</code>
<br/>
<code>Plug 'vim-commentary'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=3695'</code>
<br/>
<code>Plug 'tomtom/tcomment_vim'</code>
<br/>
<code>Plug 'tcomment_vim'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=1173'</code>
<br/>
<code>set commentary</code>
</details>
* Emulates [commentary.vim](https://github.com/tpope/vim-commentary)
* Commands: `gcc`, `gc + motion`, `v_gc`
* By [Daniel Leong](https://github.com/dhleong)
## ReplaceWithRegister
* Setup: `Plug 'vim-scripts/ReplaceWithRegister'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/vim-scripts/ReplaceWithRegister'</code>
<br/>
<code>Plug 'ReplaceWithRegister'</code>
<br/>
<code>Plug 'https://github.com/inkarkat/vim-ReplaceWithRegister'</code>
<br/>
<code>Plug 'inkarkat/vim-ReplaceWithRegister'</code>
<br/>
<code>Plug 'vim-ReplaceWithRegister'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2703'</code>
<br/>
<code>set ReplaceWithRegister</code>
</details>
* Emulates [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister)
* Commands: `gr`, `grr`
* By [igrekster](https://github.com/igrekster)
## argtextobj
* Setup:
* `Plug 'vim-scripts/argtextobj.vim'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/vim-scripts/argtextobj.vim'</code>
<br/>
<code>Plug 'argtextobj.vim'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2699'</code>
<br/>
<code>set argtextobj</code>
</details>
* By default, only the arguments inside parenthesis are considered. To extend the functionality
to other types of brackets, set `g:argtextobj_pairs` variable to a comma-separated
list of colon-separated pairs (same as VIM's `matchpairs` option), like
`let g:argtextobj_pairs="(:),{:},<:>"`. The order of pairs matters when
handling symbols that can also be operators: `func(x << 5, 20) >> 17`. To handle
this syntax parenthesis, must come before angle brackets in the list.
* Emulates [argtextobj.vim](https://www.vim.org/scripts/script.php?script_id=2699)
* Additional text objects: `aa`, `ia`
## exchange
* Setup: `Plug 'tommcdo/vim-exchange'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/tommcdo/vim-exchange'</code>
<br/>
<code>Plug 'vim-exchange'</code>
<br/>
<code>set exchange</code>
</details>
* Emulates [vim-exchange](https://github.com/tommcdo/vim-exchange)
* Commands: `cx`, `cxx`, `X`, `cxc`
* By [fan-tom](https://github.com/fan-tom)
## textobj-entire
* Setup: `Plug 'kana/vim-textobj-entire'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/kana/vim-textobj-entire'</code>
<br/>
<code>Plug 'vim-textobj-entire'</code>
<br/>
<code>Plug 'https://www.vim.org/scripts/script.php?script_id=2610'</code>
<br/>
<code>set textobj-entire</code>
</details>
* Emulates [vim-textobj-entire](https://github.com/kana/vim-textobj-entire)
* Additional text objects: `ae`, `ie`
* By [Alexandre Grison](https://github.com/agrison)
## highlightedyank
* Setup:
* `Plug 'machakann/vim-highlightedyank'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/machakann/vim-highlightedyank'</code>
<br/>
<code>Plug 'vim-highlightedyank'</code>
<br/>
<code>set highlightedyank</code>
</details>
* if you want to optimize highlight duration, assign a time in milliseconds:
`let g:highlightedyank_highlight_duration = "1000"`
A negative number makes the highlight persistent.
`let g:highlightedyank_highlight_duration = "-1"`
* if you want to change background color of highlight you can provide the rgba of the color you want e.g.
`let g:highlightedyank_highlight_color = "rgba(160, 160, 160, 155)"`
* Emulates [vim-highlightedyank](https://github.com/machakann/vim-highlightedyank)
* By [KostkaBrukowa](https://github.com/KostkaBrukowa)
## vim-paragraph-motion
* Setup: `Plug 'dbakker/vim-paragraph-motion'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/dbakker/vim-paragraph-motion'</code>
<br/>
<code>Plug 'vim-paragraph-motion'</code>
<br/>
<code>Plug 'https://github.com/vim-scripts/Improved-paragraph-motion'</code>
<br/>
<code>Plug 'vim-scripts/Improved-paragraph-motion'</code>
<br/>
<code>Plug 'Improved-paragraph-motion'</code>
<br/>
<code>set vim-paragraph-motion</code>
</details>
* Emulates [vim-paragraph-motion](https://github.com/dbakker/vim-paragraph-motion)
## vim-indent-object
* Setup: `Plug 'michaeljsmith/vim-indent-object'`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'https://github.com/michaeljsmith/vim-indent-object'</code>
<br/>
<code>Plug 'vim-indent-object'</code>
<br/>
<code>set textobj-indent</code>
</details>
* Emulates [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object)
* Additional text objects: `ai`, `ii`, `aI`
* By [Shrikant Sharat Kandula](https://github.com/sharat87)
## matchit.vim
* Setup: `packadd matchit`
* <details>
<summary>Alternative vim-plug / vundle syntax</summary>
<code>Plug 'vim-matchit'</code>
<br/>
<code>Plug 'chrisbra/matchit'</code>
<br/>
<code>set matchit</code>
</details>
* Emulates [matchit.vim](https://github.com/chrisbra/matchit)
* Currently works for HTML/XML and ruby
* By [Martin Yzeiri](https://github.com/myzeiri)

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