mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
commit
58ba3bcbef
@ -31,6 +31,7 @@ local type_flags={
|
|||||||
local redraw_flags={
|
local redraw_flags={
|
||||||
statuslines='P_RSTAT',
|
statuslines='P_RSTAT',
|
||||||
current_window='P_RWIN',
|
current_window='P_RWIN',
|
||||||
|
current_window_only='P_RWINONLY',
|
||||||
current_buffer='P_RBUF',
|
current_buffer='P_RBUF',
|
||||||
all_windows='P_RALL',
|
all_windows='P_RALL',
|
||||||
everything='P_RCLR',
|
everything='P_RCLR',
|
||||||
|
@ -213,12 +213,12 @@ typedef struct vimoption {
|
|||||||
#define P_VI_DEF 0x400U /* Use Vi default for Vim */
|
#define P_VI_DEF 0x400U /* Use Vi default for Vim */
|
||||||
#define P_VIM 0x800U /* Vim option */
|
#define P_VIM 0x800U /* Vim option */
|
||||||
|
|
||||||
/* when option changed, what to display: */
|
// when option changed, what to display:
|
||||||
#define P_RSTAT 0x1000U /* redraw status lines */
|
#define P_RSTAT 0x1000U ///< redraw status lines
|
||||||
#define P_RWIN 0x2000U /* redraw current window */
|
#define P_RWIN 0x2000U ///< redraw current window and recompute text
|
||||||
#define P_RBUF 0x4000U /* redraw current buffer */
|
#define P_RBUF 0x4000U ///< redraw current buffer and recompute text
|
||||||
#define P_RALL 0x6000U /* redraw all windows */
|
#define P_RALL 0x6000U ///< redraw all windows
|
||||||
#define P_RCLR 0x7000U /* clear and redraw all */
|
#define P_RCLR 0x7000U ///< clear and redraw all
|
||||||
|
|
||||||
#define P_COMMA 0x8000U ///< comma separated list
|
#define P_COMMA 0x8000U ///< comma separated list
|
||||||
#define P_ONECOMMA 0x18000U ///< P_COMMA and cannot have two consecutive
|
#define P_ONECOMMA 0x18000U ///< P_COMMA and cannot have two consecutive
|
||||||
@ -238,6 +238,8 @@ typedef struct vimoption {
|
|||||||
///< when there is a redraw flag
|
///< when there is a redraw flag
|
||||||
#define P_NO_DEF_EXP 0x8000000U ///< Do not expand default value.
|
#define P_NO_DEF_EXP 0x8000000U ///< Do not expand default value.
|
||||||
|
|
||||||
|
#define P_RWINONLY 0x10000000U ///< only redraw current window
|
||||||
|
|
||||||
#define HIGHLIGHT_INIT \
|
#define HIGHLIGHT_INIT \
|
||||||
"8:SpecialKey,~:EndOfBuffer,z:TermCursor,Z:TermCursorNC,@:NonText," \
|
"8:SpecialKey,~:EndOfBuffer,z:TermCursor,Z:TermCursorNC,@:NonText," \
|
||||||
"d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr," \
|
"d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr," \
|
||||||
@ -4357,17 +4359,24 @@ static void check_redraw(uint32_t flags)
|
|||||||
bool doclear = (flags & P_RCLR) == P_RCLR;
|
bool doclear = (flags & P_RCLR) == P_RCLR;
|
||||||
bool all = ((flags & P_RALL) == P_RALL || doclear);
|
bool all = ((flags & P_RALL) == P_RALL || doclear);
|
||||||
|
|
||||||
if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
|
if ((flags & P_RSTAT) || all) { // mark all status lines dirty
|
||||||
status_redraw_all();
|
status_redraw_all();
|
||||||
|
}
|
||||||
|
|
||||||
if ((flags & P_RBUF) || (flags & P_RWIN) || all)
|
if ((flags & P_RBUF) || (flags & P_RWIN) || all) {
|
||||||
changed_window_setting();
|
changed_window_setting();
|
||||||
if (flags & P_RBUF)
|
}
|
||||||
|
if (flags & P_RBUF) {
|
||||||
redraw_curbuf_later(NOT_VALID);
|
redraw_curbuf_later(NOT_VALID);
|
||||||
if (doclear)
|
}
|
||||||
|
if (flags & P_RWINONLY) {
|
||||||
|
redraw_later(NOT_VALID);
|
||||||
|
}
|
||||||
|
if (doclear) {
|
||||||
redraw_all_later(CLEAR);
|
redraw_all_later(CLEAR);
|
||||||
else if (all)
|
} else if (all) {
|
||||||
redraw_all_later(NOT_VALID);
|
redraw_all_later(NOT_VALID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Find index for named option
|
/// Find index for named option
|
||||||
|
@ -17,8 +17,8 @@
|
|||||||
-- types: bool, number, string
|
-- types: bool, number, string
|
||||||
-- lists: (nil), comma, onecomma, flags, flagscomma
|
-- lists: (nil), comma, onecomma, flags, flagscomma
|
||||||
-- scopes: global, buffer, window
|
-- scopes: global, buffer, window
|
||||||
-- redraw options: statuslines, current_window, current_buffer, all_windows,
|
-- redraw options: statuslines, current_window, curent_window_only,
|
||||||
-- everything, curswant
|
-- current_buffer, all_windows, everything, curswant
|
||||||
-- default: {vi=…[, vim=…]}
|
-- default: {vi=…[, vim=…]}
|
||||||
-- defaults: {condition=#if condition, if_true=default, if_false=default}
|
-- defaults: {condition=#if condition, if_true=default, if_false=default}
|
||||||
-- #if condition:
|
-- #if condition:
|
||||||
@ -539,7 +539,7 @@ return {
|
|||||||
full_name='cursorline', abbreviation='cul',
|
full_name='cursorline', abbreviation='cul',
|
||||||
type='bool', scope={'window'},
|
type='bool', scope={'window'},
|
||||||
vi_def=true,
|
vi_def=true,
|
||||||
redraw={'current_window'},
|
redraw={'current_window_only'},
|
||||||
defaults={if_true={vi=false}}
|
defaults={if_true={vi=false}}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -18,3 +18,18 @@ func Test_gee_dee()
|
|||||||
call assert_equal(14, col('.'))
|
call assert_equal(14, col('.'))
|
||||||
quit!
|
quit!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Check that setting 'cursorline' does not change curswant
|
||||||
|
func Test_cursorline_keep_col()
|
||||||
|
new
|
||||||
|
call setline(1, ['long long long line', 'short line'])
|
||||||
|
normal ggfi
|
||||||
|
let pos = getcurpos()
|
||||||
|
normal j
|
||||||
|
set cursorline
|
||||||
|
normal k
|
||||||
|
call assert_equal(pos, getcurpos())
|
||||||
|
bwipe!
|
||||||
|
set nocursorline
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user