| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
| |
- TUI: _never_ rely on BCE for implicit clearing, only explicit commands.
- TUI: use unibi_erase_chars when possible.
- TUI: use end-exclusive ranges for invalid and cleared areas
- screen: scrolling leaves scrolled in aree undefined. This is a
conservative change, a client assuming the old semantics will still
behave correctly.
- screen: factor out vsep handling from line drawing. This is needed
anyway for the multigrid refactor.
- screen: simplifications of win_do_lines
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid clearing the screen in most situations. NOT_VALID should be
equivalent to CLEAR unless some external force messed up the terminal,
for these situations <c-l> and :mode will still clear the screen.
Also eliminate some obsolete code in screen.c, that dealt with that in
vim drawing window 1 can mess up window 2, but this never happens in
nvim.
But what about slow terminals? There is two common meanings in which
a terminal is said to be "slow":
Most commonly (and in the sense of vim:s nottyfast) it means low
bandwidth for sending bytes from nvim to the terminal. If the screen is
very similar before and after the update_screen(CLEAR) this change
should reduce bandwidth. If the screen is quite different, but there is
no new regions of contiguous whitespace, clearing doesn't reduce
bandwidth significantly. If the new screen contains a lot of whitespace,
it will depend of if vsplits are used or not: as long as there is no
vsplits, ce is used to cheaply clear the rest of the line, so
full-screen clear is not needed to reduce bandwith. However a left
vsplit currently needs to be padded with whitespace all the way to the
separator. It is possible ec (clear N chars) can be used to reduce
bandwidth here if this is a problem. (All of this assumes that one
doesn't set Normal guibg=... on a non-BCE terminal, if you do you are
doomed regardless of this change).
Slow can also mean that drawing pixels on the screen is slow. E-ink
screens is a recent example. Avoiding clearing and redrawing the
unchanged part of the screen will always improve performance in these
cases.
|
| |
|
|
|
|
| |
Problem: Cursorline not removed when using 'cursorbind'. (Justin Keyes)
Solution: Store the last cursor line per window. (closes vim/vim#3488)
https://github.com/vim/vim/commit/4a5abbd6138240d109278fe1f0b45489d22f712d
|
| |
|
|
|
|
|
| |
Problem: Cursorline highlight not removed in some situation. (Vitaly
Yashin)
Solution: Reset last_cursorline when resetting 'cursorline'. (Christian
Brabandt, closes vim/vim#3481)
https://github.com/vim/vim/commit/8c63e0ec314ba07d54b881dc629fe19e6eda1fb8
|
| |
|
|
|
|
| |
Problem: Moving the cursor is slow when 'relativenumber' is set.
Solution: Only redraw the number column, not all lines.
https://github.com/vim/vim/commit/bd9a53c06c8869ad811cb3dd01a309c9be7d7a63
|
| |
|
|
|
|
| |
Problem: Screen updating still slow when 'cursorline' is set.
Solution: Fix setting last_cursorline.
https://github.com/vim/vim/commit/1b7fefcbce5dd2fd337e217d4857b941da3f8bed
|
| |
|
|
|
| |
Problem: Screen updating slow when 'cursorline' is set.
Solution: Only redraw the old and new cursor line, not all lines.
https://github.com/vim/vim/commit/90a997987dbbe43af3c15118a35f658f0f037d1d
|
| |
|
|
| |
Move vim.h in move.h to implicitly include buffer_defs.h and pos.h.
|
| |
|
|
| |
has_mbyte is always true in nvim.
|
| |
|
|
|
|
|
| |
Problem: After paging up and down fold line is wrong.
Solution: Correct the computation of w_topline and w_botline. (Hirohito
Higashi)
https://github.com/vim/vim/commit/907dad72ef9d29422352fb74ba156e7085a3fc71
|
| |
|
|
|
|
| |
Problem: ml_get errors in silent Ex mode. (Dominique Pelle)
Solution: Clear valid flags when setting the cursor. Set the topline when
not in full screen mode.
https://github.com/vim/vim/commit/d5d37537d1fa46fd468bd378af2006dd09840f38
|
| |
|
|
|
|
|
| |
This does not change the behavior but centralizes column size for future use
(like dynamic signcolumn width depending on the maximum number of signs on a line).
The returned value is limited by the size of the `extra` tab in win_line
(currently allows for 18 ASCII characters).
|
| |
|
|
|
|
|
| |
Problem: Some macros are in lower case, which can be confusing.
Solution: Make a few lower case macros upper case.
https://github.com/vim/vim/commit/b5aedf3e228d35821591da9ae8501b61cf2e264c
ref #6297
|
| |\ |
|
| |/
|
|
| |
n > 0 verified by while condition, (--n < 0) always false
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vim-patch:8.0.0181
Problem: When 'cursorbind' and 'cursorcolumn' are both on, the column
highlignt in non-current windows is wrong.
Solution: Add validate_cursor(). (Masanori Misono, closes vim/vim#1372)
https://github.com/vim/vim/commit/519d7785f4437762c07b2e04217f83a069a8c663
vim-patch:8.0.0182
Problem: When 'cursorbind' and 'cursorline' are set, but 'cursorcolumn' is
not, then the cursor line highlighting is not updated. (Hirohito
Higashi)
Solution: Call redraw_later() with NOT_VALID.
https://github.com/vim/vim/commit/e47683a0913f102b6ae08c8848d5aa675d99b188
vim-patch:8.0.0188
Problem: Using NOT_VALID for redraw_later() to update the cursor
line/column highlighting is not efficient.
Solution: Call validate_cursor() when 'cul' or 'cuc' is set.
https://github.com/vim/vim/commit/9506cad7a1a6e52a613f356de969cbd980815777
|
| |
|
|
|
|
|
|
| |
Problem: In diff mode the cursor may end up below the last line, resulting
in an ml_get error.
Solution: Check the line to be valid.
https://github.com/vim/vim/commit/025e3e0bafbc85cc4e365145af711edf99d0a90d
|
| |
|
|
|
|
|
| |
Problem: Compiler warning for self-comparison.
Solution: Define ONE_WINDOW and add vim/vim#ifdef.
https://github.com/vim/vim/commit/a1f4cb93ba50ea9e40cd4b1f5592b8a6d1398660
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Problem: Access memory beyond the end of the line. (Dominique Pelle)
Solution: Adjust the cursor column.
https://github.com/vim/vim/commit/bc54f3f3fed4dc3556df8c46cee6739d211b0eb2
|
| |
|
|
|
|
|
| |
Problem: Looping over windows, buffers and tab pages is inconsistant.
Solution: Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)
https://github.com/vim/vim/commit/2932359000b2f918d5fade79ea4d124d5943cd07
|
| | |
|
| |
|
|
|
|
|
| |
Problem: The sign column disappears when the last sign is deleted.
Solution: Add the 'signcolumn' option. (Christian Brabandt)
https://github.com/vim/vim/commit/95ec9d6a6ab3117d60ff638670a803d43974ba51
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Originally there were 128 new errors, so I thought this is a good idea to fix
all of them. Of course, this commit also fixes many suppressed errors.
|
| |
|
|
|
|
|
| |
Problem: "zt" still doesn't work well with filler lines. (Gary Johnson)
Solution: Check for filler lines above the cursor. (Christian Brabandt)
https://github.com/vim/vim/commit/a09a2c5857ab854f0870573b5160da1964c905a2
|
| |
|
|
|
|
|
| |
Problem: "zt" in diff mode does not always work properly. (Gary Johnson)
Solution: Don't count filler lines twice. (Christian Brabandt)
https://github.com/vim/vim/commit/cf619daa8e0ef9a335f27f65eb74e422a17d4f92
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regarding the individual items in the header:
`Vim - Vi improved by Bram Moolenar`
Bram Moolenar is already mentioned throughout the documentation, as
well as the intro screen.
`:help uganda`
It's already shown to all users who don't use `shortmess+=I` upon
starting nvim, and is already placed prominently in help.txt, i.e.,
`:help` run with no arguments.
`:help credits`
Already mentioned near the top of help.txt.
`README.md`
Already mentioned in develop.txt.
|
| |
|
|
|
| |
The former no longer exists in this repo; see the top of
src/nvim/README.md.
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
|
|
| |
Problem: curs_rows() function is always called with the second argument
false.
Solution: Remove the argument. (Christian Brabandt)
validate_botline_win() can then also be removed.
https://github.com/vim/vim/releases/tag/v7-4-550
|
| | |
|
| |
|
|
|
|
|
|
|
| |
If you Google for this phrase found in the Vim documentation you'll find
almost exclusively hits from the Vim documentation. I think changing
"halfway a line" to "halfway through a line" makes more sense.
There seems to be an pervasive odd use of the word 'halfway' in the
original docs which I'm updating everywhere.
|
| |
|
|
|
|
|
| |
Problem: Issue 252: Cursor moves in a zero-height window.
Solution: Check for zero height. (idea by Christian Brabandt)
https://code.google.com/p/vim/source/detail?r=v7-4-458
|
| | |
|
| |
|
|
|
| |
Previously, the cursor could be left outside the visible range if window
is not the current window
|
| |
|
|
|
|
|
| |
Done by manual inspection of the output of this script:
grep -r -l -w "bool\|true\|false" * | grep 'c$\|h$' > has_bool
grep -r -l "stdbool.h" * | grep 'c$\|h$' > has_include
grep -F -x -v -f has_include has_bool
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
move W_ENDCOL to screen.c
remove the rest of the W_* macros
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The 'stripdecls.py' script replaces declarations in all headers by includes to
generated headers.
`ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI
This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.
Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
|
| |
|
|
|
| |
s/ml_get_curline/get_cursor_line_ptr
s/ml_get_cursor/get_cursor_pos_ptr
|