Commit Graph
1100 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
breandan efc81b8fde moved to gradle/libs.versions.toml 2024-08-02 15:47:33 -04:00
breandan 974c5cf258 Merge remote-tracking branch 'origin/master' 2024-08-02 15:11:58 -04:00
breandan ae458094cf update to intellij gradle plugin v2 2024-08-02 15:11:49 -04:00
breandanandGitHub db62460d83 Merge pull request #460 from skyrylyuk/AceJump-139
#139 Improve test coverage - Add plugin for calculation Code Coverage
2024-08-02 15:07:08 -04:00
breandanandGitHub 09888c2c34 Merge pull request #462 from KaelWD/patch-1
Add ENGRAM key layout
2024-08-02 14:55:30 -04:00
KaelandGitHub 1d1f469663 Add ENGRAM key layout 2024-07-08 18:41:53 +10:00
Serhiy Kyrylyuk 21df680792 #139 Improve test coverage - Add plugin for calculation Code Coverage 2024-06-27 12:39:20 +03:00
breandanandGitHub 1af49c2e91 Merge pull request #458 from Zilainfo/add-canary-key-layout
Add CANARY keyboard layout
2024-05-30 16:06:27 -04:00
kstas ec7a769ae7 Add CANARY keyboard layout 2024-05-29 20:47:38 +03:00
breandan d6d162e4cc Merge remote-tracking branch 'origin/master' 2024-04-29 10:10:20 -04:00
breandan 9d478c5b6e benchmark test latency 2024-04-29 10:10:12 -04:00
breandanandGitHub b66868664e remove obsolete warning 2024-04-23 21:02:02 -04:00
breandan c68487c989 build against platform 2024.1, #457 2024-04-06 16:43:35 -04:00
breandan ca2b0a8dbe fix language 2024-02-27 10:21:51 -05:00
breandan 76bc72335b update versions 2024-02-26 23:11:57 -05:00
breandan fe4e180aeb add Jinho's project 2024-02-26 19:56:10 -05:00
breandan 932c933969 update versions and change notes, release 3.8.18 2024-01-01 17:46:38 -05:00
breandanandGitHub 16f205b11b Merge pull request #455 from chylex/pr-folds
Do not assign tags inside folded regions
2024-01-01 17:29:17 -05:00
chylex d0ead7d87a Do not assign tags inside folded regions
Closes #453
2024-01-01 11:39:35 +01:00
breandan c2e672f869 add tmux-copycat 2023-12-19 18:25:04 -05:00
breandan 1256ffc237 update comparison chart 2023-12-19 18:20:00 -05:00
breandan 29a71bdddc fixes #404 2023-12-19 17:22:16 -05:00
breandan 9d2e7f7569 adjust hint styling and fix #394 2023-12-19 07:57:25 -05:00
breandanandGitHub 751e6d890b fixes #452 2023-12-12 08:41:59 -05:00
breandan 283c1a5644 update change notes and release 3.8.17 2023-11-04 02:30:56 -04:00
breandan 73a37df7e2 add helpers for read and write actions 2023-10-28 18:10:14 -04:00
chylex 9921409aff Add buttons to reset colors to default values in Settings
Closes #411
2023-10-28 13:58:06 +02:00
breandanandGitHub 3039b5fbb3 Merge pull request #450 from chylex/pr/kotlin-stdlib
Do not bundle kotlin stdlib
2023-10-28 00:21:29 -04:00
chylex cb3d4559f9 Do not bundle kotlin stdlib
Fixes #449
2023-10-27 20:42:45 +02:00
breandan d905909e31 attempt to fix #446 2023-09-16 16:34:46 -04:00
breandan 64c6956b88 add tmux plugins 2023-08-28 21:12:52 -04:00
breandan b1a044dbf8 update change notes 2023-08-28 17:27:29 -04:00
breandan e46cbe1d06 Merge remote-tracking branch 'origin/master' 2023-08-28 17:09:18 -04:00
breandan f64e25a0a9 fixes #442 2023-08-28 17:09:12 -04:00
breandanandGitHub eba043dfb2 further instructions for locating AceJump.xml 2023-08-25 20:54:44 -04:00
breandanandGitHub a746b0a516 add note about settings deserialization 2023-08-25 09:33:49 -04:00
breandan 209b6c97b7 update versions 2023-08-08 01:19:41 -04:00
breandan 3c89cd07b9 try @YannCebron's solution to #415, pt. II 2023-07-26 22:08:35 -10:00
breandan 2ffcc2c57a try @YannCebron's solution to #415 2023-07-26 21:49:42 -10:00
breandan 56b1dfa9a9 quiet plugin verifier error 2023-06-18 14:22:04 -04:00
breandan 48cadfef4c update versions, acknowledge @wuruofan 2023-06-18 14:11:42 -04:00
breandanandGitHub 6d47331c71 Merge pull request #440 from wuruofan/master
fix(compatibility): avoid 'java.lang.NoSuchFieldError: Companion' error on lower version IDEA ide
2023-06-18 13:45:42 -04:00
wuruofan 3339f6bdb8 fix(compatibility): avoid 'java.lang.NoSuchFieldError: Companion' error on lower version IDEA ide such as PhpStorm, DevEco Studio etc, which related to FileEditorManagerEx.getInstanceEx() companion
Related issues: [#434](https://github.com/acejump/AceJump/issues/434), [#438](https://github.com/acejump/AceJump/issues/438), [#435](https://github.com/acejump/AceJump/issues/435), etc.
2023-06-12 16:34:18 +08:00
breandan e7e85a6944 update to gradle 8.2-rc-2 and new property assignment syntax 2023-06-11 21:42:16 -04:00
breandan 1839efb59f update version 2023-05-28 19:20:17 -04:00
breandan da913f61b6 Merge remote-tracking branch 'origin/master' 2023-05-13 15:04:28 -04:00
breandan 7dd12a0457 fixes #431 2023-05-13 15:04:06 -04:00
breandan dae7bd8fa4 fixes #431 2023-05-13 14:59:39 -04:00
breandan 7d39ea2fef fixes #429 2023-04-28 16:55:42 -04:00