From cc2afb7fdf7085ee5273ae5b04170c9003daa311 Mon Sep 17 00:00:00 2001 From: tUrG0n Date: Tue, 6 Nov 2012 12:36:13 +0200 Subject: [PATCH 1/3] Added vim-jade plugin --- .../digitaltoad-vim-jade/README.markdown | 19 ++++ .../digitaltoad-vim-jade/ftdetect/jade.vim | 2 + .../digitaltoad-vim-jade/ftplugin/jade.vim | 53 +++++++++++ .../digitaltoad-vim-jade/indent/jade.vim | 70 +++++++++++++++ .../digitaltoad-vim-jade/syntax/jade.vim | 89 +++++++++++++++++++ 5 files changed, 233 insertions(+) create mode 100644 vim/bundle/digitaltoad-vim-jade/README.markdown create mode 100644 vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim create mode 100644 vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim create mode 100644 vim/bundle/digitaltoad-vim-jade/indent/jade.vim create mode 100644 vim/bundle/digitaltoad-vim-jade/syntax/jade.vim diff --git a/vim/bundle/digitaltoad-vim-jade/README.markdown b/vim/bundle/digitaltoad-vim-jade/README.markdown new file mode 100644 index 00000000..2c2222ed --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade/README.markdown @@ -0,0 +1,19 @@ +# vim-jade # + +Vim syntax highlighting for Jade templates. + +Installation +------------ + +I prefer to install plugins using Tim Pope's +[pathogen.vim](https://github.com/tpope/vim-pathogen). Installation using +pathogen is quite simple. + + cd ~/.vim/bundle + git clone git://github.com/digitaltoad/vim-jade.git + +If you do not want to use pathogen. You can always install vim-jade in the +normal manner by copying each directory to your ~/.vim directory. Make sure +not to overwrite any existing directory of the same name and instead copy only +the contents of the source directory to the directory of the same name in your +~/.vim directory. diff --git a/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim b/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim new file mode 100644 index 00000000..c21dcff7 --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim @@ -0,0 +1,2 @@ +" Jade +autocmd BufNewFile,BufReadPost *.jade set filetype=jade diff --git a/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim b/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim new file mode 100644 index 00000000..2307ba68 --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim @@ -0,0 +1,53 @@ +" Vim filetype plugin +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope + +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +let s:save_cpo = &cpo +set cpo-=C + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +unlet! b:did_ftplugin + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin + unlet b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter + unlet b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words + unlet b:match_words +endif + +" Change the browse dialog on Win32 to show mainly Haml-related files +if has("gui_win32") + let b:browsefilter="Jade Files (*.jade)\t*.jade\n" . s:browsefilter +endif + +" Load the combined list of match_words for matchit.vim +if exists("loaded_matchit") + let b:match_words = s:match_words +endif + +setlocal comments= commentstring=//\ %s + +let b:undo_ftplugin = "setl cms< com< " + \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin + +let &cpo = s:save_cpo + +" vim:set sw=2: diff --git a/vim/bundle/digitaltoad-vim-jade/indent/jade.vim b/vim/bundle/digitaltoad-vim-jade/indent/jade.vim new file mode 100644 index 00000000..4d957dda --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade/indent/jade.vim @@ -0,0 +1,70 @@ +" Vim indent file +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope (vim-jade) +" Last Change: 2010 Sep 22 + +if exists("b:did_indent") + finish +endif + +unlet! b:did_indent +let b:did_indent = 1 + +setlocal autoindent et +setlocal indentexpr=GetJadeIndent() +setlocal indentkeys=o,O,*,},],0),!^F + +" Only define the function once. +if exists("*GetJadeIndent") + finish +endif + +let s:attributes = '\%((.\{-\})\)' +let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' + +if !exists('g:jade_self_closing_tags') + let g:jade_self_closing_tags = 'meta|link|img|hr|br' +endif + +setlocal formatoptions+=r +setlocal comments+=n:\| + +function! GetJadeIndent() + let lnum = prevnonblank(v:lnum-1) + if lnum == 0 + return 0 + endif + let line = substitute(getline(lnum),'\s\+$','','') + let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') + let lastcol = strlen(line) + let line = substitute(line,'^\s\+','','') + let indent = indent(lnum) + let cindent = indent(v:lnum) + let increase = indent + &sw + if indent == indent(lnum) + let indent = cindent <= indent ? -1 : increase + endif + + let group = synIDattr(synID(lnum,lastcol,1),'name') + + if line =~ '^!!!' + return indent + elseif line =~ '^/\%(\[[^]]*\]\)\=$' + return increse + elseif line =~ '^\%(if\|else\|unless\|for\|each\|block\|mixin\|append\)' + return increase + elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$' + return increase + elseif line == '-#' + return increase + elseif line =~? '^\v%('.g:jade_self_closing_tags.')>' + return indent + elseif group =~? '\v^%(jadeAttributesDelimiter|jadeClass|jadeId|htmlTagName|htmlSpecialTagName|jadeFilter)$' + return increase + else + return indent + endif +endfunction + +" vim:set sw=2: diff --git a/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim b/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim new file mode 100644 index 00000000..3986ee3b --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: Jade +" Maintainer: Joshua Borton +" Credits: Tim Pope +" Filenames: *.jade + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'jade' +endif + +runtime! syntax/html.vim +runtime! syntax/html/html5.vim +silent! syntax include @htmlCoffeescript syntax/coffee.vim +unlet! b:current_syntax +silent! syntax include @htmlStylus syntax/stylus.vim +unlet! b:current_syntax +silent! syntax include @htmlMarkdown syntax/markdown.vim +unlet! b:current_syntax + +syn case match + +syn region javascriptParenthesisBlock start="(" end=")" contains=@htmlJavascript contained keepend +syn cluster htmlJavascript add=javascriptParenthesisBlock + +syn region jadeJavascript matchgroup=jadeJavascriptOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend +syn region jadeJavascript matchgroup=jadeJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend +syn cluster jadeTop contains=jadeBegin,jadeComment,jadeHtmlComment,jadeJavascript +syn match jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassChar,jadeIdChar,jadePlainChar,jadeJavascript,jadeScriptConditional,jadeScriptStatement +syn match jadeTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent +syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeBlockExpansionChar,jadeClassChar,jadePlainChar,jadeJavascript +syn match jadeComment '\s*\/\/.*$' +syn region jadeHtmlComment start="^\z(\s*\)/" end="^\%(\z1\s\|\s*$\)\@!" +syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent +syn match jadeClassChar "\." contained nextgroup=jadeClass +syn match jadeBlockExpansionChar ":\s" contained nextgroup=jadeTag +syn match jadeIdChar "#{\@!" contained nextgroup=jadeId +syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent +syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent +syn region jadeDocType start="^\s*\(!!!\|doctype\)" end="$" +" Unless I'm mistaken, syntax/html.vim requires +" that the = sign be present for these matches. +" This adds the matches back for jade. +syn keyword jadeHtmlArg contained href title + +syn match jadePlainChar "\\" contained +syn region jadeInterpolation matchgroup=jadeInterpolationDelimiter start="#{" end="}" contains=@htmlJavascript +syn match jadeInterpolationEscape "\\\@[?!]\@!" +syn match jadeScriptStatement "\<\%(each\|block\|append\|mixin\|extends\|include\)\>[?!]\@!" + +syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag keepend +syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag +syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1\s\|\s*$\)\@!" contains=@jadeTop,@htmlCss keepend + +syn match jadeError "\$" contained + +hi def link jadePlainChar Special +hi def link jadeScriptConditional PreProc +hi def link jadeScriptStatement PreProc +hi def link jadeHtmlArg htmlArg +hi def link jadeAttributeString String +hi def link jadeAttributesDelimiter Identifier +hi def link jadeIdChar Special +hi def link jadeClassChar Special +hi def link jadeBlockExpansionChar Special +hi def link jadeId Identifier +hi def link jadeClass Type +hi def link jadeInterpolationDelimiter Delimiter +hi def link jadeFilter PreProc +hi def link jadeDocType PreProc +hi def link jadeComment Comment +hi def link jadeHtmlComment jadeComment + +let b:current_syntax = "jade" + +if main_syntax == "jade" + unlet main_syntax +endif From cb039d9b364c59c86d0f5c5934d9f3fbafa72c0d Mon Sep 17 00:00:00 2001 From: tUrG0n Date: Tue, 6 Nov 2012 19:58:14 +0200 Subject: [PATCH 2/3] Removed vim-jade --- .../digitaltoad-vim-jade/README.markdown | 19 ---- .../digitaltoad-vim-jade/ftdetect/jade.vim | 2 - .../digitaltoad-vim-jade/ftplugin/jade.vim | 53 ----------- .../digitaltoad-vim-jade/indent/jade.vim | 70 --------------- .../digitaltoad-vim-jade/syntax/jade.vim | 89 ------------------- 5 files changed, 233 deletions(-) delete mode 100644 vim/bundle/digitaltoad-vim-jade/README.markdown delete mode 100644 vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim delete mode 100644 vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim delete mode 100644 vim/bundle/digitaltoad-vim-jade/indent/jade.vim delete mode 100644 vim/bundle/digitaltoad-vim-jade/syntax/jade.vim diff --git a/vim/bundle/digitaltoad-vim-jade/README.markdown b/vim/bundle/digitaltoad-vim-jade/README.markdown deleted file mode 100644 index 2c2222ed..00000000 --- a/vim/bundle/digitaltoad-vim-jade/README.markdown +++ /dev/null @@ -1,19 +0,0 @@ -# vim-jade # - -Vim syntax highlighting for Jade templates. - -Installation ------------- - -I prefer to install plugins using Tim Pope's -[pathogen.vim](https://github.com/tpope/vim-pathogen). Installation using -pathogen is quite simple. - - cd ~/.vim/bundle - git clone git://github.com/digitaltoad/vim-jade.git - -If you do not want to use pathogen. You can always install vim-jade in the -normal manner by copying each directory to your ~/.vim directory. Make sure -not to overwrite any existing directory of the same name and instead copy only -the contents of the source directory to the directory of the same name in your -~/.vim directory. diff --git a/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim b/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim deleted file mode 100644 index c21dcff7..00000000 --- a/vim/bundle/digitaltoad-vim-jade/ftdetect/jade.vim +++ /dev/null @@ -1,2 +0,0 @@ -" Jade -autocmd BufNewFile,BufReadPost *.jade set filetype=jade diff --git a/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim b/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim deleted file mode 100644 index 2307ba68..00000000 --- a/vim/bundle/digitaltoad-vim-jade/ftplugin/jade.vim +++ /dev/null @@ -1,53 +0,0 @@ -" Vim filetype plugin -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope - -" Only do this when not done yet for this buffer -if exists("b:did_ftplugin") - finish -endif - -let s:save_cpo = &cpo -set cpo-=C - -" Define some defaults in case the included ftplugins don't set them. -let s:undo_ftplugin = "" -let s:browsefilter = "All Files (*.*)\t*.*\n" -let s:match_words = "" - -runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim -unlet! b:did_ftplugin - -" Override our defaults if these were set by an included ftplugin. -if exists("b:undo_ftplugin") - let s:undo_ftplugin = b:undo_ftplugin - unlet b:undo_ftplugin -endif -if exists("b:browsefilter") - let s:browsefilter = b:browsefilter - unlet b:browsefilter -endif -if exists("b:match_words") - let s:match_words = b:match_words - unlet b:match_words -endif - -" Change the browse dialog on Win32 to show mainly Haml-related files -if has("gui_win32") - let b:browsefilter="Jade Files (*.jade)\t*.jade\n" . s:browsefilter -endif - -" Load the combined list of match_words for matchit.vim -if exists("loaded_matchit") - let b:match_words = s:match_words -endif - -setlocal comments= commentstring=//\ %s - -let b:undo_ftplugin = "setl cms< com< " - \ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin - -let &cpo = s:save_cpo - -" vim:set sw=2: diff --git a/vim/bundle/digitaltoad-vim-jade/indent/jade.vim b/vim/bundle/digitaltoad-vim-jade/indent/jade.vim deleted file mode 100644 index 4d957dda..00000000 --- a/vim/bundle/digitaltoad-vim-jade/indent/jade.vim +++ /dev/null @@ -1,70 +0,0 @@ -" Vim indent file -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope (vim-jade) -" Last Change: 2010 Sep 22 - -if exists("b:did_indent") - finish -endif - -unlet! b:did_indent -let b:did_indent = 1 - -setlocal autoindent et -setlocal indentexpr=GetJadeIndent() -setlocal indentkeys=o,O,*,},],0),!^F - -" Only define the function once. -if exists("*GetJadeIndent") - finish -endif - -let s:attributes = '\%((.\{-\})\)' -let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*' - -if !exists('g:jade_self_closing_tags') - let g:jade_self_closing_tags = 'meta|link|img|hr|br' -endif - -setlocal formatoptions+=r -setlocal comments+=n:\| - -function! GetJadeIndent() - let lnum = prevnonblank(v:lnum-1) - if lnum == 0 - return 0 - endif - let line = substitute(getline(lnum),'\s\+$','','') - let cline = substitute(substitute(getline(v:lnum),'\s\+$','',''),'^\s\+','','') - let lastcol = strlen(line) - let line = substitute(line,'^\s\+','','') - let indent = indent(lnum) - let cindent = indent(v:lnum) - let increase = indent + &sw - if indent == indent(lnum) - let indent = cindent <= indent ? -1 : increase - endif - - let group = synIDattr(synID(lnum,lastcol,1),'name') - - if line =~ '^!!!' - return indent - elseif line =~ '^/\%(\[[^]]*\]\)\=$' - return increse - elseif line =~ '^\%(if\|else\|unless\|for\|each\|block\|mixin\|append\)' - return increase - elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$' - return increase - elseif line == '-#' - return increase - elseif line =~? '^\v%('.g:jade_self_closing_tags.')>' - return indent - elseif group =~? '\v^%(jadeAttributesDelimiter|jadeClass|jadeId|htmlTagName|htmlSpecialTagName|jadeFilter)$' - return increase - else - return indent - endif -endfunction - -" vim:set sw=2: diff --git a/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim b/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim deleted file mode 100644 index 3986ee3b..00000000 --- a/vim/bundle/digitaltoad-vim-jade/syntax/jade.vim +++ /dev/null @@ -1,89 +0,0 @@ -" Vim syntax file -" Language: Jade -" Maintainer: Joshua Borton -" Credits: Tim Pope -" Filenames: *.jade - -if exists("b:current_syntax") - finish -endif - -if !exists("main_syntax") - let main_syntax = 'jade' -endif - -runtime! syntax/html.vim -runtime! syntax/html/html5.vim -silent! syntax include @htmlCoffeescript syntax/coffee.vim -unlet! b:current_syntax -silent! syntax include @htmlStylus syntax/stylus.vim -unlet! b:current_syntax -silent! syntax include @htmlMarkdown syntax/markdown.vim -unlet! b:current_syntax - -syn case match - -syn region javascriptParenthesisBlock start="(" end=")" contains=@htmlJavascript contained keepend -syn cluster htmlJavascript add=javascriptParenthesisBlock - -syn region jadeJavascript matchgroup=jadeJavascriptOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend -syn region jadeJavascript matchgroup=jadeJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend -syn cluster jadeTop contains=jadeBegin,jadeComment,jadeHtmlComment,jadeJavascript -syn match jadeBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=jadeTag,jadeClassChar,jadeIdChar,jadePlainChar,jadeJavascript,jadeScriptConditional,jadeScriptStatement -syn match jadeTag "+\?\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@jadeComponent -syn cluster jadeComponent contains=jadeAttributes,jadeIdChar,jadeBlockExpansionChar,jadeClassChar,jadePlainChar,jadeJavascript -syn match jadeComment '\s*\/\/.*$' -syn region jadeHtmlComment start="^\z(\s*\)/" end="^\%(\z1\s\|\s*$\)\@!" -syn region jadeAttributes matchgroup=jadeAttributesDelimiter start="(" end=")" contained contains=@htmlJavascript,jadeHtmlArg,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@jadeComponent -syn match jadeClassChar "\." contained nextgroup=jadeClass -syn match jadeBlockExpansionChar ":\s" contained nextgroup=jadeTag -syn match jadeIdChar "#{\@!" contained nextgroup=jadeId -syn match jadeClass "\%(\w\|-\)\+" contained nextgroup=@jadeComponent -syn match jadeId "\%(\w\|-\)\+" contained nextgroup=@jadeComponent -syn region jadeDocType start="^\s*\(!!!\|doctype\)" end="$" -" Unless I'm mistaken, syntax/html.vim requires -" that the = sign be present for these matches. -" This adds the matches back for jade. -syn keyword jadeHtmlArg contained href title - -syn match jadePlainChar "\\" contained -syn region jadeInterpolation matchgroup=jadeInterpolationDelimiter start="#{" end="}" contains=@htmlJavascript -syn match jadeInterpolationEscape "\\\@[?!]\@!" -syn match jadeScriptStatement "\<\%(each\|block\|append\|mixin\|extends\|include\)\>[?!]\@!" - -syn region jadeJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,jadeJavascriptTag keepend -syn region jadeJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=jadeBegin,jadeTag -syn region jadeCssBlock start="^\z(\s*\)style" nextgroup=@jadeComponent,jadeError end="^\%(\z1\s\|\s*$\)\@!" contains=@jadeTop,@htmlCss keepend - -syn match jadeError "\$" contained - -hi def link jadePlainChar Special -hi def link jadeScriptConditional PreProc -hi def link jadeScriptStatement PreProc -hi def link jadeHtmlArg htmlArg -hi def link jadeAttributeString String -hi def link jadeAttributesDelimiter Identifier -hi def link jadeIdChar Special -hi def link jadeClassChar Special -hi def link jadeBlockExpansionChar Special -hi def link jadeId Identifier -hi def link jadeClass Type -hi def link jadeInterpolationDelimiter Delimiter -hi def link jadeFilter PreProc -hi def link jadeDocType PreProc -hi def link jadeComment Comment -hi def link jadeHtmlComment jadeComment - -let b:current_syntax = "jade" - -if main_syntax == "jade" - unlet main_syntax -endif From 181426ffcf7c7f6fb1b18abae30a3a38adaabc15 Mon Sep 17 00:00:00 2001 From: tUrG0n Date: Tue, 6 Nov 2012 20:01:28 +0200 Subject: [PATCH 3/3] Added vim-jade sub-module --- .gitmodules | 3 +++ vim/bundle/digitaltoad-vim-jade | 1 + 2 files changed, 4 insertions(+) create mode 160000 vim/bundle/digitaltoad-vim-jade diff --git a/.gitmodules b/.gitmodules index e497ae68..559046ee 100644 --- a/.gitmodules +++ b/.gitmodules @@ -354,3 +354,6 @@ path = vim/bundle/xsunsmile-showmarks url = https://github.com/xsunsmile/showmarks.git ignore = dirty +[submodule "vim/bundle/digitaltoad-vim-jade"] + path = vim/bundle/digitaltoad-vim-jade + url = git://github.com/digitaltoad/vim-jade.git diff --git a/vim/bundle/digitaltoad-vim-jade b/vim/bundle/digitaltoad-vim-jade new file mode 160000 index 00000000..67999c20 --- /dev/null +++ b/vim/bundle/digitaltoad-vim-jade @@ -0,0 +1 @@ +Subproject commit 67999c20315e733041ac8bbf680bd60fa0229204