mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #19830 from lewis6991/hlgroup_name
feat(highlight)!: error on invalid names and allow '.' and '@'
This commit is contained in:
commit
c545d514df
@ -181,16 +181,16 @@ Vim will only load the first syntax file found, assuming that it sets
|
||||
b:current_syntax.
|
||||
|
||||
|
||||
NAMING CONVENTIONS *group-name* *{group-name}* *E669* *W18*
|
||||
NAMING CONVENTIONS *group-name* *{group-name}* *E669* *E5248*
|
||||
|
||||
A syntax group name is to be used for syntax items that match the same kind of
|
||||
thing. These are then linked to a highlight group that specifies the color.
|
||||
A syntax group name doesn't specify any color or attributes itself.
|
||||
|
||||
The name for a highlight or syntax group must consist of ASCII letters, digits
|
||||
and the underscore. As a regexp: "[a-zA-Z0-9_]*". However, Vim does not give
|
||||
an error when using other characters. The maximum length of a group name is
|
||||
about 200 bytes. *E1249*
|
||||
The name for a highlight or syntax group must consist of ASCII letters,
|
||||
digits, underscores, periods and `@` characters. As a regexp it is
|
||||
`[a-zA-Z0-9_.@]*`. The maximum length of a group name is about 200 bytes.
|
||||
*E1249*
|
||||
|
||||
To be able to allow each user to pick their favorite set of colors, there must
|
||||
be preferred names for highlight groups that are common for many languages.
|
||||
|
@ -390,6 +390,9 @@ Highlight groups:
|
||||
using |n| or |N|
|
||||
|hl-CursorLine| is low-priority unless foreground color is set
|
||||
|hl-VertSplit| superseded by |hl-WinSeparator|
|
||||
Highlight groups names are allowed to contain the characters `.` and `@`.
|
||||
It is an error to define a highlight group with a name that doesn't match
|
||||
the regexp `[a-zA-Z0-9_.@]*` (see |group-name|).
|
||||
|
||||
Macro/|recording| behavior
|
||||
Replay of a macro recorded during :lmap produces the same actions as when it
|
||||
|
@ -1021,6 +1021,8 @@ EXTERN char e_resulting_text_too_long[] INIT(= N_("E1240: Resulting text too lon
|
||||
|
||||
EXTERN char e_line_number_out_of_range[] INIT(= N_("E1247: Line number out of range"));
|
||||
|
||||
EXTERN char e_highlight_group_name_invalid_char[] INIT(= N_("E5248: Invalid character in group name"));
|
||||
|
||||
EXTERN char e_highlight_group_name_too_long[] INIT(= N_("E1249: Highlight group name too long"));
|
||||
|
||||
EXTERN char e_undobang_cannot_redo_or_move_branch[]
|
||||
|
@ -1750,11 +1750,11 @@ static int syn_add_group(const char *name, size_t len)
|
||||
if (!vim_isprintc(c)) {
|
||||
emsg(_("E669: Unprintable character in group name"));
|
||||
return 0;
|
||||
} else if (!ASCII_ISALNUM(c) && c != '_') {
|
||||
// This is an error, but since there previously was no check only give a warning.
|
||||
} else if (!ASCII_ISALNUM(c) && c != '_' && c != '.' && c != '@') {
|
||||
// '.' and '@' are allowed characters for use with treesitter capture names.
|
||||
msg_source(HL_ATTR(HLF_W));
|
||||
msg(_("W18: Invalid character in group name"));
|
||||
break;
|
||||
emsg(_(e_highlight_group_name_invalid_char));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5320,8 +5320,8 @@ msgstr "E424: Te veel verskillende uitlig-eienskappe in gebruik"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Onvertoonbare karakter in groepnaam"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ongeldige karakter groepnaam"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ongeldige karakter groepnaam"
|
||||
|
||||
#~ msgid "E849: Too many highlight and syntax groups"
|
||||
#~ msgstr ""
|
||||
|
@ -5983,9 +5983,9 @@ msgstr "E424: Hi ha massa atributs de ressalt diferents en
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Caràcter no imprimible en el nom del grup"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Hi ha un caràcter no vàlid en el nom del grup"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Hi ha un caràcter no vàlid en el nom del grup"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -6072,10 +6072,10 @@ msgstr ""
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7434
|
||||
#: ../highlight_group.c:1756
|
||||
#, fuzzy
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "E182: Chybné jméno pøíkazu"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Chybné jméno pøíkazu"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -6072,10 +6072,10 @@ msgstr ""
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7434
|
||||
#: ../highlight_group.c:1756
|
||||
#, fuzzy
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "E182: Chybné jméno pøíkazu"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Chybné jméno pøíkazu"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5599,8 +5599,8 @@ msgstr "E424: For mange forskellige fremhævningsattributter i brug"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Tegn som ikke kan udskrives i gruppenavn"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ugyldige tegn i gruppenavn"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ugyldige tegn i gruppenavn"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: For mange fremhævnings- og syntaksgrupper"
|
||||
|
@ -5408,8 +5408,8 @@ msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Nicht druckbare Zeichen im Namen der Gruppe"
|
||||
|
||||
#: ../syntax.c:7304
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ungültiges Zeichen im Namen der Gruppe"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ungültiges Zeichen im Namen der Gruppe"
|
||||
|
||||
#: ../syntax.c:7318
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5730,8 +5730,8 @@ msgstr ""
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7448
|
||||
|
@ -5378,8 +5378,8 @@ msgstr "E424: Tro da malsamaj atributoj de emfazo uzataj"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Nepresebla signo en nomo de grupo"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Nevalida signo en nomo de grupo"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Nevalida signo en nomo de grupo"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Tro da emfazaj kaj sintaksaj grupoj"
|
||||
|
@ -6053,9 +6053,9 @@ msgstr "E669: Carácter no imprimible en el nombre del grupo"
|
||||
|
||||
# This is an error, but since there previously was no check only
|
||||
# * give a warning.
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Hay un carácter no válido en el nombre del grupo"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Hay un carácter no válido en el nombre del grupo"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5369,8 +5369,8 @@ msgstr "E424: Liikaa eri korostusattribuutteja"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Tulostuskelvoton merkki ryhmän nimessä"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Virheellinen merkki ryhmän nimessä"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Virheellinen merkki ryhmän nimessä"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Liikaa korostuksia ja syntaksiryhmiä"
|
||||
|
@ -2040,8 +2040,8 @@ msgstr ""
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Caractère non imprimable dans un nom de groupe"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Caractère invalide dans un nom de groupe"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Caractère invalide dans un nom de groupe"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Trop de groupes de surbrillance et de syntaxe"
|
||||
|
@ -5668,8 +5668,8 @@ msgstr "E424: An iomarca tr
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Carachtar neamhghrafach in ainm grúpa"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Carachtar neamhbhailí in ainm grúpa"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Carachtar neamhbhailí in ainm grúpa"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: An iomarca grúpaí aibhsithe agus comhréire"
|
||||
|
@ -6046,9 +6046,9 @@ msgstr "E424: Troppi gruppi evidenziazione differenti in uso"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Carattere non stampabile in un nome di gruppo"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Carattere non ammesso in un nome di gruppo"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Carattere non ammesso in un nome di gruppo"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5913,9 +5913,9 @@ msgstr "E424: 너무 많은 다른 하이라이트 속성이 사용되고 있습
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: 그룹 이름에 출력할 수 없는 문자가 있습니다"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: 그룹 이름에 이상한 문자"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: 그룹 이름에 이상한 문자"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5930,9 +5930,9 @@ msgstr "E424: For mange forskjellige uthevingsattributter i bruk"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Ikke-skrivbart tegn i gruppenavn"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ugyldig tegn i gruppenavn"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ugyldig tegn i gruppenavn"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5913,8 +5913,8 @@ msgstr ""
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr ""
|
||||
|
||||
#: ../syntax.c:7448
|
||||
|
@ -5930,9 +5930,9 @@ msgstr "E424: For mange forskjellige uthevingsattributter i bruk"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Ikke-skrivbart tegn i gruppenavn"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ugyldig tegn i gruppenavn"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ugyldig tegn i gruppenavn"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5908,9 +5908,9 @@ msgstr "E424: Zbyt wiele różnych atrybutów podkreślania w użyciu"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Niedrukowalny znak w nazwie grupy"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: nieprawidłowy znak w nazwie grupy"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: nieprawidłowy znak w nazwie grupy"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -6070,8 +6070,8 @@ msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Caractere não-imprimível no nome do grupo"
|
||||
|
||||
#: ../syntax.c:7320
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Caractere inválido no nome do grupo"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Caractere inválido no nome do grupo"
|
||||
|
||||
#: ../syntax.c:7334
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5977,9 +5977,9 @@ msgstr "E424: Используется слишком много разных а
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Непечатный символ в имени группы"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Недопустимый символ в имени группы"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Недопустимый символ в имени группы"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5940,9 +5940,9 @@ msgstr "E424: Pou
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Netlaèitelný znak v mene skupiny"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Chybný znak v mene skupiny"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Chybný znak v mene skupiny"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5940,9 +5940,9 @@ msgstr "E424: Pou
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Netlaèitelný znak v mene skupiny"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Chybný znak v mene skupiny"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Chybný znak v mene skupiny"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -6050,8 +6050,8 @@ msgstr "E424: У употреби је превише различитих ат
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: У имену групе је карактер који не може да се штампа"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Неважећи карактер у имену групе"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Неважећи карактер у имену групе"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Превише синтаксних и група истицања"
|
||||
|
@ -2056,8 +2056,8 @@ msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Outskrivbart tecken i gruppnamn"
|
||||
|
||||
#: ../syntax.c:7292
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ogiltigt tecken i gruppnamn"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ogiltigt tecken i gruppnamn"
|
||||
|
||||
#: ../syntax.c:7306
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -3054,8 +3054,8 @@ msgstr "E423: İzin verilmeyen argüman: %s"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Grup adında yazdırılamayan karakter"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Grup adında geçersiz karakter"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Grup adında geçersiz karakter"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Çok fazla vurgulama ve sözdizim grupları"
|
||||
|
@ -3058,8 +3058,8 @@ msgstr "E423: Неправильний аргумент: %s"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Недруковний символ у назві групи"
|
||||
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Некоректний символ у назві групи"
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Некоректний символ у назві групи"
|
||||
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
msgstr "E849: Забагато груп підсвічування і синтаксису"
|
||||
|
@ -5975,9 +5975,9 @@ msgstr "E424: Sử dụng quá nhiều thuộc tính chiếu sáng cú pháp"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: Ký tự không thể tin ra trong tên nhóm"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: Ký tự không cho phép trong tên nhóm"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: Ký tự không cho phép trong tên nhóm"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5942,9 +5942,9 @@ msgstr "E424: 使用了太多不同的高亮度属性"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: 组名中存在不可显示字符"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: 组名中含有无效字符"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: 组名中含有无效字符"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -5969,9 +5969,9 @@ msgstr "E424: 使用了過多相異的高亮度屬性"
|
||||
msgid "E669: Unprintable character in group name"
|
||||
msgstr "E669: 群組名稱中有無法列印的字元"
|
||||
|
||||
#: ../syntax.c:7434
|
||||
msgid "W18: Invalid character in group name"
|
||||
msgstr "W18: 群組名稱中有不正確的字元"
|
||||
#: ../highlight_group.c:1756
|
||||
msgid "E5248: Invalid character in group name"
|
||||
msgstr "E5248: 群組名稱中有不正確的字元"
|
||||
|
||||
#: ../syntax.c:7448
|
||||
msgid "E849: Too many highlight and syntax groups"
|
||||
|
@ -389,7 +389,7 @@ func Test_invalid_name()
|
||||
syn keyword Nop yes
|
||||
call assert_fails("syntax keyword Wr\x17ong bar", 'E669:')
|
||||
syntax keyword @Wrong bar
|
||||
call assert_match('W18:', execute('1messages'))
|
||||
call assert_fails("syntax keyword @#Wrong bar", 'E5248:')
|
||||
syn clear
|
||||
hi clear Nop
|
||||
hi clear @Wrong
|
||||
|
Loading…
Reference in New Issue
Block a user