Commit Graph
33 Commits
Author SHA1 Message Date
chylex 04c1519261 Optimize screen visibility checks during search
When 'Search whole file' is disabled, 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 01:48:30 +02:00
chylex d0ead7d87a Do not assign tags inside folded regions
Closes #453
2024-01-01 11:39:35 +01:00
chylex 9921409aff Add buttons to reset colors to default values in Settings
Closes #411
2023-10-28 13:58:06 +02:00
chylex cb3d4559f9 Do not bundle kotlin stdlib
Fixes #449
2023-10-27 20:42:45 +02:00
chylex f17f4ef8c4 Fix not highlighting last line
Closes #360
2021-11-21 20:55:19 +01:00
chylex 35003b0bab Improve tag order for non-QWERTY layouts 2021-11-21 05:29:43 +01:00
chylex 828940a53a Update attribution in README 2021-11-14 22:24:03 +01:00
chylex 41071dbaf9 Workaround tag misalignment on high DPI screens
Fixes #362.
2021-11-14 21:07:26 +01:00
chylex 17a762e4d8 Update version to 3.8.0 2021-05-10 16:20:34 +02:00
chylex aaa3f5d922 Add unit test for markResults with multiple editors 2021-05-09 08:44:53 +02:00
chylex d407fd5333 Fix tests 2021-05-08 02:54:04 +02:00
chylex 12ae15c0f7 Implement jumping across splitters 2021-05-08 02:25:14 +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
chylex c3b330df6d Change collection data types & usage, fix Trigger stuttering, and eliminate some unnecessary work to improve performance 2020-11-17 11:12:38 +01:00