* [PATCH] zyodl.vim: Fix nested parentheses
@ 2015-07-16 23:36 Daniel Shahaf
0 siblings, 0 replies; only message in thread
From: Daniel Shahaf @ 2015-07-16 23:36 UTC (permalink / raw)
To: zsh-workers
---
This seems to work. Adding "contains=zyodlParenthetical" to
zyodlSItemArg2 made the latter match too much, so I settled for
a "skip=" instead, which ought to be good enough in practice.
(The difference is whether nested parentheticals inside a zyodlSItemArg2
would be highlighted correctly, similarly to the new 'chapter(...)'
testcase.)
Daniel
diff --git a/Util/zyodl.vim b/Util/zyodl.vim
index 94efb29..b67bfa5 100644
--- a/Util/zyodl.vim
+++ b/Util/zyodl.vim
@@ -22,8 +22,13 @@
" example(print *.c+LPAR()#q:s/#%+LPAR()#b+RPAR()s+LPAR()*+RPAR().c/'S${match[1]}.C'/+RPAR())
" ifzman(zmanref(zshmisc))ifnzman(noderef(Redirection))
" LPAR()foo 42 foo+RPAR()
+" chapter(foo (foo) foo)
+" chapter(foo (foo (foo) foo) foo) bar
+"
+" # intentionally doubled
+" sitem(foo)(foo (foo) foo)
+" sitem(foo)(foo (foo) foo)
"
-" chapter(foo (foo) foo) # nested parentheses
" sitem(foo)(foo tt(foo) foo) # nested underline
if exists("b:current_syntax")
@@ -33,25 +38,28 @@ endif
"" Syntax groups:
syn clear
syn cluster zyodlInline contains=zyodlTt,zyodlVar,zyodlBold,zyodlEmph,zyodlCond
-syn region zyodlTt start="\<tt(" end=")" contains=zyodlSpecial
-syn region zyodlVar start="\<var(" end=")" contains=zyodlSpecial
-syn region zyodlBold start="\<bf(" end=")" contains=zyodlSpecial
-syn region zyodlEmph start="\<em(" end=")" contains=zyodlSpecial
+syn region zyodlTt start="\<tt(" end=")" contains=zyodlSpecial,zyodlParenthetical
+syn region zyodlVar start="\<var(" end=")" contains=zyodlSpecial,zyodlParenthetical
+syn region zyodlBold start="\<bf(" end=")" contains=zyodlSpecial,zyodlParenthetical
+syn region zyodlEmph start="\<em(" end=")" contains=zyodlSpecial,zyodlParenthetical
syn region zyodlIndex start="\<.index(" end=")" contains=zyodlSpecial
syn match zyodlSpecial "+\?\<\(LPAR\|RPAR\|PLUS\)()"
syn match zyodlNumber "\d\+"
syn region zyodlItem start="\<xitem(" end=")" contains=zyodlSpecial,@zyodlInline
syn region zyodlItem start="\<item(" end=")" contains=zyodlSpecial,@zyodlInline
syn region zyodlExample start="\<example(" end=")" contains=zyodlSpecial
-syn region zyodlTitle start="\<\(chapter\|subsect\|sect\)(" end=")" contains=zyodlSpecial,@zyodlInline
+syn region zyodlTitle start="\<\(chapter\|subsect\|sect\)(" end=")" contains=zyodlSpecial,@zyodlInline,zyodlParenthetical
syn match zyodlTitle "^texinode(.*$"
+syn region zyodlParenthetical start="\w\@<!(" end=")" transparent contained contains=zyodlParenthetical
+" zyodlCond doesn't contain zyodlParenthetical, since section names (probably) don't have parentheticals.
syn region zyodlCond start="\<\(ifzman\|ifnzman\)(" end=")" contains=zyodlRef,zyodlSpecial,@zyodlInline
syn region zyodlRef start="\<\(zmanref\|noderef\)(" end=")"
+" zyodlSItemArg2 should use zyodlParenthetical instead of the 'skip='
syn keyword zyodlKeyword sitem nextgroup=zyodlSItemArg1
syn region zyodlSItemArg1 oneline start="(" end=")" contains=zyodlSpecial,@zyodlInline nextgroup=zyodlSItemArg2 contained
-syn region zyodlSItemArg2 start="(" end=")" contains=zyodlSpecial,@zyodlInline contained
+syn region zyodlSItemArg2 start="(" end=")" contains=zyodlSpecial,@zyodlInline contained skip="\w\@<!([^)]*)"
"" Highlight groups:
hi def link zyodlTt Constant
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-07-16 23:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-16 23:36 [PATCH] zyodl.vim: Fix nested parentheses Daniel Shahaf
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).