mirror of
https://github.com/zsh-users/zsh
synced 2024-10-06 07:59:22 +00:00
35775: New zsh-specific yodl vim syntax highlighting.
To try this, see the instructions at the top of Util/zyodl.vim (in the comment). * Util/zyodl.vim: New syntax highlighting file. * Doc/Zsh/.vimrc: New file, hooks up zyodl.vim for automatic loading. * Etc/zsh-development-guide: Namedrop zyodl.vim for discoverability.
This commit is contained in:
parent
35ffe36318
commit
ca2ab5e446
|
@ -1,3 +1,8 @@
|
||||||
|
2015-07-13 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||||
|
|
||||||
|
* 35775: Doc/Zsh/.vimrc Etc/zsh-development-guide Util/zyodl.vim:
|
||||||
|
New zsh-specific yodl vim syntax highlighting.
|
||||||
|
|
||||||
2015-07-13 Daniel Shahaf <d.s@daniel.shahaf.name>
|
2015-07-13 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||||
|
|
||||||
* 35769: Functions/Zle/edit-command-line: edit-command-line:
|
* 35769: Functions/Zle/edit-command-line: edit-command-line:
|
||||||
|
|
4
Doc/Zsh/.vimrc
Normal file
4
Doc/Zsh/.vimrc
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
augroup filetypedetect
|
||||||
|
autocmd BufRead,BufNewFile **/Doc/Zsh/*.yo set ft=zyodl | source <sfile>:h:h:h/Util/zyodl.vim
|
||||||
|
"autocmd BufRead,BufNewFile **/Etc/FAQ.yo set ft=zyodl | source <sfile>:h:h:h/Util/zyodl.vim
|
||||||
|
augroup END
|
|
@ -920,6 +920,9 @@ Documentation
|
||||||
surrounding text. No extra newlines after the opening or before the
|
surrounding text. No extra newlines after the opening or before the
|
||||||
closing parenthesis are required.
|
closing parenthesis are required.
|
||||||
|
|
||||||
|
A syntax highlighting file for Vim is included, just source tt(Doc/Zsh/.vimrc)
|
||||||
|
before editing one of the Doc/Zsh/*.yo files.
|
||||||
|
|
||||||
Module names
|
Module names
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
74
Util/zyodl.vim
Normal file
74
Util/zyodl.vim
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
|
||||||
|
"" A Vim syntax highlighting file for Doc/Zsh/*.yo
|
||||||
|
|
||||||
|
" To try this, run:
|
||||||
|
" cd Doc/Zsh && vim --cmd "source ./.vimrc" zle.yo
|
||||||
|
" (This sources the file <Doc/Zsh/.vimrc>.)
|
||||||
|
"
|
||||||
|
" To install this permanently:
|
||||||
|
" 1. Copy this file to ~/.vim/syntax/zyodl.vim
|
||||||
|
" 2. Create ~/.vim/filetype.vim as explained in ":help new-filetype" case C.
|
||||||
|
" 3. Add the following command to ~/.vim/filetype.vim:
|
||||||
|
" autocmd BufRead,BufNewFile **/Doc/Zsh/*.yo setfiletype zyodl
|
||||||
|
|
||||||
|
"" Test case:
|
||||||
|
" texinode()()()()
|
||||||
|
" chapter(foo)
|
||||||
|
" vindex(foo)
|
||||||
|
" foo tt(foo) var(foo) bf(foo) em(foo) foo
|
||||||
|
" xitem(foo)
|
||||||
|
" item(foo)(foo)
|
||||||
|
" sitem(foo)(foo foo)
|
||||||
|
" 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) # nested parentheses
|
||||||
|
" sitem(foo)(foo tt(foo) foo) # nested underline
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
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 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 match zyodlTitle "^texinode\%x28.*$"
|
||||||
|
|
||||||
|
syn region zyodlCond start="\<\(ifzman\|ifnzman\)(" end=")" contains=zyodlRef,zyodlSpecial,@zyodlInline
|
||||||
|
syn region zyodlRef start="\<\(zmanref\|noderef\)(" end=")"
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
"" Highlight groups:
|
||||||
|
hi def link zyodlTt Constant
|
||||||
|
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 zyodlSpecial Special
|
||||||
|
hi def link zyodlNumber Number
|
||||||
|
hi def link zyodlItem Keyword
|
||||||
|
hi def link zyodlExample String
|
||||||
|
hi def link zyodlTitle Title
|
||||||
|
hi def link zyodlCond Conditional
|
||||||
|
hi def link zyodlRef Include
|
||||||
|
hi def link zyodlSItemArg1 Macro
|
||||||
|
hi def link zyodlSItemArg2 Underlined
|
||||||
|
|
||||||
|
let b:current_syntax = "zyodl"
|
||||||
|
|
Loading…
Reference in a new issue