Problem: Using C indenting for Javascript does not work well for a {} block
inside parenthesis.
Solution: When looking for a matching paren ignore one that is before the
start of a {} block.
Problem: Cannot wrap lines taking indent into account.
Solution: Add the 'breakindent' option. (many authors, final improvements by
Christian Brabandt)
Problem: Using a regexp pattern to highlight a specific position can be
slow.
Solution: Add matchaddpos() to highlight specific positions efficiently.
(Alexey Radkov)
Problem: Searching for "a" does not match accented "a" with new regexp
engine, does match with old engine. (David Bürgin)
"ca" does not match "ca" with accented "a" with either engine.
Solution: Change the old engine, check for following composing character
also for single-byte patterns.
Problem: A non-greedy match followed by a branch is too greedy. (Ingo
Karkat)
Solution: Add NFA_MATCH when it is already in the state list if the position
differs.
Problem: Pattern with repeated backreference does not match with new regexp
engine. (Urtica Dioica)
Solution: Also check the end of a submatch when deciding to put a state in
the state list.
Problem: globpath() returns a string, making it difficult to get a list of
matches. (Greg Novack)
Solution: Add an optional argument like with glob(). (Adnan Zafar)
Problem: CTRL-U in Insert mode does not work after using a cursor key.
(Pine Wu)
Solution: Use the original insert start position. (Christian Brabandt)
Problem: Can't define a function starting with "g:". Can't assign a
funcref to a buffer-local variable.
Solution: Skip "g:" at the start of a function name. Don't check for colons
when assigning to a variable.
Problem: When updating the window involves a regexp pattern, an interactive
substitute to replace a "\n" with a line break fails. (Ingo
Karkat)
Solution: Set reg_line_lbr in vim_regsub() and vim_regsub_multi().
Problem: It is possible to define a function with a colon in the name. It
is possible to define a function with a lower case character if a
"#" appears after the name.
Solution: Disallow using a colon other than with "s:". Ignore "#" after the
name.
Problem: getreg() does not distinguish between a NL used for a line break
and a NL used for a NUL character.
Solution: Add another argument to return a list. (ZyX)
Problem: The string returned by submatch() does not distinguish between a
NL from a line break and a NL that stands for a NUL character.
Solution: Add a second argument to return a list. (ZyX)
Problem: An error in ":options" is not caught by the tests.
Solution: Add a test for ":options". Set $VIMRUNTIME for the tests so that
it uses the current runtime files instead of the installed ones.
Problem: Using ":let" for listing variables and the second one is a curly
braces expression may fail.
Solution: Check for an "=" in a better way. (ZyX)
Problem: match() does not work properly with a {count} argument.
Solution: Compute the length once and update it. Quit the loop when at the
end. (Hirohito Higashi)
Problem: Dictionary.update() thows an error when used without arguments.
Python programmers don't expect that.
Solution: Make Dictionary.update() without arguments do nothing. (ZyX)