Commit Graph
100 Commits
Author SHA1 Message Date
Matt EllisandAlex Pláte 84a6c40e13 Fix incorrect normalising for trailing inlay 2022-11-23 12:02:55 +02: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
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
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
Matt EllisandAlex Pláte 9c6f0981f5 Consolidate doTest methods 2022-08-04 19:17:59 +03:00
Matt EllisandAlex Pláte 62632a4514 Improve handling of fractional width fonts 2022-07-06 09:29:36 +03:00
Matt EllisandAlex Pláte d7c4e4a8dd Add support for "-Command" flag for powershell
Fixes VIM-2622
2022-05-25 11:30:36 +03:00
Matt EllisandAlex Pláte b7c54d02cb Fix minor scroll bug
If caret is less than 'sidescrolloff' columns from the left of the screen, moving down one line will animate. Greater than 'sidescrolloff' does not animate. This is because the scroll model tries to scroll to a negative horizontal offset, to try and put the caret in the middle of the screen. This isn't possible, but the scroll model sees a large enough distance to trigger an animation.
2022-05-25 11:30:36 +03:00
Matt EllisandAlex Pláte 9a06ee97c4 Refactor CaretVisualAttributesHelper 2022-04-21 10:36:15 +03:00
Matt EllisandAlex Pláte d7dfc6dc05 Remove pre-212 caret attribute helpers 2022-04-21 10:36:15 +03:00
Matt Ellis cd242511a8 Fallback to line comment if block is unavailable
Fixes VIM-2381
2022-04-20 12:37:11 +01:00
Matt Ellis 745ae6caa4 Migrate Commentary tests to VimTestCase 2022-04-20 12:23:17 +01:00
Matt Ellis acc7d0954d Maintain old mappings for compatibility 2022-04-20 00:16:22 +01:00
Matt Ellis 7d5176829b Merge branch 'master' into feature/commentary 2022-04-18 17:12:02 +01:00
Matt Ellis fd0dc0d445 Remove unnecessary setting of sub mode 2022-04-15 13:36:44 +01:00
Matt Ellis be11317667 Use comment actions instead of low level handlers 2022-04-13 10:53:25 +01:00
Matt Ellis 22fce51640 Fix Exchange tests after operator changes
OperatorAction no longer normalises linewise ranges, but Exchange doesn't need this
2022-04-12 23:47:46 +01:00
Matt Ellis 4223da47d6 Refactor and simplify Commentary objects
Also introduces Visual support for the `g@` operator action
2022-04-12 22:05:48 +01:00
Matt Ellis 64100fea59 Add Commentary command 2022-04-12 16:53:21 +01:00
Matt Ellis 2244c65233 Reposition caret after commenting 2022-04-12 16:26:28 +01:00
Matt Ellis e08bffd7ba Add gcu mapping 2022-04-12 15:33:24 +01:00
Matt Ellis 0d5aa52af2 Add gc text object
Fixes VIM-2589
2022-04-12 15:33:23 +01:00
Matt Ellis cc029fc98e Implement gcc as gc_ motion
gcc now respects count

