Re: [vim/vim] runtime(vim): Update syntax, contain Ex commands (PR #19331)

16 views
Skip to first unread message

dkearns

unread,
Feb 4, 2026, 1:44:40 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • f796619 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/13cdba5a8d84ba9f271cab1a1a4a58b9ef9be465/after/f796619bd6a04efe729596b9bd0f143fa07ac8e8@github.com>

dkearns

unread,
Feb 4, 2026, 1:50:14 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 6a9c94d runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/e53d8246d72f6d86cf53e0f3eb8ade7c500ad99b/after/6a9c94d28b43f49bd398c04c9ba7eeedc3da6641@github.com>

dkearns

unread,
Feb 4, 2026, 1:56:32 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 1f16bf0 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/6a9c94d28b43f49bd398c04c9ba7eeedc3da6641/after/1f16bf0caf3aafb94a58bd049041680f7416affa@github.com>

dkearns

unread,
Feb 4, 2026, 1:56:58 PMFeb 4
to vim/vim, Subscribed
  • Contain Ex commands to valid syntactic contexts, start of line, after : or | and subcommand contexts.
  • Add full :range matching.

Fixes:

  • #16937 (do not highlight vim commands after packadd)
  • #14895 (Incorrect highlighting of Vim syntax)
  • #17543 (do not highlight vim commands within :runtime)

You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/19331

Commit Summary

  • 7f22036 runtime(vim): Update syntax, contain Ex commands
  • dd13ebc Fix Test_statusline() failures

File Changes

(300 files)

Patch Links:


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331@github.com>

dkearns

unread,
Feb 4, 2026, 1:57:53 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 530da4a runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/e053126ace2b769484bac5a559a6d4027957ca92/after/530da4aff9aa80b3381925450f99f091b51b20f8@github.com>

dkearns

unread,
Feb 4, 2026, 2:00:10 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 0723e84 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/530da4aff9aa80b3381925450f99f091b51b20f8/after/0723e844162ef491d51bee382c4ed3224a1a0cef@github.com>

dkearns

unread,
Feb 4, 2026, 2:21:19 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 13cdba5 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/1f16bf0caf3aafb94a58bd049041680f7416affa/after/13cdba5a8d84ba9f271cab1a1a4a58b9ef9be465@github.com>

dkearns

unread,
Feb 4, 2026, 2:33:37 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • 7f22036 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/f796619bd6a04efe729596b9bd0f143fa07ac8e8/after/7f2203600983ded4cf9ec70884e0c75ca5227088@github.com>

dkearns

unread,
Feb 4, 2026, 2:43:33 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • dd13ebc Fix Test_statusline() failures

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/7f2203600983ded4cf9ec70884e0c75ca5227088/after/dd13ebc122f58368b6ecf59ca82a105a60463450@github.com>

dkearns

unread,
Feb 4, 2026, 3:31:56 PMFeb 4
to vim/vim, Push

@dkearns pushed 1 commit.

  • ebac8ca Remove irrelevant dump files.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/dd13ebc122f58368b6ecf59ca82a105a60463450/after/ebac8ca9b1c0aab3e40ff26c0e76f1f22b6e15da@github.com>

Mao-Yining

unread,
Feb 6, 2026, 5:53:23 AMFeb 6
to vim/vim, Subscribed
mao-yining left a comment (vim/vim#19331)

Can this pr fix this problem?
In vim9 call and let are not necessary, but everything behind silent and silent! are highlight as command, even function or g:thing, while exe and echo 's highlight are well.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/c3859676973@github.com>

dkearns

unread,
Feb 7, 2026, 6:42:33 AMFeb 7
to vim/vim, Push

@dkearns pushed 1 commit.

  • 3e475b0 Allow :range before :autocmd-{cmd}

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/ebac8ca9b1c0aab3e40ff26c0e76f1f22b6e15da/after/3e475b0bb0732c8a839705424de375751faa77fa@github.com>

dkearns

unread,
Feb 7, 2026, 6:54:58 AMFeb 7
to vim/vim, Push

@dkearns pushed 1 commit.

  • 5a7def7 Contains straggler commmands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/3e475b0bb0732c8a839705424de375751faa77fa/after/5a7def7e4f1de36322196b11aa36fdbb9f15f9c9@github.com>

dkearns

unread,
Feb 7, 2026, 7:08:09 AMFeb 7
to vim/vim, Push

@dkearns pushed 1 commit.

  • 4c0eba6 Contains straggler commmands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/5a7def7e4f1de36322196b11aa36fdbb9f15f9c9/after/4c0eba6247c2d04dd7e2786727429eb90abddac6@github.com>

dkearns

unread,
Mar 1, 2026, 12:08:43 PMMar 1
to vim/vim, Push

@dkearns pushed 1 commit.

  • 000a492 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/4c0eba6247c2d04dd7e2786727429eb90abddac6/after/000a492f1b0c6babcb032a56f25887bd3f1c853d@github.com>

dkearns

unread,
Mar 1, 2026, 12:11:36 PMMar 1
to vim/vim, Push

@dkearns pushed 1 commit.

  • 29d0fa6 runtime(vim): Update syntax, contain Ex commands

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/000a492f1b0c6babcb032a56f25887bd3f1c853d/after/29d0fa632bbb559168f92cdb445590a89b52cd4f@github.com>

dkearns

unread,
Mar 11, 2026, 12:10:02 PMMar 11
to vim/vim, Push

@dkearns pushed 2 commits.

  • 27f1e55 runtime(vim): Update syntax, contain Ex commands
  • 9cadc0a Generate range accepting command modifiers.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/29d0fa632bbb559168f92cdb445590a89b52cd4f/after/9cadc0aa4af04a526c69ca0221a975eab8b10078@github.com>

dkearns

unread,
Mar 16, 2026, 12:01:03 AMMar 16
to vim/vim, Subscribed
dkearns left a comment (vim/vim#19331)

Sorry @mao-yining, I missed your query.

Yes, it should fix that issue but that part is still on my machine. I'll update this PR soon.


Reply to this email directly, view it on GitHub.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/c4064899864@github.com>

dkearns

unread,
Mar 17, 2026, 5:53:29 AMMar 17
to vim/vim, Push

@dkearns pushed 2 commits.

  • 3a4f828 runtime(vim): Update syntax, contain Ex commands
  • 0ae7944 Generate range accepting command modifiers.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/9cadc0aa4af04a526c69ca0221a975eab8b10078/after/0ae794494bd4044af431d89a8be1b2d7baba3a64@github.com>

dkearns

unread,
Mar 19, 2026, 8:25:09 PMMar 19
to vim/vim, Push

@dkearns pushed 2 commits.

  • e787a09 Rename vimRange* and similar groups to vimAddress*
  • cc0245b Range command cleanup and :delete special handling


View it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/0ae794494bd4044af431d89a8be1b2d7baba3a64/after/cc0245bb54c8c054c3917230928e9a9219909124@github.com>

dkearns

unread,
Mar 19, 2026, 9:27:55 PMMar 19
to vim/vim, Push

@dkearns pushed 2 commits.

  • 82a7a69 Rename vimRange* and similar groups to vimAddress*
  • 01577a9 Range command cleanup and :delete special handling


View it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/cc0245bb54c8c054c3917230928e9a9219909124/after/01577a93bcaa6f24091f3295099f66d670eda53c@github.com>

dkearns

unread,
Mar 20, 2026, 12:56:16 AMMar 20
to vim/vim, Push

@dkearns pushed 1 commit.

  • 80cad4a runtime(vim): Update syntax, contain Ex commands


View it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/01577a93bcaa6f24091f3295099f66d670eda53c/after/80cad4a0e5d0e8e632cc602c76a078d99e68c670@github.com>

dkearns

unread,
Mar 22, 2026, 9:25:05 PMMar 22
to vim/vim, Push

@dkearns pushed 1 commit.

  • 26b6f68 runtime(vim): Update syntax, contain Ex commands


View it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/80cad4a0e5d0e8e632cc602c76a078d99e68c670/after/26b6f68cf977258b9fdd3c22afb8a73ec1fe7be7@github.com>

dkearns

unread,
Apr 24, 2026, 11:55:11 AMApr 24
to vim/vim, Push

@dkearns pushed 1 commit.

  • a6b2138 runtime(vim): Update syntax, contain Ex commands

Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/26b6f68cf977258b9fdd3c22afb8a73ec1fe7be7/after/a6b2138c6cf9427970ae448e5be231db0628f68e@github.com>

dkearns

unread,
May 11, 2026, 2:05:39 PMMay 11
to vim/vim, Push

@dkearns pushed 1 commit.

  • 8833a2c runtime(vim): Update syntax, contain Ex commands

Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/4e08d9ad7de48886da951c320f0447a24a1e3c52/after/8833a2c130637c7b2982b4a4e334e508a8da3496@github.com>

dkearns

unread,
May 13, 2026, 11:48:36 AMMay 13
to vim/vim, Push

@dkearns pushed 1 commit.

  • d6714e2 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/8833a2c130637c7b2982b4a4e334e508a8da3496/after/d6714e2dbfeb1c79ffce365be5743a7ad1f9870d@github.com>

Peter Kenny

unread,
May 15, 2026, 4:55:21 PMMay 15
to vim/vim, Subscribed

@kennypete commented on this pull request.


In runtime/syntax/generator/vim.vim.base:

>  
-" Highlight: clear {{{2
-syn keyword	vimHiClear	contained	clear	skipwhite nextgroup=vimGroup,vimHLGroup,vimHiGroup
-
-" Highlight: link {{{2
-" see tst24 (hi def vs hi) (Jul 06, 2018)
-"syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
-" TODO: simplify and allow line continuations --djk
-syn region	vimHiLink	contained matchgroup=Type start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$" contains=@vimContinue,@vimHiCluster
+" Additional IsCommand: here by reasons of precedence {{{2
+" ===================+syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation

Is this too restrictive? See my comment in #20191 (comment)


Reply to this email directly, view it on GitHub, or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/review/4301324569@github.com>

dkearns

unread,
May 17, 2026, 10:23:07 AMMay 17
to vim/vim, Push

@dkearns pushed 1 commit.

  • 9387c13 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/d6714e2dbfeb1c79ffce365be5743a7ad1f9870d/after/9387c13859dfed03a7630c9906fa0aac688c49c6@github.com>

dkearns

unread,
May 17, 2026, 11:16:11 AMMay 17
to vim/vim, Subscribed

@dkearns commented on this pull request.


In runtime/syntax/generator/vim.vim.base:

>  
-" Highlight: clear {{{2
-syn keyword	vimHiClear	contained	clear	skipwhite nextgroup=vimGroup,vimHLGroup,vimHiGroup
-
-" Highlight: link {{{2
-" see tst24 (hi def vs hi) (Jul 06, 2018)
-"syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
-" TODO: simplify and allow line continuations --djk
-syn region	vimHiLink	contained matchgroup=Type start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$" contains=@vimContinue,@vimHiCluster
+" Additional IsCommand: here by reasons of precedence {{{2
+" ===================+syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation

It is but it's a very old group that's no longer intended for use and scheduled for removal. I don't believe it matches anywhere valid but I need to test that.


Reply to this email directly, view it on GitHub, or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/review/4305636229@github.com>

dkearns

unread,
May 18, 2026, 2:29:54 AMMay 18
to vim/vim, Push

@dkearns pushed 1 commit.

  • f059011 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/9387c13859dfed03a7630c9906fa0aac688c49c6/after/f059011f7a11887b27b00bce0624f5ffd6f96ff7@github.com>

dkearns

unread,
May 18, 2026, 5:43:50 AMMay 18
to vim/vim, Push

@dkearns pushed 1 commit.

  • 05dd6de runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/f059011f7a11887b27b00bce0624f5ffd6f96ff7/after/05dd6de7d6a67284308b1edacdd1e99357e926dd@github.com>

Peter Kenny

unread,
May 18, 2026, 6:34:05 PMMay 18
to vim/vim, Subscribed

@kennypete commented on this pull request.


In runtime/syntax/generator/vim.vim.base:

>  
-syn region	vimSyncArgs	contained	start="\S" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
+" User Command Highlighting: {{{2
+" syn match vimUsrCmd	'^\s*\zs\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
+" syn match vimUsrCmd	contained	'\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' nextgroup=vimBang
+syn match vimUsrCmd	contained	'\%#=1\<\u\w\+\>\%([![:space:]]\|$\)\@=' nextgroup=vimBang
  • \u\w\+ will match invalid patterns like :My_Invalid_Command. It needs to be [:alnum:].
  • It would be easier to read with very magic to reduce the \ overload.
  • POSIX character classes throughout would be better too.
  • Characters (like vertical tab and line-end) in [:space:], if used after a command, give errors. A tab or space only is allowed, so [:blank:] should replace [:space:]:
syn match vimUsrCmd	contained	'\v<[[:upper:]][[:alnum:]]+>%([[:blank:]!]|$)@=' nextgroup=vimBang

Illustrating with /\v<[[:upper:]][[:alnum:]]+>%([[:space:]!]|$)@= why it should be [:blank:]:
image.png (view on web)


Reply to this email directly, view it on GitHub, or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/review/4314439545@github.com>

dkearns

unread,
May 24, 2026, 6:26:02 AMMay 24
to vim/vim, Push

@dkearns pushed 1 commit.

  • 242d942 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/05dd6de7d6a67284308b1edacdd1e99357e926dd/after/242d942ff05ae66bd91f0b20287f7839c72a0ff1@github.com>

dkearns

unread,
May 24, 2026, 7:15:17 AMMay 24
to vim/vim, Subscribed

@dkearns commented on this pull request.


In runtime/syntax/generator/vim.vim.base:

>  
-" Highlight: clear {{{2
-syn keyword	vimHiClear	contained	clear	skipwhite nextgroup=vimGroup,vimHLGroup,vimHiGroup
-
-" Highlight: link {{{2
-" see tst24 (hi def vs hi) (Jul 06, 2018)
-"syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
-" TODO: simplify and allow line continuations --djk
-syn region	vimHiLink	contained matchgroup=Type start="\%(\<hi\%[ghlight]!\=\s\+\)\@<=\%(\%(def\%[ault]\s\+\)\=link\>\|\<def\%[ault]\>\)" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|" excludenl end="$" contains=@vimContinue,@vimHiCluster
+" Additional IsCommand: here by reasons of precedence {{{2
+" ===================+syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation

Removed.


Reply to this email directly, view it on GitHub, or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/review/4352297518@github.com>

dkearns

unread,
May 24, 2026, 8:19:20 AMMay 24
to vim/vim, Push

@dkearns pushed 1 commit.

  • 3096e59 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/242d942ff05ae66bd91f0b20287f7839c72a0ff1/after/3096e5958bb0cf2a14bf8d8b243dd92e449cc94a@github.com>

dkearns

unread,
May 24, 2026, 2:01:19 PMMay 24
to vim/vim, Push

@dkearns pushed 1 commit.

  • 5102389 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/3096e5958bb0cf2a14bf8d8b243dd92e449cc94a/after/51023894c619ccd4adca7e7aa3597a516a8c88c3@github.com>

dkearns

unread,
May 26, 2026, 11:12:54 AMMay 26
to vim/vim, Push

@dkearns pushed 1 commit.

  • da103f3 runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/51023894c619ccd4adca7e7aa3597a516a8c88c3/after/da103f3c02833df4193945d92956b5e00d602969@github.com>

dkearns

unread,
May 26, 2026, 11:56:40 AMMay 26
to vim/vim, Push

@dkearns pushed 1 commit.

  • d77964d runtime(vim): Update syntax, contain Ex commands


View it on GitHub or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/before/da103f3c02833df4193945d92956b5e00d602969/after/d77964de14e0ec6bfb7888671d91a2502f989486@github.com>

dkearns

unread,
May 26, 2026, 12:37:39 PMMay 26
to vim/vim, Subscribed

@dkearns commented on this pull request.


In runtime/syntax/generator/vim.vim.base:

>  
-syn region	vimSyncArgs	contained	start="\S" skip=+\\\\\|\\|\|\n\s*\%(\\\|"\\ \)+ matchgroup=vimCmdSep end="|\|$" contains=vimSyncLines,vimSyncLinebreak,vimSyncLinecont,vimSyncFromstart,vimSyncCcomment
+" User Command Highlighting: {{{2
+" syn match vimUsrCmd	'^\s*\zs\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!'
+" syn match vimUsrCmd	contained	'\u\%(\w*\)\@>\%([<.(#[]\|\s\+\%([-+*/%]\=\|\.\.\)=\)\@!' nextgroup=vimBang
+syn match vimUsrCmd	contained	'\%#=1\<\u\w\+\>\%([![:space:]]\|$\)\@=' nextgroup=vimBang
  • \u\w\+ will match invalid patterns like :My_Invalid_Command. It needs to be [:alnum:].

Fixed.

  • It would be easier to read with very magic to reduce the \ overload.

I don't want to mix pattern styles. The default is used by about 95% of the syntax files and also gets some useful highlighting.

"Easier to read" also depends on what you've been reading and for how long. :)

  • POSIX character classes throughout would be better too.

For aesthetics? The \u atoms are faster.

  • Characters (like vertical tab and line-end) in [:space:], if used after a command, give errors. A tab or space only is allowed, so [:blank:] should replace [:space:]:

They're interchangeable in this syntax file, if you allow for the invalid syntax, and in this case it catches the pathological ^@ case. I'll update the use of [:space:] to [:blank:] throughout the file in a different commit in the interests of correctness.

I expect the pattern can be simplified further to something more like \u[[:alnum:]]*\%([^[:alnum:]]\|$\)\@=. It's impossible to match perfectly without the actual user command list, we can only hope for tasteful use of whitespace.

syn match vimUsrCmd	contained	'\v<[[:upper:]][[:alnum:]]+>%([[:blank:]!]|$)@=' nextgroup=vimBang

Illustrating with /\v<[[:upper:]][[:alnum:]]+>%([[:space:]!]|$)@= why it should be [:blank:]: Image

They're all valid matches for a user command as far as I'm concerned. We don't try to invalidate earlier matches or entire commands based on later syntax errors.

The last match should be valid and is executed as

MyHelp
vim9cmd


Reply to this email directly, view it on GitHub, or unsubscribe.


Triage notifications on the go with GitHub Mobile for iOS or Android.

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/review/4365663511@github.com>

Christian Brabandt

unread,
4:58 PM (6 hours ago) 4:58 PM
to vim/vim, Subscribed
chrisbra left a comment (vim/vim#19331)

thanks


Reply to this email directly, view it on GitHub, or unsubscribe.

Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19331/c5184538410@github.com>

Reply all
Reply to author
Forward
0 new messages