Commit Graph
168 Commits
Author SHA1 Message Date
Alex Plate e85c006321 Remove isRepeatable parameter from key mapping methods
First of all, this is a property of the plugin, not the mapping. Secondly, all plugins should support repeat.
2025-08-08 17:11:10 +03:00
Alex Plate 1db8d01961 Add detailed documentation for label usage in key mapping methods
Documented the role of `label` in providing intermediate mappings, allowing users to override default plugin mappings with custom configurations.
2025-08-08 16:23:37 +03:00
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 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 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
Mia VucinicandAlex Plate 26e33c088c implement ksp for extensions processing 2025-08-01 16:16:26 +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
Mia Vucinic 4282a58719 fix doc comments for count parameter 2025-07-28 10:21:40 +02:00
Mia Vucinic 55b44aab53 implement add caret and remove caret functions 2025-07-28 07:32:18 +02:00
Mia Vucinic c95421518e fix path handling for jump and marks 2025-07-24 17:13:41 +02:00
Mia Vucinic 5f4cd75898 remove unnecessary getNextWordStartOffset function from VimScope 2025-07-24 08:15:09 +02:00
Mia Vucinic 6abee14079 have CaretTransaction extend Read 2025-07-24 07:56:23 +02:00
Mia Vucinic d5e64a8f28 split read into Read and ReadScope
- We want to be able to execute functions defined on read scope under write lock as well, which means we want to have transaction extend read. However, due to conflicting names for caret scope builders (forEachCaret, withPrimaryCaret etc.) it was necessary to split it into two scopes:
1) Read - contains only functions available under read lock
2) ReadScope - contains both caret scope builders and functions defined on Read
2025-07-23 12:01:28 +02:00
Mia Vucinic e7ec16e8f1 remove variable locking 2025-07-22 13:46:04 +02:00
Mia Vucinic 74e213af1d remove methods from caret transaction 2025-07-22 13:42:13 +02:00
Mia Vucinic 2aa5230aa7 fix docs 2025-07-22 13:29:41 +02:00
Mia Vucinic ceaa74854f add docs 2025-07-22 13:17:04 +02:00
Mia Vucinic fd5e84eddc add docs 2025-07-22 12:39:10 +02:00
Mia Vucinic f5cf751a0a move files to appropriate packages 2025-07-22 12:31:53 +02:00
Mia Vucinic 6f4bd936f9 update docs 2025-07-22 12:12:39 +02:00
Mia Vucinic 34af17d18e rename caretAfterInsertedText to caret at end 2025-07-21 21:06:39 +02:00
Mia Vucinic 67fa38d999 add caret transaction test 2025-07-21 21:06:39 +02:00
Mia Vucinic 891b6316eb add a replace text blockwise function 2025-07-21 21:06:39 +02:00
Mia Vucinic 9e6fb85325 add test for digraph scope 2025-07-21 21:06:39 +02:00
Mia Vucinic f23e190849 delete on global option change listener 2025-07-21 21:06:39 +02:00
Mia Vucinic 36c2f797a9 add tests for search functions in VimScope 2025-07-21 21:06:39 +02:00
Mia Vucinic 98b19b2396 add variable tests 2025-07-21 21:06:39 +02:00
Mia Vucinic 8642f4afe9 remove suspend from some functions 2025-07-21 21:06:39 +02:00
Mia Vucinic 758809f7d5 make some functions not suspend 2025-07-21 21:06:39 +02:00
Mia Vucinic 979ef3fa1c make api use coroutines 2025-07-21 21:06:39 +02:00
Mia Vucinic 9ca46bf150 add coroutines library to api module 2025-07-21 21:06:39 +02:00
Mia Vucinic 91ab26406b make jetbrains annotation compileOnly in api module 2025-07-21 21:06:39 +02:00
Mia Vucinic dbe9deec1c add forEachEditor function 2025-07-21 21:06:39 +02:00
Mia Vucinic c4bb7e4145 fix replace with register plugin to work in visual block mode 2025-07-21 21:06:39 +02:00
Mia Vucinic 72af6fc313 add functions from VimDigraphGroup 2025-07-21 21:06:39 +02:00
Mia Vucinic 101d94e12a fix when some search functions return out-of-bounds offset 2025-07-21 21:06:39 +02:00
Mia Vucinic 9a79cdc3ab add functions from vim search helper 2025-07-21 21:06:39 +02:00
Mia Vucinic dd1c5412ed introduce read and transaction scope for command line 2025-07-21 21:06:39 +02:00
Mia Vucinic 6cb4e2946f delete unnecessary functions from command line scope 2025-07-21 21:06:39 +02:00
Mia Vucinic 641fd42ecf rename getOptionValue to get and resetOptionToDefault to reset 2025-07-21 21:06:39 +02:00
Mia Vucinic ee64316676 introduce option scope 2025-07-21 21:06:39 +02:00
Mia Vucinic 6eb71cb95e add functions for saveFile and closeFile in VimScope 2025-07-21 21:06:39 +02:00