| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: The screen.c file is much too big.
Solution: Split it in three parts. (Yegappan Lakshmanan, closes vim/vim#4943)
https://github.com/vim/vim/commit/7528d1f6b5422750eb778dfb550cfd0b0e540964
This is an approximation vim-patch 8.1.2057. Applying the patch directly
isn't feasible since our version of screen.c has diverged too much,
however we still introduce drawscreen.c and drawline.c:
- screen.c is now a much smaller file used for low level screen functions
- drawline.c contains everything needed for win_line()
- drawscreen.c contains everything needed for update_screen()
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
| |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
|
| |
Mostly avoids including eval.h, ex_cmds2.h and ex_docmd.h in other
headers.
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/567
|
| |
|
|
|
| |
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: 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.
|
| |
|
|
|
| |
Problem: Saving and restoring called_emsg is clumsy.
Solution: Count the number of error messages.
https://github.com/vim/vim/commit/53989554a44caca0964376d60297f08ec257c53c
|
| |
|
|
|
|
|
|
| |
Problem: Using freed memory when searching for pattern in path.
Solution: Make a copy of the line.
https://github.com/vim/vim/commit/409510c588b1eec1ae33511ae97a21eb8e110895
Cherry-pick Test_def_search() -> Test_macro_search() from patch 8.2.0369
|
| |
|
|
|
|
|
| |
Problem: Now that the +visual feature is always enabled the #ifdefs for it
are not useful.
Solution: Remove the checks for FEAT_VISUAL.
https://github.com/vim/vim/commit/f7ff6e85e8a4e84cff023f5db4b66ef85986605a
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
|
|
|
|
|
| |
'tabLine' (#19147)
Problem: Incsearch highlight broken when calling searchcount() in 'tabLine'
function. (Mirko Palmer)
Solution: Save and restore the incsearch state. (Christian Brabandt,
closes vim/vim#9763, closes vim/vim#9633)
https://github.com/vim/vim/commit/6dd7424c7e6ab81998c29ca3526c41b75cfde5a1
|
| |
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
|
|
| |
Problem: Searching for quotes may go over the end of the line.
Solution: Check for running into the NUL.
https://github.com/vim/vim/commit/2f074f4685897ab7212e25931eeeb0212292829f
|
| |
|
|
|
| |
Problem: "limit" option of matchfuzzy() not always respected.
Solution: Remove "else". (Kazuyuki Miyagi, closes vim/vim#10586)
https://github.com/vim/vim/commit/47f1a55849a73cefe738a246798221e45448546a
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
| |
Problem: Cannot select one character inside ().
Solution: Do not try to extend the area if it is empty. (closes vim/vim#10472,
closes vim/vim#6616)
https://github.com/vim/vim/commit/53737b5eeeab1f95964f78b055d6094fab559533
|
| |
|
|
|
|
| |
Problem: smart/C/lisp indenting is optional, which makes the code more
complex, while it only reduces the executable size a bit.
Solution: Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.
https://github.com/vim/vim/commit/8e145b82464a21ee4fdf7948f04e2a1d505f8bfa
|
| |
|
|
|
|
| |
Also add tests for reverse_text.
Co-authored-by: Kalle Ranki <kalle.ranki@gmail.com>
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
|
|
|
| |
positions (#18525)
Problem: matchfuzzypos() with "matchseq" does not have all positions.
Solution: Also add a position for white space. (closes vim/vim#10404)
https://github.com/vim/vim/commit/9af2bc075169e14fd06ed967d28eac7206d21f36
|
| |
|
|
|
|
|
|
| |
Problem: The mode #defines are not clearly named.
Solution: Prepend MODE_. Renumber them to put the mapped modes first.
https://github.com/vim/vim/commit/249591057b4840785c50e41dd850efb8a8faf435
A hunk from the patch depends on patch 8.2.4861, which hasn't been
ported yet, but that should be easy to notice.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#18493)
Problem: Trailing backslash may cause reading past end of line.
Solution: Check for NUL after backslash.
https://github.com/vim/vim/commit/53a70289c2712808e6d4e88927e03cac01b470dd
N/A patches for version.c:
vim-patch:8.2.4926: #ifdef for crypt feature around too many lines
Problem: #ifdef for crypt feature around too many lines.
Solution: Move code outside of #ifdef. (closes vim/vim#10388)
https://github.com/vim/vim/commit/51f0bc31d3cf512508419064faac0e5b7e52c98b
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
| |
Work on https://github.com/neovim/neovim/issues/459
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add space around arithmetic operators '+' and '-'.
Remove space between back-to-back parentheses, i.e. ')(' vs. ') ('.
Remove space between '((' or '))' of control statements.
Add space between ')' and '{' of control statements.
Remove space between function name and '(' on function declaration.
Collapse empty blocks between '{' and '}'.
Remove newline at the end of the file.
Remove newline between 'enum' and '{'.
Remove newline between '}' and ')' in a function invocation.
Remove newline between '}' and 'while' of 'do' statement.
|
| |
|
|
|
|
|
| |
Problem: Function matchfuzzy() sorts too many items.
Solution: Only put matches in the array. (Yegappan Lakshmanan,
closes vim/vim#10208)
https://github.com/vim/vim/commit/047a7019b293918343998ccbdfabd48c771f5eef
|
| |
|
|
|
|
|
| |
Problem: Using matchfuzzy() on a long list can take a while.
Solution: Add a limit to the number of matches. (Yasuhiro Matsumoto,
closes vim/vim#10189)
https://github.com/vim/vim/commit/9029a6e9931eede1d44f613687a2c01b9fe514ec
|
| |\
| |
| | |
perf: only redraw for CurSearch when it is currently in use
|
| | |
| |
| |
| |
| |
| | |
The check in redraw_for_cursorline() is not needed because VALID_VIRTCOL
is always cleared when the cursor moves to another line, so the check in
redraw_for_cursorcolumn() is enough.
|
| |/
|
| |
Closes https://github.com/neovim/neovim/issues/6297
|
| |
|
|
|
|
| |
Problem: Missing parenthesis may cause unexpected problems.
Solution: Add more parenthesis is macros.
https://github.com/vim/vim/commit/ae6f1d8b14c2f63811ee83ef14e32086fb3e9b83
|
| |
|
| |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| | |
|
| |
|
|
|
| |
Prefer to declare variables with correct type instead of explicit casts
wherever possible.
|
| | |
|
| |
|
|
|
|
| |
Problem: Cannot grep using fuzzy matching.
Solution: Add the "f" flag to :vimgrep. (Yegappan Lakshmanan, closes vim/vim#8152)
https://github.com/vim/vim/commit/bb01a1ef3a093cdb36877ba73474719c531dc8cb
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Fuzzy matching doesn't give access to the scores.
Solution: Return the scores with a third list. (Yegappan Lakshmanan,
closes vim/vim#7596)
https://github.com/vim/vim/commit/9d19e4f4ba55f8bef18d4991abdf740ff6472dba
Remove seemingly useless NULL checks.
assert that removing the li one wasn't dumb.
|
| |
|
|
|
|
|
| |
Problem: Fuzzy matching does not recognize path separators.
Solution: Add a bonus for slash and backslash. (Yegappan Lakshmanan,
closes vim/vim#7225)
https://github.com/vim/vim/commit/dcdd42a8ccb9bafd857735d694b074269f337333
|
| |
|
|
|
|
|
| |
Problem: Fuzzy matching does not support multiple words.
Solution: Add support for matching white space separated words. (Yegappan
Lakshmanan, closes vim/vim#7163)
https://github.com/vim/vim/commit/8ded5b647aa4b3338da721b343e0bce0f86655f6
|
| |
|
|
|
|
|
| |
Problem: Matchfuzzy() does not prefer sequential matches.
Solution: Give sequential matches a higher bonus. (Christian Brabandt,
closes vim/vim#7140)
https://github.com/vim/vim/commit/e9f9f16387554e5b34ba42ce00c42c28dd66af58
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Fuzzy matching only works on strings.
Solution: Support passing a dict. Add matchfuzzypos() to also get the match
positions. (Yegappan Lakshmanan, closes vim/vim#6947)
https://github.com/vim/vim/commit/4f73b8e9cc83f647b34002554a8bdf9abec0a82f
Also remove some N/A and seemingly useless NULL checks -- Nvim allocs can't
return NULL. I'm not sure why the retmatchpos stuff in match_fuzzy checks for
NULL too, given that Vim checks for NULL alloc in do_fuzzymatch; assert that the
li stuff is not NULL as that's the one check I'm ever-so-slightly unsure about.
Adjust tests. Note that the text_cb tests actually throw E6000 in Nvim, but we
also can't assert that error due to v8.2.1183 not being ported yet.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Cannot do fuzzy string matching.
Solution: Add matchfuzzy(). (Yegappan Lakshmanan, closes vim/vim#6932)
https://github.com/vim/vim/commit/635414dd2f3ae7d4d972d79b806348a6516cb91a
Adjust Test_matchfuzzy's 2nd assert to expect the last error thrown, as
v8.2.1183 hasn't been ported yet (to be honest, the error message is kinda weird
if the 2nd argument is not convertible to string). We can still port this fully
as porting v8.2.1183 would require removing this change to pass CI.
|