mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Merge remote-tracking branch 'vim/master'
This commit is contained in:
@@ -9,15 +9,17 @@
|
||||
# Script should be run every time new Ex commands are added in Vim,
|
||||
# from the src/vim directory, since it reads commands from "ex_cmds.h".
|
||||
|
||||
use strict;
|
||||
|
||||
# Find the list of Vim commands from cmdnames[] table in ex_cmds.h
|
||||
my @cmds;
|
||||
my @skipped;
|
||||
my $skipped_cmds;
|
||||
open(IN, "< ex_cmds.h") or die "can't open ex_cmds.h: $!\n";
|
||||
while (<IN>) {
|
||||
if (/^EX\(CMD_\S*,\s*"([a-z][^"]*)"/) {
|
||||
push (@cmds, $1);
|
||||
push @cmds, $1;
|
||||
} elsif (/^EX\(CMD_/) {
|
||||
push (@skipped, $1);
|
||||
++$skipped_cmds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +70,6 @@ for my $c1 ('a' .. 'z') {
|
||||
}
|
||||
print "};\n",
|
||||
"\n",
|
||||
"static int command_count = ", $#cmds + $#skipped + 2 , ";\n",
|
||||
"static const int command_count = ", scalar(@cmds) + $skipped_cmds, ";\n",
|
||||
"\n",
|
||||
"/* End of automatically generated code by create_cmdidxs.pl */\n";
|
||||
|
||||
|
||||
+1
-1
@@ -11773,7 +11773,7 @@ f_synIDattr(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
break;
|
||||
|
||||
case 'n': /* name */
|
||||
p = get_highlight_name(NULL, id - 1);
|
||||
p = get_highlight_name_ext(NULL, id - 1, FALSE);
|
||||
break;
|
||||
|
||||
case 'r': /* reverse */
|
||||
|
||||
+2
-2
@@ -7962,7 +7962,7 @@ sign_list_defined(sign_T *sp)
|
||||
if (sp->sn_line_hl > 0)
|
||||
{
|
||||
MSG_PUTS(" linehl=");
|
||||
p = get_highlight_name(NULL, sp->sn_line_hl - 1);
|
||||
p = get_highlight_name_ext(NULL, sp->sn_line_hl - 1, FALSE);
|
||||
if (p == NULL)
|
||||
MSG_PUTS("NONE");
|
||||
else
|
||||
@@ -7971,7 +7971,7 @@ sign_list_defined(sign_T *sp)
|
||||
if (sp->sn_text_hl > 0)
|
||||
{
|
||||
MSG_PUTS(" texthl=");
|
||||
p = get_highlight_name(NULL, sp->sn_text_hl - 1);
|
||||
p = get_highlight_name_ext(NULL, sp->sn_text_hl - 1, FALSE);
|
||||
if (p == NULL)
|
||||
MSG_PUTS("NONE");
|
||||
else
|
||||
|
||||
+1
-1
@@ -573,7 +573,7 @@ static const unsigned char cmdidxs2[26][26] =
|
||||
/* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
|
||||
};
|
||||
|
||||
static int command_count = 541;
|
||||
static const int command_count = 541;
|
||||
|
||||
/* End of automatically generated code by create_cmdidxs.pl */
|
||||
|
||||
|
||||
@@ -52,5 +52,6 @@ void highlight_gui_started(void);
|
||||
int highlight_changed(void);
|
||||
void set_context_in_highlight_cmd(expand_T *xp, char_u *arg);
|
||||
char_u *get_highlight_name(expand_T *xp, int idx);
|
||||
char_u *get_highlight_name_ext(expand_T *xp, int idx, int skip_cleared);
|
||||
void free_highlight_fonts(void);
|
||||
/* vim: set ft=c : */
|
||||
|
||||
+15
-5
@@ -9950,17 +9950,27 @@ highlight_list_two(int cnt, int attr)
|
||||
|| defined(FEAT_SIGNS) || defined(PROTO)
|
||||
/*
|
||||
* Function given to ExpandGeneric() to obtain the list of group names.
|
||||
* Also used for synIDattr() function.
|
||||
*/
|
||||
char_u *
|
||||
get_highlight_name(expand_T *xp UNUSED, int idx)
|
||||
{
|
||||
return get_highlight_name_ext(xp, idx, TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Obtain a highlight group name.
|
||||
* When "skip_cleared" is TRUE don't return a cleared entry.
|
||||
*/
|
||||
char_u *
|
||||
get_highlight_name_ext(expand_T *xp UNUSED, int idx, int skip_cleared)
|
||||
{
|
||||
if (idx < 0)
|
||||
return NULL;
|
||||
/* Items are never removed from the table, skip the ones that were cleared.
|
||||
*/
|
||||
while (idx < highlight_ga.ga_len && HL_TABLE()[idx].sg_cleared)
|
||||
++idx;
|
||||
|
||||
/* Items are never removed from the table, skip the ones that were
|
||||
* cleared. */
|
||||
if (skip_cleared && idx < highlight_ga.ga_len && HL_TABLE()[idx].sg_cleared)
|
||||
return (char_u *)"";
|
||||
|
||||
#ifdef FEAT_CMDL_COMPL
|
||||
if (idx == highlight_ga.ga_len && include_none != 0)
|
||||
|
||||
@@ -71,6 +71,14 @@ func Test_highlight_completion()
|
||||
call assert_equal('"hi default', getreg(':'))
|
||||
call feedkeys(":hi c\<S-Tab>\<Home>\"\<CR>", 'xt')
|
||||
call assert_equal('"hi clear', getreg(':'))
|
||||
|
||||
" A cleared group does not show up in completions.
|
||||
hi Anders ctermfg=green
|
||||
call assert_equal(['Aardig', 'Anders'], getcompletion('A', 'highlight'))
|
||||
hi clear Aardig
|
||||
call assert_equal(['Anders'], getcompletion('A', 'highlight'))
|
||||
hi clear Anders
|
||||
call assert_equal([], getcompletion('A', 'highlight'))
|
||||
endfunc
|
||||
|
||||
func Test_expr_completion()
|
||||
|
||||
@@ -326,13 +326,16 @@ func Test_syn_clear()
|
||||
syntax keyword Bar tar
|
||||
call assert_match('Foo', execute('syntax'))
|
||||
call assert_match('Bar', execute('syntax'))
|
||||
call assert_equal('Foo', synIDattr(hlID("Foo"), "name"))
|
||||
syn clear Foo
|
||||
call assert_notmatch('Foo', execute('syntax'))
|
||||
call assert_match('Bar', execute('syntax'))
|
||||
call assert_equal('Foo', synIDattr(hlID("Foo"), "name"))
|
||||
syn clear Foo Bar
|
||||
call assert_notmatch('Foo', execute('syntax'))
|
||||
call assert_notmatch('Bar', execute('syntax'))
|
||||
hi clear Foo
|
||||
call assert_equal('Foo', synIDattr(hlID("Foo"), "name"))
|
||||
hi clear Bar
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -779,6 +779,10 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
514,
|
||||
/**/
|
||||
513,
|
||||
/**/
|
||||
512,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user