aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api
Commit message (Collapse)AuthorAge
...
| | * perf(highlight): allocate permanent names in an arena for fun and cache localitybfredl2022-06-21
| | |
| | * perf(highlight): don't allocate duplicates for color namesbfredl2022-06-21
| | |
| * | refactor(option): DRY get/set option value #19038Lewis Russell2022-06-21
| |/ | | | | | | | | | | | | | | The main motivation for this is for the buf and win cases which need to set up and restore context, and it's what specifically makes the semantics of options nuanced, and thus this should not be repeated more than once. - nvim_get/set_option_value now share argument validation.
| * Merge pull request #18743 from gpanders/bowooptvalueGregory Anders2022-06-20
| |\ | | | | | | Add "buf" and "win" to nvim_get_option_value and use them in vim.bo and vim.wo
| | * feat(api): add "buf" and "win" to nvim_get_option_valueGregory Anders2022-06-20
| | | | | | | | | | | | These mirror their counterparts in nvim_set_option_value.
| * | perf(ui): reduce allocation overhead when encoding "redraw" eventsbfredl2022-06-20
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note for external UIs: Nvim can now emit multiple "redraw" event batches before a final "flush" event is received. To retain existing behavior, clients should make sure to update visible state at an explicit "flush" event, not just the end of a "redraw" batch of event. * Get rid of copy_object() blizzard in the auto-generated ui_event layer * Special case "grid_line" by encoding screen state directly to msgpack events with no intermediate API events. * Get rid of the arcane notion of referring to the screen as the "shell" * Array and Dictionary are kvec_t:s, so define them as such. * Allow kvec_t:s, such as Arrays and Dictionaries, to be allocated with a predetermined size within an arena. * Eliminate redundant capacity checking when filling such kvec_t:s with values.
| * fix(terminal): coverity USE_AFTER_FREE #18978Justin M. Keyes2022-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Coverity reports use after free: *** CID 352784: Memory - illegal accesses (USE_AFTER_FREE) /src/nvim/buffer.c: 1508 in set_curbuf() 1502 if (old_tw != curbuf->b_p_tw) { 1503 check_colorcolumn(curwin); 1504 } 1505 } 1506 1507 if (bufref_valid(&prevbufref) && prevbuf->terminal != NULL) { >>> CID 352784: Memory - illegal accesses (USE_AFTER_FREE) >>> Calling "terminal_check_size" dereferences freed pointer "prevbuf->terminal". 1508 terminal_check_size(prevbuf->terminal); 1509 } 1510 } 1511 1512 /// Enter a new current buffer. 1513 /// Old curbuf must have been abandoned already! This also means "curbuf" may Solution: Change terminal_destroy and terminal_close to set caller storage to NULL, similar to XFREE_CLEAR. This aligns with the pattern found already in: terminal_destroy e897ccad3eb1e term_delayed_free 3e59c1e20d605
| * feat(logging): include test-id in log messagesJustin M. Keyes2022-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 1. Log messages (especially in CI) are hard to correlate with tests. 2. Since b353a5c05f02 #11886, dumplog() prints the logs next to test failures. This is noisy and gets in the way of the test results. Solution: 1. Associate an incrementing id with each test and include it in log messages. - FUTURE: add v:name so Nvim instances can be formally "named"? 2. Mention "child" in log messages if the current Nvim is a child (based on the presence of $NVIM). BEFORE: DBG … 12345 UI: event DBG … 12345 log_server_msg:722: RPC ->ch 1: … DBG … 12345 UI: flush DBG … 12345 inbuf_poll:444: blocking... events_enabled=1 events_pending=0 DBG … 23454 UI: stop INF … 23454 os_exit:594: Nvim exit: 0 AFTER: DBG … T57 UI: event DBG … T57 log_server_msg:722: RPC ->ch 1: … DBG … T57 UI: flush DBG … T57 inbuf_poll:444: blocking... events_enabled=1 events_pending=0 DBG … T57/child UI: stop INF … T57/child os_exit:594: Nvim exit: 0
| * docs: fix typos (#18866)dundargoc2022-06-15
| | | | | | | | | | | | | | docs: fix typos and similarly insignificant changes Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: smjonas <jonas.strittmatter@gmx.de> Co-authored-by: kanreki <32443233+kanreki@users.noreply.github.com>
| * vim-patch:8.2.5088: value of cmod_verbose is a bit complicated to usezeertzjq2022-06-14
| | | | | | | | | | | | | | | | Problem: Value of cmod_verbose is a bit complicated to use. Solution: Use zero for not set, value + 1 when set. (closes vim/vim#10564) https://github.com/vim/vim/commit/cd7496382efc9e6748326c6cda7f01003fa07063 Omit has_cmdmod(): only used for Vim9 script
| * vim-patch:8.2.1898: command modifier parsing always uses global cmdmodzeertzjq2022-06-14
| | | | | | | | | | | | Problem: Command modifier parsing always uses global cmdmod. Solution: Pass in cmdmod_T to use. Rename struct fields consistently. https://github.com/vim/vim/commit/e10044015841711b989f9a898d427bcc1fdb4c32
| * refactor(api): remove redundant fields of CmdParseInfozeertzjq2022-06-14
| |
| * vim-patch:8.2.1897: command modifiers are saved and set inconsistentlyzeertzjq2022-06-14
| | | | | | | | | | | | | | | | | | Problem: Command modifiers are saved and set inconsistently. Solution: Separate parsing and applying command modifiers. Save values in cmdmod_T. https://github.com/vim/vim/commit/5661ed6c833e05467cab33cb9b1c535e7e5cc570 Cherry-pick: :0verbose fix from patch 8.2.4741
| * refactor(api): move command related API to separate filebfredl2022-06-12
| |
| * refactor(api): move extmark specific functions to api/extmark.cbfredl2022-06-12
| |
| * refactor(api): move option code to own filebfredl2022-06-12
| |
| * fix(messages): add color when showing nvim_echo in :messages historybfredl2022-06-11
| |
| * feat(api): nvim__get_runtime do_sourcebfredl2022-06-11
| |
| * refactor: change type of linenr_T from long to int32_tDundar Goc2022-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | The size of long varies depending on architecture, in contrast to the MAXLNUM constant which sets the maximum allowable number of lines to 2^32-1. This discrepancy may lead to hard to detect bugs, for example https://github.com/neovim/neovim/issues/18454. Setting linenr_T to a fix maximum size of 2^32-1 will prevent this type of errors in the future. Also change the variables `amount` and `amount_after` to be linenr_T since they're referring to "the line number difference" between two texts.
| * feat(autocmds): retrieve lua callback (#18642)kylo2522022-06-09
| | | | | | add a new `callback` field to `nvim_get_autocmds`
| * fix(nvim_create_user_command): make `smods` work with `nvim_cmd`Famiu Haque2022-06-08
| | | | | | | | Closes #18876.
| * docs: fix typos (#18269)dundargoc2022-06-04
| | | | | | | | | | | | | | | | | | | | Co-authored-by: zeertzjq <zeertzjq@outlook.com> Co-authored-by: Dan Sully <dan+github@sully.org> Co-authored-by: saher <msaher.shair@gmail.com> Co-authored-by: Stephan Seitz <stephan.seitz@fau.de> Co-authored-by: Benedikt Müller <d12bb@posteo.de> Co-authored-by: Andrey Mishchenko <mishchea@gmail.com> Co-authored-by: Famiu Haque <famiuhaque@protonmail.com> Co-authored-by: Oliver Marriott <hello@omarriott.com>
| * refactor(api): use a unpacker based on libmpack instead of msgpack-cbfredl2022-06-02
| | | | | | | | | | | | | | | | | | | | Currently this is more or less a straight off reimplementation, but this allow further optimizations down the line, especially for avoiding memory allocations of rpc objects. Current score for "make functionaltest; make oldtest" on a -DEXITFREE build: is 117 055 352 xfree(ptr != NULL) calls (that's NUMBERWANG!).
| * refactor: correct comments and assertions about mapping rhs <Nop> (#18821)zeertzjq2022-06-01
| | | | | | | | | | | | | | | | Also avoid referring to mappings as "keymaps" in commands and docs. *map_empty_rhs* *map-empty-rhs* You can create an empty {rhs} by typing nothing after a single CTRL-V (you have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc file.
| * Merge pull request #18194 from famiu/feat/usercmd_previewbfredl2022-05-31
| |\ | | | | | | feat: user command "preview" (like inccommand)
| | * feat: add preview functionality to user commandsFamiu Haque2022-05-31
| | | | | | | | | | | | Adds a Lua-only `preview` flag to user commands which allows the command to be incrementally previewed like `:substitute` when 'inccommand' is set.
| * | docs: clarify that nvim_strwidth counts control characters as one cell (#18802)zeertzjq2022-05-31
| | |
| * | refactor(api): use hashy hash for looking up api method and event namesbfredl2022-05-30
| |/ | | | | | | | | This avoids generating khash tables at runtime, and is consistent with how evalfuncs lookup work.
| * feat(nvim_create_user_command): pass structured modifiers to commandsFamiu Haque2022-05-29
| | | | | | | | | | | | | | Adds an `smods` key to `nvim_create_user_command` Lua command callbacks, which has command modifiers but in a structured format. This removes the need to manually parse command modifiers. It also reduces friction in using `nvim_cmd` inside a Lua command callback.
| * refactor: missing parenthesis may cause unexpected problems (#17443)kylo2522022-05-26
| | | | | | related vim-8.2.{4402,4639}
| * refactor(uncrustify): set maximum number of consecutive newlines to 2 (#18695)dundargoc2022-05-25
| |
| * Merge pull request #18528 from lewis6991/setwinoptbfredl2022-05-25
| |\ | | | | | | feat(api): add `win` and `buf` to `nvim_set_option_value`
| | * feat(api): add win and buf to nvim_set_option_valueLewis Russell2022-05-17
| | | | | | | | | | | | Co-authored-by: Gregory Anders <8965202+gpanders@users.noreply.github.com>
| * | fix(cid/352839): USE_AFTER_FREE in create_user_command #18669James McCoy2022-05-22
| | |
| * | Merge pull request #18608 from ckipp01/extmarkDocsbfredl2022-05-22
| |\ \ | | | | | | | | docs(extmark): remove message about passing in id=0
| | * | docs(extmark): remove message about passing in id=0ckipp012022-05-18
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The docs for `nvim_buf_set_extmark` mention that you can create a new extmark when passing in `id=0`, however if you do this you'll get an error since the code checks that id is positive. ``` id is not a positive integer ``` This change re-words the sentence to make it clearer.
| * | feat(ui): clear message history explicitly with msg_history_clear eventdevbhan singh2022-05-21
| | |
| * | fix(autocmds): separate command from desc (#18617)kylo2522022-05-21
| | |
| * | Merge pull request #18648 from jamessan/coverity-fixesJames McCoy2022-05-20
| |\ \
| | * | perf(cid/350479): avoid copying ExtmarkInfo when calling extmark_to_array()James McCoy2022-05-20
| | | |
| | * | fix(cid/351940): free compl_arg in create_user_commands()'s error path exitJames McCoy2022-05-20
| | | |
| * | | fix: make `nvim_cmd` not suppress errors inside key mappingFamiu Haque2022-05-19
| |/ / | | | | | | | | | Closes #18632
| * | Merge pull request #18620 from bfredl/multibarbfredl2022-05-18
| |\ \ | | | | | | | | fix(ui): make winbar work with floats and multigrid
| | * | refactor: move more grid functions to grid.c. Clean up some variablesbfredl2022-05-18
| | | |
| | * | refactor: grid->rows and grid->colsbfredl2022-05-18
| | | |
| * | | feat(api): enable nvim_exec_autocmds to pass arbitrary data (#18613)Gregory Anders2022-05-18
| |/ / | | | | | | | | | Add a "data" key to nvim_exec_autocmds that passes arbitrary data (API objects) to autocommand callbacks.
| * | Merge pull request #18562 from famiu/feat/ui/winbarbfredl2022-05-18
| |\ \ | | | | | | | | feat(ui): add `'winbar'`
| | * | feat(ui): add `'winbar'`Famiu Haque2022-05-18
| | |/ | | | | | | | | | | | | | | | | | | Adds support for a bar at the top of each window, enabled through the `'winbar'` option. Co-authored-by: Björn Linse <bjorn.linse@gmail.com>
| * / docs(api): update v:errmsg behavior #18593Famiu Haque2022-05-17
| |/
| * refactor: replace char_u variables and functions with charDundar Goc2022-05-16
| | | | | | | | Work on https://github.com/neovim/neovim/issues/459