1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2024-09-18 22:42:47 +02:00
Commit Graph

544 Commits

Author SHA1 Message Date
Alex Plate
05986d017d
Remove deprecated function 2023-05-19 09:52:06 +03:00
Matt Ellis
798750bf95 Use options API for more cached values 2023-05-17 10:54:13 +02:00
Matt Ellis
e8d9bd551f Add helper functions to storage service 2023-05-17 10:54:13 +02:00
Matt Ellis
d08ea2ee9b Introduce simple cache for parsed option values 2023-05-17 10:54:13 +02:00
Matt Ellis
52dcb2d290 Treat 'iskeyword' as a local-to-buffer option 2023-05-17 10:54:13 +02:00
Matt Ellis
4cc883f174 Refactor search helper companion to interface
Helper functions now take the editor rather than the text, ready for search to rely on per-editor options (i.e. '`iskeyword'`). Also standardises on `Int` for search parameters. While the file size is a `Long`, the editor returns a `CharSequence`, which is indexed by `Int`.
2023-05-17 10:54:13 +02:00
Matt Ellis
5a3c5bd761 Treat 'virtualedit' as a global-local option 2023-05-17 10:54:13 +02:00
Matt Ellis
fd314a3288 Treat 'matchpairs' as a local option 2023-05-17 10:54:13 +02: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
2088c1ce00 Move more methods to engine 2023-05-05 09:41:27 +03:00
Alex Plate
30e69e13fd
Update kotlin version to 1.8.21 2023-04-26 10:57:54 +03:00
dependabot[bot]
17346c255e Bump org.jetbrains:annotations from 23.0.0 to 24.0.1
Bumps [org.jetbrains:annotations](https://github.com/JetBrains/java-annotations) from 23.0.0 to 24.0.1.
- [Release notes](https://github.com/JetBrains/java-annotations/releases)
- [Changelog](https://github.com/JetBrains/java-annotations/blob/master/CHANGELOG.md)
- [Commits](https://github.com/JetBrains/java-annotations/compare/23.0.0...24.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-26 10:46:14 +03:00
Matt Ellis
29bd7cbe6e Update note to include how to add an option 2023-04-26 10:26:06 +03:00
Matt Ellis
a51fc9c612 Add extra notes about the history of refactorings 2023-04-26 10:26:06 +03:00
Matt Ellis
957874ce2b Remove unused @JvmField annotations 2023-04-26 10:26:06 +03:00
Matt Ellis
330d92116c Refine inheritance of IJ specific option classes 2023-04-26 10:26:06 +03:00
Matt Ellis
899adfc1b0 More refactoring to use new API 2023-04-26 10:26:06 +03:00
Matt Ellis
23535a6ad5 Remove OptionValueAccessor 2023-04-26 10:26:06 +03:00
Matt Ellis
e8b7f00370 Remove accessor from new API 2023-04-26 10:26:06 +03:00
Matt Ellis
3f2c5070ee Migrate local option access to new API 2023-04-26 10:26:06 +03:00
Matt Ellis
a2352525c5 Migrate global option access to new API
Also fixes some incorrect usages of local options as global, e.g. 'ideajoin' and 'scroll'. There are some options that should be local that are only ever accessed at global scope. These need fixing in the future, e.g. 'iskeyword', 'matchpairs' and 'virtualedit'
2023-04-26 10:26:06 +03:00
Matt Ellis
50384a526b Introduce option accessor delegated properties
Also migrates tests to use new properties
2023-04-26 10:26:06 +03:00
Matt Ellis
9ade3365ff Extract StringListOption
While it is conceptually very similar to StringOption, the implementation of list vs not-list operations are very different, and having a separate type will allow us to do more interesting things with overloading when we introduce delegate properties
2023-04-26 10:26:06 +03:00
filipp
2f55d92d83 Move more methods to engine 2023-04-19 15:07:06 +03:00
Matt Ellis
f803c0aa72 Add deterministic initialisation of options 2023-03-31 17:37:48 +03:00
Matt Ellis
531b0e3537 Provide an API to override option default value
This is specifically to support ideaput in 'clipboard'
2023-03-31 17:37:48 +03:00
Matt Ellis
cbf6c30be6 Make option value accessor more strongly typed 2023-03-31 17:37:48 +03:00
Matt Ellis
a6f62dd837 Remove unnecessary assert
checkIfValueValid will check datatype is correct
2023-03-31 17:37:48 +03:00
Matt Ellis
18d52c2459 Make addListener more strongly typed 2023-03-31 17:37:48 +03:00
Matt Ellis
ee55cfd2dd Improve handling of variance with setOptionValue
With the `out` modifier, the compiler won't report a problem trying to assign `VimInt` to an `Option<VimString>`
2023-03-31 17:37:48 +03:00
Matt Ellis
3ab5fc1120 Improve handling of variance 2023-03-31 17:37:48 +03:00
Matt Ellis
b7dcff79ae Improve modifyOptionValue 2023-03-31 17:37:48 +03:00
Matt Ellis
c857b9d6dd Make functions private to SetCommand 2023-03-31 17:37:48 +03:00
Matt Ellis
8f8c05e451 Remove string based option helper functions 2023-03-31 17:37:48 +03:00
Matt Ellis
c8ca6671ab Remove unused functions 2023-03-31 17:37:48 +03:00
Matt Ellis
88f0d2e532 Replace constants with strongly typed properties 2023-03-31 17:37:48 +03:00
Matt Ellis
76a4499c9f Introduce properties for option definitions 2023-03-31 17:37:48 +03:00
Matt Ellis
6d193ca1f8 Extract option definitions to own file 2023-03-31 17:37:48 +03:00
Matt Ellis
d932172e70 Extract option definitions to own class 2023-03-31 17:37:48 +03:00
Matt Ellis
9bbf5824fe Use lazy property delegate 2023-03-31 17:37:48 +03:00
Matt Ellis
d042ee3058 Move octopushandler option out of vim-engine 2023-03-31 17:37:48 +03:00
Alex Plate
0efd81142d
Remove ktlint from configurations 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
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
0f8b67e6ce
Reformat files 2023-03-27 11:14:00 +03: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
edf9962abf
Introduce new mechanizm for options testing 2023-03-16 13:01:42 +02:00
Alex Plate
0510fe8530
Ktlint format 2023-03-16 10:52:52 +02:00
Alex Plate
6b76270d51
Reformat code 2023-03-15 07:59:25 +02:00
dependabot[bot]
35142e5204 Bump junit-jupiter-engine from 5.8.1 to 5.9.2
Bumps [junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.8.1 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.8.1...r5.9.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 18:28:02 +02:00
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
a0d3cf561b
Apply ktlint reformat 2023-03-13 08:43:52 +02: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
filipp
7768c9147d Fix(VIM-2819): Move command works incorrectly 2023-03-11 20:01:55 +02: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
filipp
2369814092 Fix(VIM-2884): Moving multiple lines in visual mode is not working 2023-03-10 22:48:16 +02: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
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
88b3373e5c
Add option to enable octopus handler 2023-03-10 12:11:17 +02:00
Matt Ellis
c192f319d1 Simplify setting known options a little 2023-03-10 10:17:45 +02:00
Matt Ellis
097dfa06a6 Add a couple of convenience functions 2023-03-10 10:17:45 +02:00
Matt Ellis
90ca544d0a Move getter helpers out of the options interface
The interface now has a simple setter and getter, as well as other functions for managing options. More friendly functions for getting and setting values are available as extension functions
2023-03-10 10:17:45 +02:00
Matt Ellis
2bc9640b88 Remove last of 'set' validation code 2023-03-10 10:17:45 +02:00
Matt Ellis
40ffddf5ef Push toggle option validation into ':set' command 2023-03-10 10:17:45 +02:00
Matt Ellis
bd28c9da23 Push more ':set' command validation into command 2023-03-10 10:17:45 +02:00
Matt Ellis
11ef024779 Move ':set' command validation out of interface
Moves functions that require validation parameters to extension functions. Core interface should not require additional user facing paramter
2023-03-10 10:17:45 +02:00
Matt Ellis
40d9a201ea Use bundle for exception messages 2023-03-10 10:17:45 +02:00
Matt Ellis
6e2ac21fab Refactor getDefaultValue into property 2023-03-10 10:17:45 +02:00
Matt Ellis
7858cf57c6 Fix number operations for set command 2023-03-10 10:17:45 +02:00
Matt Ellis
91c8e7ebda Rename getOptionByNameOrAbbrev 2023-03-10 10:17:45 +02:00
Matt Ellis
6332ee6955 Remove unnecessary argument text 2023-03-10 10:17:45 +02:00
Matt Ellis
3c3014fdc6 Remove unused getAbbrevs function 2023-03-10 10:17:45 +02:00
Matt Ellis
d97e4c44ee Rename "token" and remove default argument 2023-03-10 10:17:45 +02:00
Matt Ellis
96c1094a61 Replace OptionService with VimOptionGroup
Leaves a skeleton, deprecated implementation of OptionService for existing external use by plugins
2023-03-10 10:17:45 +02:00
Matt Ellis
b3551b4ee5 Remove empty file 2023-03-10 10:17:45 +02:00
Matt Ellis
73b64c19ff Move OptionValueAccessor to options package 2023-03-10 10:17:45 +02:00
Matt Ellis
418067b077 Remove unused deprecated method
No external usages
2023-03-10 10:17:45 +02:00
Matt Ellis
88b29d1a14 Isolate and remove deprecated code
Moves ToggleOption to the proper package, leaving behind a skeleton class to keep ideavim-sneak and IdeaVim-EasyMotion happy.

Removes NumberOption and related number OptionsManager properties which are only used by which-key 0.6.2, because this plugin is already broken due to a separate API change. (The plugin is expecting the command trie to use `CommandPartNode<ActionBeanClass>`, but it's actually using `CommandPartNode<VimActionsInitiator>`). Also removes `ToggleOption.value`, used by which-key
2023-03-10 10:17:45 +02:00
Matt Ellis
4540d216cb Move StrictMode out of options package 2023-03-10 10:17:45 +02:00
Alex Plate
181d76ae7b
Improvements for octopus handler 2023-03-09 16:45:06 +02: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
filipp
8303cafbc9 Fix(VIM-2244): nnoremap mapping doesn't work correctly 2023-03-09 14:01:35 +02:00
filipp
21aaf06a63 Add split function 2023-03-08 19:21:02 +02:00
Alex Plate
0e96819e86
Update creation of execution context 2023-03-08 11:35:01 +02:00
filipp
b94b4eea04 Better per caret register storage 2023-03-07 22:31:08 +02:00
filipp
2c9aa8e30e FIX(VIM-2881): ReplaceRegister does no longer worker with MultiCursor 2023-03-07 17:24:19 +02:00
Alex Plate
5b636b2b5e
Perform code cleanup 2023-03-03 17:57:42 +02:00
Alex Plate
e788ea6d7f
Remove unused deprecated field 2023-03-03 17:57:41 +02:00
Dominic Palmer
dd69d0fad2 Prevent viewport displacement on undo 2023-03-01 17:41:59 +02:00
filipp
8fe6c8bde7 Jumps refactoring 2023-02-28 13:11:08 +02:00
Alex Plate
6e854eb889 Update formatting 2023-02-26 00:19:08 +00:00
filipp
aaf957a3c2 Fix(VIM-44): Unify navigation history between ideavim and idea 2023-02-24 14:44:53 +02:00
Alex Plate
b4764a230a
Fix small bug 2023-02-23 08:58:29 +02:00
Alex Plate
87083e03a8 Update formatting 2023-02-19 00:18:26 +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
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
filipp
0accfbd65f Fix(VIM-1768): Delete surrounding character while in multiple cursors mode 2023-02-01 23:06:25 +02: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
Alex Plate
007a1694d7
Remove useless parameter 2023-02-01 19:50:48 +02:00
Alex Plate
cbf450425e
Add some docs 2023-02-01 19:45:19 +02:00
filipp
d577411e72 Fix(VIM-2850) 2023-01-27 00:20:40 +02:00
filipp
052fe75183 Fix dropLastJump 2023-01-23 13:02:35 +02:00
dependabot[bot]
5c7190710b Bump junit-jupiter-api from 5.8.1 to 5.9.2
Bumps [junit-jupiter-api](https://github.com/junit-team/junit5) from 5.8.1 to 5.9.2.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.8.1...r5.9.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-23 10:01:10 +02:00
Alex Plate
dd76de2066
Source vimrc in template only if it exists 2023-01-23 09:34:18 +02:00
Alex Plate
1a7e3ed658
Add some fixes 2023-01-23 08:53:24 +02:00
Alex Plate
484a1f264b Update formatting 2023-01-22 00:18:31 +00:00
filipp
e79821385d Remove caret from method signatures in CaretRegisterStorage 2023-01-20 17:24:28 +02:00
filipp
46f0309171 VIM-2840 Replace with register does not work with count 2023-01-20 16:33:16 +02:00
Matt Ellis
308e8bfbc3 Replace default interface methods with extensions 2023-01-18 17:47:32 +02:00
Matt Ellis
11fcb17c29 Replace appendValue with :set in tests 2023-01-18 17:47:32 +02:00
Matt Ellis
9c54fbe733 Migrate isSet to option value accessor API 2023-01-18 17:47:32 +02:00
Matt Ellis
9cc206d548 Introduce friendly API for consuming options 2023-01-18 17:47:32 +02:00
Matt Ellis
8d44afc8e6 Sort option name constants 2023-01-18 17:47:32 +02:00
Matt Ellis
62ed3bd7f2 Rename option name constants 2023-01-18 17:47:32 +02:00
Matt Ellis
89889924fc Tidy up imports 2023-01-18 17:47:32 +02:00
Matt Ellis
dda592cb39 Small refactor 2023-01-18 17:47:32 +02:00
Matt Ellis
bb44044956 Move IJ specific options out of engine 2023-01-18 17:47:32 +02:00
Matt Ellis
d95810f6e5 Sort options 2023-01-18 17:47:32 +02:00
Matt Ellis
26c275b0f5 Introduce UnsignedNumberOption 2023-01-18 17:47:32 +02:00
filipp
341dc6c58b Post-merge fixes 2023-01-17 16:15:34 +02:00
filipp
a2364b7512 Pull request polishing 2023-01-16 19:23:13 +02:00
filipp
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
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