aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
| * | cleanupJustin M. Keyes2018-05-18
| | |
| * | main.c: remove useless callJustin M. Keyes2018-05-18
| | | | | | | | | | | | | | | Vim's vimrc_found() also handles setting 'nocompatible', that's why it does vimrc_found(NULL, NULL).
| * | do not pass NULL to os_getenvJustin M. Keyes2018-05-18
| | | | | | | | | | | | closes #8393
* | | channel: avoid references to non-rooted vimL list with outputBjörn Linse2018-05-17
|/ / | | | | | | | | | | | | likely fixes #7768 #7913 If multiple internal stream callbacks were recieved before vimL callbacks got called, only invoke one vimL callback with all data.
* | mf_open(): never fails (except for OOM)Justin M. Keyes2018-05-17
| |
* | coverity/13702: open_spellbuf: handle failed ml_open()Nick Neisen2018-05-17
| |
* | coverity/13713: do_pending_operator: handle failed u_save_cursor()Nick Neisen2018-05-17
| |
* | coverity/13709: spell_add_word: handle failed fseek()Nick Neisen2018-05-17
| | | | | | | | | | Check the return status after removing a duplicate word. Add a log for a nonzero return status.
* | coverity/13700: ignore failed win_split()Nick Neisen2018-05-17
| | | | | | | | | | | | | | | | win_split() does EMSG for all failure cases, so we don't need to log it. Easiest thing to do here is ignore the return value (otherwise we need to do some cleanup and might require some refactoring. jumpto_tag() can deal with a failed split, so it's no big deal.
* | coverity/13969: handle u_save() failureNick Neisen2018-05-17
| | | | | | | | | | | | | | Looking at the implementation of u_save suggests that its failure is a normal and expected situation (e.g. if undo isn't allowed for some reason, it will fail). Also (most of) the other calls to u_save() in do_put() return early.
* | Merge #5658 'Apply :lmap in macros'Justin M. Keyes2018-05-17
|\ \
| * | clintMatthew Malcomson2018-03-14
| | |
| * | 'keymap' now uses :lmap instead of :lnoremapMatthew Malcomson2018-03-14
| | | | | | | | | | | | | | | | | | | | | This means that the major way that :lmap mappings are applied works as one would expect with macros. This also means that having a translation with 'keymap' does not preclude using mappings in insert mode with :imap.
| * | Ensure :lmap mappings take preferenceMatthew Malcomson2018-03-14
| | | | | | | | | | | | | | | | | | If the mental model of :lmap mappings is a translation between your keyboard and vim proper, then they should take preference over :imap (and other) mappings. This patch makes that happen.
| * | Record :lmap transformed keys in gotchars()Matthew Malcomson2018-03-14
| | | | | | | | | | | | | | | | | | | | | The mental model of :lmap and 'keymap' is of a transformation done before anything else. Hence when recording a macro, or writing to a scriptfile, the transformed keys should be recorded instead of the keys before the transformation.
* | | timer: make sure to free callback after the last timer due callbackBjörn Linse2018-05-13
| |/ |/| | | | | | | | | | | | | fixes #6974 Before this change, the partial could be freed before the last due callback got invoked, which caused a use-after-free when the due callback called the partial.
* | API: nvim_get_commands(): return DictionaryJustin M. Keyes2018-05-12
| |
* | API: nvim_get_commands(): builtin is irrelevant for buffer-localJustin M. Keyes2018-05-12
| | | | | | | | | | builtin commands are never buffer-local, so we can return empty for that case.
* | API: nvim_get_commands(): more attributesJustin M. Keyes2018-05-11
| | | | | | | | | | | | | | Support more :command attributes: -bang -bar -register
* | API: nvim_get_commands(): always return keysJustin M. Keyes2018-05-11
| | | | | | | | | | | | - Always return all keys, with at least NIL value. - Require `opts` param to be {"builtin":false} - Validate `opts` param
* | API: nvim_get_commands()Nimit Bhardwaj2018-05-11
| |
* | Merge #8329 'API: Make nvim_set_option() update `:verbose set …`'Justin M. Keyes2018-05-11
|\ \
| * | lintb-r-o-c-k2018-05-10
| | |
| * | api: Make nvim_set_option() update `:verbose set ...`b-r-o-c-k2018-05-03
| | | | | | | | | | | | | | | | | | Make `:verbose set ...` show when an option was last modified by an API client or Lua script/chunk. In the case of an API client, the channel ID is displayed.
* | | Merge #8371 'API: more reliable/descriptive VimL errors'Justin M. Keyes2018-05-10
|\ \ \
| * | | nvim_eval: fix memory leakJustin M. Keyes2018-05-10
| | | |
| * | | API: nvim_eval(): return non-generic VimL errorsJustin M. Keyes2018-05-09
| | | | | | | | | | | | | | | | Use the same pattern as nvim_call_function (_call_function).
| * | | API: better way to capture abort-causing non-exception errorsJustin M. Keyes2018-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This condition is not perfectly reliable: (did_emsg && force_abort && !current_exception) The more proper way to check for abort-causing non-exception errors is to set up `msg_list` using the "pattern" given by do_cmdline().
| * | | API: return non-generic VimL errorsJustin M. Keyes2018-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Return VimL errors instead of generic errors for: - nvim_call_function - nvim_call_dict_function - Fix tests which were silently broken before this change. This violates #6150 where we agreed not to translate API errors. But that can be fixed later.
| * | | docJustin M. Keyes2018-05-09
| | | |
* | | | UI: redraw statusline when entering cmdline (#8347)raichoo2018-05-10
|/ / /
* | | API: nvim_call_dict_function: expect actual function, not nameJustin M. Keyes2018-05-06
| | |
* | | API: nvim_call_dict_function: eliminate `internal` paramJustin M. Keyes2018-05-06
| | | | | | | | | | | | | | | | | | The `internal` param is difficult to explain, and will rarely be anything but `true`. To avoid it, use a hack: check if the resolved dict value starts with "function(".
* | | refactor: nvim_call_dict_functionJustin M. Keyes2018-05-06
| | | | | | | | | | | | | | | - Add test coverage for errors. - Rename, rearrange.
* | | API: nvim_call_dict_function #3032Sebastian Witte2018-05-06
| | |
* | | terminal: Leave 'relativenumber' alone (#8360)raichoo2018-05-05
| | | | | | | | | ref #6796
* | | Merge pull request #8358 from mhinz/screenJames McCoy2018-05-04
|\ \ \ | | | | | | | | [RFC] screen: avoid artifacts
| * | | screen: avoid artifactsMarco Hinz2018-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Put back the condition that was accidentally removed in https://github.com/neovim/neovim/commit/d42f934bcb3e9e876e5e7ba0ab5cd824175fd10c - if (enc_utf8 && ScreenLinesUC[off] != 0) - bytes[utfc_char2bytes(off, bytes)] = NUL; - else if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e) { - bytes[0] = ScreenLines[off]; - bytes[1] = ScreenLines2[off]; - bytes[2] = NUL; - } else if (enc_dbcs && MB_BYTE2LEN(bytes[0]) > 1) { - bytes[1] = ScreenLines[off + 1]; - bytes[2] = NUL; - } + bytes[utfc_char2bytes(off, bytes)] = NUL; Fixes #8357
* | | | messages: redraw tabline if it was overdrawn by messagesBjörn Linse2018-05-04
|/ / / | | | | | | | | | | | | | | | | | | fixes #8354 Regression from #8088, where we try to avoid clearing the screen if not absolutely necessary
* | | Merge #4486 'refactor: Remove maxmem, maxmemtot options'Justin M. Keyes2018-05-02
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After this change we never release blocks from memory (in practice it never happened because the memory limits are never reached). Let the OS take care of that. --- On today's systems the 'maxmem' and 'maxmemtot' values are huge (4+ GB) so the limits are never reached in practice, but Vim wastes a lot of time checking if the limit was reached. If the limit is reached Vim starts saving pieces of the swap file that were in memory to the disk. Said in a different way: Vim implements its own memory-paging mechanism. This is unnecessary and inefficient since the operating system already has virtual memory and will swap to the disk if programs start using too much memory. This change does... 1. Reduce the number of config options and need for documentation. 2. Make the code more efficient as we don't have to keep track of memory usage nor check if the memory limits were reached to start swapping to disk every time we need memory for buffers. 3. Simplify the code. Once memfile.c is simple enough it could be replaced by actual operating system memory mapping (mmap, MemoryViewOfFile...). This change does not prevent Vim to recover changes from swap files since the swapping code is never triggered with the huge limits set by default.
| * | | Remove the mf_dont_release global after getting rid of maxmem[tot]Felipe Oliveira Carvalho2017-04-11
| | | |
| * | | Remove maxmem and maxmemtot optionsFelipe Oliveira Carvalho2017-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > The option 'maxmem' ('mm') is used to set the maximum memory used for one > buffer (in kilobytes). 'maxmemtot' is used to set the maximum memory used for > all buffers (in kilobytes). The defaults depend on the system used. These > are not hard limits, but tell Vim when to move text into a swap file. If you > don't like Vim to swap to a file, set 'maxmem' and 'maxmemtot' to a very large > value. The swap file will then only be used for recovery. If you don't want > a swap file at all, set 'updatecount' to 0, or use the "-n" argument when > starting Vim. On today's systems these values are huge (4GB in my machine with 8GB of RAM since it's set as half the available memory by default) so the limits are never reached in practice, but Vim wastes a lot of time checking if the limit was reached. If the limit is reached Vim starts saving pieces of the swap file that were in memory to the disk. Said in a different way: Vim implements its own memory swapping mechanism. This is unnecessary and inefficient since the operating system already virtualized the memory and will swap to the disk if programs start using too much memory. This change does... 1. Reduce the number of config options and need for documentation. 2. Make the code more efficient as we don't have to keep track of memory usage nor check if the memory limits were reached to start swapping to disk every time we need memory for buffers. 3. Simplify the code. Once `memfile.c` is simple enough it could be replaced by actual operating system memory mapping (`mmap`, `MemoryViewOfFile`...). This change does not prevent Vim to recover changes from swap files since the swapping code is never triggered with the huge limits set by default.
* | | | :digraphs : highlight with hl-SpecialKey #2690Jakson Alves de Aquino2018-05-01
| |/ / |/| | | | | | | | closes #2690
* | | Merge #8218 'Fix errors reported by PVS'Justin M. Keyes2018-04-27
|\ \ \ | | | | | | | | closes #4983
| * | | spellfile: Fix clint errorZyX2018-04-22
| | | |
| * | | syntax: Fix PVS/V560: condition was already checkedZyX2018-04-22
| | | |
| * | | spellfile: Fix PVS/V547: allocator now never returns NULLZyX2018-04-22
| | | |
| * | | *: Fix clint errorsZyX2018-04-22
| | | |
| * | | window: Fix PVS/V547: expression already checked in previous if()ZyX2018-04-22
| | | |
| * | | window: Silence PVS/V547: height may be changed by curwin ptrZyX2018-04-22
| | | |