aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.c
Commit message (Collapse)AuthorAge
...
* lintJustin M. Keyes2019-09-13
|
* getdigits: introduce `strict`, `def` parametersJustin M. Keyes2019-09-13
| | | | | | | | | | | | Problem: During a refactor long ago, we changed the `getdigits_*` familiy of functions to abort on overflow. But this is often wrong, because many of these codepaths are handling user input. Solution: Decide at each call-site whether to use "strict" mode. fix #5555
* rename: getdigits_safe => try_getdigitsJustin M. Keyes2019-09-13
|
* Merge #10869 'vim-patch:8.1.{0309,0362,0365,0515,1946}'Justin M. Keyes2019-09-05
|\
| * vim-patch:8.1.0515: reloading a script gives errors for existing functionserw72019-09-04
| | | | | | | | | | | | Problem: Reloading a script gives errors for existing functions. Solution: Allow redefining a function once when reloading a script. https://github.com/vim/vim/commit/ded5f1bed7ff2d138b3ee0f9610d17290b62692d
| * vim-patch:8.1.0362: cannot get the script line number when executing a functionerw72019-09-04
| | | | | | | | | | | | | | Problem: Cannot get the script line number when executing a function. Solution: Store the line number besides the script ID. (Ozaki Kiichi, closes vim/vim#3362) Also display the line number with ":verbose set". https://github.com/vim/vim/commit/f29c1c6aa3f365c025890fab5fb9efbe88eb1761
* | vim-patch:8.1.1498: ":write" increments b:changedtick even though nothing ↵Justin M. Keyes2019-09-04
|/ | | | | | | | | changed Problem: ":write" increments b:changedtick even though nothing changed. (Daniel Hahler) Solution: Only increment b:changedtick if the modified flag is reset. https://github.com/vim/vim/commit/c024b4667875e5bc6fd0ed791530e33c3161bff7
* screen: use dedicated message gridBjörn Linse2019-09-01
| | | | | | | | add proper msg_set_pos event, delet win_scroll_over_* make compositor click through unfocusable grids add MsgArea attribute for the message/cmdline area, and add docs and tests
* batch draw :lsBjörn Linse2019-09-01
|
* free_buffer: rework b:changedtick handling #9163Justin M. Keyes2019-08-12
| | | | | | | | | | | | | | | | | | | | - Re-enable Test_BufLeave_Wipe. 66f5e5c7d7ce This is my (probably-wrong) application of Zyx's suggestion in #9163: > free_buffer_stuff() already removes changedtick. It is better to > make `free_options` a flag variable and avoid calling > buf_init_changedtick() based on some flag there: current workflow > looks weird as it first removes `b:changedtick`, then re-adds it > by calling buf_init_changedtick(), then remove again. > Also based on my understanding it looks logical to not remove > `b:changedtick`, but to *replace* it with something allocated if > needed based on examining reference count before calling > `unref_var_dict`. Because now you have key disappearing from > dictionary for no good reason. Patch-By: Nikolai Aleksandrovich Pavlov <kp-pav@yandex.ru>
* vim-patch:8.0.1193: crash when wiping buffer after getbufinfo()Justin M. Keyes2019-08-12
| | | | | | | | Problem: Crash when wiping out a buffer after using getbufinfo(). (Yegappan Lakshmanan) Solution: Remove b:changedtick from the buffer variables. (Note: The test changes in vim-patch:8.0.1193 were already included.)
* includesDaniel Hahler2019-08-07
|
* buffer: add attributes to pure functionsJan Edmund Lazo2019-07-28
|
* Merge #10368 from janlazo/vim-8.0.1164Justin M. Keyes2019-07-19
|\ | | | | vim-patch:8.0.{755,1146,1164}
| * vim-patch:8.0.1164: changing StatusLine highlight does not always workJan Edmund Lazo2019-07-06
| | | | | | | | | | | | | | | | Problem: Changing StatusLine highlight while evaluating 'statusline' may not change the status line color. Solution: When changing highlighting while redrawing don't cause another redraw. (suggested by Ozaki Kiichi, closes vim/vim#2171, closes vim/vim#2120) https://github.com/vim/vim/commit/65ed136844fbaffdd473903ed841c944600234dc
* | api/window: add style="minimal" flag to nvim_open_win()Björn Linse2019-07-07
|/
* :ls : show "R", "F" for terminal-jobs #10370Justin M. Keyes2019-06-29
| | | | | | | | | | | This matches Vim behavior. From `:help :ls` : R a terminal buffer with a running job F a terminal buffer with a finished job ? a terminal buffer without a job: `:terminal NONE` TODO: implement `:terminal NONE`. ref #10349
* vim-patch:8.0.1013: terminal window behaves different from a buffer with changesJan Edmund Lazo2019-06-26
| | | | | | | | Problem: A terminal window with a running job behaves different from a window containing a changed buffer. Solution: Do not set 'bufhidden' to "hide". Fix that a buffer where a terminal used to run is listed as "[Scratch]". https://github.com/vim/vim/commit/e561a7e2fa511d643c9692d26f4cf65378fd1983
* vim-patch:8.0.0935: cannot recognize a terminal buffer in :ls outputJan Edmund Lazo2019-06-26
| | | | | | Problem: Cannot recognize a terminal buffer in :ls output. Solution: Use R for a running job and F for a finished job. https://github.com/vim/vim/commit/304b64c9e6957fa3f552e0540ca786139b39a1c4
* vim-patch:8.0.0953: get "no write since last change" error in terminal windowJan Edmund Lazo2019-06-13
| | | | | | | Problem: Get "no write since last change" error in terminal window. Solution: Use another message when closing a terminal window. Make ":quit!" also end the job. https://github.com/vim/vim/commit/f5be7cd01642fafc4b7d68894eb60cca60c7a405
* api: allow nvim_buf_attach from lua using callbacksBjörn Linse2019-06-04
|
* signs: fix crash in buf_addsign #10091Andrej Zieger2019-06-01
| | | | | | | | | | buf_signcols sorting breaks signlist structure. Remove sorting in buf_signcols, because signlist is already kept sorted and it did not correctly update the double linked list. Fixes #10078
* lintAndrej Zieger2019-05-26
|
* Fixed ordering of signs to align vim and neovim behaviourAndrej Zieger2019-05-26
|
* vim-patch:8.1.0673: functionality for signs is spread out over several filesAndrej Zieger2019-05-26
| | | | | | | Problem: Functionality for signs is spread out over several files. Solution: Move most of the sign functionality into sign.c. (Yegappan Lakshmanan, closes vim/vim#3751) https://github.com/vim/vim/commit/bbea47075cc4e7826e9f8c203e4272ba023ed7b0
* vim-patch:8.1.0658: deleting signs and completion for :sign is insufficientAndrej Zieger2019-05-26
| | | | | | | | | | Problem: Deleting signs and completion for :sign is insufficient. Solution: Add deleting signs in a specified or any group from the current cursor location. Add group and priority to sign command completion. Add tests for different sign unplace commands. Update help text. Add tests for sign jump with group. Update help for sign jump. (Yegappan Lakshmanan, closes vim/vim#3731) https://github.com/vim/vim/commit/7d83bf4f2b785b46d87c7bc376fc9d0a862af782
* vim-patch:8.1.0644: finding next sign ID is inefficientAndrej Zieger2019-05-26
| | | | | | Problem: Finding next sign ID is inefficient. Solution: Add next_sign_id. (Yegappan Lakshmanan, closes vim/vim#3717) https://github.com/vim/vim/commit/6436cd83f90a0efc326798792e49e8ff96a43dce
* vim-patch:8.1.0632: using sign group names is inefficientAndrej Zieger2019-05-26
| | | | | | | | Problem: Using sign group names is inefficient. Solution: Store group names in a hash table and use a reference to them. Also remove unnecessary use of ":exe" from the tests. (Yegappan Lakshmanan, closes vim/vim#3715) https://github.com/vim/vim/commit/7a2d9892b7158edf8dc48e9bcaaae70a40787b37
* vim-patch:8.1.0614: placing signs can be complicatedAndrej Zieger2019-05-26
| | | | | | | | Problem: Placing signs can be complicated. Solution: Add functions for defining and placing signs. Introduce a group name to avoid different plugins using the same signs. (Yegappan Lakshmanan, closes vim/vim#3652) https://github.com/vim/vim/commit/162b71479bd4dcdb3a2ef9198a1444f6f99e6843
* vim-patch:8.0.1496: VIM_CLEAR()Justin M. Keyes2019-05-25
| | | | | | | | Problem: Clearing a pointer takes two lines. Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi, closes #2629) vim-patch:8.0.1481
* vim-patch:8.0.1220: skipping empty statusline groups is not correctJan Edmund Lazo2019-05-24
| | | | | | Problem: Skipping empty statusline groups is not correct. Solution: Also set group_end_userhl. (itchyny) https://github.com/vim/vim/commit/235dddf1f4afe3a40047dbf2aca1bd177b7be18b
* vim-patch:8.0.1208: 'statusline' drops empty group with highlight changeJan Edmund Lazo2019-05-24
| | | | | | | Problem: 'statusline' drops empty group with highlight change. Solution: Do not drop an empty group if it changes highlighting. (Marius Gedminas, closes vim/vim#2228) https://github.com/vim/vim/commit/6b89dbb55f84c485310c8c9e094dbafe3ecbace6
* Merge #10049 'vim-patch:8.1.0293'Justin M. Keyes2019-05-22
|
* vim-patch:8.1.1046: the "secure" variable is used inconsistentlyJan Edmund Lazo2019-05-05
| | | | | | Problem: the "secure" variable is used inconsistently. (Justin M. Keyes) Solution: Set it to one instead of incrementing. https://github.com/vim/vim/commit/82b033eff82d3ed0da77fd5f5a1c023766acabba
* vim-patch:8.1.0613: when executing an insecure function the secure flag is stuckJan Edmund Lazo2019-05-05
| | | | | | | Problem: When executing an insecure function the secure flag is stuck. (Gabriel Barta) Solution: Restore "secure" instead of decrementing it. (closes vim/vim#3705) https://github.com/vim/vim/commit/48f377a476e4a3312aa0e3535aba170484b59483
* vim-patch:8.0.0768: terminal window status shows "[Scratch]"Jan Edmund Lazo2019-04-23
| | | | | | | | Problem: Terminal window status shows "[Scratch]". Solution: Show "[Terminal]" when no title was set. (Yasuhiro Matsumoto) Store the terminal title that vterm sends and use it. Update the special buffer name. (closes vim/vim#1869) https://github.com/vim/vim/commit/2155441460a6dc0a72125f7860507693112a1460
* vim-patch:8.0.0776: function prototypes missing without the quickfix featureJan Edmund Lazo2019-04-14
| | | | | | | Problem: Function prototypes missing without the quickfix feature. (Tony Mechelynck) Solution: Move non-quickfix functions to buffer.c. https://github.com/vim/vim/commit/f0a521f4f76904edb74e182c12732189b347ff68
* options: properly reset directories on 'autochdir' (#9894)Marco Hinz2019-04-13
| | | Fixes https://github.com/neovim/neovim/issues/9892
* PVS/V595: pointer utilized before checking NULLJustin M. Keyes2019-04-12
|
* vim-patch:8.1.1134: buffer for quickfix window is reused for another fileMarco Hinz2019-04-08
| | | | | | | Problem: Buffer for quickfix window is reused for another file. Solution: Don't reuse the quickfx buffer. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/39803d82dbb215d2eea9fcd6cf2961b71515a438
* vim-patch:8.0.1763: :argedit does not reuse an empty unnamed bufferMarco Hinz2019-04-08
| | | | | | | Problem: :argedit does not reuse an empty unnamed buffer. Solution: Add the BLN_CURBUF flag and fix all the side effects. (Christian Brabandt) https://github.com/vim/vim/commit/46a53dfc29689c6a0d80e3820e8b0a48dba6b6ec
* vim-patch:8.0.0728: the terminal structure is never freedJan Edmund Lazo2019-04-06
| | | | | | Problem: The terminal structure is never freed. Solution: Free the structure and unreference what it contains. https://github.com/vim/vim/commit/96ca27a0ee8ae738cab9fb386984c75c6821e31a
* lintAbdelhakeem2019-03-29
|
* vim-patch:8.1.0539: cannot build without the sandboxAbdelhakeem2019-03-28
| | | | | | | | Problem: Cannot build without the sandbox. Solution: Set the secure option instead of using the sandbox. Also restrict the characters from 'spelllang' that are used for LANG.vim. (suggested by Yasuhiro Matsumoto) https://github.com/vim/vim/commit/82e8c92ebef5afcac0c0fdb706ff163f9b3366f7
* signs: support multiple columns #9295Dan Aloni2019-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | closes #990 closes #9295 - Support for multiple auto-adjusted sign columns. With this change, having more than one sign on a line, and with the 'auto' setting on 'signcolumn', extra columns will shown automatically to accomodate all the existing signs. For example, suppose we have this view: 5147 } 5148 5149 return sign->typenr; 5150 } 5151 } 5152 return 0; 5153 } 5154 We have GitGutter installed, so it tells us about modified lines that are not commmited. So let's change line 5152: 5147 } 5148 5149 return sign->typenr; 5150 } 5151 } ~ 5152 return 0; 5153 } 5154 Now we add a mark over line 5152 using 'ma' in normal mode: 5147 } 5148 5149 return sign->typenr; 5150 } 5151 } a ~ 5152 return 0; 5153 } 5154 Previously, Vim/Nvim would have picked only one of the signs, because there was no support for having multiple signs in a line. - Remove signs from deleted lines. Suppose we have highlights on a group of lines and we delete them: + 6 use std::ops::Deref; --+ 7 use std::borrow::Cow; --+ 8 use std::io::{Cursor}; 9 use proc_macro2::TokenStream; 10 use syn::export::ToTokens; --+ 11 use std::io::Write; >> 12 use std::ops::Deref; Without this change, these signs will momentarily accumulate in the sign column until the plugins wake up to refresh them. + --+ --+ --+ >> 6 Discussion: It may be better to extend the API a bit and allow this to happen for only certain types of signs. For example, VIM marks and vim-gitgutter removal signs may want to be presreved, unlike line additions and linter highlights. - 'signcolumn': support 'auto:NUM' and 'yes:NUM' settings - sort signs according to id, from lowest to highest. If you have git-gutter, vim-signature, and ALE, it would appear in this order: git-gutter - vim-signature - ALE. - recalculate size before screen update - If no space for all signs, prefer the higher ids (while keeping the rendering order from low to high). - Prevent duplicate signs. Duplicate signs were invisible to the user, before using our extended non-standard signcolumn settings. - multi signcols: fix bug related to wrapped lines. In wrapped lines, the wrapped parts of a line did not include the extra columns if they existed. The result was a misdrawing of the wrapped parts. Fix the issue by: 1. initializing the signcol counter to 0 when we are on a wrap boundary 2. allowing for the draw of spaces in that case.
* vim-patch:8.1.0538: evaluating a modeline might invoke using a shell commandJan Edmund Lazo2019-03-23
| | | | | | | Problem: Evaluating a modeline might invoke using a shell command. (Paul Huber) Solution: Set the sandbox flag when setting options from a modeline. https://github.com/vim/vim/commit/5958f95a40a4a44bd9e7f3b7ec6554a6ef3e42ca
* vim-patch:8.1.0384: sign ordering #9758Jan Edmund Lazo2019-03-19
| | | | | | Problem: Sign ordering depends on +netbeans feature. Solution: Also order signs without +netbeans. (Christian Brabandt, closes vim/vim#3224) https://github.com/vim/vim/commit/8aeb504fc68e3fea9da5567d2d9a31a132fbf90f
* vim-patch:8.1.0826: too many #ifdefsJan Edmund Lazo2019-03-08
| | | | | | Problem: Too many #ifdefs. Solution: Graduate FEAT_VIRTUALEDIT. Adds about 10Kbyte to the code. https://github.com/vim/vim/commit/29ddebef4038d2d2b3bc9d8d3b0109f4046d6fbf
* floats: implement floating windowsBjörn Linse2019-03-02
| | | | Co-Author: Dongdong Zhou <dzhou121@gmail.com>
* API/buffer-updates: always detach on buf-reload #9643KillTheMule2019-03-01
| | | | | | Independently of the 'undoreload' option and the length of the file. closes #9642 closes #9643