changeset 33012:859e539d686b v9.0.1798

patch 9.0.1798: The 'syntax' option has no completion. Commit: https://github.com/vim/vim/commit/6dfdff3f273dcea29099d81e3eceb871ae089998 Author: Doug Kearns <dougkearns@gmail.com> Date: Sun Aug 27 18:48:51 2023 +0200 patch 9.0.1798: The 'syntax' option has no completion. Problem: The 'syntax' option has no completion. Solution: Add syntax option completion. closes: #12900 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Doug Kearns <dougkearns@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Aug 2023 19:00:06 +0200
parents a38b40a531e6
children 9cfd5f9fed6d
files src/option.c src/testdir/test_options.vim src/version.c
diffstat 3 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/option.c
+++ b/src/option.c
@@ -7374,6 +7374,14 @@ set_context_in_set_cmd(
 
     xp->xp_pattern = p + 1;
 
+#ifdef FEAT_SYN_HL
+    if (options[opt_idx].var == (char_u *)&p_syn)
+    {
+	xp->xp_context = EXPAND_OWNSYNTAX;
+	return;
+    }
+#endif
+
     if (flags & P_EXPAND)
     {
 	p = options[opt_idx].var;
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -374,6 +374,12 @@ func Test_set_completion()
   call assert_equal('"set filetype=sshdconfig', @:)
   call feedkeys(":set filetype=a\<C-A>\<C-B>\"\<CR>", 'xt')
   call assert_equal('"set filetype=' .. getcompletion('a*', 'filetype')->join(), @:)
+
+  " Expand values for 'syntax'
+  call feedkeys(":set syntax=sshdconfi\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set syntax=sshdconfig', @:)
+  call feedkeys(":set syntax=a\<C-A>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"set syntax=' .. getcompletion('a*', 'syntax')->join(), @:)
 endfunc
 
 func Test_set_option_errors()
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1798,
+/**/
     1797,
 /**/
     1796,