Fixes VIM-1687
2022-04-08 16:50:10 +01:00
Matt Ellis feae15c48c Use same mapping as Commentary plugin 2022-04-08 16:47:54 +01:00
Matt Ellis 07485727c4 Use Kotlin helper functions 2022-04-08 16:46:08 +01:00
Matt Ellis 8b0ad7680b Rearrange code 2022-04-08 16:44:04 +01:00
Matt Ellis 43d70cd467 Convert to Kotlin 2022-04-08 16:35:03 +01:00
Matt Ellis d73b605ef0 Rename Java to Kotlin 2022-04-08 16:32:59 +01:00
Matt EllisandAlex Pláte aed2d1159d fix(VIM-2470): Fix incorrect reset of cursor shape 2022-02-08 14:13:49 +03:00
Matt EllisandAlex Pláte 296b714282 fix(VIM-2462): reset caret when disabling plugin 2021-11-09 19:35:19 +03:00
Matt EllisandAlex Pláte 8344207608 fix(VIM-2432): handle scrolloff with <C-D> and <C-U> 2021-11-08 11:03:58 +03:00
Matt Ellis ae21727c12 Merge branch 'master' into feature/guicursor 2021-09-27 15:21:41 +01:00
Matt Ellis 6ab53802df Add tests for caret attributes in nested modes
See VIM-1756
2021-08-10 17:29:00 +01:00
Matt Ellis 70a45f3dc8 Treat use block caret option as caret override 2021-07-29 21:20:28 +01:00
Matt Ellis d63e3dadbc Merge branch 'master' into feature/guicursor 2021-07-28 23:07:47 +01:00
Matt Ellis 91585e1059 Run linters 2021-06-30 21:41:59 +01:00
Matt Ellis d6a99d4354 Update to latest EAP 2021-06-30 21:10:49 +01:00
Matt Ellis 0d840b2c41 Merge branch 'master' into feature/guicursor 2021-06-30 18:39:03 +01:00
Matt Ellis 0288a0f2b5 Use insert caret for select mode 2021-06-30 17:26:44 +01:00
Matt Ellis fe7dc4902b Make ExShortcutKeyAction dumb aware 2021-06-30 17:17:55 +01:00
Matt Ellis 1caf380505 Improve caret painting in command line 2021-06-30 17:15:52 +01:00
Matt Ellis 64be75142e Use guicursor options to draw ex caret 2021-06-29 17:05:11 +01:00
Matt Ellis f05123123c Use guicursor instead of editor cursor settings
This changes VIM-1475 and ignores IntelliJ's "use block cursor" setting in favour of guicursor. Also affects caret placement around inlays and handling of template hotspots via idearefactormode
2021-06-29 00:21:19 +01:00
Matt Ellis 2f73dac57a Force the caret visible when updating attributes
Changing EditorSettings.setBlockCursor does this via EditorImpl.updateCaretCursor
2021-06-28 23:48:27 +01:00
Matt Ellis a6087dd08f Use replace mode caret for change character action 2021-06-28 23:42:36 +01:00
Matt Ellis b4d40fae3b Rename assert method 2021-06-28 23:24:59 +01:00
Matt Ellis ad19dc0100 Use guicursor options to draw caret 2021-06-28 23:09:21 +01:00
Matt Ellis d19c776ec3 Minor refactor 2021-06-28 23:08:29 +01:00
Matt Ellis ccd792bf62 Provide hook for resetting cached values 2021-06-28 23:08:22 +01:00
Matt Ellis 8a55199d62 Add guicursor to dictionary 2021-06-28 23:08:14 +01:00
Matt Ellis 9cf0a1ac26 Report errors while parsing guicursor option 2021-06-28 23:06:49 +01:00
Matt Ellis 43620c280d Add guicursor option 2021-06-28 23:04:58 +01:00
Matt EllisandAlex Pláte 982d6921cb Fix formatting 2021-06-24 10:13:36 +03:00
Matt EllisandAlex Pláte bb28b76a5b Support % as shortcut for file name in filter 2021-06-24 10:13:36 +03:00
Matt EllisandAlex Pláte 67fed0da9e [VIM-1566] Use OS shell to execute filter command 2021-06-24 10:13:36 +03:00
Matt EllisandAlex Pláte e3cf50b4c9 [VIM-1357] Invoke shell filter commands with proper path and argument handling
Also moves the filter command out of a write action, and under a cancellable modal progress dialog. Any errors are substituted into the text, as per Vim.

Fixes #VIM-1357
2021-06-24 10:13:36 +03:00
Matt Ellis 9f46e1960e Fix typo 2021-06-10 13:51:43 +01:00
Matt Ellis e93a619859 Make ListOption generic + create StringListOption 2021-06-10 13:51:23 +01:00
Matt Ellis 287ba7055e Simplify BoundedListOption 2021-06-10 11:29:20 +01:00
Matt Ellis dfbec1f23a Rename "bound" options to "bounded" 2021-06-10 11:18:57 +01:00
Matt Ellis 55dedb4c4d Remove resetShape method
We should avoid setting the shape explicitly, and let it update when the mode changes.

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

See #280, IDEA-262153 and KTIJ-3768
2021-06-04 17:05:03 +01:00
Matt Ellis 646a89d52a Refactor showMode update 2021-06-04 16:45:07 +01:00