Commit: runtime(csh): Support negated if in matchit

0 views
Skip to first unread message

Christian Brabandt

unread,
Jan 15, 2026, 3:31:20 PM (22 hours ago) Jan 15
to vim...@googlegroups.com
runtime(csh): Support negated if in matchit

Commit: https://github.com/vim/vim/commit/f25c343b2639d393544106c21b3b0b58caa3adca
Author: Simão Afonso <simao....@powertools-tech.com>
Date: Thu Jan 15 20:27:02 2026 +0000

runtime(csh): Support negated if in matchit

Currently, the matchit configuration chokes on valid syntax like:

```csh
if !(true) then
true
endif
```

Make sure the negation syntax is supported.

closes: #19172

Signed-off-by: Simão Afonso <simao....@powertools-tech.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/ftplugin/csh.vim b/runtime/ftplugin/csh.vim
index 74666b968..6f8201b99 100644
--- a/runtime/ftplugin/csh.vim
+++ b/runtime/ftplugin/csh.vim
@@ -5,6 +5,7 @@
" Contributor: Johannes Zellner <joha...@zellner.org>
" Last Change: 2024 Jan 14
" 2024 May 23 by Riley Bruins ('commentstring')
+" 2026 Jan 15 improved matchit support

if exists("b:did_ftplugin")
finish
@@ -31,7 +32,7 @@ let b:undo_ftplugin = "setlocal com< cms< fo<"
if exists("loaded_matchit") && !exists("b:match_words")
let s:line_start = '\%(^\s*\)\@<='
let b:match_words =
- \ s:line_start .. 'if\s*(.*)\s*then\>:' ..
+ \ s:line_start .. 'if\s*!\?\s*(.*)\s*then\>:' ..
\ s:line_start .. 'else\s\+if\s*(.*)\s*then\>:' .. s:line_start .. 'else\>:' ..
\ s:line_start .. 'endif\>,' ..
\ s:line_start .. '\%(\<foreach\s\+\h\w*\|while\)\s*(:' ..
Reply all
Reply to author
Forward
0 new messages