Commit Graph

144 Commits (master)

Author SHA1 Message Date
Lucas Pütz be1953e00e
Fix handling of special keys (#38) 2 days ago
Iron-E cbe88095ab
Feat/35/libmodal mode map fn (#36)
* ref(libmodal): `mode.switch` -> `mode.map.switch`

* feat(libmodal): `mode.map.fn`

* docs(libmodal): `libmodal.mode.map.fn`

* docs(examples): add `fn` example
2 months ago
Iron-E 9fa22b0453
fix(Mode): textchanged events (#34)
* ref(Mode): arbitrary number of per-instance autocmds

* ref(Mode): check cursor events using loop

* fix(Mode): handle textchanged events

* docs(examples): test CursorMoved, TextChanged events
2 months ago
Iron-E 8366119447
fix: virtual cursor edge cases (#32)
* perf(Mode): use dedicated virtual cursor namespace

* fix(Mode): virtual cursor stays in inactive buffers when exiting

* fix(Mode): `CursorMoved` not fired as expected
2 months ago
Iron-E 3cb0a3817f
feat(Mode): show count in popup 2 months ago
Iron-E 485b77bf14
fix(mode): incompatible with vim.v.count (#26)
* fix(mode): incompatible with vim.v.count

* ref(Vars): track local copy of global value

* ref(Mode): use new `Vars`

* ref(Mode): handle exit during `enter`

* ref: swap `Var.new` param order

Mode name should come before var name

* docs(examples): Vars

* ref: rename `Vars` -> `Var`

* fix(Mode): check if `exit == 1` for vim compat

* fix(Prompt): use new `Var` impl

* ref: remove `count1`

It seems like `math.max` is enough for this purpose

* doc: use h3 headers
2 months ago
Iron-E 1ecc4add3b
feat: `Mode:exit` (#30)
* fix(Mode): adapt to changes in `timeoutlen`

* feat(libmodal): do `self:exit()` inside callback

* docs: `Mode:exit`

* style: .editorconfig

* docs(libmodal): fix broken example

* feat(Mode): `self:switch`

* docs: `Mode:switch`

* feat(libmodal): `mode.switch`

Wraps `Mode:switch` for convenience

* docs: `libmodal.mode.switch`

* docs(examples): `*.switch`
2 months ago
Iron-E 3966014dbc
fix(Mode): cursor position doesn't update because of `getchar` (#27)
The solution here has been to use `vim.highlight.range` and hide the
real cursor.

SEE neovim/neovim#20793
2 months ago
vE5li 45577b6e19
fix: check for escaped keys and handle them correctly (#23)
Original author is @vE5li. The commit was resigned in order to be
merged upstream.
8 months ago
Iron-E 875636e91e
ref(Help): use `Statement` for vimscript commands 1 year ago
Iron-E 76f24a7456
fix(Help): remove debug code 1 year ago
Iron-E 1f402f9c65
fix(Help): attempt to get `strwidth` of function
CLOSES #21
1 year ago
Iron-E 1cf0232281
fix(Layer): abort `restore_map` if error occured 1 year ago
Iron-E 6d8aefa5e6
ref: remove useless directory nesting 1 year ago
Iron-E 0822846209
docs: class namespaces follow directories 1 year ago
Frank O'Brien e3a4b66027
extracted functionality for removing mapping from existing mapping to new function, used this function on exit instead of :unmap 1 year ago
Iron-E 617022d48c
feat(Help): highlight types with `nvim_echo` 1 year ago
Iron-E 8c164b811d
perf: general improvements
I forgot to break it up into individual commits, and I ain't going
backwards now.
1 year ago
Iron-E e535c17e84
ref(Layer): future-proof pruning of `nvim_get_keymap` dict 1 year ago
Iron-E 4ac30e0104
fix(Popup): width wrong when first opening 1 year ago
Iron-E 43073dbd7e
fix(Layer): `unmap` after `enter` 1 year ago
Iron-E a7dbc7b76e
fix(Layer): `unmap` before `enter`ing layer
It didn't work before because the layer would still apply the "unmapped"
LHS when entering.
1 year ago
Iron-E 72f45f9187
fix(Layer): checks for if layer is active
The `existing_keymaps_by_mode` table is _always_ initialized, so that
was a red herring.
1 year ago
Iron-E 34b94a246d
perf(Mode): remove `InputBytes` class 1 year ago
Iron-E 69beec5e8e
feat(Mode): adapt to `showmode` option 1 year ago
Iron-E ba75e9b4d3
ref: make workspace diagnostics more accurate 1 year ago
Iron-E b52a440f38
fix(Mode): `nvim_get_mode` returns a table 1 year ago
Iron-E ac93fed590
perf(Mode): `vim.fn.mode()` -> `vim.api.nvim_get_mode()` 1 year ago
Iron-E caf4bad7f8
ref(Mode): use `ModeChanged` instead of custom event 1 year ago
Iron-E 0eb4afcc5b
ref: workspace diagnostics 1 year ago
Iron-E 2eb180827b
Merge branch 'master' of https://github.com/Iron-E/nvim-libmodal 1 year ago
Iron-E c6002ebda9
docs: update 1 year ago
Iron-E 1a30555e73
feat(Mode): custom `User` events 1 year ago
spike c5807eba0d fix error: invalid key lhsraw when restoring maps 2 years ago
Iron-E 4fd0e809e4
docs(classes): allow passing `nil` to `new` 2 years ago
Iron-E d02697c6dc
fix(Layer): typo 2 years ago
Iron-E 4a31e56e63
ref(Layer): move `replace_termcodes` to `utils.api`
It is a utility function for an API function, so it belongs here.
2 years ago
Iron-E 6909e1a2cd
fix(Layer): mis-scheduling 2 years ago
Iron-E a696aecf1c
fix(Layer): nvim failing to set keymap 2 years ago
Iron-E 0786a9fa45
ref(Layer): prefer `rhs` to `callback` 2 years ago
Iron-E a898124d3b
fix(Layer): standardize `lhs` before un/map 2 years ago
Iron-E 5c66d7622a
ref(Layer): `utils.notify_error` for unmapping errors 2 years ago
Iron-E f61d56f221
fix(utils): don't shadow builtin `error` 2 years ago
Iron-E f8c93ec6d8
feat(Layer): `Layer:is_active` 2 years ago
Iron-E 24115079ed
fix(Layer): `:unmap`ping 2 years ago
Iron-E 21dfc73142
style(Layer): make long line multiple lines 2 years ago
Iron-E 9665b84daf
fix(Layer): `nil` rhs from `{callback = function}` 2 years ago
Iron-E 853a180365
ref(Layer): allow `:unmap` before `:enter` 2 years ago
Iron-E c0898e6067
docs(Layer): use proper name of field 2 years ago
Iron-E 4b84c1be46
ref(Layer): use `vim.notify` instead of `error` 2 years ago