summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2023-08-20 19:14:03 +0200
committerChristian Brabandt <cb@256bit.org>2023-08-20 19:14:03 +0200
commitd4376dc3ebea91abcb4d9ef9963ef5b968048b78 (patch)
tree7adad0a7f8a0a82323c276354f33d1105a82a5a8
parentbedc69f9d67b117ab05aa735c701cd3899d1ae2d (diff)
patch 9.0.1767: '.-' no allowed in highlight group namesv9.0.1767
Problem: '.-' no allowed in highlight group names Solution: Allow dot and hyphen characters in highlight group names Allow dots and hyphens in group names. There does not seem to be any reason for these to be disallowed. closes: #12807 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
-rw-r--r--runtime/doc/syntax.txt8
-rw-r--r--src/highlight.c4
-rw-r--r--src/version.c2
3 files changed, 8 insertions, 6 deletions
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 8a5e5f4c9c..17f81391a9 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -214,10 +214,10 @@ 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, dots, or hyphens. 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*
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.
diff --git a/src/highlight.c b/src/highlight.c
index 3773ddf70b..8b1e832d7b 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -3452,7 +3452,7 @@ syn_add_group(char_u *name)
char_u *p;
char_u *name_up;
- // Check that the name is ASCII letters, digits and underscore.
+ // Check that the name is valid (ASCII letters, digits, underscores, dots, or hyphens).
for (p = name; *p != NUL; ++p)
{
if (!vim_isprintc(*p))
@@ -3461,7 +3461,7 @@ syn_add_group(char_u *name)
vim_free(name);
return 0;
}
- else if (!ASCII_ISALNUM(*p) && *p != '_')
+ else if (!ASCII_ISALNUM(*p) && *p != '_' && *p != '.' && *p != '-')
{
// This is an error, but since there previously was no check only
// give a warning.
diff --git a/src/version.c b/src/version.c
index 056dc29679..e6f41a4a2f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1767,
+/**/
1766,
/**/
1765,