aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/plugged/vim-pug
diff options
context:
space:
mode:
authorKumar Damani <damani.kumar@gmail.com>2019-04-26 18:49:26 +0000
committerKumar Damani <damani.kumar@gmail.com>2019-04-26 18:49:26 +0000
commit5a6ed5fcb3b89d0c2b4e8ba2953c4ba806d4b171 (patch)
tree5be0c043b0c8d632e35a8b4ef7e23452b103b94d /vim/.vim/plugged/vim-pug
parentaf821092fe78ef159d7cb6536bb006712dc01b9d (diff)
added vim dir
Diffstat (limited to 'vim/.vim/plugged/vim-pug')
-rw-r--r--vim/.vim/plugged/vim-pug/README.markdown21
-rw-r--r--vim/.vim/plugged/vim-pug/ftdetect/pug.vim5
-rw-r--r--vim/.vim/plugged/vim-pug/ftplugin/pug.vim57
-rw-r--r--vim/.vim/plugged/vim-pug/indent/pug.vim70
-rw-r--r--vim/.vim/plugged/vim-pug/syntax/pug.vim113
5 files changed, 266 insertions, 0 deletions
diff --git a/vim/.vim/plugged/vim-pug/README.markdown b/vim/.vim/plugged/vim-pug/README.markdown
new file mode 100644
index 0000000..7665388
--- /dev/null
+++ b/vim/.vim/plugged/vim-pug/README.markdown
@@ -0,0 +1,21 @@
+# vim-pug #
+
+Vim syntax highlighting for Pug (formerly Jade) templates.
+
+For best results consider using this with an (improved) HTML5 syntax plugin.
+
+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-pug.git
+
+If you do not want to use pathogen. You can always install vim-pug 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/.vim/plugged/vim-pug/ftdetect/pug.vim b/vim/.vim/plugged/vim-pug/ftdetect/pug.vim
new file mode 100644
index 0000000..08d962f
--- /dev/null
+++ b/vim/.vim/plugged/vim-pug/ftdetect/pug.vim
@@ -0,0 +1,5 @@
+" Pug
+autocmd BufNewFile,BufReadPost *.pug set filetype=pug
+
+" Jade
+autocmd BufNewFile,BufReadPost *.jade set filetype=pug
diff --git a/vim/.vim/plugged/vim-pug/ftplugin/pug.vim b/vim/.vim/plugged/vim-pug/ftplugin/pug.vim
new file mode 100644
index 0000000..db071fa
--- /dev/null
+++ b/vim/.vim/plugged/vim-pug/ftplugin/pug.vim
@@ -0,0 +1,57 @@
+" Vim filetype plugin
+" Language: Pug
+" 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
+
+setlocal iskeyword+=-
+
+" 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="Pug Files (*.pug)\t*.pug\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
+
+setlocal suffixesadd+=.pug
+
+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/.vim/plugged/vim-pug/indent/pug.vim b/vim/.vim/plugged/vim-pug/indent/pug.vim
new file mode 100644
index 0000000..bc7f2b4
--- /dev/null
+++ b/vim/.vim/plugged/vim-pug/indent/pug.vim
@@ -0,0 +1,70 @@
+" Vim indent file
+" Language: Pug
+" Maintainer: Joshua Borton
+" Credits: Tim Pope (vim-pug)
+" Last Change: 2010 Sep 22
+
+if exists("b:did_indent")
+ finish
+endif
+
+unlet! b:did_indent
+let b:did_indent = 1
+
+setlocal autoindent
+setlocal indentexpr=GetPugIndent()
+setlocal indentkeys=o,O,*<Return>,},],0),!^F
+
+" Only define the function once.
+if exists("*GetPugIndent")
+ finish
+endif
+
+let s:attributes = '\%((.\{-\})\)'
+let s:tag = '\([%.#][[:alnum:]_-]\+\|'.s:attributes.'\)*[<>]*'
+
+if !exists('g:pug_self_closing_tags')
+ let g:pug_self_closing_tags = 'meta|link|img|hr|br|input'
+endif
+
+setlocal formatoptions+=r
+setlocal comments+=n:\|
+
+function! GetPugIndent()
+ 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 increase
+ elseif line =~ '^\%(if\|else\|unless\|for\|each\|block\|mixin\|append\|case\|when\)'
+ return increase
+ elseif line =~ '^'.s:tag.'[&!]\=[=~-].*,\s*$'
+ return increase
+ elseif line == '-#'
+ return increase
+ elseif line =~? '^\v%('.g:pug_self_closing_tags.')>'
+ return indent
+ elseif group =~? '\v^%(pugAttributesDelimiter|pugClass|pugId|htmlTagName|htmlSpecialTagName|pugFilter|pugTagBlockChar)$'
+ return increase
+ else
+ return indent
+ endif
+endfunction
+
+" vim:set sw=2:
diff --git a/vim/.vim/plugged/vim-pug/syntax/pug.vim b/vim/.vim/plugged/vim-pug/syntax/pug.vim
new file mode 100644
index 0000000..850f815
--- /dev/null
+++ b/vim/.vim/plugged/vim-pug/syntax/pug.vim
@@ -0,0 +1,113 @@
+" Vim syntax file
+" Language: Pug
+" Maintainer: Joshua Borton
+" Credits: Tim Pope
+" Filenames: *.pug
+
+if exists("b:current_syntax")
+ finish
+endif
+
+if !exists("main_syntax")
+ let main_syntax = 'pug'
+endif
+
+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 @htmlCss syntax/css.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 pugJavascript matchgroup=pugJavascriptOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend
+syn region pugJavascript matchgroup=pugJavascriptChar start="-" skip=",\s*$" end="$" contained contains=@htmlJavascript keepend
+syn cluster pugTop contains=pugBegin,pugComment,pugHtmlComment,pugJavascript
+syn match pugBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=pugTag,pugClassChar,pugIdChar,pugPlainChar,pugJavascript,pugScriptConditional,pugScriptStatement,pugPipedText
+syn match pugTag "+\?[[:alnum:]_-]\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName,pugJavascript nextgroup=@pugComponent
+syn cluster pugComponent contains=pugAttributes,pugIdChar,pugBlockExpansionChar,pugClassChar,pugPlainChar,pugJavascript,pugTagBlockChar,pugTagInlineText
+syn keyword pugCommentTodo contained TODO FIXME XXX TBD
+syn match pugComment '\(\s\+\|^\)\/\/.*$' contains=pugCommentTodo,@Spell
+syn region pugCommentBlock start="\z(\s\+\|^\)\/\/.*$" end="^\%(\z1\s\|\s*$\)\@!" contains=pugCommentTodo,@Spell keepend
+syn region pugHtmlConditionalComment start="<!--\%(.*\)>" end="<!\%(.*\)-->" contains=pugCommentTodo,@Spell
+syn region pugAngular2 start="(" end=")" contains=htmlEvent
+syn region pugJavascriptString start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contained
+syn region pugJavascriptString start=+'+ skip=+\\\('\|$\)+ end=+'\|$+ contained
+syn region pugJavascriptString start=+`+ skip=+\\\(`\|$\)+ end=+`\|$+ contains=javascriptInterpolation contained
+syn region pugAttributes matchgroup=pugAttributesDelimiter start="(" end="\(.\zs)\)\|)" contained contains=pugJavascriptString,pugHtmlArg,pugAngular2,htmlArg,htmlEvent,htmlCssDefinition nextgroup=@pugComponent
+syn match pugClassChar "\." containedin=htmlTagName nextgroup=pugClass
+syn match pugBlockExpansionChar ":\s\+" contained nextgroup=pugTag,pugClassChar,pugIdChar
+syn match pugIdChar "#[[{]\@!" contained nextgroup=pugId
+syn match pugClass "\%(\w\|-\)\+" contained nextgroup=@pugComponent
+syn match pugId "\%(\w\|-\)\+" contained nextgroup=@pugComponent
+syn region pugDocType 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 pug.
+syn keyword pugHtmlArg contained href title
+
+syn match pugPlainChar "\\" contained
+syn region pugInterpolation matchgroup=pugInterpolationDelimiter start="[#!]{" end="}" contains=@htmlJavascript
+syn match pugInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
+syn match pugTagInlineText "\s.*$" contained contains=pugInterpolation,pugTextInlinePug,@Spell
+syn region pugPipedText matchgroup=pugPipeChar start="|" end="$" contained contains=pugInterpolation,pugTextInlinePug,@Spell nextgroup=pugPipedText skipnl
+syn match pugTagBlockChar "\.$" contained nextgroup=pugTagBlockText,pugTagBlockEnd skipnl
+syn region pugTagBlockText start="\%(\s*\)\S" end="\ze\n" contained contains=pugInterpolation,pugTextInlinePug,@Spell nextgroup=pugTagBlockText,pugTagBlockEnd skipnl
+syn region pugTagBlockEnd start="\s*\S" end="$" contained contains=pugInterpolation,pugTextInlinePug nextgroup=pugBegin skipnl
+syn region pugTextInlinePug matchgroup=pugInlineDelimiter start="#\[" end="]" contains=pugTag keepend
+
+syn region pugJavascriptFilter matchgroup=pugFilter start="^\z(\s*\):javascript\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript
+syn region pugMarkdownFilter matchgroup=pugFilter start=/^\z(\s*\):\%(markdown\|marked\)\s*$/ end=/^\%(\z1\s\|\s*$\)\@!/ contains=@htmlMarkdown
+syn region pugStylusFilter matchgroup=pugFilter start="^\z(\s*\):stylus\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlStylus
+syn region pugPlainFilter matchgroup=pugFilter start="^\z(\s*\):\%(sass\|less\|cdata\)\s*$" end="^\%(\z1\s\|\s*$\)\@!"
+
+syn match pugScriptConditional "^\s*\<\%(if\|else\|else if\|elif\|unless\|while\|until\|case\|when\|default\)\>[?!]\@!"
+syn match pugScriptStatement "^\s*\<\%(each\|for\|block\|prepend\|append\|mixin\|extends\|include\)\>[?!]\@!"
+syn region pugScriptLoopRegion start="^\s*\(for \)" end="$" contains=pugScriptLoopKeywords
+syn keyword pugScriptLoopKeywords for in
+
+syn region pugJavascript start="^\z(\s*\)script\%(:\w\+\)\=" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlJavascript,pugJavascriptTag,pugCoffeescriptFilter keepend
+syn region javascriptInterpolation start=/${/ end=/}/ contained
+
+syn region pugCoffeescriptFilter matchgroup=pugFilter start="^\z(\s*\):coffee-\?script\s*$" end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCoffeescript contained
+syn region pugJavascriptTag contained start="^\z(\s*\)script\%(:\w\+\)\=" end="$" contains=pugBegin,pugTag
+syn region pugCssBlock start="^\z(\s*\)style" nextgroup=@pugComponent,pugError end="^\%(\z1\s\|\s*$\)\@!" contains=@htmlCss keepend
+
+syn match pugError "\$" contained
+
+hi def link pugPlainChar Special
+hi def link pugScriptConditional PreProc
+hi def link pugScriptLoopKeywords PreProc
+hi def link pugScriptStatement PreProc
+hi def link pugHtmlArg htmlArg
+hi def link pugAttributeString String
+hi def link pugAttributesDelimiter Identifier
+hi def link pugIdChar Special
+hi def link pugClassChar Special
+hi def link pugBlockExpansionChar Special
+hi def link pugPipeChar Special
+hi def link pugTagBlockChar Special
+hi def link pugId Identifier
+hi def link pugClass Type
+hi def link pugInterpolationDelimiter Delimiter
+hi def link pugInlineDelimiter Delimiter
+hi def link pugFilter PreProc
+hi def link pugDocType PreProc
+hi def link pugCommentTodo Todo
+hi def link pugComment Comment
+hi def link pugCommentBlock Comment
+hi def link pugHtmlConditionalComment pugComment
+hi def link pugJavascriptString String
+hi def link javascriptInterpolation Delimiter
+
+let b:current_syntax = "pug"
+
+if main_syntax == "pug"
+ unlet main_syntax
+endif