aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/keymap.h
Commit message (Collapse)AuthorAge
* refactor: rename keymap.{c,h} to keycodes.{c,h} (#18535)zeertzjq2022-05-12
| | | | | | | | Most code in keymap.h is for keycode definitions, while most code in keymap.c is for the parsing and conversion of keycodes. The name "keymap" may also make people think these two files are for mappings, while in fact keycodes are used even when no mappings are involved, so "keycodes" should be a better file name than "keymap".
* vim-patch:8.2.0867: using \{xxx} for encoding a modifier is not nicezeertzjq2022-04-29
| | | | | | | | | Problem: Using \{xxx} for encoding a modifier is not nice. Solution: Use \<*xxx> instead, since it's the same as \<xxx> but producing a different code. https://github.com/vim/vim/commit/fccd93f0917234b962ce07d1df3adf9d7105936f Use this notation in langmap_spec.
* vim-patch:8.2.0855: GUI tests fail because the test doesn't use a modifierzeertzjq2022-04-29
| | | | | | | | Problem: GUI tests fail because the test doesn't use a modifier. Solution: Add "\{xxx}" to be able to encode a modifier. https://github.com/vim/vim/commit/ebe9d34aa07037cff2188a8dd424ee1f59cbb0bf Change macros to enums to use them in unit tests.
* feat(keymap): add F38-F63 keys (#17893)zeertzjq2022-04-11
|
* refactor: remove unused K_AUCMD_SPECIALzeertzjq2022-03-01
|
* feat(lua): add api and lua autocmdsTJ DeVries2022-02-27
|
* vim-patch:8.2.4267: unused entry in keymap enum (#17255)zeertzjq2022-01-31
| | | | | Problem: Unused entry in keymap enum. Solution: Remove the entry. https://github.com/vim/vim/commit/4c93aff20f228d0dfca11f4793eb2c8895d4984c
* refactor: remove CSI unescaping and clean up related names and commentszeertzjq2022-01-21
|
* refactor: remove the <xCSI> keyzeertzjq2022-01-21
| | | | CSI typed directly is now just <CSI>. The <xCSI> key is obsolete.
* feat(api): add support for lua function & description in keymapshadmansaleh2022-01-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Behavioral changes: 1. Added support for lua function in keymaps in -------------------------------------------- - nvim_set_keymap Can set lua function as keymap rhs like following: ```lua vim.api.nvim_{buf_}set_keymap('n', '<leader>lr', '', {callback = vim.lsp.buf.references}) ``` Note: lua function can only be set from lua . If api function being called from viml or over rpc this option isn't available. - nvim_{buf_}get_keymap When called from lua, lua function is returned is `callback` key . But in other cases callback contains number of the function ref. - :umap, nvim_del_keymap & nvim_buf_del_keymap clears lua keymaps correctly. - :map commands for displaing rhs . For lua keymaps rhs is displayed as <Lua function ref_no> Note: lua keymap cannot be set through viml command / functions. - mapargs() When dict is false it returns string in `<Lua function ref_no>` format (same format as :map commands). When dict is true it returns ref_no number in `callback` key. - mapcheck() returns string in `<Lua function ref_no>` format (same format as :map commands). 2. Added support for keymap description --------------------------------------- - nvim_{buf_}set_keymap: added `desc` option in opts table . ```lua vim.api.nvim_set_keymap('n', '<leader>w', '<cmd>w<cr>', {desc='Save current file'}) ``` - nvim_{buf_}get_keymap: contains `desc` in returned list. - commands like `:nmap <leader>w` will show description in a new line below rhs. - `maparg()` return dict contains `desc`.
* refactor: uncrustify #16090dundargoc2021-10-29
|
* refactor: make commas trail in enumsDundar Göc2021-10-19
|
* refactor: format all C files under nvim/ #15977dundargoc2021-10-12
| | | | | | | | * refactor: format all C files under nvim * refactor: disable formatting for Vim-owned files: * src/nvim/indent_c.c * src/nvim/regexp.c * src/nvim/regexp_nfa.c * src/nvim/testdir/samples/memfile_test.c
* chore: use codespell to spell check #15016dundargoc2021-07-07
|
* vim-patch:8.0.1309: cannot use 'balloonexpr' in a terminalJan Edmund Lazo2021-05-06
| | | | | | | Problem: Cannot use 'balloonexpr' in a terminal. Solution: Add 'balloonevalterm' and add code to handle mouse movements in a terminal. Initial implementation for Unix with GUI. https://github.com/vim/vim/commit/51b0f3701ecb440aa72ab6017c1df6940c0e0f6f
* vim-patch:8.1.2366: using old C style commentsJan Edmund Lazo2020-04-12
| | | | | | Problem: Using old C style comments. Solution: Use // comments where appropriate. https://github.com/vim/vim/commit/9bf703d46a79fbffeb829246ea5ce385bddc4166
* vim-patch:8.1.0140: recording into a register has focus eventsJan Edmund Lazo2020-02-01
| | | | | | Problem: Recording into a register has focus events. (Michael Naumann) Solution: Don't record K_FOCUSGAINED and K_FOCUSLOST. (closes vim/vim#3143) https://github.com/vim/vim/commit/972bfddc6b3f52ae0865ad8c0bf6089bc8a9883a
* paste: WIP #4448Justin M. Keyes2019-08-27
|
* keymap, terminal: more keycodes #9810Olivier G-R2019-03-31
| | | | | | | | | - input: recognize <kEqual>, <kComma> - terminal.c: If we need to support function key, a change must be made in libvtermkey. Currently, it emulates strictly VT220 terminal, and returning numeric value in 'normal' mode is the expected behaviour. closes #9810
* keymap: add more (keypad) keycodes #9793Olivier G-R2019-03-29
| | | | | | | | | | | | | | | | | - K_KORIGIN instead of K_KCENTER: This name is similar to what is used by xev. Alternative could be K_KBEGIN as hinted here: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys But I find Begin and Home too similar, and it might induced some confusion. The naming looked related to some old keyboard configuration. - keymap.c: alias KPPeriod to kDel instead of kPoint. This might seems weird, but this is actually the behaviour that should be expected. libtermkey produces "KPPeriod" when num lock is off. To fix this would need to change this name in termkey. closes #9780 closes #9793
* Merge #8736 'vim-patch:8.0.0697: stable keymap.h'Justin M. Keyes2018-07-13
|\
| * keymap: add commented events to match 8.0.0697Jan Edmund Lazo2018-07-13
| | | | | | | | KE_MOUSEMOVE, KE_CANCEL are added in later patches.
| * vim-patch:8.0.0697: recorded key sequences may become invalidJan Edmund Lazo2018-07-10
|/ | | | | | | Problem: Recorded key sequences may become invalid. Solution: Add back KE_SNIFF removed in 7.4.1433. Use fixed numbers for the key_extra enum. https://github.com/vim/vim/commit/8858498516108432453526f07783f14c9196e112
* insert-mode: interpret unmapped META as ESCJustin M. Keyes2018-04-04
| | | | | | closes #2454 closes #8213 ref #7972
* getchar: implement <Cmd> key to invoke command in any modeBjörn Linse2018-03-23
|
* vim-patch:8.0.0212: buffer for key name may be too small (#8009)KunMing Xie2018-02-18
| | | | | | | | | Problem: The buffer used to store a key name theoreticaly could be too small. (Coverity) Solution: Count all possible modifier characters. Add a check for the length just in case. https://github.com/vim/vim/commit/423977d3cebac2be1158b1d11da60fe96db4b750
* eventloop: FocusGained: schedule event instead of pseudokeyJustin M. Keyes2017-09-05
| | | | | closes #4840 closes #6164
* 'cpoptions': remove "<" flag; ignore <special>Justin M. Keyes2017-07-08
| | | | Closes #6937 "nvim_get_keymap output is unreliable"
* keymap: Make replace_termcodes and friends accept length and cpo_flagsZyX2016-04-18
| | | | | | | Reasons: - One does not have to do `s[len] = NUL` to work with these functions if they do not need to replace the whole string: thus `s` may be const. - One does not have to save/restore p_cpo to work with them.
* keymap: Support <D-...> (super/command key).Justin M. Keyes2016-02-22
| | | | | | | | | | | | | | | | | | | | Adds support for: - api:vim_input("<D-a>") - ":nnoremap <C-D-S-...>" and permutations thereof UIs must capture the modifier and send it as "<D-...>" to vim_input(). Note: Before this commit, any arbitrary ":nnoremap <{foo}-{bar}>" mapping could already be invoked with feedkeys("\<{foo}-{bar}>"). This commit supports "D-" as a modifier that can be combined with "C-", "A-", "S-" in any order. For non-GUI (terminal) support, user must: :set <D-a>={CSI sequence} then send the {CSI sequence} from their terminal. But this does not work yet (regression #2204). Closes #2190
* src/*: Remove `VIM - Vi improved ...` headerMichael Reed2015-11-27
| | | | | | | | | | | | | | | | | | | Regarding the individual items in the header: `Vim - Vi improved by Bram Moolenar` Bram Moolenar is already mentioned throughout the documentation, as well as the intro screen. `:help uganda` It's already shown to all users who don't use `shortmess+=I` upon starting nvim, and is already placed prominently in help.txt, i.e., `:help` run with no arguments. `:help credits` Already mentioned near the top of help.txt. `README.md` Already mentioned in develop.txt.
* input: Remove CURSORHOLD keyThiago de Arruda2015-10-26
| | | | | | | | | | | Refactor input.c, normal.c and edit.c to use the K_EVENT special key to trigger the CURSORHOLD event. In normal and edit mode, K_EVENT is treated as K_CURSORHOLD, which enables better handling of arbitrary actions in those states(eg: In normal mode the previous operator counts will be restored). Also fix a test in vim_spec.lua. The test had a wrong assumption: cmdheight is only used to determine when the press enter screen will be shown, not to limit how many lines or control pagination.
* tui: Don't use 'pastetoggle' for automatic pastingThiago de Arruda2015-10-01
| | | | | | | Add a new special key that can be used by UIs to toggle the 'paste' option and use it in the TUI instead of the user's 'pastetoggle' value. Close #2843 #2092
* Remove :tearoff #3007Marco Hinz2015-07-15
| | | | | | | | This also removes the 't' flag from 'guioptions'. Side effect: :term[inal] -> :te[rminal] Closes #3003.
* Cleanup 'ttym[ouse]', FEAT_MOUSE, mouse_(dec|gpm|etc.)Michael Reed2015-05-18
| | | | | | Because of 3baba1e7bc6698e6bc9f1d37fce88b30d6274bc9, it's dead code. Helped-by: Justin M. Keyes <justinkz@gmail.com>
* Cleanup misc.Michael Reed2015-05-18
| | | | | | | | | | | | | | | Regarding debugger.txt (which was Spotted by @Hettomei): The third section was empty, and the second section is very outdated. Nvim doesn't have things like Balloon Evalutation and Sun Visual workshop integration, so just remove the section. Regarding everything else: - term.[ch] and term_defs.h don't exist anymore, so remove refs to them - Add ttybuiltin to vim_diff.txt. It should have been done before, but vim_diff.txt didn't exist when ttybuiltin was removed (done in 3baba1e7bc6698e6bc9f1d37fce88b30d6274bc9,) Helped-by: Justin M. Keyes <justinkz@gmail.com>
* Remove QNX/pterm remnantsMichael Reed2015-01-11
| | | | | The function qnx_init() (wrapped in an ifdef in main.c) doesn't even exist.
* Remove FEAT_MOUSE_JSBFredrik Fornwall2014-07-29
| | | | This is never built and references some obscure jsb terminal
* Fix some stylesZyX2014-06-02
|
* Add automatic generation of headersZyX2014-06-02
| | | | | | | | | | | | | | | | | - The 'stripdecls.py' script replaces declarations in all headers by includes to generated headers. `ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'` was used for this. - Add and integrate gendeclarations.lua into the build system to generate the required includes. - Add -Wno-unused-function - Made a bunch of old-style definitions ANSI This adds a requirement: all type and structure definitions must be present before INCLUDE_GENERATED_DECLARATIONS-protected include. Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is the only exception.
* Introduce nvim namespace: Fix define guards.Eliseo Martínez2014-05-15
| | | | | | Change define guards from NEOVIM_XXX_H to NVIM_XXX_H: - Change header files. - Change clint correct guard name calculation.
* Introduce nvim namespace: Move files.Eliseo Martínez2014-05-15
Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.