about summary refs log tree commit diff
path: root/Util
diff options
context:
space:
mode:
Diffstat (limited to 'Util')
-rw-r--r--Util/ztst-ftplugin.vim29
-rw-r--r--Util/ztst-syntax.vim (renamed from Util/ztst.vim)12
-rw-r--r--Util/zyodl.vim11
3 files changed, 49 insertions, 3 deletions
diff --git a/Util/ztst-ftplugin.vim b/Util/ztst-ftplugin.vim
new file mode 100644
index 000000000..60f2b526f
--- /dev/null
+++ b/Util/ztst-ftplugin.vim
@@ -0,0 +1,29 @@
+" ztst filetype plugin
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" Inherit zsh.vim
+runtime! ftplugin/zsh.vim
+
+let b:undo_ftplugin .= "| setl fo< comments< commentstring<"
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format expected output/errput lines
+setlocal comments+=:*>,:>,:*?,:?,:F:
+
+" Format comments to be up to 78 characters long
+if &textwidth == 0
+  setlocal textwidth=78
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/Util/ztst.vim b/Util/ztst-syntax.vim
index 8d8becfe7..01e4dae31 100644
--- a/Util/ztst.vim
+++ b/Util/ztst-syntax.vim
@@ -28,7 +28,7 @@ syn include @zsh                   syntax/zsh.vim
 syn match  ztstPayload             /^\s\+\zs.*/ contains=@zsh
 
 syn match  ztstExitCode            /^\d\+\|^-/                nextgroup=ztstFlags
-syn match  ztstFlags               /[.dDq]*:/       contained nextgroup=ztstTestName contains=ztstColon
+syn match  ztstFlags               /[.dDqf]*:/      contained nextgroup=ztstTestName contains=ztstColon
 syn match  ztstColon               /:/              contained
 syn region ztstTestName            start=// end=/$/ contained 
 
@@ -58,6 +58,16 @@ syn match  ztstComment             /^#.*/
 " harness to the test files.
 syn keyword ztstSpecialVariable ZTST_unimplemented ZTST_skip ZTST_testdir ZTST_fd ZTST_srcdir containedin=@zsh 
 
+"" Sync
+" The following is sufficient for our modest line-based format, and helps
+" sidestep problems resulting from test cases that use syntax constructs
+" that confuse us and/or syntax/zsh.vim.  If we outgrow it, we should sync
+" on empty lines instead.
+"
+" If you run into syntax highlighting issues, just scroll the line that throws
+" the syntax highlighting off off the top of the screen.
+syn sync maxlines=1
+
 "" Highlight groups:
 hi def link ztstExitCode                  Number
 hi def link ztstFlags                     Normal
diff --git a/Util/zyodl.vim b/Util/zyodl.vim
index 7bde946c1..7acd1dfaf 100644
--- a/Util/zyodl.vim
+++ b/Util/zyodl.vim
@@ -21,7 +21,10 @@
 "   xitem(foo)
 "   item(foo)(foo)
 "   sitem(foo)(foo foo)
+"   COMMENT(foo var(foo) foo)
+"   comment(foo)
 "   example(print *.c+LPAR()#q:s/#%+LPAR()#b+RPAR()s+LPAR()*+RPAR().c/'S${match[1]}.C'/+RPAR())
+"   example(zargs -- **/*(.) -- ls -l)
 "   ifzman(zmanref(zshmisc))ifnzman(noderef(Redirection))
 "   LPAR()foo 42 foo+RPAR()
 "   chapter(foo (foo) foo)
@@ -50,7 +53,10 @@ 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 zyodlExample start="\<example(" end=")" contains=zyodlSpecial,zyodlParenthetical
+syn region zyodlComment start="\<COMMENT(" end=")" contains=zyodlSpecial,@zyodlInline,zyodlParenthetical
+" comment that gets output in generated texinfo/roff source
+syn region zyodlComment start="\<comment(" end=")"
 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
@@ -70,11 +76,12 @@ hi def link zyodlVar Identifier
 " Not ':hi def link zyodlBold Bold' since there's no such group.
 hi def zyodlBold gui=bold cterm=bold
 hi def link zyodlEmph Type
-hi def link zyodlIndex Comment
+hi def link zyodlIndex PreProc
 hi def link zyodlSpecial Special
 hi def link zyodlNumber Number
 hi def link zyodlItem Keyword
 hi def link zyodlExample String
+hi def link zyodlComment Comment
 hi def link zyodlTitle Title
 hi def link zyodlCond Conditional
 hi def link zyodlRef Include