Age | Commit message (Collapse) | Author |
|
Problem: E95 is possible if a buffer called "[Command Line]" already
exists when opening the cmdwin. This can also happen if the
cmdwin's buffer could not be deleted when closing.
Solution: Un-name the cmdwin buffer, and give it a special name instead,
similar to what's done for quickfix buffers and for unnamed
prompt and scratch buffers. As a result, BufFilePre/Post are
no longer fired when opening the cmdwin. Add a "command" key
to the dictionary returned by getbufinfo() to differentiate
the cmdwin buffer instead. (Sean Dewar)
NOTE: This is technically a breaking change... maybe this needs a different
solution? (Or maybe this issue can be ignored...)
A GitHub search reveals some plugins expect the old behaviour. However, many of
those plugins also do not seem to account for the string being translated, so
they are subtly broken anyway (not withstanding the fact that you can call any
old buffer "[Command Line]" too...)
closes: #12819
Signed-off-by: Sean Dewar <seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
|
|
Problem: Using one window for executing autocommands is insufficient.
Solution: Use up to five windows for executing autocommands.
|
|
Problem: Using deletebufline() may jump to another window.
Solution: Do not use a window where the buffer was only in the past.
(closes #11594)
|
|
Problem: getbufline() is inefficient for getting a single line.
Solution: Add getbufoneline().
|
|
Problem: deletebufline() may move marks in the wrong window.
Solution: Find a window for the buffer being changed. (closes #11583)
|
|
Problem: Setting lines in another buffer may not work well.
Solution: Make sure the buffer being changed has a window. (issue #11558)
|
|
Problem: deletebufline() does not always return 1 on failure.
Solution: Refactor the code to make it work more predictable. (closes #11511)
|
|
Problem: append() reports failure when not appending anything.
Solution: Only report failure when appending something. (closes #11498)
|
|
Problem: Test for job writing to buffer fails.
Solution: Correct w_topline when deleting a buffer line.
|
|
Problem: ml_get error when appending lines in popup window.
Solution: Only update w_topline when w_buffer matches curbuf.
(closes #11074)
|
|
Problem: Too many #ifdefs.
Solution: Make some functions always available.
|
|
Problem: Too many type casts for dict_get functions.
Solution: Change the key argument from "char_u *" to "char *".
|
|
Problem: Some callers of rettv_list_alloc() check for not OK. (Christ van
Willegen)
Solution: Use "==" instead of "!=" when checking the return value.
|
|
Problem: deletebufline() may change Visual selection.
Solution: Disable Visual mode when using another buffer. (closes #10469)
|
|
Problem: setbufline() may change Visual selection. (Qiming Zhao)
Solution: Disable Visual mode when using another buffer. (closes #10466)
|
|
Problem: Various code not used when features are disabled.
Solution: Add #ifdefs. (Dominique Pellé, closes #9491)
|
|
Problem: ml_get error when win_execute redraws with Visual selection.
Solution: Disable Visual area temporarily. (closes #9479)
|
|
Problem: Vim9: type checking for list and dict lacks information about
declared type.
Solution: Add dv_decl_type and lv_decl_type. Refactor the type stack to
store two types in each entry.
|
|
Problem: Vim9: wrong argument for append() results in two errors.
Solution: Check did_emsg. Also for setline(). Adjust the help for
appendbufline().
|
|
Problem: No error for passing an invalid line number to append().
Solution: In Vim9 script check for a non-negative number. (closes #9417)
|
|
Problem: Lambda for option that is a function may be garbage collected.
Solution: Set a reference in the funcref. (Yegappan Lakshmanan,
closes #9330)
|
|
Problem: Duplicated code for adding buffer lines.
Solution: Move code to a common function. Also move map functions to map.c.
(Yegappan Lakshmanan, closes #8665)
|
|
Problem: Vim9: runtime and compile time type checks are not the same.
Solution: Add more runtime type checks for builtin functions. (Yegappan
Lakshmanan, closes #8646)
|
|
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks, simplify some. (Yegappan
Lakshmanan, closes #8598)
|
|
Problem: Vim9: argument types are not checked at compile time.
Solution: Add several more type checks, also at runtime. (Yegappan
Lakshmanan, closes #8587)
|
|
Problem: Test failures.
Solution: Check more specific feature. Add missing change.
|
|
Problem: current buffer is wrong after deletebufline() fails to delete a
line in another buffer.
Solution: Restore the current buffer.
|
|
Problem: setline() gives an error for some types.
Solution: Allow any type, convert each item to a string.
|
|
Problem: Vim9: 'cpo' can become empty.
Solution: Use empty_option instead of an empty string. Update quickfix
buffer after restoring 'cpo'. (closes #7608)
|
|
Problem: ml_get error when changing hidden buffer in Python.
Solution: Block updating folds. (closes #7598)
|
|
Problem: Vim9: Getbufline(-1, 1, '$') gives an error.
Solution: Return an empty list. (closes #7180)
|
|
Problem: Vim9: cannot use 'true" with getbufinfo().
Solution: Use dict_get_bool(). (closes #6873)
|
|
Problem: Vim9: bufnr() doesn't take "true" argument.
Solution: use tv_get_bool_chk(). (closes #6863)
|
|
Problem: Vim9: error when using "%" where a buffer is expected.
Solution: Add tv_get_buf_from_arg(). (closes #6814)
|
|
Problem: Vim9: bufname('%') gives an error.
Solution: Only give an error for wrong argument type. (closes #6807)
|
|
Problem: Vim9: error when using bufnr('%').
Solution: Don't give an error for using a string argument. (closes #6723)
|
|
Problem: ml_delete() often called with FALSE argument.
Solution: Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
|
|
Problem: Vim9: performance can be improved.
Solution: Don't call break. Inline check for list materialize. Make an
inline version of ga_grow().
|
|
Problem: Regexp benchmark stest is old style.
Solution: Make it a new style test. Fix using a NULL list. Add more tests.
(Yegappan Lakshmanan, closes #5963)
|
|
Problem: Using the same loop in many places.
Solution: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
|
|
Problem: Vim9: function return type may depend on arguments.
Solution: Instead of a fixed return type use a function to figure out the
return type.
|
|
Problem: Maintaining a Vim9 branch separately is more work.
Solution: Merge the Vim9 script changes.
|
|
Problem: Cannot number of lines of another buffer.
Solution: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
closes #5370)
|
|
Problem: Using old C style comments.
Solution: Use // comments where appropriate.
|
|
Problem: FEAT_TEXT_PROP is a confusing name.
Solution: Use FEAT_PROP_POPUP. (Naruhiko Nishino, closes #5291)
|
|
Problem: The "last used" info of a buffer is under used.
Solution: Add "lastused" to getbufinfo(). List buffers sorted by last-used
field. (Andi Massimino, closes #4722)
|
|
Problem: Some source files are too big.
Solution: Move buffer and window related functions to evalbuffer.c and
evalwindow.c. (Yegappan Lakshmanan, closes #4898)
|