| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
| |
Problem: Expanding <sfile> works differently the second time.
Solution: Keep the expanded name when redefining a function. (closes vim/vim#5425)
https://github.com/vim/vim/commit/b9adef79eca6f95bc7376ff3a6a383e436c5d6ea
|
|
|
|
| |
Co-Authored-By: VVKot <volodymyr.kot.ua@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
https://github.com/vim/vim/commit/1a47ae32cdc19b0fd5a82e19fe5fddf45db1a506
Omit test_debugger.vim: superseded by later patches.
Omit check_map_keycodes(): N/A.
Omit kword_test.c: N/A (converted to a unit test).
|
|
|
|
|
|
| |
Problem: This doesn't give the right result: eval(string(v:true)). (Nikolay
Pavlov)
Solution: Make the string "v:true" instead of "true".
https://github.com/vim/vim/commit/f48aa160fdd7b8caa7678e1a2139244dd2bdc547
|
|
|
|
| |
Mostly avoids including eval.h, ex_cmds2.h and ex_docmd.h in other
headers.
|
|
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
|
|
|
| |
This avoids including ex_eval.h in any other header, thus preventing
future circular includes.
|
|
|
|
|
|
|
| |
Problem: Profiling code is spread out.
Solution: Move more profiling code to profiler.c. (Yegappan Lakshmanan,
closes vim/vim#4668)
https://github.com/vim/vim/commit/660a10ad41c14363326f83451c3c425201923119
|
|
|
|
|
|
|
|
|
| |
Problem: Profiling functionality is spread out.
Solution: Put profiling functionality in profiling.c. (Yegappan Lakshmanan,
closes vim/vim#4666)
https://github.com/vim/vim/commit/fa55cfc69d2b14761e2a8bd85bc1e0d82df770aa
Move proftime_T to types.h for now to avoid recursive #include.
|
|
|
|
|
|
|
| |
vim-patch:8.2.0559: clearing a struct is verbose
Problem: Clearing a struct is verbose.
Solution: Define and use CLEAR_FIELD() and CLEAR_POINTER().
https://github.com/vim/vim/commit/a80faa8930ed5a554beeb2727762538873135e83
|
|
|
|
|
|
| |
Problem: Command line history code is spread out.
Solution: Put the code in a new file. (Yegappan Lakshmanan, closes vim/vim#4779)
Also graduate the +cmdline_hist feature.
https://github.com/vim/vim/commit/d7663c22c6c1ff0f86b81371586fbc851d3a3e9e
|
|
|
|
|
| |
This just avoids including mbyte.h in eval/typval.h, so that mbyte.h can
include eval/typval.h in Vim patch 8.2.1535.
|
|
|
|
|
|
|
|
| |
val" (#19670)
Problem: No error if an option is given an invalid value with
":let &opt = val".
Solution: Give the error. (closes vim/vim#9864)
https://github.com/vim/vim/commit/8ccbbeb620dcc73154de29c51100fe815cefe109
|
|
|
|
|
|
| |
Problem: The "trailing characters" error can be hard to understand.
Solution: Add the trailing characters to the message.
https://github.com/vim/vim/commit/2d06bfde29bd3a62fc85823d2aa719ef943bd319
|
|
|
|
|
|
|
|
|
| |
Problem: Buffer menu does not handle special buffers properly.
Solution: Keep a dictionary with buffer names to reliably keep track of
entries.
Also trigger BufFilePre and BufFilePost for command-line and
terminal buffers when the name changes.
https://github.com/vim/vim/commit/5e94a29ebbde10dd973d58f1adba9a2fc83877d1
|
|
|
| |
Co-authored-by: ii14 <ii14@users.noreply.github.com>
|
|\
| |
| | |
refactor: replace char_u with char
|
| |
| |
| |
| | |
Work on https://github.com/neovim/neovim/issues/459
|
| | |
|
|/
|
|
|
|
| |
Problem: "nocombine" is missing from synIDattr().
Solution: Add "nocombine". (Munif Tanjim, closes vim/vim#10816)
https://github.com/vim/vim/commit/de78632c41d870d5254e9ccd285f53674b955f4e
|
|
|
|
| |
The last commit didn't actually disable V1028 because of a typo.
Fix the typo so it is actually disabled.
|
|
|
| |
Work on https://github.com/neovim/neovim/issues/567
|
| |
|
|
|
|
|
| |
Problem: No error when assigning bool to a string option with setwinvar().
Solution: Give an error (closes vim/vim#10766)
https://github.com/vim/vim/commit/28f84e17b068daca2635692d279930dcb7a150d0
|
|
|
|
|
|
|
|
| |
Problem: ModeChanged event not triggered when leaving the cmdline window.
Solution: Call may_trigger_modechanged(). (closes vim/vim#10791)
https://github.com/vim/vim/commit/c9e8fd6fc7d2027d0645b376d95a6ed51098036c
Code is already present in Nvim. Add some other related missing changes.
|
|
|
|
|
|
| |
Problem: Switching window uneccarily when getting buffer options.
Solution: Do not switch window when getting buffer options. (closes vim/vim#10767)
https://github.com/vim/vim/commit/cd6ad6439da2ee2d1a8a6934c9d69e9c2664ba55
|
|
|
|
|
|
|
|
|
| |
Problem: Duplicate code in "get" functions.
Solution: Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar()
and getbufvar(). (closes vim/vim#10335)
https://github.com/vim/vim/commit/47d4e317f85e4aeb3799d962f173bd0f1e7bc71c
f_setbufvar() can use tv_get_buf_from_arg() as it sets emsg_off.
|
|
|
|
|
|
|
|
|
|
| |
Problem: Subtracting from number option fails when result is zero. (Ingo
Karkat)
Solution: Reset the string value when using the numeric value.
(closes vim/vim#8351)
https://github.com/vim/vim/commit/a42e6e0082a6d564dbfa55317d4a698ac12ae898
Cherry-pick Test_compound_assignment_operators() changes from patch 8.2.1593
|
|
|
|
|
|
| |
Problem: Vim9: cannot set an option to a false.
Solution: For VAR_BOOL use string "0". (closes vim/vim#7603)
https://github.com/vim/vim/commit/b0d8182fa39f2c9403f5f9a0663589fcab43a6c8
|
|
|
|
|
|
| |
Problem: Vim9: cannot set an option to a boolean value.
Solution: Check for VAR_BOOL. (closes vim/vim#7603)
https://github.com/vim/vim/commit/31a201a04aa95708af5d62070d2d397a201cc1a5
|
|
|
|
|
|
|
| |
Problem: Vim9: bool option type is number.
Solution: Have get_option_value() return a different value for bool and
number options. (closes vim/vim#7583)
https://github.com/vim/vim/commit/dd1f426bd617ac6a775f2e7795ff0b159e3fa315
|
|
|
|
|
|
| |
Problem: Vim9: cannot assign string to string option.
Solution: Change checks for option value. (closes vim/vim#6720)
https://github.com/vim/vim/commit/0aae4809fd52b445531766411a9c963dc6274a04
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: The changelist index is not remembered per buffer.
Solution: Keep the changelist index per window and buffer. (closes vim/vim#10135,
closes vim/vim#2173)
https://github.com/vim/vim/commit/db0ea7f2b00c84d84f188c9e9953c4f1887528e7
Cherry-pick FOR_ALL_BUF_WININFO from patch 8.2.0500.
Cherry-pick test_changelist.vim change from patch 8.2.3795.
|
|
|
|
|
|
|
|
| |
Problem: Vim9: error when setting an option with setbufvar().
Solution: Do not get a number from a string value. (closes vim/vim#6740)
https://github.com/vim/vim/commit/191929b182ba38abe6bc431fb9d8d9507f408903
Vim9 is N/A, so this just refactors the code without changing behavior.
|
|
|
|
| |
Vim moved them there in patch 8.1.1943.
|
|
|
|
|
| |
This type itself is not eval-specific. Moving it to types.h can avoid
including eval/funcs.h in many headers, and types.h is already included
by many headers.
|
|
|
|
|
|
|
|
| |
Problem: The eval.c file is too big.
Solution: Move code related to variables to evalvars.c. (Yegappan
Lakshmanan, closes vim/vim#4868)
https://github.com/vim/vim/commit/0522ba0359c96a8c2a4fc8fca0d3b58e49dda759
Name the new file eval/vars.c instead.
|
|
|
|
| |
https://github.com/vim/vim/commit/9bca58f36d1f6a2ac0e4022caa5f355d39357a05
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: File for Insert mode is much too big.
Solution: Split off the code for Insert completion. (Yegappan Lakshmanan,
closes vim/vim#4044)
https://github.com/vim/vim/commit/7591bb39d58ece38a5fef984a08ea9012616c1f9
Cherry-pick ins_compl_len() -> get_compl_len() from patch 8.2.4001.
Revert a71c5e9eb98fbb2ca88510269935cdcda37369fc: ctrl_x_mode is no
longer a global variable, so l_ctrl_x_mode is no longer needed.
|
|
|
|
|
|
| |
exepath and stdpath should respect shellslash and return path with
proper file separator.
Closes #13787
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Allowing 'completefunc' to switch windows causes trouble.
Solution: use "textwinlock" instead of "textlock".
https://github.com/vim/vim/commit/28976e2accf11591c60e8a658a9e03544f0408b2
Assert E565 instead of E578.
vim-patch:8.2.0670: cannot change window when evaluating 'completefunc'
Problem: Cannot change window when evaluating 'completefunc'.
Solution: Make a difference between not changing text or buffers and also
not changing window.
https://github.com/vim/vim/commit/6adb9ea0a6ca01414f4b591f379b0f829a8273c0
vim-patch:8.2.5029: "textlock" is always zero
Problem: "textlock" is always zero.
Solution: Remove "textlock" and rename "textwinlock" to "textlock".
(closes vim/vim#10489)
https://github.com/vim/vim/commit/cfe456543e840d133399551f8626d985e1fb1958
|
|
|
|
|
|
| |
Problem: Functionality of bt_nofile() is confusing.
Solution: Split into bt_nofile() and bt_nofilename().
https://github.com/vim/vim/commit/26910de8b0da6abab87bd5a397330f9cbe483309
|
|
|
|
|
| |
Problem: Saving and restoring called_emsg is clumsy.
Solution: Count the number of error messages.
https://github.com/vim/vim/commit/53989554a44caca0964376d60297f08ec257c53c
|
|
|
|
|
|
| |
Problem: ":buf \{a}" fails while ":edit \{a}" works.
Solution: Unescape "\{". (closes vim/vim#8917)
https://github.com/vim/vim/commit/21c1a0c2f10575dbb72fa873d33f0c1f6e170aa7
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#19244)
Problem: Get ml_get error when deleting a line in 'completefunc'. (Yegappan
Lakshmanan)
Solution: Lock the text while evaluating 'completefunc'.
https://github.com/vim/vim/commit/ff06f283e3e4b3ec43012dd3b83f8454c98f6639
Fix a mistake in the porting of patch 8.1.0098.
Cherry-pick Test_run_excmd_with_text_locked() from patch 8.2.0270.
Cherry-pick test_gf.vim changes from patch 8.2.0369.
Cherry-pick message change from later patches.
|
|
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
** Refactor
Previously most functions used to "get" a mark returned a position,
changed the line number and sometimes changed even the current buffer.
Now functions return a {x}fmark_T making calling context aware whether
the mark is in another buffer without arcane casting. A new function is
provided for switching to the mark buffer and returning a flag style
Enum to convey what happen in the movement. If the cursor changed, line,
columns, if it changed buffer, etc.
The function to get named mark was split into multiple functions.
- mark_get() -> fmark_T
- mark_get_global() -> xfmark_T
- mark_get_local() -> fmark_T
- mark_get_motion() -> fmark_T
- mark_get_visual() -> fmark_T
Functions that manage the changelist and jumplist were also modified to
return mark types.
- get_jumplist -> fmark_T
- get_changelist -> fmark_T
The refactor is also seen mainly on normal.c, where all the mark
movement has been siphoned through one function nv_gomark, while the
other functions handle getting the mark and setting their movement
flags. To handle whether context marks should be left, etc.
** Mark View
While doing the refactor the concept of a mark view was also
implemented:
The view of a mark currently implemented as the number of lines between
the mark position on creation and the window topline. This allows for
moving not only back to the position of a mark but having the window
look similar to when the mark was defined. This is done by carrying and
extra element in the fmark_T struct, which can be extended later to also
restore horizontal shift.
*** User space features
1. There's a new option, jumpoptions+=view enables the mark view restoring
automatically when using the jumplist, changelist, alternate-file and
mark motions. <C-O> <C-I> g; g, <C-^> '[mark] `[mark]
** Limitations
- The view information is not saved in shada.
- Calls to get_mark should copy the value in the pointer since we are
using pos_to_mark() to wrap and provide a homogeneous interfaces. This
was also a limitation in the previous state of things.
|
|
|
| |
refactor(uncrustify): change config to better align with neovim style
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
- Since c57f6b28d71d #8519, sockets are created in ~/.local/… but XDG
spec says: "XDG_RUNTIME_DIR: Must be on the local filesystem", which
implies that XDG_STATE_DIR is potentially non-local.
- Not easy to inspect Nvim-created temp files (for debugging etc).
Solution:
- Store sockets in stdpath('run') ($XDG_RUNTIME_DIR).
- Establish "/tmp/nvim.user/" as the tempdir root shared by all Nvims.
- Make ok() actually useful.
- Introduce assert_nolog().
closes #3517
closes #17093
|