100 Commits
Author SHA1 Message Date
chylex 568128f474 Set version to chylex-26 2024-10-31 03:57:33 +01:00
chylex 018d29007c Add option to invert behavior of holding Shift when searching, and toggle with Enter 2024-10-31 03:57:33 +01:00
chylex cb814e0999 Set version to chylex-25 2024-09-05 09:11:05 +02:00
chylex 1fc06e8120 Update for latest IdeaVim 2024-09-05 09:10:21 +02:00
chylex 841f2fd125 Set version to chylex-24 2024-09-05 06:44:02 +02:00
chylex 6c8f19e311 Fix edge case where generated tags may have a double character tag that is the only tag starting with its first character 2024-09-05 06:43:41 +02:00
chylex ce4f3b5f03 Fix IntelliJ SDK warning about services in class initializer 2024-09-05 02:44:39 +02:00
chylex 46f42c88eb Optimize screen visibility checks during search
Search results are tested for visibility on the screen. There is already an optimization that only checks results on visible lines, but the number of offset-to-XY conversions still scales linearly with the number of results, which can be very large in files with long lines.

A simple observation is that every line has a first and last offset that is visible on the screen (which may be different for each line due to proportional fonts).

This commit caches the visible offset range for every line involved in one search query, so testing visibility of a search result becomes a check if its offset is inside its line's visible offset range. Finding the visible offset range requires two XY-to-offset conversions per line, so the total number of conversions is bounded by the number of lines that can fit on the screen.

