262 Commits
Author SHA1 Message Date
Chiao Chuang 6e83486f35 Load match_mappings on demand (#106)
* chore: add small profile (timing) script

Run it with `make profile`, which runs scripts doing `hop.setup` with
different settings, and print the elapsed time (in nanoseconds).

This would be helpful to determine the cost of setup.

Currently mainly target on the `match_mappings` option, when all
mappings were loaded, it increases time about 0.3 ms on my machine.

* chore: load match_mappings on demand

- In setup, only prepare an empty loaded_mappings table.

- When really using the feature (only in mappings.checkout), try load
  the wanted tables (e.g., zh_sc) on demand.

- Notify user if the loading failed. Rather than raising E5108 with lua
  not-found error (original behavior).
2026-08-14 17:19:29 +00:00
bxhart 8ae7a4e885 fix vim.version.cmp sign to allow hint_type='inline' (#123) 2026-08-14 17:18:21 +00:00
mohsen 707049feac Revert "fix: clear cmdline area based on cmdheight (#105)" (#110)
This reverts commit 2254e0b3c8.
2025-08-22 16:00:01 +00:00
Henry Hsieh 2254e0b3c8 fix: clear cmdline area based on cmdheight (#105) 2025-08-06 18:15:10 +00:00
My Arcana 9c6a1dd9af Fix: dim the whole window (#96) 2025-02-26 21:32:23 +03:30
Maksym Medvied a7961ac34d fix: make case_insensitive work even if smartcase is not set (#101)
https://github.com/smoka7/hop.nvim/pull/76 changed the behavior of
case_insensitive in the following way: now if case_insensitive is set it
only works if ``smartcase`` is set and ``starts_with_uppercase(pat)`` is
true.

This patch makes ``case_insensitive`` work even if ``smartcase`` is not
set (``smartcase`` [is not set by default](
https://neovim.io/doc/user/options.html#'smartcase')).
Otherwise ``case_insensitive = true`` doesn't work in neovim with
default settings and requires setting ``smartcase = true`` just to make
``case_insensitive = true`` work.
2025-02-26 21:24:03 +03:30
brightsunshine0917andbrightsunshine0917 efe58182f7 fix: escape special chars for regex (#92) (#94)
This escapes `]`, `^`, `-`, and `\` (https://regexper.cn/charclass.html).

Co-authored-by: brightsunshine0917 <brightsunshine0917@email.email>
2024-12-05 12:55:54 +03:30
Jackson Garner 08ddca7990 fix: Exclude targets under the cursor. #83 (#87)
Excluding the cursor is now the default. If someone really wants to
include the cursor, they can probably write a distance function that
turns 0 into 0.1 or something like that.
2024-10-17 21:04:01 +03:30
mohsen 8f51ef0270 fix: set the extmarks columns to a smaller value than line length (#82) 2024-08-08 18:50:52 +03:30
mohsen 036462a345 fix: respect case_insensitive (#76) 2024-05-26 19:34:04 +03:30
Henry Hsiehandmohsen 6ff23501a1 feat: make hl_mode of hints configurable (#72)
* feat: add hl_mode to change highlight of hint char

* chore: fix typo in docs

---------

Co-authored-by: mohsen <smoka7@hotmail.com>
2024-04-25 20:42:09 +03:30
Henry Hsieh 059e88e9dc feat: add windows-list to allow custom window candidates (#70)
* feat: add windows-list to allow custom window candidates

* fix: always check focusable window
2024-04-21 10:19:37 +03:30
johnlevidyandmohsen 1b355b0834 feat: allow users to supply custom distance functions #66 (#67)
* feat: allow users to supply custom distance functions #66

* docs:add the docs and read wise method

---------

Co-authored-by: mohsen <smoka7@hotmail.com>
2024-04-20 21:00:42 +03:30
mohsen 6d853addd6 fix: Inform user when hop isn't initialized
closes #63
2024-01-01 22:42:14 +03:30
mohsen df0b5b693e feat: Make virtual cursor configurable 2023-11-08 17:21:22 +00:00
yehuohan 64184f6792 refactor: add jump_target_generator 2023-11-08 17:21:22 +00:00
yehuohan 5c1e406a04 fix: move jump target should offset in row first, then in cell 2023-11-08 17:21:22 +00:00
yehuohan 396d755816 refactor: add clip_line_context 2023-11-08 17:21:22 +00:00
mohsen dacac13fa2 refactor: update get_input_pattern 2023-11-08 17:21:22 +00:00
mohsen ef78b32ef3 fix: include cursor column when dimming before cursor 2023-11-08 17:21:22 +00:00
yehuohan fa89b3a6d6 fix: take the first folded line as an empty line 2023-11-08 17:21:22 +00:00
yehuohan 25b2e390e3 refactor: remove MatchContext and make JumpContext thin 2023-11-08 17:21:22 +00:00
yehuohan 2a9bc73808 refactor: compute unmatched area with LineRange and ColumnRange 2023-11-08 17:21:22 +00:00
mohsen a1cfb6d1c1 refactor: minor edits 2023-11-08 17:21:22 +00:00
yehuohan ca2b0ba8be refactor: add move_jump_target to compute hint_offset 2023-11-08 17:21:22 +00:00
yehuohan c4a59e6ba2 refactor: add jump_regex.lua 2023-11-08 17:21:22 +00:00
yehuohan cca8aced27 refactor: make hop-treesitter and hop-yank as hop extensions according to hop framework 2023-11-08 17:21:22 +00:00
yehuohan ae5e9128be refactor: add WindowRow,WindowCol,WindowCell and WindowChar to make position computation less confused 2023-11-08 17:21:22 +00:00
mohsen 3b982dfa39 fix: Don't override existing highlight definition 2023-11-08 18:39:23 +03:30
yehuohan ccf8e08dcc fix:change windows in multi windows mode only it's necessery (#57)
* fix: call winsaveview with nvim_win_call to avoid switching window cursor

* fix: rename buf_handle and win_handle to be consistent with JumpContext
2023-11-01 17:31:37 +00:00
yehuohan 275dcbc84e fix: don't checkout mappings when they're not loaded (#56) 2023-10-31 12:44:02 +00:00
yehuohanandmohsen a75b915955 feat: support match mappings (#51)
* feat: support match mappings

* feat: add testcases for match_mappings

* added farsi mapping

* fix hop vertical

---------

Co-authored-by: mohsen <smoka7@hotmail.com>
2023-10-30 05:54:29 +00:00
mohsen 1cbaa79457 fix: don't disable multi windows for terminal mode
fixes #49
2023-10-02 20:33:41 +03:30
mohsen f2508f415b fix: change yank range to inclusive (#46) 2023-09-19 08:56:35 +00:00
mohsen be75e7c596 refactor: don't reinvent table.concat 2023-09-13 14:54:41 +03:30
mohsen 5681edd36c feat: Jump to Treesitter nodes (#37) 2023-09-12 11:31:26 +00:00
afterlook d4f954e8b1 fix: Don't toggle cursorline state (#40)
Due to highlighting changing, phaazon#148 issue is no longer relevant
and any logic related to changing user's cursorline can be removed.

This also fixes any previous bugs that were result of saving hint state
after cursorline was toggled off.

Signed-off-by: afterlook <29754364+afterlook@users.noreply.github.com>
2023-09-12 07:56:27 +00:00
mohsen 88516dde51 fix:check empty buffers
closes #38
2023-08-29 13:14:41 +03:30
mohsen 2d80315010 fix: fix invalid col for before cursor (#35) 2023-08-23 07:29:20 +00:00
mohsen 877e175669 fix: fix invalid col on empty lines (#33) 2023-08-19 06:46:52 +00:00
mohsen 0b250bf412 fix:don't get current char when searching after cursor 2023-08-16 21:57:06 +03:30
Felipe Lemaandmohsen 5c60add246 chore: add ci action to run tests on pull requests
Co-authored-by: mohsen <36933074+smoka7@users.noreply.github.com>
2023-08-11 09:04:32 +00:00
mohsen e41c04125f fix: remove unpack 2023-07-24 08:28:33 +03:30
mohsen 31e0e42e62 refactor!: fix lint errors (#17)
* refactor!: fix lint errors
update deprecated api calls

* refactor!: update minimum nvim version to 9.0
2023-06-22 10:27:28 +00:00
mohsen 0569092d44 fix: out of range on empty lines (#16) 2023-06-21 18:56:11 +00:00
mohsen 26b6195b7a feat:make x_bias configurable 2023-06-17 12:21:43 +03:30
mohsen 8a54ca52b7 fix:add the cursor position to jump list 2023-06-15 20:39:38 +03:30
mohsen f37744f938 change default hint_type to overlay 2023-06-14 17:36:36 +03:30
mohsen 6197f750e5 fix:match empty lines only on line wise hints 2023-06-14 10:38:48 +03:30
mohsen 77af13fa1f fix:clear highlight namespaces before 2023-06-14 10:36:53 +03:30