Problem: buf_valid() can be slow when there are many buffers.
Solution: Add bufref_valid(), only go through the buffer list
when a buffer was freed.
b25f9a97e9
Problem: When there are many errors adding them to the quickfix list takes
a long time.
Solution: Add BLN_NOOPT. Don't call buf_valid() in buf_copy_options().
Remember the last file name used. When going through the buffer
list start from the end of the list. Only call buf_valid() when
autocommands were executed.
8240433f48
Problem: Compiler warning for char/char_u conversion. (Tony Mechelynck)
Inefficient code.
Solution: Use more lines to fill with spaces. (Nikolai Pavlov) Add type cast.
16ec3c9be3
Problem: When using ":vimgrep" may end up with duplicate buffers.
Solution: When adding an error list entry pass the buffer number if possible.
015102e91e
Problem: 'errorformat' is parsed for every call to ":caddexpr". Can't add
to two location lists asynchronously.
Solution: Keep the previously parsed data when appropriate. (mostly by
Yegappan Lakshmanan)
361c8f0e51
Problem: Updating marks in a quickfix list is very slow when the list is
long.
Solution: Only update marks if the buffer has a quickfix entry.
2f095a4bc4
Problem: Appending to the quickfix list while the quickfix window is open
is very slow.
Solution: Do not delete all the lines, only append the new ones. Avoid
using a window while updating the list. (closesvim/vim#841)
864293abb7
Problem: The code to reallocate the buffer used for quickfix is repeated.
Solution: Move the code to a function. (Yegappan Lakshmanan, closesvim/vim#831)
2b2b8ae5ab
Problem: When adding to the quickfix list the current position is reset.
Solution: Do not reset the position when not needed. (Yegappan Lakshmanan)
c1808d5822
Problem: Using freed memory after setqflist() and ":caddbuffer". (Dominique)
Solution: Set qf_ptr when adding the first item to the quickfix list.
8b20179c65
Problem: Crash when an autocommand changes a quickfix list. (Dominique)
Solution: Check wether an entry is still valid. (Yegappan Lakshmanan,
Hirohito Higashi)
ffec3c5349
- Eliminate/isolate static/global variables
- Remove special-case parameter from buflist_new()
- Remove special-case ECMD_RESERVED_BUFNR
- To determine when u_undo_and_forget() should be done, check
b_changedtick instead of a heuristic.
- use mb_string2cells() instead of strlen() to measure the :sub patterns
- call ml_close() before buf_clear_file(). Avoids leaks caught by ASan.
Original patch by:
Robin Elrharbi-Fleury (Robinhola)
Audrey Rayé (Adrey06)
Philémon Hullot (DesbyP)
Aymeric Collange (aym7)
Clément Guyomard (Clement0)
Originally implemented by
* Clement0
* DesbyP
* aym7
* Adrey06
* Robinhola
in #4811. Major reworkings and bug
fixes by
* bfredl
Most tests suggested by ZyX-l, suggestions for improvements by oni-link.
move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
- Links to Search by default
screen.c: Combine CursorLine with QuickFixLine
- HLF_QFL takes priority over HLF_CUL
docs: Updated to mention QuickFixLine
runtime: Added QuickFixLine to nvimHLGroup
tests: QuickFixLine highlight
Problem: ":cnext" may jump to the wrong column when setting
'virtualedit=all' (cs86661)
Solution: Reset the coladd field. (Hirohito Higashi)
b8c890035e
Problem: Autocommands triggered by quickfix cannot get the current title
value.
Solution: Set w:quickfix_title earlier. (Yannick)
Also move the check for a title into the function.
81278efadf