The worst case for this optimization is when every line has exactly one search result; before, this would lead to one offset-to-XY conversion per line, whereas now it leads to two XY-to-offset conversions per line. However, the maximum number of conversions is twice the number of visible lines, which will generally be very small.
2024-09-05 02:12:48 +02:00
chylex 43dfec940e Set version to chylex-23 2024-09-04 11:40:16 +02:00
chylex abe06ec7be Increase width of editor fade opacity slider 2024-09-04 11:39:59 +02:00
chylex 3fc3cbc7f8 Optimize tagging 2024-09-04 11:33:26 +02:00
chylex 5979579042 Set version to chylex-22 2024-09-04 08:50:33 +02:00
chylex ea61d49aa6 Refactor TagMarker to reduce allocations during rendering 2024-09-04 08:50:13 +02:00
chylex dbc6db108d Redo tag generation (eliminate explicit prefix chars) 2024-09-04 08:44:52 +02:00
chylex 01c38df82a Search in the middle of words again unless pressing an uppercase letter, and rebind Space to cycling search boundaries 2024-09-03 21:50:03 +02:00
chylex a3a86cf447 Update for IDEA 2024.2 2024-09-03 20:58:08 +02:00
chylex 59fbd4e19c Set version to chylex-21 2024-07-15 13:46:02 +02:00
chylex 6e08d56cdf Update for IDEA 2024.1 & latest IdeaVim 2024-07-15 13:45:39 +02:00
chylex 9a14fb87e3 Set version to chylex-20 2024-03-27 13:53:41 +01:00
chylex d22bcc220e Update IdeaVim integration 2024-03-27 13:53:25 +01:00
chylex 1f76a8bd25 Set version to chylex-19 2023-12-29 21:45:12 +01:00
chylex 2e31ddd504 Use top row remapping only for tags 2023-12-29 21:45:12 +01:00
chylex 47a34f6f14 Disable searching in the middle of a word unless Space is pressed when typing tag 2023-12-29 21:45:12 +01:00
chylex 575283b2be Set version to chylex-18 2023-12-18 05:25:09 +01:00
chylex 8bb34d7f75 Make editor fade opacity configurable 2023-12-18 05:24:57 +01:00
chylex 8d1ef031d2 Set version to chylex-17 2023-12-18 03:44:20 +01:00
chylex a9375ec414 Remove unused code 2023-12-18 03:44:01 +01:00
chylex b42112cc9e Do not try to tag folded regions 2023-12-18 02:36:41 +01:00
chylex 8e42c82821 Use distance from current caret for tag order 2023-12-18 02:32:54 +01:00
chylex 48bcf9f284 Add QWERTZ (CZ) layout that remaps top row to digits 2023-12-18 00:58:37 +01:00
chylex 2681d9901f Change priority order of two-character tags 2023-12-18 00:45:28 +01:00
chylex b13d629046 Add option to set different colors for two-character tags 2023-12-17 22:41:36 +01:00
chylex 92dcd033fb Make priority of unknown characters lower than known characters 2023-12-17 21:49:24 +01:00
chylex fa3505b850 Set version to chylex-16 2023-12-14 00:09:49 +01:00
chylex dacac684f0 Make two-character tag prefixes customizable 2023-12-14 00:09:27 +01:00
chylex e627db3a24 Fix Shift mode not working when accepting a tag 2023-12-13 22:52:18 +01:00
chylex 084d729baa Set version to chylex-15 2023-12-13 20:16:51 +01:00
chylex e01edccb5b Redesign tags to look like easymotion vim plugin 2023-12-13 20:16:13 +01:00
chylex 655ccde60e Work around IntelliJ terminal plugin stealing Enter keys 2023-12-13 17:48:23 +01:00
chylex eb2ea55fb8 Rework tagging to match easymotion (no search query refinement, no double letter tags) 2023-12-13 15:19:57 +01:00
chylex a6381a2a34 Update Gradle to 8.5 and IntelliJ to 2023.3 2023-12-12 23:19:03 +01:00
chylex e005983d4c Set version to chylex-14 2023-11-17 08:56:13 +01:00
chylex 8f4d9748ad Scroll after jumping in vim mode 2023-11-17 08:55:49 +01:00
chylex 76c6458ef4 Re-add action to go to declaration after jump 2023-11-17 08:52:46 +01:00
chylex 2f53e9da6d Update for IdeaVIM chylex-20 2023-11-17 08:52:23 +01:00
chylex 100001ffca Set version to chylex-13 2023-10-04 02:41:33 +02:00
chylex 184896a6cb Update for IdeaVIM chylex-16 2023-10-04 02:41:05 +02:00
chylex 8563400946 Set plugin version to chylex-12 2023-10-04 02:40:51 +02:00
chylex a07c61a384 Fully depend on IdeaVIM and remake actions 2023-07-28 07:50:39 +02:00
chylex e072003c5c Update dependency versions and gitignore 2023-07-27 22:07:17 +02:00
chylex 8062cf5cab Update dependency versions 2023-01-09 07:19:07 +01:00
chylex 9151ee376c Set plugin version to chylex-11 2022-07-06 15:46:45 +02:00
chylex 19ce1c69fd Improve tag order for non-QWERTY layouts 2022-07-06 15:46:35 +02:00
chylex f2a053505c Remove no longer necessary actions 2022-07-06 15:46:35 +02:00
chylex 647cfb14f1 Remove unused code 2022-07-06 15:46:35 +02:00
chylex c31ba60909 Implement a customized Vim easymotion plugin 2022-07-06 15:46:35 +02:00
chylex 9c60a8a4ba Update build.gradle IDEA & plugin versions 2022-06-18 20:59:52 +02:00
chylex 1e8b7d7963 Remove Kotlin stdlib from distribution 2022-06-18 20:54:58 +02:00
chylex 9157ce19b0 Remove all special modes introduced in the rework 2021-11-14 14:35:54 +01:00
chylex 9a435feccc Fix broken special actions in Rider 2021-09-29 08:56:15 +02:00
chylex c1feb891e4 Update Gradle wrapper to 7.1 2021-09-29 08:25:09 +02:00
chylex 0b6ba62cda Simplify existing modes and add new vim shortcuts 2021-05-15 20:58:58 +02:00
chylex dfd5b122a0 Optimizations 2021-05-15 20:30:18 +02:00
chylex f2400d134d Update build.gradle 2021-05-15 19:46:51 +02:00
chylex 98997b4d86 [WIP] Fix tests 2021-05-08 03:54:27 +02:00
chylex 1e172e9c49 [WIP] Implement jumping across splitters 2021-05-08 02:39:27 +02:00
chylex 01b37c878e [WIP] Add more vim-friendly jump actions (declaration, usages) 2021-04-11 08:34:52 +02:00
chylex 1630c706a9 [WIP] Fix easymotion-like actions in visual mode 2021-04-08 13:57:11 +02:00
chylex 041a130c5f [WIP] Add a few easymotion-like actions 2021-04-07 03:05:11 +02:00
chylex 7561bfde36 [WIP] Make quick jump the default mode and rename non-quick jump to advanced mode 2021-04-07 00:16:50 +02:00
chylex 724e469f21 [WIP] Remove 'From Caret' mode 2021-04-06 02:09:29 +02:00
chylex bce9a5f636 [WIP] Add quick jump mode 2021-03-29 18:43:00 +02:00
chylex bfe0aa536e [WIP] Change plugin version 2021-03-29 18:42:40 +02:00
chylex 2ca21b8423 [WIP] Work around weird highlight offset bug 2021-03-29 18:42:00 +02:00
chylex 430bcf6883 [WIP] Remove word start jump to simplify 2021-03-29 18:41:59 +02:00
chylex 092650af81 [WIP] Pressing Enter before typing query starts jump mode for character at caret 2021-03-29 18:41:57 +02:00
chylex 2009123114 [WIP] Interactive modes 2021-03-29 18:41:54 +02:00
chylex de19c0e0b8 Make Enter immediately tag search occurrences 2021-03-29 18:39:15 +02:00
chylex 5021a07fb9 Remove tag visiting functionality 2021-03-29 18:38:32 +02:00
chylex 1180547b06 Remove whole file search 2021-03-29 18:36:53 +02:00
chylex d2ae335de1 Redesign tags and highlighting (padding, tag shadow, highlight outline) 2021-03-29 02:11:07 +02:00
chylex 324296b55a Remove option for rounded tag corners 2021-03-29 02:11:07 +02:00
chylex a4ebeffe05 Change default color scheme 2021-03-29 02:11:07 +02:00
chylex 7716242e55 Swap editor shortcuts for searching line starts and indents 2021-03-29 02:11:07 +02:00
chylex eb70ef5097 Add option to set minimum typed characters for tagging to simplify tags 2021-03-29 02:11:06 +02:00
chylex 4d5a0b3e6a Fix occasional conflicts between tags and search query when assigning vacant results 2021-03-29 02:11:06 +02:00
chylex eb1bbb2e03 Prevent editing document while AceJump is active 2021-03-29 02:11:06 +02:00
chylex 74a65a6510 Make jump mode cycling wrap around & add shortcut to cycle modes in reverse 2021-03-29 02:11:06 +02:00
chylex 2c08494a71 Add all regex search patterns to keymap 2021-03-29 02:11:06 +02:00
chylex b61abee04d Major AceJump refactoring!
See https://github.com/acejump/AceJump/issues/348 for information on what's changed and what more needs to be done.
2021-03-29 02:11:06 +02:00
chylex ee1ce3c37e Add 'Jump to End' mode 2020-11-24 14:04:03 +01:00
chylex 526ca02ba9 Add option to switch between straight and rounded tag corners 2020-11-23 03:41:39 +01:00
chylex 3c899bf595 Decide whether to use parallel search based on search boundary size 2020-11-23 02:45:16 +01:00
chylex 000a57824a Add option to turn off searching the whole file, and instead only search in visible lines 2020-11-23 02:22:01 +01:00
chylex ad1d66c92a Add customizable jump mode cycling & fix toggle keys not resetting mode when pressed twice 2020-11-23 02:12:38 +01:00
chylex d276f57942 Redesign settings panel & add missing configuration for definition mode color 2020-11-21 05:19:26 +01:00
chylex 6ed4deb36e Use bulk editor updates when removing highlighters too 2020-11-20 23:30:24 +01:00
chylex 32e7585a48 Optimize rendering by removing unnecessary work and bulk-adding text highlights 2020-11-20 17:39:08 +01:00
chylex 7692a0ed1b Reduce allocations, boxing, and lowercasing work when computing word fragments 2020-11-18 21:32:06 +01:00
chylex 9c5a6d6e83 Avoid sorting same integer lists in Solver.map 2020-11-18 21:32:05 +01:00