Problem: Cannot use an import in 'indentexpr'.
Solution: Set the script context when evaluating 'indentexpr'
28e60cc088
Co-authored-by: Bram Moolenaar <Bram@vim.org>
drawscreen.c vs screen.c makes absolutely no sense.
The screen exists only to draw upon it, therefore helper functions
are distributed randomly between screen.c and the file that
does the redrawing. In addition screen.c does a lot of drawing on the
screen.
It made more sense for vim/vim as our grid.c is their screen.c
Not sure if we want to dump all the code for option chars into
optionstr.c, so keep these in a optionchar.c for now.
Problem: Comparing line pointer for 'breakindent' is not reliable.
Solution: Make a copy of the line.
c2a79b87fc
Test changes have been squashed into the previous commit.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: 'breakindent' does not indent non-lists with
"breakindentopt=list:-1".
Solution: Adjust indent computation. (Maxim Kim, closesvim/vim#11038)
119167265e
Co-authored-by: Maxim Kim <habamax@gmail.com>
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closesvim/vim#11805)
0233bdfa2b
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
vim-patch:8.2.3259: when 'indentexpr' causes an error did_throw may hang
Problem: When 'indentexpr' causes an error the did_throw flag may remain
set.
Solution: Reset did_throw and show the error. (closesvim/vim#8677)
620c959c6c
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Retab test disabled because it hangs on MS-Windows.
Solution: Also set got_int at the other place a overlong text is detected.
308660bd26
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.
Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
Enable and fix bugprone-misplaced-widening-cast warning.
Fix some modernize-macro-to-enum and readability-else-after-return
warnings, but don't enable them. While the warnings can be useful, they
are in general too noisy to enable.
Problem: Cannot make 'breakindent' use a specific column.
Solution: Add the "column" entry in 'breakindentopt'. (Christian Brabandt,
closesvim/vim#10362, closesvim/vim#10325)
e7d6dbc572
Co-authored-by: Christian Brabandt <cb@256bit.org>
Problem: Debugging NFA regexp my crash, cached indent may be wrong.
Solution: Fix some debug warnings in the NFA regexp code. Make sure log_fd
is set when used. Fix breakindent and indent caching. (Christian
Brabandt, closesvim/vim#9482)
b2d85e3784
Problem: Lisp word only recognized when a space follows.
Solution: Also match a word at the end of a line. Rename the test. Use a
compiled function to avoid backslashes.
d26c5805bc
Keep the old Test_lisp_indent().
This is a refactor extracted from vim-patch 9.0.0067: cannot show virtual text
The logic for inline virtual text is going to be different in nvim than
text property based text in vim, but this refactor is still useful,
as calculation of displayed linesize is going to be stateful in a
similar way.
Problem: Some source files are too big.
Solution: Move text formatting functions to a new file. (Yegappan
Lakshmanan, closesvim/vim#6021)
11abd09521
Cherry-pick set_can_cindent() from patch 8.1.2062.
Cherry-pick global old_indent from patch 8.2.2127.
Problem: The option.c file is still very big.
Solution: Move a few functions to where they fit better. (Yegappan
Lakshmanan, closesvim/vim#4895)
7bae0b1bc8
vim-patch:9.0.0271: using INIT() in non-header files
Problem: Using INIT() in non-header files.
Solution: Remove INIT(). (closesvim/vim#10981)
9b7d2a9596
Problem: Some code in options.c fits better elsewhere.
Solution: Move functions from options.c to other files. (Yegappan
Lakshmanan, closesvim/vim#4889)
e677df8d93
Problem: The mode #defines are not clearly named.
Solution: Prepend MODE_. Renumber them to put the mapped modes first.
249591057b
A hunk from the patch depends on patch 8.2.4861, which hasn't been
ported yet, but that should be easy to notice.