Commit Graph
10430 Commits
Author SHA1 Message Date
Alex Plate 9c9cd1b2a0 Bring back the function to set the mode, but in experimental status now 2025-08-08 14:28:01 +03:00
Alex Plate fb6a97f586 Remove redundant return statement in CommandLineScope 2025-08-08 12:44:30 +03:00
Alex Plate 87f5a6fab3 Remove stub classes
This solution was initially questionable. For a long time it produced nothing but more work on implementing the stubs.
2025-08-08 12:44:30 +03:00
Alex Plate 9d92ae9449 Remove the suspend from functions under the read or write actions
The suspending operations must not be performed under the read or write actions as this will lead to performance issues or freezes.

Also, the current implementation of launching coroutine under the write action is simply incorrect. The coroutine will escape the write action into another thread.
2025-08-08 12:44:30 +03:00
Alex Plate 492bd62166 Rename VimScope to VimApi and move it into a different package
`VimApi` would be a better entry point name. Also, the API term is clearer than the scope.
2025-08-08 12:44:30 +03:00
Alex Plate a0c213b90d Refactor Mode in API to be a simple enum
The current representation of Mode with `returnTo` is quite complicated and we're not even sure it'll remain like that.
At the same time, `mode()` function in Vim has quite a reach specification and there is a small chance it'll be changed. With this approach, we use values from Vim, yet in a form of enum.
2025-08-08 12:44:30 +03:00
Alex Plate fee75001f6 Do not allow to change the mode from the API
The details why we don't want this for now are logged in the code
2025-08-08 12:44:29 +03:00
Alex Plate df3fb1a8a3 Convert VimScope into the interface 2025-08-08 12:44:29 +03:00
Alex Plate 057f4eee5d The ReadImpl does not inherit the VimScopeImpl
`ReadImpl` didn't use anything from `VimScopeImpl`. This would make sense if `Read` inherited `VimScope`, but it doesn't.
Also, we'll always be able to bring back the dependency if we figure out it's necessary.
2025-08-08 12:44:29 +03:00
Alex Plate e2b20bb04d Reformat API module 2025-08-08 12:44:29 +03:00
Alex Plate add8023155 Rename @VimPluginDsl to @VimApiDsl
The API is a more correct term, despite the fact that the API will be mostly used from the plugins.
2025-08-08 12:44:29 +03:00
Alex Plate 88e77d1bea Add API module to the gradle config 2025-08-08 12:44:29 +03:00
Matt Ellis e6ed15c772 Fix command line missing due to empty colour
Fixes VIM-3993
2025-08-08 11:57:12 +03:00
dependabot[bot] 0867dbd420 Bump org.junit.jupiter:junit-jupiter from 5.13.3 to 5.13.4
Bumps [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) from 5.13.3 to 5.13.4.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.13.3...r5.13.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 18:27:06 +03:00
Mia Vucinic 3cb5308193 fix failing tests 2025-08-01 16:16:29 +03:00
Mia Vucinic 093769ee7c add file lock to ensure exclusive access 2025-08-01 16:16:29 +03:00
Mia Vucinic fd58a61685 remove ReplaceWithRegister options from tests
- since enabling and disabling extensions is no longer done using options, options in tests can be removed
2025-08-01 16:16:28 +03:00
Mia Vucinic 562ae63805 fix ReplaceWithRegister test
- remove unnecessary new lines in tests
2025-08-01 16:16:28 +03:00
Mia Vucinic 04603ae61f add new extensions API handling in test 2025-08-01 16:16:27 +03:00
Mia Vucinic 807dff45a9 add a new ReplaceWithRegister plugin implementation 2025-08-01 16:16:27 +03:00
Mia Vucinic a25b88327e implement PlugDisable command 2025-08-01 16:16:27 +03:00
Mia Vucinic fbb2351ec2 implement PlugEnable command 2025-08-01 16:16:26 +03:00
Mia Vucinic 621969faec implement a new way for registering extensions 2025-08-01 16:16:26 +03:00
Mia Vucinic 26e33c088c implement ksp for extensions processing 2025-08-01 16:16:26 +03:00
Mia Vucinic efdd0b9910 Add docs for the new Plugin API 2025-08-01 15:44:06 +03:00
Alex Plãte 38fba69c33 Merge pull request #1246 from JetBrains/thin-api-first-draft
API for writing plugins
2025-08-01 15:43:46 +03:00
dependabot[bot] 4764ffbbf5 Bump org.jetbrains.changelog from 2.2.1 to 2.3.0
Bumps org.jetbrains.changelog from 2.2.1 to 2.3.0.

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:52:03 +03:00
dependabot[bot] 2d9d000417 Bump com.squareup.okhttp3:okhttp from 4.12.0 to 5.0.0
Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 4.12.0 to 5.0.0.
- [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:50:43 +03:00
dependabot[bot] 2dfaff802d Bump io.ktor:ktor-client-auth from 3.2.2 to 3.2.3
Bumps [io.ktor:ktor-client-auth](https://github.com/ktorio/ktor) from 3.2.2 to 3.2.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.2.2...3.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:50:35 +03:00
Mia Vucinic 06e34d6005 add a default value for isBigWord in getNextWordStartOffset and getNextWordEndOffset 2025-07-29 16:27:03 +02:00
Mia Vucinic 8ae792e74e add return value to with and withPrimaryCaret 2025-07-29 16:23:12 +02:00
Mia Vucinic 15660a9f3d make functions in output panel scope non suspend 2025-07-29 16:10:15 +02:00
Xinhe Wang 64033078b2 Use vimLogger instead in NerdTree 2025-07-29 10:43:43 +03:00
Xinhe Wang ddff706ac8 Avoid NERDTree getting stuck by an invalid key sequence
This is not a complete fix, but a temporary measure to prevent it
from stopping responding.
2025-07-29 10:43:43 +03:00
Xinhe Wang 2e55cc1af8 Fix(VIM-3437): correct the behavior of NERDTree-X 2025-07-29 10:43:43 +03:00
Xinhe Wang 33f04869bf Fix(VIM-3985): correct the behavior of NERDTree-x 2025-07-29 10:43:43 +03:00
Xinhe Wang aeaceca76e Extract navigation-related NERDTree actions to make them reusable
Code is simplified in this commit but the actual behavior remains unchanged
2025-07-29 10:43:43 +03:00
Xinhe Wang e587161169 Refactor NerdAction
Removing `project` parameter from NerdAction.Code.action makes it
possible to extend NERDTree support to all tree components other
than the Project tool window.
2025-07-29 10:43:43 +03:00
Xinhe Wang b3fd205148 Extract dispatcher logic from NerdTree into AbstractDispatcher 2025-07-29 10:43:43 +03:00
Xinhe Wang 4558c3f5c8 Encapsulate KeyStrokeTrie in extension.nerdtree.Mappings
This avoids external manipulation of the KeyStroke set, resulting
in data inconsistency.
2025-07-29 10:43:43 +03:00
Xinhe Wang 962abda86b Convert NerdDispatcher to a light service
Since there's no need to expose the dispatcher, we can safely
convert it to a light service as suggested by DevKit.

See https://plugins.jetbrains.com/docs/intellij/plugin-services.html#light-services
2025-07-29 10:43:43 +03:00
Matt Ellis 7d9fa418ce Support :k{mark} without separating whitespace
Fixes VIM-3915
2025-07-28 12:21:46 +03:00
Matt Ellis 68e9538ac5 Remove unnecessary special case handling of subst
This was added before the grammar made whitespace optional between command and argument
2025-07-28 12:21:46 +03:00
Mia Vucinic 72accdd186 remove exception throwing from getFocusedEditor function 2025-07-28 10:26:51 +02:00
Mia Vucinic 4282a58719 fix doc comments for count parameter 2025-07-28 10:21:40 +02:00
Mia Vucinic f74552ef19 fix replaceText when editor is empty 2025-07-28 10:07:17 +02:00
Mia Vucinic a4e9e70df7 add test for inserting empty text and fix coerceIn function 2025-07-28 07:32:29 +02:00
Mia Vucinic 3c32c8bbe7 rename VimHighlightingServiceImpl to IjVimHighlightingService and VimPluginServiceImpl to IjVimPluginService 2025-07-28 07:32:29 +02:00
Mia Vucinic 265e2e14e7 move thin api services from the extension package to the thinapi package 2025-07-28 07:32:29 +02:00
Mia Vucinic 55b44aab53 implement add caret and remove caret functions 2025-07-28 07:32:18 +02:00