From 4b45bb33c280371211308d28002ac57a635104ad Mon Sep 17 00:00:00 2001 From: amix Date: Sun, 3 Apr 2016 21:59:57 +0100 Subject: [PATCH] Updated plugins --- README.md | 1 - sources_forked/zencoding/.gitignore | 1 - sources_forked/zencoding/.gitmodules | 4 - sources_forked/zencoding/Makefile | 11 - sources_forked/zencoding/README.mkd | 103 -- sources_forked/zencoding/TODO | 0 sources_forked/zencoding/TUTORIAL | 212 --- .../zencoding/autoload/zencoding.vim | 1486 ----------------- .../zencoding/autoload/zencoding/lang.vim | 11 - .../zencoding/autoload/zencoding/lang/css.vim | 228 --- .../autoload/zencoding/lang/haml.vim | 310 ---- .../autoload/zencoding/lang/html.vim | 692 -------- .../autoload/zencoding/lang/sass.vim | 158 -- .../autoload/zencoding/lang/scss.vim | 121 -- .../autoload/zencoding/lang/slim.vim | 276 --- .../zencoding/autoload/zencoding/util.vim | 249 --- sources_forked/zencoding/doc/zencoding.txt | 438 ----- sources_forked/zencoding/plugin/zencoding.vim | 215 --- sources_forked/zencoding/unittest.vim | 794 --------- sources_forked/zencoding/zencoding.vim.vimup | 265 --- .../syntastic/doc/syntastic.txt | 276 +-- .../syntastic/plugin/syntastic.vim | 2 +- .../syntax_checkers/html/textlint.vim | 23 + .../syntax_checkers/markdown/textlint.vim | 23 + .../syntax_checkers/python/pylama.vim | 4 +- .../syntax_checkers/text/textlint.vim | 42 + .../vim-airline/autoload/airline.vim | 4 + .../autoload/airline/extensions/tabline.vim | 4 + .../airline/extensions/tabline/ctrlspace.vim | 7 +- .../airline/extensions/whitespace.vim | 6 +- .../airline/extensions/windowswap.vim | 6 +- .../vim-airline/autoload/airline/init.vim | 5 +- .../vim-airline/autoload/airline/parts.vim | 4 + .../vim-airline/doc/airline.txt | 7 +- sources_non_forked/vim-airline/t/init.vim | 3 +- .../vim-fugitive/plugin/fugitive.vim | 1 + .../vim-go/.github/ISSUE_TEMPLATE.md | 22 +- .../vim-go/syntax/gotexttmpl.vim | 2 +- .../vim-snippets/UltiSnips/sh.snippets | 7 + .../vim-snippets/snippets/sh.snippets | 5 + vimrcs/basic.vim | 6 +- 41 files changed, 322 insertions(+), 5712 deletions(-) delete mode 100755 sources_forked/zencoding/.gitignore delete mode 100755 sources_forked/zencoding/.gitmodules delete mode 100755 sources_forked/zencoding/Makefile delete mode 100755 sources_forked/zencoding/README.mkd delete mode 100755 sources_forked/zencoding/TODO delete mode 100755 sources_forked/zencoding/TUTORIAL delete mode 100755 sources_forked/zencoding/autoload/zencoding.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/css.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/haml.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/html.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/sass.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/scss.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/lang/slim.vim delete mode 100755 sources_forked/zencoding/autoload/zencoding/util.vim delete mode 100755 sources_forked/zencoding/doc/zencoding.txt delete mode 100755 sources_forked/zencoding/plugin/zencoding.vim delete mode 100755 sources_forked/zencoding/unittest.vim delete mode 100755 sources_forked/zencoding/zencoding.vim.vimup create mode 100644 sources_non_forked/syntastic/syntax_checkers/html/textlint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/markdown/textlint.vim create mode 100644 sources_non_forked/syntastic/syntax_checkers/text/textlint.vim diff --git a/README.md b/README.md index 999dd405..41e9fc19 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,6 @@ I recommend reading the docs of these plugins to understand them better. Each of * [ctrlp.vim](https://github.com/kien/ctrlp.vim): Fuzzy file, buffer, mru and tag finder. In my config it's mapped to ``, because `` is used by YankRing * [mru.vim](https://github.com/vim-scripts/mru.vim): Plugin to manage Most Recently Used (MRU) files. Includes my own fork which adds syntax highlighting to MRU. This plugin can be opened with `` * [open_file_under_cursor.vim](https://github.com/amix/open_file_under_cursor.vim): Open file under cursor when pressing `gf` -* [zencoding](https://github.com/mattn/emmet-vim): Expanding abbreviation like zen-coding, very useful for editing XML, HTML. * [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object): Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts * [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors): Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing) * [vim-expand-region](https://github.com/terryma/vim-expand-region): Allows you to visually select increasingly larger regions of text using the same key combination. diff --git a/sources_forked/zencoding/.gitignore b/sources_forked/zencoding/.gitignore deleted file mode 100755 index 0a56e3fc..00000000 --- a/sources_forked/zencoding/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/doc/tags diff --git a/sources_forked/zencoding/.gitmodules b/sources_forked/zencoding/.gitmodules deleted file mode 100755 index 8225cc06..00000000 --- a/sources_forked/zencoding/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "docs"] - path = docs - url = git@github.com:mattn/zencoding-vim.git - branch = gh-pages diff --git a/sources_forked/zencoding/Makefile b/sources_forked/zencoding/Makefile deleted file mode 100755 index 94c355a8..00000000 --- a/sources_forked/zencoding/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : zencoding-vim.zip - -remove-zip: - -rm doc/tags - -rm zencoding-vim.zip - -zencoding-vim.zip: remove-zip - zip -r zencoding-vim.zip autoload plugin doc - -release: zencoding-vim.zip - vimup update-script zencoding.vim diff --git a/sources_forked/zencoding/README.mkd b/sources_forked/zencoding/README.mkd deleted file mode 100755 index 36eead34..00000000 --- a/sources_forked/zencoding/README.mkd +++ /dev/null @@ -1,103 +0,0 @@ -# ZenCoding-vim - -[zencoding-vim](http://mattn.github.com/zencoding-vim) is vim script support for expanding abbreviation like zen-coding(emmet). - -## Installation - -[Download zip file](http://www.vim.org/scripts/script.php?script_id=2981): - - cd ~/.vim - unzip zencoding-vim.zip - -If you install pathogen.vim: - - cd ~/.vim/bundle # or make directory - unzip /path/to/zencoding-vim.zip - -If you get source from repository: - - cd ~/.vim/bundle # or make directory - git clone http://github.com/mattn/zencoding-vim.git - -or: - - git clone http://github.com/mattn/zencoding-vim.git - cd zencoding-vim - cp plugin/zencoding.vim ~/.vim/plugin/ - cp autoload/zencoding.vim ~/.vim/autoload/ - cp -a autoload/zencoding ~/.vim/autoload/ - - -## Quick Tutorial - -Open or create New File: - - vim index.html - -Type ("_" is the cursor position): - - html:5_ - -Then type "," (Ctrl + y + ','), you should see: - - - - - - - - - _ - - - -[More Tutorials](https://raw.github.com/mattn/zencoding-vim/master/TUTORIAL) - - -## Enable in different mode - -If you don't want enable zencoding in all mode, -you can use set a option in `vimrc`: - - let g:user_zen_mode='n' "only enable normal mode functions. - let g:user_zen_mode='inv' "enable all functions, which is equal to - let g:user_zen_mode='a' "enable all function in all mode. - -## Project Authors - -[Yasuhiro Matsumoto](http://mattn.kaoriya.net/) - -## Links - -### zen-coding official site: - -> - -### zencoding.vim: - -> - -### development repository: - -> - -### my blog posts about zencoding-vim: - -> - -> - -### japanese blog posts about zencoding-vim: - -> - -> - -> - -> - -### tutorial traslated in chinese: - -> - diff --git a/sources_forked/zencoding/TODO b/sources_forked/zencoding/TODO deleted file mode 100755 index e69de29b..00000000 diff --git a/sources_forked/zencoding/TUTORIAL b/sources_forked/zencoding/TUTORIAL deleted file mode 100755 index ad460418..00000000 --- a/sources_forked/zencoding/TUTORIAL +++ /dev/null @@ -1,212 +0,0 @@ -Tutorial of zencoding.vim - - mattn - -1. Expand Abbreviation - - Type abbreviation as 'div>p#foo$*3>a' and type ','. - --------------------- -
-

- -

-

- -

-

- -

-
- --------------------- - -2. Wrap with Abbreviation - - Write as below. - --------------------- - test1 - test2 - test3 - --------------------- - Then do visual select(line wize) and type ','. - If you request 'Tag:', then type 'ul>li*'. - --------------------- -
    -
  • test1
  • -
  • test2
  • -
  • test3
  • -
- --------------------- - - If you type tag as 'blockquote', then you'll see as following. - --------------------- -
- test1 - test2 - test3 -
- --------------------- - -3. Balance Tag Inward - - type 'd' in insert mode. - -4. Balance Tag Outward - - type 'D' in insert mode. - -5. Go to Next Edit Point - - type 'n' in insert mode. - -6. Go to Previous Edit Point - - type 'N' in insert mode. - -7. Update Size - - Move cursor to img tag. - --------------------- - - --------------------- - Type 'i' on img tag - --------------------- - - --------------------- - -8. Merge Lines - - select the lines included '
  • ' - --------------------- -
      -
    • -
    • -
    • -
    - --------------------- - and type 'm' - --------------------- -
      -
    • -
    - --------------------- - -9. Remove Tag - - Move cursor in block - --------------------- - - --------------------- - Type 'k' in insert mode. - --------------------- -
    - -
    - --------------------- - - And type 'k' in there again. - --------------------- - - --------------------- - -10. Split/Join Tag - - Move cursor in block - --------------------- -
    - cursor is here -
    - --------------------- - Type 'j' in insert mode. - --------------------- -
    - --------------------- - - And type 'j' in there again. - --------------------- -
    -
    - --------------------- - -11. Toggle Comment - - Move cursor to block - --------------------- -
    - hello world -
    - --------------------- - Type '/' in insert mode. - --------------------- - - --------------------- - Type '/' in there again. - --------------------- -
    - hello world -
    - --------------------- - -12. Make anchor from URL - - Move cursor to URL - --------------------- - http://www.google.com/ - --------------------- - Type 'a' - --------------------- - Google - --------------------- - -13. Make quoted text from URL - - Move cursor to URL - --------------------- - http://github.com/ - --------------------- - Type 'A' - --------------------- -
    - Secure source code hosting and collaborative development - GitHub
    -

    How does it work? Get up and running in seconds by forking a project, pushing an existing repository...

    - http://github.com/ -
    - --------------------- - -14. Installing zencoding.vim for language you using. - - # cd ~/.vim - # unzip zencoding-vim.zip - - or if you install pathogen.vim: - - # cd ~/.vim/bundle # or make directory - # unzip /path/to/zencoding-vim.zip - - if you get sources from repository: - - # cd ~/.vim/bundle # or make directory - # git clone http://github.com/mattn/zencoding-vim.git - -15. Enable zencoding.vim for language you using. - - You can customize the behavior of language you using. - - --------------------- - # cat >> ~/.vimrc - let g:user_zen_settings = { - \ 'php' : { - \ 'extends' : 'html', - \ 'filters' : 'c', - \ }, - \ 'xml' : { - \ 'extends' : 'html', - \ }, - \ 'haml' : { - \ 'extends' : 'html', - \ }, - \} - --------------------- diff --git a/sources_forked/zencoding/autoload/zencoding.vim b/sources_forked/zencoding/autoload/zencoding.vim deleted file mode 100755 index a6961439..00000000 --- a/sources_forked/zencoding/autoload/zencoding.vim +++ /dev/null @@ -1,1486 +0,0 @@ -"============================================================================= -" zencoding.vim -" Author: Yasuhiro Matsumoto -" Last Change: 09-Apr-2013. - -let s:save_cpo = &cpo -set cpo&vim - -function! zencoding#getExpandos(type, key) - let expandos = zencoding#getResource(a:type, 'expandos', {}) - if has_key(expandos, a:key) - return expandos[a:key] - endif - return a:key -endfunction - -function! zencoding#splitFilterArg(filters) - for f in a:filters - if f =~ '^/' - return f[1:] - endif - endfor - return '' -endfunction - -function! zencoding#useFilter(filters, filter) - for f in a:filters - if a:filter == '/' && f =~ '^/' - return 1 - elseif f == a:filter - return 1 - endif - endfor - return 0 -endfunction - -function! zencoding#getIndentation(...) - if a:0 > 0 - let type = a:1 - else - let type = zencoding#getFileType() - endif - if has_key(s:zen_settings, type) && has_key(s:zen_settings[type], 'indentation') - let indent = s:zen_settings[type].indentation - elseif has_key(s:zen_settings, 'indentation') - let indent = s:zen_settings.indentation - else - let indent = (&l:expandtab || &l:tabstop != &l:shiftwidth) ? repeat(' ', &l:shiftwidth) : "\t" - endif - return indent -endfunction - -function! zencoding#getBaseType(type) - if !has_key(s:zen_settings, a:type) - return '' - endif - if !has_key(s:zen_settings[a:type], 'extends') - return a:type - endif - let extends = s:zen_settings[a:type].extends - if type(extends) == 1 - let tmp = split(extends, '\s*,\s*') - let ext = tmp[0] - else - let ext = extends[0] - endif - if a:type != ext - return zencoding#getBaseType(ext) - endif - return '' -endfunction - -function! zencoding#isExtends(type, extend) - if a:type == a:extend - return 1 - endif - if !has_key(s:zen_settings, a:type) - return 0 - endif - if !has_key(s:zen_settings[a:type], 'extends') - return 0 - endif - let extends = s:zen_settings[a:type].extends - if type(extends) == 1 - let tmp = split(extends, '\s*,\s*') - unlet! extends - let extends = tmp - endif - for ext in extends - if a:extend == ext - return 1 - endif - endfor - return 0 -endfunction - -function! zencoding#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#parseIntoTree(abbr, type) -endfunction - -function! s:mergeConfig(lhs, rhs) - if type(a:lhs) == 3 && type(a:rhs) == 3 - let a:lhs += a:rhs - if len(a:lhs) - call remove(a:lhs, 0, len(a:lhs)-1) - endif - for rhi in a:rhs - call add(a:lhs, a:rhs[rhi]) - endfor - elseif type(a:lhs) == 4 && type(a:rhs) == 4 - for key in keys(a:rhs) - if type(a:rhs[key]) == 3 - if !has_key(a:lhs, key) - let a:lhs[key] = [] - endif - let a:lhs[key] += a:rhs[key] - elseif type(a:rhs[key]) == 4 - if has_key(a:lhs, key) - call s:mergeConfig(a:lhs[key], a:rhs[key]) - else - let a:lhs[key] = a:rhs[key] - endif - else - let a:lhs[key] = a:rhs[key] - endif - endfor - endif -endfunction - -function! zencoding#toString(...) - let current = a:1 - if a:0 > 1 - let type = a:2 - else - let type = &ft - endif - if len(type) == 0 | let type = 'html' | endif - if a:0 > 2 - let inline = a:3 - else - let inline = 0 - endif - if a:0 > 3 - if type(a:4) == 1 - let filters = split(a:4, '\s*,\s*') - else - let filters = a:4 - endif - else - let filters = ['html'] - endif - if a:0 > 4 - let group_itemno = a:5 - else - let group_itemno = 0 - endif - - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let indent = zencoding#getIndentation(type) - let itemno = 0 - let str = '' - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - let rtype = zencoding#lang#exists(type) ? type : 'html' - while itemno < current.multiplier - if len(current.name) - if group_itemno != 0 - let inner = zencoding#lang#{rtype}#toString(s:zen_settings, current, type, inline, filters, group_itemno, indent) - else - let inner = zencoding#lang#{rtype}#toString(s:zen_settings, current, type, inline, filters, itemno, indent) - endif - if current.multiplier > 1 - let inner = substitute(inner, '\$#', '$line'.(itemno+1).'$', 'g') - endif - let str .= inner - else - let snippet = current.snippet - if len(current.snippet) == 0 - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, 'zensnippet') - let snippet = snippets['zensnippet'] - endif - endif - if len(snippet) > 0 - let tmp = snippet - if use_pipe_for_cursor - let tmp = substitute(tmp, '|', '${cursor}', 'g') - endif - let tmp = substitute(tmp, '\${zenname}', current.name, 'g') - let snippet_node = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 0, 'parent': {}, 'value': '{'.tmp.'}', 'pos': 0, 'important': current.important } - let str = zencoding#lang#{rtype}#toString(s:zen_settings, snippet_node, type, inline, filters, group_itemno, indent) - else - if len(current.name) - let str .= current.name - endif - if len(current.value) - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\{$#}' - endif - if zencoding#useFilter(filters, '/') - let spl = zencoding#splitFilterArg(filters) - let fline = getline(a:firstline) - let query = substitute(query, '>\{0,1}{\$#}\s*$', '{\\$column\\$}*' . len(split(fline, spl)), '') - endif - let items = zencoding#parseIntoTree(query, type).child - for item in items - let expand .= zencoding#toString(item, type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - let line = getline(a:firstline) - let part = substitute(line, '^\s*', '', '') - for n in range(a:firstline, a:lastline) - let lline = getline(n) - let lpart = substitute(lline, '^\s\+', '', '') - if zencoding#useFilter(filters, 't') - let lpart = substitute(lpart, '^[0-9.-]\+\s\+', '', '') - let lpart = substitute(lpart, '\s\+$', '', '') - endif - if zencoding#useFilter(filters, '/') - for column in split(lpart, spl) - let expand = substitute(expand, '\$column\$', '\=column', '') - endfor - else - let expand = substitute(expand, '\$line'.(n-a:firstline+1).'\$', '\=lpart', 'g') - endif - endfor - let expand = substitute(expand, '\$line\d*\$', '', 'g') - let expand = substitute(expand, '\$column\$', '', 'g') - let content = join(getline(a:firstline, a:lastline), "\n") - if stridx(expand, '$#') < len(expand)-2 - let expand = substitute(expand, '^\(.*\)\$#\s*$', '\1', '') - endif - let expand = substitute(expand, '\$#', '\=content', 'g') - else - let str = '' - if visualmode() ==# 'V' - let line = getline(a:firstline) - let part = substitute(line, '^\s*', '', '') - for n in range(a:firstline, a:lastline) - if len(leader) > 0 - let str .= getline(n) . "\n" - else - let lpart = substitute(getline(n), '^\s*', '', '') - let str .= lpart . "\n" - endif - endfor - let leader .= (str =~ "\n" ? ">{\n" : "{") . str . "}" - let items = zencoding#parseIntoTree(leader, type).child - else - let save_regcont = @" - let save_regtype = getregtype('"') - silent! normal! gvygv - let str = @" - call setreg('"', save_regcont, save_regtype) - let items = zencoding#parseIntoTree(leader . "{".str."}", type).child - endif - for item in items - let expand .= zencoding#toString(item, type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - endif - elseif a:mode == 4 - let line = getline('.') - let spaces = matchstr(line, '^\s*') - if line !~ '^\s*$' - put =spaces.a:abbr - else - call setline('.', spaces.a:abbr) - endif - normal! $ - call zencoding#expandAbbr(0, "") - return - else - let line = getline('.') - if col('.') < len(line) - let line = matchstr(line, '^\(.*\%'.col('.').'c.\)') - endif - if a:mode == 1 - let part = matchstr(line, '\([a-zA-Z0-9:_\-\@|]\+\)$') - else - let part = matchstr(line, '\(\S.*\)$') - let ftype = zencoding#lang#exists(type) ? type : 'html' - let part = zencoding#lang#{ftype}#findTokens(part) - endif - let rest = getline('.')[len(line):] - let str = part - let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$' - if str =~ mx - let filters = split(matchstr(str, mx)[1:], '\s*,\s*') - let str = substitute(str, mx, '', '') - endif - let items = zencoding#parseIntoTree(str, rtype).child - for item in items - let expand .= zencoding#toString(item, rtype, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - let expand = substitute(expand, '\$line\([0-9]\+\)\$', '\=submatch(1)', 'g') - endif - if len(expand) - if expand !~ '\${cursor}' - if a:mode == 2 | - let expand = '${cursor}' . expand - else - let expand .= '${cursor}' - endif - endif - let expand = substitute(expand, '${lang}', s:zen_settings.lang, 'g') - let expand = substitute(expand, '${charset}', s:zen_settings.charset, 'g') - if has_key(s:zen_settings, 'timezone') && len(s:zen_settings.timezone) - let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S") . s:zen_settings.timezone, 'g') - else - " TODO: on windows, %z/%Z is 'Tokyo(Standard)' - let expand = substitute(expand, '${datetime}', strftime("%Y-%m-%dT%H:%M:%S %z"), 'g') - endif - if a:mode == 2 && visualmode() ==# 'v' - if a:firstline == a:lastline - let expand = substitute(expand, '\n\s*', '', 'g') - else - let expand = substitute(expand, '\n$', '', 'g') - endif - let expand = substitute(expand, '\${cursor}', '$cursor$', '') - let expand = substitute(expand, '\${cursor}', '', 'g') - silent! normal! gv - let col = col("'<") - silent! normal! c - let line = getline('.') - let lhs = matchstr(line, '.*\%<'.col.'c.') - let rhs = matchstr(line, '\%>'.(col-1).'c.*') - let expand = lhs.expand.rhs - let lines = split(expand, '\n') - call setline(line('.'), lines[0]) - if len(lines) > 1 - call append(line('.'), lines[1:]) - endif - else - let expand = substitute(expand, '\${cursor}', '$cursor$', '') - let expand = substitute(expand, '\${cursor}', '', 'g') - if line[:-len(part)-1] =~ '^\s\+$' - let indent = line[:-len(part)-1] - else - let indent = '' - endif - let expand = substitute(expand, '\n\s*$', '', 'g') - let expand = line[:-len(part)-1] . substitute(expand, "\n", "\n" . indent, 'g') . rest - let lines = split(expand, '\n') - if a:mode == 2 - silent! exe "normal! gvc" - endif - call setline(line('.'), lines[0]) - if len(lines) > 1 - call append(line('.'), lines[1:]) - endif - endif - endif - if search('\$cursor\$', 'e') - let oldselection = &selection - let &selection = 'inclusive' - silent! foldopen - silent! exe "normal! v7h\"_s" - let &selection = oldselection - endif - if g:zencoding_debug > 1 - call getchar() - endif -endfunction - -function! zencoding#moveNextPrev(flag) - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#moveNextPrev(a:flag) -endfunction - -function! zencoding#imageSize() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#imageSize() -endfunction - -function! zencoding#encodeImage() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#encodeImage() -endfunction - -function! zencoding#toggleComment() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#toggleComment() -endfunction - -function! zencoding#balanceTag(flag) range - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#balanceTag(a:flag) -endfunction - -function! zencoding#splitJoinTag() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#splitJoinTag() -endfunction - -function! zencoding#mergeLines() range - let lines = join(map(getline(a:firstline, a:lastline), 'matchstr(v:val, "^\\s*\\zs.*\\ze\\s*$")'), '') - let indent = substitute(getline('.'), '^\(\s*\).*', '\1', '') - silent! exe "normal! gvc" - call setline('.', indent . lines) -endfunction - -function! zencoding#removeTag() - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - return zencoding#lang#{rtype}#removeTag() -endfunction - -function! zencoding#anchorizeURL(flag) - let mx = 'https\=:\/\/[-!#$%&*+,./:;=?@0-9a-zA-Z_~]\+' - let pos1 = searchpos(mx, 'bcnW') - let url = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let block = [pos1, [pos1[0], pos1[1] + len(url) - 1]] - if !zencoding#util#cursorInRegion(block) - return - endif - - let mx = '.*]*>\s*\zs\([^<]\+\)\ze\s*<\/title[^>]*>.*' - let content = zencoding#util#getContentFromURL(url) - let content = substitute(content, '\r', '', 'g') - let content = substitute(content, '[ \n]\+', ' ', 'g') - let content = substitute(content, '', '', 'g') - let title = matchstr(content, mx) - - let type = zencoding#getFileType() - let rtype = zencoding#lang#exists(type) ? type : 'html' - if a:flag == 0 - let a = zencoding#lang#html#parseTag('') - let a.attr.href = url - let a.value = '{' . title . '}' - let expand = zencoding#toString(a, rtype, 0, []) - let expand = substitute(expand, '\${cursor}', '', 'g') - else - let body = zencoding#util#getTextFromHTML(content) - let body = '{' . substitute(body, '^\(.\{0,100}\).*', '\1', '') . '...}' - - let blockquote = zencoding#lang#html#parseTag('
    ') - let a = zencoding#lang#html#parseTag('') - let a.attr.href = url - let a.value = '{' . title . '}' - call add(blockquote.child, a) - call add(blockquote.child, zencoding#lang#html#parseTag('
    ')) - let p = zencoding#lang#html#parseTag('

    ') - let p.value = body - call add(blockquote.child, p) - let cite = zencoding#lang#html#parseTag('') - let cite.value = '{' . url . '}' - call add(blockquote.child, cite) - let expand = zencoding#toString(blockquote, rtype, 0, []) - let expand = substitute(expand, '\${cursor}', '', 'g') - endif - let indent = substitute(getline('.'), '^\(\s*\).*', '\1', '') - let expand = substitute(expand, "\n", "\n" . indent, 'g') - call zencoding#util#setContent(block, expand) -endfunction - -function! zencoding#codePretty() range - let type = input('FileType: ', &ft, 'filetype') - if len(type) == 0 - return - endif - let block = zencoding#util#getVisualBlock() - let content = zencoding#util#getContent(block) - silent! 1new - let &l:filetype = type - call setline(1, split(content, "\n")) - let old_lazyredraw = &lazyredraw - set lazyredraw - silent! TOhtml - let &lazyredraw = old_lazyredraw - let content = join(getline(1, '$'), "\n") - silent! bw! - silent! bw! - let content = matchstr(content, ']*>[\s\n]*\zs.*\ze') - call zencoding#util#setContent(block, content) -endfunction - -function! zencoding#ExpandWord(abbr, type, orig) - let mx = '|\(\%(html\|haml\|slim\|e\|c\|fc\|xsl\|t\|\/[^ ]\+\)\s*,\{0,1}\s*\)*$' - let str = a:abbr - let type = a:type - - if len(type) == 0 | let type = 'html' | endif - if str =~ mx - let filters = split(matchstr(str, mx)[1:], '\s*,\s*') - let str = substitute(str, mx, '', '') - elseif has_key(s:zen_settings[a:type], 'filters') - let filters = split(s:zen_settings[a:type].filters, '\s*,\s*') - else - let filters = ['html'] - endif - let items = zencoding#parseIntoTree(str, a:type).child - let expand = '' - for item in items - let expand .= zencoding#toString(item, a:type, 0, filters) - endfor - if zencoding#useFilter(filters, 'e') - let expand = substitute(expand, '&', '\&', 'g') - let expand = substitute(expand, '<', '\<', 'g') - let expand = substitute(expand, '>', '\>', 'g') - endif - if a:orig == 0 - let expand = substitute(expand, '\${lang}', s:zen_settings.lang, 'g') - let expand = substitute(expand, '\${charset}', s:zen_settings.charset, 'g') - let expand = substitute(expand, '\${cursor}', '', 'g') - endif - return expand -endfunction - -function! zencoding#getSnippets(type) - let type = a:type - if len(type) == 0 || !has_key(s:zen_settings, type) - let type = 'html' - endif - return zencoding#getResource(type, 'snippets', {}) -endfunction - -function! zencoding#CompleteTag(findstart, base) - if a:findstart - let line = getline('.') - let start = col('.') - 1 - while start > 0 && line[start - 1] =~ '[a-zA-Z0-9:_\@\-]' - let start -= 1 - endwhile - return start - else - let type = zencoding#getFileType() - let res = [] - - let snippets = zencoding#getResource(type, 'snippets', {}) - for item in keys(snippets) - if stridx(item, a:base) != -1 - call add(res, substitute(item, '\${cursor}\||', '', 'g')) - endif - endfor - let aliases = zencoding#getResource(type, 'aliases', {}) - for item in values(aliases) - if stridx(item, a:base) != -1 - call add(res, substitute(item, '\${cursor}\||', '', 'g')) - endif - endfor - return res - endif -endfunction - -unlet! s:zen_settings -let s:zen_settings = { -\ 'lang': "en", -\ 'charset': "UTF-8", -\ 'css': { -\ 'snippets': { -\ '@i': '@import url(|);', -\ '@m': "@media print {\n\t|\n}", -\ '@f': "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}", -\ '!': '!important', -\ 'pos': 'position:|;', -\ 'pos:s': 'position:static;', -\ 'pos:a': 'position:absolute;', -\ 'pos:r': 'position:relative;', -\ 'pos:f': 'position:fixed;', -\ 't': 'top:|;', -\ 't:a': 'top:auto;', -\ 'r': 'right:|;', -\ 'r:a': 'right:auto;', -\ 'b': 'bottom:|;', -\ 'b:a': 'bottom:auto;', -\ 'l': 'left:|;', -\ 'l:a': 'left:auto;', -\ 'z': 'z-index:|;', -\ 'z:a': 'z-index:auto;', -\ 'fl': 'float:|;', -\ 'fl:n': 'float:none;', -\ 'fl:l': 'float:left;', -\ 'fl:r': 'float:right;', -\ 'cl': 'clear:|;', -\ 'cl:n': 'clear:none;', -\ 'cl:l': 'clear:left;', -\ 'cl:r': 'clear:right;', -\ 'cl:b': 'clear:both;', -\ 'd': 'display:|;', -\ 'd:n': 'display:none;', -\ 'd:b': 'display:block;', -\ 'd:i': 'display:inline;', -\ 'd:ib': 'display:inline-block;', -\ 'd:li': 'display:list-item;', -\ 'd:ri': 'display:run-in;', -\ 'd:cp': 'display:compact;', -\ 'd:tb': 'display:table;', -\ 'd:itb': 'display:inline-table;', -\ 'd:tbcp': 'display:table-caption;', -\ 'd:tbcl': 'display:table-column;', -\ 'd:tbclg': 'display:table-column-group;', -\ 'd:tbhg': 'display:table-header-group;', -\ 'd:tbfg': 'display:table-footer-group;', -\ 'd:tbr': 'display:table-row;', -\ 'd:tbrg': 'display:table-row-group;', -\ 'd:tbc': 'display:table-cell;', -\ 'd:rb': 'display:ruby;', -\ 'd:rbb': 'display:ruby-base;', -\ 'd:rbbg': 'display:ruby-base-group;', -\ 'd:rbt': 'display:ruby-text;', -\ 'd:rbtg': 'display:ruby-text-group;', -\ 'v': 'visibility:|;', -\ 'v:v': 'visibility:visible;', -\ 'v:h': 'visibility:hidden;', -\ 'v:c': 'visibility:collapse;', -\ 'ov': 'overflow:|;', -\ 'ov:v': 'overflow:visible;', -\ 'ov:h': 'overflow:hidden;', -\ 'ov:s': 'overflow:scroll;', -\ 'ov:a': 'overflow:auto;', -\ 'ovx': 'overflow-x:|;', -\ 'ovx:v': 'overflow-x:visible;', -\ 'ovx:h': 'overflow-x:hidden;', -\ 'ovx:s': 'overflow-x:scroll;', -\ 'ovx:a': 'overflow-x:auto;', -\ 'ovy': 'overflow-y:|;', -\ 'ovy:v': 'overflow-y:visible;', -\ 'ovy:h': 'overflow-y:hidden;', -\ 'ovy:s': 'overflow-y:scroll;', -\ 'ovy:a': 'overflow-y:auto;', -\ 'ovs': 'overflow-style:|;', -\ 'ovs:a': 'overflow-style:auto;', -\ 'ovs:s': 'overflow-style:scrollbar;', -\ 'ovs:p': 'overflow-style:panner;', -\ 'ovs:m': 'overflow-style:move;', -\ 'ovs:mq': 'overflow-style:marquee;', -\ 'zoo': 'zoom:1;', -\ 'cp': 'clip:|;', -\ 'cp:a': 'clip:auto;', -\ 'cp:r': 'clip:rect(|);', -\ 'bxz': 'box-sizing:|;', -\ 'bxz:cb': 'box-sizing:content-box;', -\ 'bxz:bb': 'box-sizing:border-box;', -\ 'bxsh': 'box-shadow:|;', -\ 'bxsh:n': 'box-shadow:none;', -\ 'bxsh:w': '-webkit-box-shadow:0 0 0 #000;', -\ 'bxsh:m': '-moz-box-shadow:0 0 0 0 #000;', -\ 'm': 'margin:|;', -\ 'm:a': 'margin:auto;', -\ 'm:0': 'margin:0;', -\ 'm:2': 'margin:0 0;', -\ 'm:3': 'margin:0 0 0;', -\ 'm:4': 'margin:0 0 0 0;', -\ 'mt': 'margin-top:|;', -\ 'mt:a': 'margin-top:auto;', -\ 'mr': 'margin-right:|;', -\ 'mr:a': 'margin-right:auto;', -\ 'mb': 'margin-bottom:|;', -\ 'mb:a': 'margin-bottom:auto;', -\ 'ml': 'margin-left:|;', -\ 'ml:a': 'margin-left:auto;', -\ 'p': 'padding:|;', -\ 'p:0': 'padding:0;', -\ 'p:2': 'padding:0 0;', -\ 'p:3': 'padding:0 0 0;', -\ 'p:4': 'padding:0 0 0 0;', -\ 'pt': 'padding-top:|;', -\ 'pr': 'padding-right:|;', -\ 'pb': 'padding-bottom:|;', -\ 'pl': 'padding-left:|;', -\ 'w': 'width:|;', -\ 'w:a': 'width:auto;', -\ 'h': 'height:|;', -\ 'h:a': 'height:auto;', -\ 'maw': 'max-width:|;', -\ 'maw:n': 'max-width:none;', -\ 'mah': 'max-height:|;', -\ 'mah:n': 'max-height:none;', -\ 'miw': 'min-width:|;', -\ 'mih': 'min-height:|;', -\ 'o': 'outline:|;', -\ 'o:n': 'outline:none;', -\ 'oo': 'outline-offset:|;', -\ 'ow': 'outline-width:|;', -\ 'os': 'outline-style:|;', -\ 'oc': 'outline-color:#000;', -\ 'oc:i': 'outline-color:invert;', -\ 'bd': 'border:|;', -\ 'bd+': 'border:1px solid #000;', -\ 'bd:n': 'border:none;', -\ 'bdbk': 'border-break:|;', -\ 'bdbk:c': 'border-break:close;', -\ 'bdcl': 'border-collapse:|;', -\ 'bdcl:c': 'border-collapse:collapse;', -\ 'bdcl:s': 'border-collapse:separate;', -\ 'bdc': 'border-color:#000;', -\ 'bdi': 'border-image:url(|);', -\ 'bdi:n': 'border-image:none;', -\ 'bdi:w': '-webkit-border-image:url(|) 0 0 0 0 stretch stretch;', -\ 'bdi:m': '-moz-border-image:url(|) 0 0 0 0 stretch stretch;', -\ 'bdti': 'border-top-image:url(|);', -\ 'bdti:n': 'border-top-image:none;', -\ 'bdri': 'border-right-image:url(|);', -\ 'bdri:n': 'border-right-image:none;', -\ 'bdbi': 'border-bottom-image:url(|);', -\ 'bdbi:n': 'border-bottom-image:none;', -\ 'bdli': 'border-left-image:url(|);', -\ 'bdli:n': 'border-left-image:none;', -\ 'bdci': 'border-corner-image:url(|);', -\ 'bdci:n': 'border-corner-image:none;', -\ 'bdci:c': 'border-corner-image:continue;', -\ 'bdtli': 'border-top-left-image:url(|);', -\ 'bdtli:n': 'border-top-left-image:none;', -\ 'bdtli:c': 'border-top-left-image:continue;', -\ 'bdtri': 'border-top-right-image:url(|);', -\ 'bdtri:n': 'border-top-right-image:none;', -\ 'bdtri:c': 'border-top-right-image:continue;', -\ 'bdbri': 'border-bottom-right-image:url(|);', -\ 'bdbri:n': 'border-bottom-right-image:none;', -\ 'bdbri:c': 'border-bottom-right-image:continue;', -\ 'bdbli': 'border-bottom-left-image:url(|);', -\ 'bdbli:n': 'border-bottom-left-image:none;', -\ 'bdbli:c': 'border-bottom-left-image:continue;', -\ 'bdf': 'border-fit:|;', -\ 'bdf:c': 'border-fit:clip;', -\ 'bdf:r': 'border-fit:repeat;', -\ 'bdf:sc': 'border-fit:scale;', -\ 'bdf:st': 'border-fit:stretch;', -\ 'bdf:ow': 'border-fit:overwrite;', -\ 'bdf:of': 'border-fit:overflow;', -\ 'bdf:sp': 'border-fit:space;', -\ 'bdl': 'border-left:|;', -\ 'bdl:a': 'border-length:auto;', -\ 'bdsp': 'border-spacing:|;', -\ 'bds': 'border-style:|;', -\ 'bds:n': 'border-style:none;', -\ 'bds:h': 'border-style:hidden;', -\ 'bds:dt': 'border-style:dotted;', -\ 'bds:ds': 'border-style:dashed;', -\ 'bds:s': 'border-style:solid;', -\ 'bds:db': 'border-style:double;', -\ 'bds:dtds': 'border-style:dot-dash;', -\ 'bds:dtdtds': 'border-style:dot-dot-dash;', -\ 'bds:w': 'border-style:wave;', -\ 'bds:g': 'border-style:groove;', -\ 'bds:r': 'border-style:ridge;', -\ 'bds:i': 'border-style:inset;', -\ 'bds:o': 'border-style:outset;', -\ 'bdw': 'border-width:|;', -\ 'bdt': 'border-top:|;', -\ 'bdt+': 'border-top:1px solid #000;', -\ 'bdt:n': 'border-top:none;', -\ 'bdtw': 'border-top-width:|;', -\ 'bdts': 'border-top-style:|;', -\ 'bdts:n': 'border-top-style:none;', -\ 'bdtc': 'border-top-color:#000;', -\ 'bdr': 'border-right:|;', -\ 'bdr+': 'border-right:1px solid #000;', -\ 'bdr:n': 'border-right:none;', -\ 'bdrw': 'border-right-width:|;', -\ 'bdrt': 'border-right-style:|;', -\ 'bdrs:n': 'border-right-style:none;', -\ 'bdrc': 'border-right-color:#000;', -\ 'bdb': 'border-bottom:|;', -\ 'bdb+': 'border-bottom:1px solid #000;', -\ 'bdb:n': 'border-bottom:none;', -\ 'bdbw': 'border-bottom-width:|;', -\ 'bdbs': 'border-bottom-style:|;', -\ 'bdbs:n': 'border-bottom-style:none;', -\ 'bdbc': 'border-bottom-color:#000;', -\ 'bdln': 'border-length:|;', -\ 'bdl+': 'border-left:1px solid #000;', -\ 'bdl:n': 'border-left:none;', -\ 'bdlw': 'border-left-width:|;', -\ 'bdls': 'border-left-style:|;', -\ 'bdls:n': 'border-left-style:none;', -\ 'bdlc': 'border-left-color:#000;', -\ 'bdrs': 'border-radius:|;', -\ 'bdtrrz': 'border-top-right-radius:|;', -\ 'bdtlrz': 'border-top-left-radius:|;', -\ 'bdbrrz': 'border-bottom-right-radius:|;', -\ 'bdblrz': 'border-bottom-left-radius:|;', -\ 'bdrz:w': '-webkit-border-radius:|;', -\ 'bdrz:m': '-moz-border-radius:|;', -\ 'bg': 'background:|;', -\ 'bg+': 'background:#FFF url(|) 0 0 no-repeat;', -\ 'bg:n': 'background:none;', -\ 'bg:ie': 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=''|x.png'');', -\ 'bgc': 'background-color:#FFF;', -\ 'bgi': 'background-image:url(|);', -\ 'bgi:n': 'background-image:none;', -\ 'bgr': 'background-repeat:|;', -\ 'bgr:n': 'background-repeat:no-repeat;', -\ 'bgr:x': 'background-repeat:repeat-x;', -\ 'bgr:y': 'background-repeat:repeat-y;', -\ 'bga': 'background-attachment:|;', -\ 'bga:f': 'background-attachment:fixed;', -\ 'bga:s': 'background-attachment:scroll;', -\ 'bgp': 'background-position:0 0;', -\ 'bgpx': 'background-position-x:|;', -\ 'bgpy': 'background-position-y:|;', -\ 'bgbk': 'background-break:|;', -\ 'bgbk:bb': 'background-break:bounding-box;', -\ 'bgbk:eb': 'background-break:each-box;', -\ 'bgbk:c': 'background-break:continuous;', -\ 'bgcp': 'background-clip:|;', -\ 'bgcp:bb': 'background-clip:border-box;', -\ 'bgcp:pb': 'background-clip:padding-box;', -\ 'bgcp:cb': 'background-clip:content-box;', -\ 'bgcp:nc': 'background-clip:no-clip;', -\ 'bgo': 'background-origin:|;', -\ 'bgo:pb': 'background-origin:padding-box;', -\ 'bgo:bb': 'background-origin:border-box;', -\ 'bgo:cb': 'background-origin:content-box;', -\ 'bgz': 'background-size:|;', -\ 'bgz:a': 'background-size:auto;', -\ 'bgz:ct': 'background-size:contain;', -\ 'bgz:cv': 'background-size:cover;', -\ 'c': 'color:#000;', -\ 'tbl': 'table-layout:|;', -\ 'tbl:a': 'table-layout:auto;', -\ 'tbl:f': 'table-layout:fixed;', -\ 'cps': 'caption-side:|;', -\ 'cps:t': 'caption-side:top;', -\ 'cps:b': 'caption-side:bottom;', -\ 'ec': 'empty-cells:|;', -\ 'ec:s': 'empty-cells:show;', -\ 'ec:h': 'empty-cells:hide;', -\ 'lis': 'list-style:|;', -\ 'lis:n': 'list-style:none;', -\ 'lisp': 'list-style-position:|;', -\ 'lisp:i': 'list-style-position:inside;', -\ 'lisp:o': 'list-style-position:outside;', -\ 'list': 'list-style-type:|;', -\ 'list:n': 'list-style-type:none;', -\ 'list:d': 'list-style-type:disc;', -\ 'list:c': 'list-style-type:circle;', -\ 'list:s': 'list-style-type:square;', -\ 'list:dc': 'list-style-type:decimal;', -\ 'list:dclz': 'list-style-type:decimal-leading-zero;', -\ 'list:lr': 'list-style-type:lower-roman;', -\ 'list:ur': 'list-style-type:upper-roman;', -\ 'lisi': 'list-style-image:|;', -\ 'lisi:n': 'list-style-image:none;', -\ 'q': 'quotes:|;', -\ 'q:n': 'quotes:none;', -\ 'q:ru': 'quotes:''\00AB'' ''\00BB'' ''\201E'' ''\201C'';', -\ 'q:en': 'quotes:''\201C'' ''\201D'' ''\2018'' ''\2019'';', -\ 'ct': 'content:|;', -\ 'ct:n': 'content:normal;', -\ 'ct:oq': 'content:open-quote;', -\ 'ct:noq': 'content:no-open-quote;', -\ 'ct:cq': 'content:close-quote;', -\ 'ct:ncq': 'content:no-close-quote;', -\ 'ct:a': 'content:attr(|);', -\ 'ct:c': 'content:counter(|);', -\ 'ct:cs': 'content:counters(|);', -\ 'coi': 'counter-increment:|;', -\ 'cor': 'counter-reset:|;', -\ 'va': 'vertical-align:|;', -\ 'va:sup': 'vertical-align:super;', -\ 'va:t': 'vertical-align:top;', -\ 'va:tt': 'vertical-align:text-top;', -\ 'va:m': 'vertical-align:middle;', -\ 'va:bl': 'vertical-align:baseline;', -\ 'va:b': 'vertical-align:bottom;', -\ 'va:tb': 'vertical-align:text-bottom;', -\ 'va:sub': 'vertical-align:sub;', -\ 'ta': 'text-align:|;', -\ 'ta:l': 'text-align:left;', -\ 'ta:c': 'text-align:center;', -\ 'ta:r': 'text-align:right;', -\ 'tal': 'text-align-last:|;', -\ 'tal:a': 'text-align-last:auto;', -\ 'tal:l': 'text-align-last:left;', -\ 'tal:c': 'text-align-last:center;', -\ 'tal:r': 'text-align-last:right;', -\ 'td': 'text-decoration:|;', -\ 'td:n': 'text-decoration:none;', -\ 'td:u': 'text-decoration:underline;', -\ 'td:o': 'text-decoration:overline;', -\ 'td:l': 'text-decoration:line-through;', -\ 'te': 'text-emphasis:|;', -\ 'te:n': 'text-emphasis:none;', -\ 'te:ac': 'text-emphasis:accent;', -\ 'te:dt': 'text-emphasis:dot;', -\ 'te:c': 'text-emphasis:circle;', -\ 'te:ds': 'text-emphasis:disc;', -\ 'te:b': 'text-emphasis:before;', -\ 'te:a': 'text-emphasis:after;', -\ 'th': 'text-height:|;', -\ 'th:a': 'text-height:auto;', -\ 'th:f': 'text-height:font-size;', -\ 'th:t': 'text-height:text-size;', -\ 'th:m': 'text-height:max-size;', -\ 'ti': 'text-indent:|;', -\ 'ti:-': 'text-indent:-9999px;', -\ 'tj': 'text-justify:|;', -\ 'tj:a': 'text-justify:auto;', -\ 'tj:iw': 'text-justify:inter-word;', -\ 'tj:ii': 'text-justify:inter-ideograph;', -\ 'tj:ic': 'text-justify:inter-cluster;', -\ 'tj:d': 'text-justify:distribute;', -\ 'tj:k': 'text-justify:kashida;', -\ 'tj:t': 'text-justify:tibetan;', -\ 'to': 'text-outline:|;', -\ 'to+': 'text-outline:0 0 #000;', -\ 'to:n': 'text-outline:none;', -\ 'tr': 'text-replace:|;', -\ 'tr:n': 'text-replace:none;', -\ 'tt': 'text-transform:|;', -\ 'tt:n': 'text-transform:none;', -\ 'tt:c': 'text-transform:capitalize;', -\ 'tt:u': 'text-transform:uppercase;', -\ 'tt:l': 'text-transform:lowercase;', -\ 'tw': 'text-wrap:|;', -\ 'tw:n': 'text-wrap:normal;', -\ 'tw:no': 'text-wrap:none;', -\ 'tw:u': 'text-wrap:unrestricted;', -\ 'tw:s': 'text-wrap:suppress;', -\ 'tsh': 'text-shadow:|;', -\ 'tsh+': 'text-shadow:0 0 0 #000;', -\ 'tsh:n': 'text-shadow:none;', -\ 'lh': 'line-height:|;', -\ 'whs': 'white-space:|;', -\ 'whs:n': 'white-space:normal;', -\ 'whs:p': 'white-space:pre;', -\ 'whs:nw': 'white-space:nowrap;', -\ 'whs:pw': 'white-space:pre-wrap;', -\ 'whs:pl': 'white-space:pre-line;', -\ 'whsc': 'white-space-collapse:|;', -\ 'whsc:n': 'white-space-collapse:normal;', -\ 'whsc:k': 'white-space-collapse:keep-all;', -\ 'whsc:l': 'white-space-collapse:loose;', -\ 'whsc:bs': 'white-space-collapse:break-strict;', -\ 'whsc:ba': 'white-space-collapse:break-all;', -\ 'wob': 'word-break:|;', -\ 'wob:n': 'word-break:normal;', -\ 'wob:k': 'word-break:keep-all;', -\ 'wob:l': 'word-break:loose;', -\ 'wob:bs': 'word-break:break-strict;', -\ 'wob:ba': 'word-break:break-all;', -\ 'wos': 'word-spacing:|;', -\ 'wow': 'word-wrap:|;', -\ 'wow:nm': 'word-wrap:normal;', -\ 'wow:n': 'word-wrap:none;', -\ 'wow:u': 'word-wrap:unrestricted;', -\ 'wow:s': 'word-wrap:suppress;', -\ 'lts': 'letter-spacing:|;', -\ 'f': 'font:|;', -\ 'f+': 'font:1em Arial,sans-serif;', -\ 'fw': 'font-weight:|;', -\ 'fw:n': 'font-weight:normal;', -\ 'fw:b': 'font-weight:bold;', -\ 'fw:br': 'font-weight:bolder;', -\ 'fw:lr': 'font-weight:lighter;', -\ 'fs': 'font-style:|;', -\ 'fs:n': 'font-style:normal;', -\ 'fs:i': 'font-style:italic;', -\ 'fs:o': 'font-style:oblique;', -\ 'fv': 'font-variant:|;', -\ 'fv:n': 'font-variant:normal;', -\ 'fv:sc': 'font-variant:small-caps;', -\ 'fz': 'font-size:|;', -\ 'fza': 'font-size-adjust:|;', -\ 'fza:n': 'font-size-adjust:none;', -\ 'ff': 'font-family:|;', -\ 'ff:s': 'font-family:serif;', -\ 'ff:ss': 'font-family:sans-serif;', -\ 'ff:c': 'font-family:cursive;', -\ 'ff:f': 'font-family:fantasy;', -\ 'ff:m': 'font-family:monospace;', -\ 'fef': 'font-effect:|;', -\ 'fef:n': 'font-effect:none;', -\ 'fef:eg': 'font-effect:engrave;', -\ 'fef:eb': 'font-effect:emboss;', -\ 'fef:o': 'font-effect:outline;', -\ 'fem': 'font-emphasize:|;', -\ 'femp': 'font-emphasize-position:|;', -\ 'femp:b': 'font-emphasize-position:before;', -\ 'femp:a': 'font-emphasize-position:after;', -\ 'fems': 'font-emphasize-style:|;', -\ 'fems:n': 'font-emphasize-style:none;', -\ 'fems:ac': 'font-emphasize-style:accent;', -\ 'fems:dt': 'font-emphasize-style:dot;', -\ 'fems:c': 'font-emphasize-style:circle;', -\ 'fems:ds': 'font-emphasize-style:disc;', -\ 'fsm': 'font-smooth:|;', -\ 'fsm:a': 'font-smooth:auto;', -\ 'fsm:n': 'font-smooth:never;', -\ 'fsm:aw': 'font-smooth:always;', -\ 'fst': 'font-stretch:|;', -\ 'fst:n': 'font-stretch:normal;', -\ 'fst:uc': 'font-stretch:ultra-condensed;', -\ 'fst:ec': 'font-stretch:extra-condensed;', -\ 'fst:c': 'font-stretch:condensed;', -\ 'fst:sc': 'font-stretch:semi-condensed;', -\ 'fst:se': 'font-stretch:semi-expanded;', -\ 'fst:e': 'font-stretch:expanded;', -\ 'fst:ee': 'font-stretch:extra-expanded;', -\ 'fst:ue': 'font-stretch:ultra-expanded;', -\ 'op': 'opacity:|;', -\ 'op:ie': 'filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);', -\ 'op:ms': '-ms-filter:''progid:DXImageTransform.Microsoft.Alpha(Opacity=100)'';', -\ 'rz': 'resize:|;', -\ 'rz:n': 'resize:none;', -\ 'rz:b': 'resize:both;', -\ 'rz:h': 'resize:horizontal;', -\ 'rz:v': 'resize:vertical;', -\ 'cur': 'cursor:|;', -\ 'cur:a': 'cursor:auto;', -\ 'cur:d': 'cursor:default;', -\ 'cur:c': 'cursor:crosshair;', -\ 'cur:ha': 'cursor:hand;', -\ 'cur:he': 'cursor:help;', -\ 'cur:m': 'cursor:move;', -\ 'cur:p': 'cursor:pointer;', -\ 'cur:t': 'cursor:text;', -\ 'pgbb': 'page-break-before:|;', -\ 'pgbb:au': 'page-break-before:auto;', -\ 'pgbb:al': 'page-break-before:always;', -\ 'pgbb:l': 'page-break-before:left;', -\ 'pgbb:r': 'page-break-before:right;', -\ 'pgbi': 'page-break-inside:|;', -\ 'pgbi:au': 'page-break-inside:auto;', -\ 'pgbi:av': 'page-break-inside:avoid;', -\ 'pgba': 'page-break-after:|;', -\ 'pgba:au': 'page-break-after:auto;', -\ 'pgba:al': 'page-break-after:always;', -\ 'pgba:l': 'page-break-after:left;', -\ 'pgba:r': 'page-break-after:right;', -\ 'orp': 'orphans:|;', -\ 'wid': 'widows:|;' -\ }, -\ 'filters': 'fc' -\ }, -\ 'sass': { -\ 'extends': 'css', -\ 'snippets': { -\ '@if': "@if {\n\t|\n}", -\ '@e': "@else {\n\t|\n}", -\ '@in': "@include |", -\ '@ex': "@extend |", -\ '@mx': "@mixin {\n\t|\n}", -\ '@fn': "@function {\n\t|\n}", -\ '@r': "@return |", -\ }, -\ }, -\ 'scss': { -\ 'extends': 'css', -\ }, -\ 'less': { -\ 'extends': 'css', -\ }, -\ 'css.drupal': { -\ 'extends': 'css', -\ }, -\ 'html': { -\ 'snippets': { -\ 'cc:ie6': "", -\ 'cc:ie': "", -\ 'cc:noie': "\n\t${child}|\n", -\ 'html:4t': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:4s': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xt': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xs': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:xxs': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."", -\ 'html:5': "\n" -\ ."\n" -\ ."\n" -\ ."\t\n" -\ ."\t\n" -\ ."\n" -\ ."\n\t${child}|\n\n" -\ ."" -\ }, -\ 'default_attributes': { -\ 'a': {'href': ''}, -\ 'a:link': {'href': 'http://|'}, -\ 'a:mail': {'href': 'mailto:|'}, -\ 'abbr': {'title': ''}, -\ 'acronym': {'title': ''}, -\ 'base': {'href': ''}, -\ 'bdo': {'dir': ''}, -\ 'bdo:r': {'dir': 'rtl'}, -\ 'bdo:l': {'dir': 'ltr'}, -\ 'del': {'datetime': '${datetime}'}, -\ 'ins': {'datetime': '${datetime}'}, -\ 'link:css': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|style.css'}, {'media': 'all'}], -\ 'link:print': [{'rel': 'stylesheet'}, {'type': 'text/css'}, {'href': '|print.css'}, {'media': 'print'}], -\ 'link:favicon': [{'rel': 'shortcut icon'}, {'type': 'image/x-icon'}, {'href': '|favicon.ico'}], -\ 'link:touch': [{'rel': 'apple-touch-icon'}, {'href': '|favicon.png'}], -\ 'link:rss': [{'rel': 'alternate'}, {'type': 'application/rss+xml'}, {'title': 'RSS'}, {'href': '|rss.xml'}], -\ 'link:atom': [{'rel': 'alternate'}, {'type': 'application/atom+xml'}, {'title': 'Atom'}, {'href': 'atom.xml'}], -\ 'meta:utf': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=UTF-8'}], -\ 'meta:win': [{'http-equiv': 'Content-Type'}, {'content': 'text/html;charset=Win-1251'}], -\ 'meta:compat': [{'http-equiv': 'X-UA-Compatible'}, {'content': 'IE=7'}], -\ 'style': {'type': 'text/css'}, -\ 'script': {'type': 'text/javascript'}, -\ 'script:src': [{'type': 'text/javascript'}, {'src': ''}], -\ 'img': [{'src': ''}, {'alt': ''}], -\ 'iframe': [{'src': ''}, {'frameborder': '0'}], -\ 'embed': [{'src': ''}, {'type': ''}], -\ 'object': [{'data': ''}, {'type': ''}], -\ 'param': [{'name': ''}, {'value': ''}], -\ 'map': {'name': ''}, -\ 'area': [{'shape': ''}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:d': [{'shape': 'default'}, {'href': ''}, {'alt': ''}], -\ 'area:c': [{'shape': 'circle'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:r': [{'shape': 'rect'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'area:p': [{'shape': 'poly'}, {'coords': ''}, {'href': ''}, {'alt': ''}], -\ 'link': [{'rel': 'stylesheet'}, {'href': ''}], -\ 'form': {'action': ''}, -\ 'form:get': {'action': '', 'method': 'get'}, -\ 'form:post': {'action': '', 'method': 'post'}, -\ 'form:upload': {'action': '', 'method': 'post', 'enctype': 'multipart/form-data'}, -\ 'label': {'for': ''}, -\ 'input': {'type': ''}, -\ 'input:hidden': [{'type': 'hidden'}, {'name': ''}], -\ 'input:h': [{'type': 'hidden'}, {'name': ''}], -\ 'input:text': [{'type': 'text'}, {'name': ''}, {'id': ''}], -\ 'input:t': [{'type': 'text'}, {'name': ''}, {'id': ''}], -\ 'input:search': [{'type': 'search'}, {'name': ''}, {'id': ''}], -\ 'input:email': [{'type': 'email'}, {'name': ''}, {'id': ''}], -\ 'input:url': [{'type': 'url'}, {'name': ''}, {'id': ''}], -\ 'input:password': [{'type': 'password'}, {'name': ''}, {'id': ''}], -\ 'input:p': [{'type': 'password'}, {'name': ''}, {'id': ''}], -\ 'input:datetime': [{'type': 'datetime'}, {'name': ''}, {'id': ''}], -\ 'input:date': [{'type': 'date'}, {'name': ''}, {'id': ''}], -\ 'input:datetime-local': [{'type': 'datetime-local'}, {'name': ''}, {'id': ''}], -\ 'input:month': [{'type': 'month'}, {'name': ''}, {'id': ''}], -\ 'input:week': [{'type': 'week'}, {'name': ''}, {'id': ''}], -\ 'input:time': [{'type': 'time'}, {'name': ''}, {'id': ''}], -\ 'input:number': [{'type': 'number'}, {'name': ''}, {'id': ''}], -\ 'input:color': [{'type': 'color'}, {'name': ''}, {'id': ''}], -\ 'input:checkbox': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], -\ 'input:c': [{'type': 'checkbox'}, {'name': ''}, {'id': ''}], -\ 'input:radio': [{'type': 'radio'}, {'name': ''}, {'id': ''}], -\ 'input:r': [{'type': 'radio'}, {'name': ''}, {'id': ''}], -\ 'input:range': [{'type': 'range'}, {'name': ''}, {'id': ''}], -\ 'input:file': [{'type': 'file'}, {'name': ''}, {'id': ''}], -\ 'input:f': [{'type': 'file'}, {'name': ''}, {'id': ''}], -\ 'input:submit': [{'type': 'submit'}, {'value': ''}], -\ 'input:s': [{'type': 'submit'}, {'value': ''}], -\ 'input:image': [{'type': 'image'}, {'src': ''}, {'alt': ''}], -\ 'input:i': [{'type': 'image'}, {'src': ''}, {'alt': ''}], -\ 'input:reset': [{'type': 'reset'}, {'value': ''}], -\ 'input:button': [{'type': 'button'}, {'value': ''}], -\ 'input:b': [{'type': 'button'}, {'value': ''}], -\ 'select': [{'name': ''}, {'id': ''}], -\ 'option': {'value': ''}, -\ 'textarea': [{'name': ''}, {'id': ''}, {'cols': '30'}, {'rows': '10'}], -\ 'menu:context': {'type': 'context'}, -\ 'menu:c': {'type': 'context'}, -\ 'menu:toolbar': {'type': 'toolbar'}, -\ 'menu:t': {'type': 'toolbar'}, -\ 'video': {'src': ''}, -\ 'audio': {'src': ''}, -\ 'html:xml': [{'xmlns': 'http://www.w3.org/1999/xhtml'}, {'xml:lang': '${lang}'}] -\ }, -\ 'aliases': { -\ 'link:*': 'link', -\ 'meta:*': 'meta', -\ 'area:*': 'area', -\ 'bdo:*': 'bdo', -\ 'form:*': 'form', -\ 'input:*': 'input', -\ 'script:*': 'script', -\ 'html:*': 'html', -\ 'a:*': 'a', -\ 'menu:*': 'menu', -\ 'bq': 'blockquote', -\ 'acr': 'acronym', -\ 'fig': 'figure', -\ 'ifr': 'iframe', -\ 'emb': 'embed', -\ 'obj': 'object', -\ 'src': 'source', -\ 'cap': 'caption', -\ 'colg': 'colgroup', -\ 'fst': 'fieldset', -\ 'btn': 'button', -\ 'optg': 'optgroup', -\ 'opt': 'option', -\ 'tarea': 'textarea', -\ 'leg': 'legend', -\ 'sect': 'section', -\ 'art': 'article', -\ 'hdr': 'header', -\ 'ftr': 'footer', -\ 'adr': 'address', -\ 'dlg': 'dialog', -\ 'str': 'strong', -\ 'sty': 'style', -\ 'prog': 'progress', -\ 'fset': 'fieldset', -\ 'datag': 'datagrid', -\ 'datal': 'datalist', -\ 'kg': 'keygen', -\ 'out': 'output', -\ 'det': 'details', -\ 'cmd': 'command' -\ }, -\ 'expandos': { -\ 'ol': 'ol>li', -\ 'ul': 'ul>li', -\ 'dl': 'dl>dt+dd', -\ 'map': 'map>area', -\ 'table': 'table>tr>td', -\ 'colgroup': 'colgroup>col', -\ 'colg': 'colgroup>col', -\ 'tr': 'tr>td', -\ 'select': 'select>option', -\ 'optgroup': 'optgroup>option', -\ 'optg': 'optgroup>option' -\ }, -\ 'empty_elements': 'area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,keygen,command', -\ 'block_elements': 'address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6', -\ 'inline_elements': 'a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var', -\ 'empty_element_suffix': ' />' -\ }, -\ 'htmldjango': { -\ 'extends': 'html', -\ }, -\ 'html.django_template': { -\ 'extends': 'html', -\ }, -\ 'xsl': { -\ 'extends': 'html', -\ 'default_attributes': { -\ 'tmatch': [{'match': ''}, {'mode': ''}], -\ 'tname': [{'name': ''}], -\ 'xsl:when': {'test': ''}, -\ 'var': [{'name': ''}, {'select': ''}], -\ 'vari': {'name': ''}, -\ 'if': {'test': ''}, -\ 'call': {'name': ''}, -\ 'attr': {'name': ''}, -\ 'wp': [{'name': ''}, {'select': ''}], -\ 'par': [{'name': ''}, {'select': ''}], -\ 'val': {'select': ''}, -\ 'co': {'select': ''}, -\ 'each': {'select': ''}, -\ 'ap': [{'select': ''}, {'mode': ''}] -\ }, -\ 'aliases': { -\ 'tmatch': 'xsl:template', -\ 'tname': 'xsl:template', -\ 'var': 'xsl:variable', -\ 'vari': 'xsl:variable', -\ 'if': 'xsl:if', -\ 'choose': 'xsl:choose', -\ 'call': 'xsl:call-template', -\ 'wp': 'xsl:with-param', -\ 'par': 'xsl:param', -\ 'val': 'xsl:value-of', -\ 'attr': 'xsl:attribute', -\ 'co' : 'xsl:copy-of', -\ 'each' : 'xsl:for-each', -\ 'ap' : 'xsl:apply-templates' -\ }, -\ 'expandos': { -\ 'choose': 'xsl:choose>xsl:when+xsl:otherwise' -\ } -\ }, -\ 'xslt': { -\ 'extends': 'xsl', -\ }, -\ 'haml': { -\ 'indentation': ' ', -\ 'extends': 'html', -\ 'snippets': { -\ 'html:5': "!!! 5\n" -\ ."%html{:lang => \"${lang}\"}\n" -\ ."\t%head\n" -\ ."\t\t%meta{:charset => \"${charset}\"}\n" -\ ."\t\t%title\n" -\ ."\t%body\n" -\ ."\t\t${child}|\n" -\ }, -\ }, -\ 'slim': { -\ 'indentation': ' ', -\ 'extends': 'html', -\ 'snippets': { -\ 'html:5': "doctype 5\n" -\ ."html lang=\"${lang}\"\n" -\ ."\thead\n" -\ ."\t\tmeta charset=\"${charset}\"\n" -\ ."\t\ttitle\n" -\ ."\tbody\n" -\ ."\t\t${child}|\n" -\ }, -\ }, -\ 'xhtml': { -\ 'extends': 'html' -\ }, -\ 'mustache': { -\ 'extends': 'html' -\ }, -\ 'xsd': { -\ 'extends': 'html', -\ 'snippets': { -\ 'xsd:w3c': "\n" -\ ."\n" -\ ."\t\n" -\ ."\n" -\ } -\ } -\} - -if exists('g:user_zen_settings') - call s:mergeConfig(s:zen_settings, g:user_zen_settings) -endif - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim:set et: diff --git a/sources_forked/zencoding/autoload/zencoding/lang.vim b/sources_forked/zencoding/autoload/zencoding/lang.vim deleted file mode 100755 index a9735991..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang.vim +++ /dev/null @@ -1,11 +0,0 @@ -let s:exists = {} -function zencoding#lang#exists(type) - if len(a:type) == 0 - return 0 - elseif has_key(s:exists, a:type) - return s:exists[a:type] - endif - let s:exists[a:type] = len(globpath(&rtp, 'autoload/zencoding/lang/'.a:type.'.vim')) > 0 - return s:exists[a:type] -endfunction - diff --git a/sources_forked/zencoding/autoload/zencoding/lang/css.vim b/sources_forked/zencoding/autoload/zencoding/lang/css.vim deleted file mode 100755 index 5b1c1182..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/css.vim +++ /dev/null @@ -1,228 +0,0 @@ -function! zencoding#lang#css#findTokens(str) - return substitute(a:str, '^.*[;{]\s*', '', '') -endfunction - -function! zencoding#lang#css#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - let prefix = 0 - let value = '' - - let settings = zencoding#getSettings() - let indent = zencoding#getIndentation(type) - - let root = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0 } - - " emmet - let tokens = split(abbr, '+\ze[^)!]') - for n in range(len(tokens)) - let token = tokens[n] - let prop = matchlist(token, '^\(-\{0,1}[a-zA-Z]\+\|[a-zA-Z0-9]\++\{0,1}\|([a-zA-Z0-9]\++\{0,1})\)\(\%([0-9.-]\+[pe]\{0,1}-\{0,1}\|-auto\)*\)$') - if len(prop) - let token = substitute(prop[1], '^(\(.*\))', '\1', '') - if token =~ '^-' - let prefix = 1 - let token = token[1:] - endif - let value = '' - for v in split(prop[2], '\d\zs-') - if len(value) > 0 - let value .= ' ' - endif - if token =~ '^[z]' - " TODO - let value .= substitute(v, '[^0-9.]*$', '', '') - elseif v =~ 'p$' - let value .= substitute(v, 'p$', '%', '') - elseif v =~ 'e$' - let value .= substitute(v, 'e$', 'em', '') - elseif v =~ '\.' - let value .= v . 'em' - elseif v == 'auto' - let value .= v - else - let value .= v . 'px' - endif - endfor - endif - - let tag_name = token - if tag_name =~ '.!$' - let tag_name = tag_name[:-2] - let important = 1 - else - let important = 0 - endif - " make default node - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': important } - let current.name = tag_name - - " aliases - let aliases = zencoding#getResource(type, 'aliases', {}) - if has_key(aliases, tag_name) - let current.name = aliases[tag_name] - endif - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - - " snippets - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, tag_name) - let snippet = snippets[tag_name] - if use_pipe_for_cursor - let snippet = substitute(snippet, '|', '${cursor}', 'g') - endif - let lines = split(snippet, "\n") - call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", escape(indent, "\\\\"), "g")') - let current.snippet = join(lines, "\n") - let current.name = '' - let current.snippet = substitute(current.snippet, ';', value . ';', '') - if use_pipe_for_cursor && len(value) > 0 && stridx(value, '${cursor}') == -1 - let current.snippet = substitute(current.snippet, '${cursor}', '', 'g') . '${cursor}' - endif - if n < len(tokens) - 1 - let current.snippet .= "\n" - endif - endif - - let current.pos = 0 - let lg = matchlist(token, '^\%(linear-gradient\|lg\)(\s*\(\w\+\)\s*,\s*\([^,]\+\)\s*,\s*\([^)]\+\)\s*)$') - if len(lg) - let current.name = '' - let current.snippet = printf("background-image: -webkit-gradient(%s, 0 0, 0 100%, from(%s), to(%s));\n", lg[1], lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -webkit-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -moz-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: -o-linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - let current.snippet = printf("background-image: linear-gradient(%s, %s);\n", lg[2], lg[3]) - call add(root.child, deepcopy(current)) - elseif prefix - let snippet = current.snippet - let current.snippet = '-webkit-' . snippet . "\n" - call add(root.child, deepcopy(current)) - let current.snippet = '-moz-' . snippet . "\n" - call add(root.child, deepcopy(current)) - let current.snippet = snippet - call add(root.child, current) - else - call add(root.child, current) - endif - endfor - return root -endfunction - -function! zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - let current = a:current - let value = current.value[1:-2] - if zencoding#useFilter(a:filters, 'fc') - let value = substitute(value, '\([^:]\+\):\([^;]*;\)', '\1: \2', 'g') - else - let value = substitute(value, '\([^:]\+\):\([^;]*;\)', '\1:\2', 'g') - endif - if current.important - let value = substitute(value, ';', ' !important;', '') - endif - return value -endfunction - -function! zencoding#lang#css#imageSize() -endfunction - -function! zencoding#lang#css#encodeImage() -endfunction - -function! zencoding#lang#css#parseTag(tag) - return {} -endfunction - -function! zencoding#lang#css#toggleComment() - let line = getline('.') - let mx = '^\(\s*\)/\*\s*\(.*\)\s*\*/\s*$' - if line =~ '{\s*$' - let block = zencoding#util#searchRegion('/\*', '\*/\zs') - if zencoding#util#regionIsValid(block) - let content = zencoding#util#getContent(block) - let content = substitute(content, '/\*\s\(.*\)\s\*/', '\1', '') - call zencoding#util#setContent(block, content) - else - let node = expand('') - if len(node) - exe "normal ciw\='/* '.node.' */'\" - endif - endif - else - if line =~ mx - let space = substitute(matchstr(line, mx), mx, '\1', '') - let line = substitute(matchstr(line, mx), mx, '\2', '') - let line = space . substitute(line, '^\s*\|\s*$', '\1', 'g') - else - let mx = '^\(\s*\)\(.*\)\s*$' - let line = substitute(line, mx, '\1/* \2 */', '') - endif - call setline('.', line) - endif -endfunction - -function! zencoding#lang#css#balanceTag(flag) range - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let block = zencoding#util#getVisualBlock() - if !zencoding#util#regionIsValid(block) - if a:flag > 0 - let block = zencoding#util#searchRegion('^', ';') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - else - if a:flag > 0 - let content = zencoding#util#getContent(block) - if content !~ '^{.*}$' - let block = zencoding#util#searchRegion('{', '}') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - else - let pos = searchpos('.*;', 'nW') - if pos[0] != 0 - call setpos('.', [0, pos[0], pos[1], 0]) - let block = zencoding#util#searchRegion('^', ';') - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - endif - endif - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - else - call setpos('.', curpos) - endif -endfunction - -function! zencoding#lang#css#moveNextPrev(flag) - let pos = search('""\|()\|\(:\s*\zs$\)', a:flag ? 'Wbp' : 'Wp') - if pos == 2 - startinsert! - else - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#css#splitJoinTag() - " nothing to do -endfunction - -function! zencoding#lang#css#removeTag() - " nothing to do -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/haml.vim b/sources_forked/zencoding/autoload/zencoding/lang/haml.vim deleted file mode 100755 index be421c1c..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/haml.vim +++ /dev/null @@ -1,310 +0,0 @@ -function! zencoding#lang#haml#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#haml#parseIntoTree(abbr, type) - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) -endfunction - -function! zencoding#lang#haml#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let str = "" - - let comment_indent = '' - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current.name, '\$$', itemno+1, '') - endif - if len(current.name) > 0 - let str .= '%' . current_name - let tmp = '' - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - endif - let valtmp = substitute(val, '\${cursor}', '', '') - if attr == 'id' && len(valtmp) > 0 - let str .= '#' . val - elseif attr == 'class' && len(valtmp) > 0 - let str .= '.' . substitute(val, ' ', '.', 'g') - else - if len(tmp) > 0 | let tmp .= ',' | endif - let val = substitute(val, '\${cursor}', '', '') - let tmp .= ' :' . attr . ' => "' . val . '"' - endif - endfor - if len(tmp) - let str .= '{' . tmp . ' }' - endif - if stridx(','.settings.html.empty_elements.',', ','.current_name.',') != -1 && len(current.value) == 0 - let str .= "/" - endif - - let inner = '' - if len(current.value) > 0 - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= "\n" . indent . inner - endif - else - let str = current.value[1:-2] - if dollar_expr - let str = substitute(str, '\%(\\\)\@\\s*\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)' - while len(attrs) > 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#haml#toggleComment() - let line = getline('.') - let space = matchstr(line, '^\s*') - if line =~ '^\s*-#' - call setline('.', space . matchstr(line[len(space)+2:], '^\s*\zs.*')) - elseif line =~ '^\s*%[a-z]' - call setline('.', space . '-# ' . line[len(space):]) - endif -endfunction - -function! zencoding#lang#haml#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze%[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#haml#moveNextPrev(flag) - let pos = search('""', a:flag ? 'Wb' : 'W') - if pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#haml#splitJoinTag() - let n = line('.') - let sml = len(matchstr(getline(n), '^\s*%[a-z]')) - while n > 0 - if getline(n) =~ '^\s*\ze%[a-z]' - if len(matchstr(getline(n), '^\s*%[a-z]')) < sml - break - endif - let line = getline(n) - call setline(n, substitute(line, '^\s*%\w\+\%(\s*{[^}]*}\|\s\)\zs.*', '', '')) - let sn = n - let n += 1 - let ml = len(matchstr(getline(n), '^\s*%[a-z]')) - if len(matchstr(getline(n), '^\s*')) > ml - while n <= line('$') - let l = len(matchstr(getline(n), '^\s*')) - if l <= ml - break - endif - exe n "delete" - endwhile - call setpos('.', [0, sn, 1, 0]) - else - let tag = matchstr(getline(sn), '^\s*%\zs\(\w\+\)') - let spaces = matchstr(getline(sn), '^\s*') - let settings = zencoding#getSettings() - if stridx(','.settings.html.inline_elements.',', ','.tag.',') == -1 - call append(sn, spaces . ' ') - call setpos('.', [0, sn+1, 1, 0]) - else - call setpos('.', [0, sn, 1, 0]) - endif - startinsert! - endif - break - endif - let n -= 1 - endwhile -endfunction - -function! zencoding#lang#haml#removeTag() - let n = line('.') - let ml = 0 - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let ml = len(matchstr(getline(n), '^\s*%[a-z]')) - break - endif - let n -= 1 - endwhile - let sn = n - while n < line('$') - let l = len(matchstr(getline(n), '^\s*%[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - if sn == n - exe "delete" - else - exe sn "," (n-1) "delete" - endif -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/html.vim b/sources_forked/zencoding/autoload/zencoding/lang/html.vim deleted file mode 100755 index d7a1e634..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/html.vim +++ /dev/null @@ -1,692 +0,0 @@ -let s:mx = '\([+>]\|[<^]\+\)\{-}\s*' -\ .'\((*\)\{-}\s*' -\ .'\([@#.]\{-}[a-zA-Z\!][a-zA-Z0-9:_\!\-$]*\|{\%([^$}]\+\|\$#\|\${\w\+}\|\$\+\)*}[ \t\r\n}]*\)' -\ .'\(' -\ .'\%(' -\ .'\%(#{[{}a-zA-Z0-9_\-\$]\+\|#[a-zA-Z0-9_\-\$]\+\)' -\ .'\|\%(\[[^\]]\+\]\)' -\ .'\|\%(\.{[{}a-zA-Z0-9_\-\$]\+\|\.[a-zA-Z0-9_\-\$]\+\)' -\ .'\)*' -\ .'\)' -\ .'\%(\({\%([^$}]\+\|\$#\|\${\w\+}\|\$\+\)*}\)\)\{0,1}' -\ .'\%(\*\([0-9]\+\)\)\{0,1}' -\ .'\(\%()\%(\*[0-9]\+\)\{0,1}\)*\)' - -function! zencoding#lang#html#findTokens(str) - let str = a:str - let [pos, last_pos] = [0, 0] - while 1 - let tag = matchstr(str, '<[a-zA-Z].\{-}>', pos) - if len(tag) == 0 - break - endif - let pos = stridx(str, tag, pos) + len(tag) - endwhile - let last_pos = pos - while len(str) > 0 - let token = matchstr(str, s:mx, pos) - if token == '' - break - endif - if token =~ '^\s' - let token = matchstr(token, '^\s*\zs.*') - let last_pos = stridx(str, token, pos) - endif - let pos = stridx(str, token, pos) + len(token) - endwhile - return a:str[last_pos :-1] -endfunction - -function! zencoding#lang#html#parseIntoTree(abbr, type) - let abbr = a:abbr - let type = a:type - - let settings = zencoding#getSettings() - if !has_key(settings, type) - let type = 'html' - endif - if len(type) == 0 | let type = 'html' | endif - - let settings = zencoding#getSettings() - let indent = zencoding#getIndentation(type) - - " try 'foo' to (foo-x) - let rabbr = zencoding#getExpandos(type, abbr) - if rabbr == abbr - " try 'foo+(' to (foo-x) - let rabbr = substitute(abbr, '\%(+\|^\)\([a-zA-Z][a-zA-Z0-9+]\+\)+\([(){}>]\|$\)', '\="(".zencoding#getExpandos(type, submatch(1)).")".submatch(2)', 'i') - endif - let abbr = rabbr - - let root = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] } - let parent = root - let last = root - let pos = [] - while len(abbr) - " parse line - let match = matchstr(abbr, s:mx) - let str = substitute(match, s:mx, '\0', 'ig') - let operator = substitute(match, s:mx, '\1', 'ig') - let block_start = substitute(match, s:mx, '\2', 'ig') - let tag_name = substitute(match, s:mx, '\3', 'ig') - let attributes = substitute(match, s:mx, '\4', 'ig') - let value = substitute(match, s:mx, '\5', 'ig') - let multiplier = 0 + substitute(match, s:mx, '\6', 'ig') - let block_end = substitute(match, s:mx, '\7', 'ig') - let important = 0 - if len(str) == 0 - break - endif - if tag_name =~ '^#' - let attributes = tag_name . attributes - let tag_name = 'div' - endif - if tag_name =~ '.!$' - let tag_name = tag_name[:-2] - let important = 1 - endif - if tag_name =~ '^\.' - let attributes = tag_name . attributes - let tag_name = 'div' - endif - if multiplier <= 0 | let multiplier = 1 | endif - - " make default node - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'important': 0, 'attrs_order': ['id', 'class'] } - let current.name = tag_name - - let current.important = important - - " aliases - let aliases = zencoding#getResource(type, 'aliases', {}) - if has_key(aliases, tag_name) - let current.name = aliases[tag_name] - endif - - let use_pipe_for_cursor = zencoding#getResource(type, 'use_pipe_for_cursor', 1) - - " snippets - let snippets = zencoding#getResource(type, 'snippets', {}) - if !empty(snippets) && has_key(snippets, tag_name) - let snippet = snippets[tag_name] - if use_pipe_for_cursor - let snippet = substitute(snippet, '|', '${cursor}', 'g') - endif - let lines = split(snippet, "\n") - call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", escape(indent, "\\\\"), "g")') - let current.snippet = join(lines, "\n") - let current.name = '' - endif - - " default_attributes - let default_attributes = zencoding#getResource(type, 'default_attributes', {}) - if !empty(default_attributes) - for pat in [current.name, tag_name] - if has_key(default_attributes, pat) - if type(default_attributes[pat]) == 4 - let a = default_attributes[pat] - let current.attrs_order += keys(a) - if use_pipe_for_cursor - for k in keys(a) - let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' - endfor - else - for k in keys(a) - let current.attr[k] = a[k] - endfor - endif - else - for a in default_attributes[pat] - let current.attrs_order += keys(a) - if use_pipe_for_cursor - for k in keys(a) - let current.attr[k] = len(a[k]) ? substitute(a[k], '|', '${cursor}', 'g') : '${cursor}' - endfor - else - for k in keys(a) - let current.attr[k] = a[k] - endfor - endif - endfor - endif - if has_key(settings.html.default_attributes, current.name) - let current.name = substitute(current.name, ':.*$', '', '') - endif - break - endif - endfor - endif - - " parse attributes - if len(attributes) - let attr = attributes - while len(attr) - let item = matchstr(attr, '\(\%(\%(#[{}a-zA-Z0-9_\-\$]\+\)\|\%(\[[^\]]\+\]\)\|\%(\.[{}a-zA-Z0-9_\-\$]\+\)*\)\)') - if len(item) == 0 - break - endif - if item[0] == '#' - let current.attr.id = item[1:] - endif - if item[0] == '.' - let current.attr.class = substitute(item[1:], '\.', ' ', 'g') - endif - if item[0] == '[' - let atts = item[1:-2] - while len(atts) - let amat = matchstr(atts, '\(\w\+\%(="[^"]*"\|=''[^'']*''\|[^ ''"\]]*\)\{0,1}\)') - if len(amat) == 0 - break - endif - let key = split(amat, '=')[0] - let val = amat[len(key)+1:] - if val =~ '^["'']' - let val = val[1:-2] - endif - let current.attr[key] = val - if index(current.attrs_order, key) == -1 - let current.attrs_order += [key] - endif - let atts = atts[stridx(atts, amat) + len(amat):] - endwhile - endif - let attr = substitute(strpart(attr, len(item)), '^\s*', '', '') - endwhile - endif - - " parse text - if tag_name =~ '^{.*}$' - let current.name = '' - let current.value = tag_name - else - let current.value = value - endif - let current.multiplier = multiplier - - " parse step inside/outside - if !empty(last) - if operator =~ '>' - unlet! parent - let parent = last - let current.parent = last - let current.pos = last.pos + 1 - else - let current.parent = parent - let current.pos = last.pos - endif - else - let current.parent = parent - let current.pos = 1 - endif - if operator =~ '[<^]' - for c in range(len(operator)) - let tmp = parent.parent - if empty(tmp) - break - endif - let parent = tmp - let current.parent = tmp - endfor - endif - - call add(parent.child, current) - let last = current - - " parse block - if block_start =~ '(' - if operator =~ '>' - let last.pos += 1 - endif - for n in range(len(block_start)) - let pos += [last.pos] - endfor - endif - if block_end =~ ')' - for n in split(substitute(substitute(block_end, ' ', '', 'g'), ')', ',),', 'g'), ',') - if n == ')' - if len(pos) > 0 && last.pos >= pos[-1] - for c in range(last.pos - pos[-1]) - let tmp = parent.parent - if !has_key(tmp, 'parent') - break - endif - let parent = tmp - endfor - if len(pos) > 0 - call remove(pos, -1) - endif - let last = parent - let last.pos += 1 - endif - elseif len(n) - let cl = last.child - let cls = [] - for c in range(n[1:]) - let cls += cl - endfor - let last.child = cls - endif - endfor - endif - let abbr = abbr[stridx(abbr, match) + len(match):] - - if g:zencoding_debug > 1 - echomsg "str=".str - echomsg "block_start=".block_start - echomsg "tag_name=".tag_name - echomsg "operator=".operator - echomsg "attributes=".attributes - echomsg "value=".value - echomsg "multiplier=".multiplier - echomsg "block_end=".block_end - echomsg "abbr=".abbr - echomsg "pos=".string(pos) - echomsg "---" - endif - endwhile - return root -endfunction - -function! zencoding#lang#html#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - - if zencoding#useFilter(filters, 'haml') - return zencoding#lang#haml#toString(settings, current, type, inline, filters, itemno, indent) - endif - if zencoding#useFilter(filters, 'slim') - return zencoding#lang#slim#toString(settings, current, type, inline, filters, itemno, indent) - endif - - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current_name, '\$$', itemno+1, '') - endif - - let str = '' - if len(current_name) == 0 - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - let str .= '<' . current_name - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - endif - let str .= ' ' . attr . '="' . val . '"' - if zencoding#useFilter(filters, 'c') - if attr == 'id' | let comment .= '#' . val | endif - if attr == 'class' | let comment .= '.' . val | endif - endif - endfor - if len(comment) > 0 - let str = "\n" . str - endif - if stridx(','.settings.html.empty_elements.',', ','.current_name.',') != -1 - let str .= settings.html.empty_element_suffix - else - let str .= ">" - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for n in range(nc) - let child = current.child[n] - if child.multiplier > 1 - let str .= "\n" . indent - let dr = 1 - elseif len(current_name) > 0 && stridx(','.settings.html.inline_elements.',', ','.current_name.',') == -1 - if nc > 1 || (len(child.name) > 0 && stridx(','.settings.html.inline_elements.',', ','.child.name.',') == -1) - let str .= "\n" . indent - let dr = 1 - elseif current.multiplier == 1 && nc == 1 && len(child.name) == 0 - let str .= "\n" . indent - let dr = 1 - endif - endif - let inner = zencoding#toString(child, type, 0, filters, itemno) - let inner = substitute(inner, "^\n", "", 'g') - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g') - let str .= inner - endfor - else - let str .= '${cursor}' - endif - if dr - let str .= "\n" - endif - let str .= "" - endif - if len(comment) > 0 - let str .= "\n" - endif - if len(current_name) > 0 && current.multiplier > 0 || stridx(','.settings.html.block_elements.',', ','.current_name.',') != -1 - let str .= "\n" - endif - return str -endfunction - -function! zencoding#lang#html#imageSize() - let img_region = zencoding#util#searchRegion('') - if !zencoding#util#regionIsValid(img_region) || !zencoding#util#cursorInRegion(img_region) - return - endif - let content = zencoding#util#getContent(img_region) - if content !~ '^<]\+>$' - return - endif - let current = zencoding#lang#html#parseTag(content) - if empty(current) || !has_key(current.attr, 'src') - return - endif - let fn = current.attr.src - if fn =~ '^\s*$' - return - elseif fn !~ '^\(/\|http\)' - let fn = simplify(expand('%:h') . '/' . fn) - endif - - let [width, height] = zencoding#util#getImageSize(fn) - if width == -1 && height == -1 - return - endif - let current.attr.width = width - let current.attr.height = height - let current.attrs_order += ['width', 'height'] - let html = substitute(zencoding#toString(current, 'html', 1), '\n', '', '') - let html = substitute(html, '\${cursor}', '', '') - call zencoding#util#setContent(img_region, html) -endfunction - -function! zencoding#lang#html#encodeImage() - let img_region = zencoding#util#searchRegion('') - if !zencoding#util#regionIsValid(img_region) || !zencoding#util#cursorInRegion(img_region) - return - endif - let content = zencoding#util#getContent(img_region) - if content !~ '^<]\+>$' - return - endif - let current = zencoding#lang#html#parseTag(content) - if empty(current) || !has_key(current.attr, 'src') - return - endif - let fn = current.attr.src - if fn !~ '^\(/\|http\)' - let fn = simplify(expand('%:h') . '/' . fn) - endif - - let [width, height] = zencoding#util#getImageSize(fn) - if width == -1 && height == -1 - return - endif - let current.attr.width = width - let current.attr.height = height - let html = zencoding#toString(current, 'html', 1) - call zencoding#util#setContent(img_region, html) -endfunction - -function! zencoding#lang#html#parseTag(tag) - let current = { 'name': '', 'attr': {}, 'child': [], 'snippet': '', 'multiplier': 1, 'parent': {}, 'value': '', 'pos': 0, 'attrs_order': [] } - let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\%([^"'' \t]\+\|"[^"]\{-}"\|''[^'']\{-}''\)\s*\)*\)\(/\{0,1}\)>' - let match = matchstr(a:tag, mx) - let current.name = substitute(match, mx, '\1', 'i') - let attrs = substitute(match, mx, '\2', 'i') - let mx = '\([a-zA-Z0-9]\+\)=\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)' - while len(attrs) > 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#html#toggleComment() - let orgpos = getpos('.') - let curpos = getpos('.') - let mx = '<\%#[^>]*>' - while 1 - let block = zencoding#util#searchRegion('') - if zencoding#util#regionIsValid(block) - let block[1][1] += 2 - let content = zencoding#util#getContent(block) - let content = substitute(content, '^$', '\1', '') - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - let block = zencoding#util#searchRegion('<[^>]', '>') - if !zencoding#util#regionIsValid(block) - let pos1 = searchpos('<', 'bcW') - if pos1[0] == 0 && pos1[1] == 0 - return - endif - let curpos = getpos('.') - continue - endif - let pos1 = block[0] - let pos2 = block[1] - let content = zencoding#util#getContent(block) - let tag_name = matchstr(content, '^<\zs/\{0,1}[^ \r\n>]\+') - if tag_name[0] == '/' - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpairpos('<'. tag_name[1:] . '>', '', '', 'bnW') - let pos1 = searchpos('>', 'cneW') - let block = [pos2, pos1] - elseif tag_name =~ '/$' - if !zencoding#util#pointInRegion(orgpos[1:2], block) - " it's broken tree - call setpos('.', orgpos) - let block = zencoding#util#searchRegion('>', '<') - let content = '><' - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - else - call setpos('.', [0, pos2[0], pos2[1], 0]) - let pos2 = searchpairpos('<'. tag_name . '>', '', '', 'nW') - call setpos('.', [0, pos2[0], pos2[1], 0]) - let pos2 = searchpos('>', 'neW') - let block = [pos1, pos2] - endif - if !zencoding#util#regionIsValid(block) - silent! call setpos('.', orgpos) - return - endif - if zencoding#util#pointInRegion(curpos[1:2], block) - let content = '' - call zencoding#util#setContent(block, content) - silent! call setpos('.', orgpos) - return - endif - endwhile -endfunction - -function! zencoding#lang#html#balanceTag(flag) range - let vblock = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let settings = zencoding#getSettings() - - if a:flag > 0 - let mx = '<\([a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - while 1 - let pos1 = searchpos(mx, 'bW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = matchstr(content, '^<\zs[a-zA-Z0-9:_\-]*\ze') - if stridx(','.settings.html.empty_elements.',', ','.tag_name.',') != -1 - let pos2 = searchpos('>', 'nW') - else - let pos2 = searchpairpos('<' . tag_name . '[^>]*>', '', '\zs', 'nW') - endif - let block = [pos1, pos2] - if pos1[0] == 0 && pos1[1] == 0 - break - endif - if zencoding#util#pointInRegion(curpos[1:2], block) && zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endwhile - else - let mx = '<\([a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - while 1 - let pos1 = searchpos(mx, 'W') - if pos1 == curpos[1:2] - let pos1 = searchpos(mx . '\zs', 'W') - let pos2 = searchpos('.\ze<', 'W') - let block = [pos1, pos2] - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = matchstr(content, '^<\zs[a-zA-Z0-9:_\-]*\ze') - if stridx(','.settings.html.empty_elements.',', ','.tag_name.',') != -1 - let pos2 = searchpos('>', 'nW') - else - let pos2 = searchpairpos('<' . tag_name . '[^>]*>', '', '\zs', 'nW') - endif - let block = [pos1, pos2] - if pos1[0] == 0 && pos1[1] == 0 - break - endif - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endwhile - endif - call setpos('.', curpos) - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - endif -endfunction - -function! zencoding#lang#html#moveNextPrev(flag) - let pos = search('\%(<\/\|\(""\)\|^\(\s*\)$', a:flag ? 'Wpb' : 'Wp') - if pos == 3 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#html#splitJoinTag() - let curpos = getpos('.') - while 1 - let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - let pos1 = searchpos(mx, 'bcnW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\).*$', '\1', '') - let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] - if content[-2:] == '/>' && zencoding#util#cursorInRegion(block) - let content = content[:-3] . ">' - call zencoding#util#setContent(block, content) - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if tag_name[0] == '/' - let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpos('', 'cneW') - else - let pos2 = searchpos('', 'cneW') - endif - let block = [pos1, pos2] - let content = zencoding#util#getContent(block) - if zencoding#util#pointInRegion(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' - let content = matchstr(content, mx)[:-2] . '/>' - call zencoding#util#setContent(block, content) - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if block[0][0] > 0 - call setpos('.', [0, block[0][0]-1, block[0][1], 0]) - else - call setpos('.', curpos) - return - endif - endif - endif - endwhile -endfunction - -function! zencoding#lang#html#removeTag() - let curpos = getpos('.') - while 1 - let mx = '<\(/\{0,1}[a-zA-Z][a-zA-Z0-9:_\-]*\)[^>]*>' - let pos1 = searchpos(mx, 'bcnW') - let content = matchstr(getline(pos1[0])[pos1[1]-1:], mx) - let tag_name = substitute(content, '^<\(/\{0,1}[a-zA-Z0-9:_\-]*\).*$', '\1', '') - let block = [pos1, [pos1[0], pos1[1] + len(content) - 1]] - if content[-2:] == '/>' && zencoding#util#cursorInRegion(block) - call zencoding#util#setContent(block, '') - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if tag_name[0] == '/' - let pos1 = searchpos('<' . tag_name[1:] . '[^a-zA-Z0-9]', 'bcnW') - call setpos('.', [0, pos1[0], pos1[1], 0]) - let pos2 = searchpos('', 'cneW') - else - let pos2 = searchpos('', 'cneW') - endif - let block = [pos1, pos2] - let content = zencoding#util#getContent(block) - if zencoding#util#pointInRegion(curpos[1:2], block) && content[1:] !~ '<' . tag_name . '[^a-zA-Z0-9]*[^>]*>' - call zencoding#util#setContent(block, '') - call setpos('.', [0, block[0][0], block[0][1], 0]) - return - else - if block[0][0] > 0 - call setpos('.', [0, block[0][0]-1, block[0][1], 0]) - else - call setpos('.', curpos) - return - endif - endif - endif - endwhile -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/sass.vim b/sources_forked/zencoding/autoload/zencoding/lang/sass.vim deleted file mode 100755 index 6b89b893..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/sass.vim +++ /dev/null @@ -1,158 +0,0 @@ -function! zencoding#lang#sass#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#sass#parseIntoTree(abbr, type) - if a:abbr =~ '>' - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) - else - return zencoding#lang#css#parseIntoTree(a:abbr, a:type) - endif -endfunction - -function! zencoding#lang#sass#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let str = "" - - let current_name = current.name - let current_name = substitute(current.name, '\$$', itemno+1, '') - if len(current.name) > 0 - let str .= current_name - let tmp = '' - for attr in keys(current.attr) - let val = current.attr[attr] - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - if attr == 'id' - let str .= '#' . val - elseif attr == 'class' - let str .= '.' . val - else - let tmp .= attr . ': ' . val - endif - endfor - if len(tmp) > 0 - let str .= "\n" - for line in split(tmp, "\n") - let str .= indent . line . "\n" - endfor - else - let str .= "\n" - endif - - let inner = '' - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . indent, 'g') - let inner = substitute(inner, "\n" . indent . "$", "", 'g') - let str .= indent . inner - else - let text = zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - let text = substitute(text, '\${cursor}', '', 'g') - let text = substitute(text, '\s*;$', '', '') - return text - endif - return str -endfunction - -function! zencoding#lang#sass#imageSize() -endfunction - -function! zencoding#lang#sass#encodeImage() -endfunction - -function! zencoding#lang#sass#parseTag(tag) -endfunction - -function! zencoding#lang#sass#toggleComment() -endfunction - -function! zencoding#lang#sass#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#sass#moveNextPrev(flag) - let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp') - if pos == 2 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#sass#splitJoinTag() -endfunction - -function! zencoding#lang#sass#removeTag() -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/scss.vim b/sources_forked/zencoding/autoload/zencoding/lang/scss.vim deleted file mode 100755 index 39890af2..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/scss.vim +++ /dev/null @@ -1,121 +0,0 @@ -function! zencoding#lang#scss#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#scss#parseIntoTree(abbr, type) - if a:abbr =~ '>' - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) - else - return zencoding#lang#css#parseIntoTree(a:abbr, a:type) - endif -endfunction - -function! zencoding#lang#scss#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let str = "" - - let current_name = substitute(current.name, '\$$', itemno+1, '') - if len(current.name) > 0 - let str .= current_name - let tmp = '' - for attr in keys(current.attr) - let val = current.attr[attr] - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - let attr = substitute(attr, '\$$', itemno+1, '') - if attr == 'id' - let str .= '#' . val - elseif attr == 'class' - let str .= '.' . val - else - let tmp .= attr . ': ' . val . ';' - endif - endfor - if len(tmp) > 0 - let str .= " {\n" - for line in split(tmp, "\n") - let str .= indent . line . "\n" - endfor - else - let str .= " {\n" - endif - - let inner = '' - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= indent . inner . "\n}\n" - else - return zencoding#lang#css#toString(settings, current, type, inline, filters, itemno, indent) - endif - return str -endfunction - -function! zencoding#lang#scss#imageSize() - call zencoding#lang#css#imageSize() -endfunction - -function! zencoding#lang#scss#encodeImage() - return zencoding#lang#css#encodeImage() -endfunction - -function! zencoding#lang#scss#parseTag(tag) - return zencoding#lang#css#parseTag(a:tag) -endfunction - -function! zencoding#lang#scss#toggleComment() - call zencoding#lang#css#toggleComment() -endfunction - -function! zencoding#lang#scss#balanceTag(flag) range - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - call setpos('.', curpos) - else - let curpos = getpos('.') - endif - if a:flag < 0 - let ret = searchpair('}', '', '.\zs{') - else - let ret = searchpair('{', '', '}', 'bW') - endif - if ret > 0 - let pos1 = getpos('.')[1:2] - if a:flag < 0 - let pos2 = searchpairpos('{', '', '}') - else - let pos2 = searchpairpos('{', '', '}') - endif - let block = [pos1, pos2] - if zencoding#util#regionIsValid(block) - call zencoding#util#selectRegion(block) - return - endif - endif - if a:flag == -2 || a:flag == 2 - silent! exe "normal! gv" - else - call setpos('.', curpos) - endif -endfunction - -function! zencoding#lang#scss#moveNextPrev(flag) - call zencoding#lang#css#moveNextPrev(a:flag) -endfunction - -function! zencoding#lang#scss#splitJoinTag() - call zencoding#lang#css#splitJoinTag() -endfunction - -function! zencoding#lang#scss#removeTag() - call zencoding#lang#ss#removeTag() -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/lang/slim.vim b/sources_forked/zencoding/autoload/zencoding/lang/slim.vim deleted file mode 100755 index 15bc968c..00000000 --- a/sources_forked/zencoding/autoload/zencoding/lang/slim.vim +++ /dev/null @@ -1,276 +0,0 @@ -function! zencoding#lang#slim#findTokens(str) - return zencoding#lang#html#findTokens(a:str) -endfunction - -function! zencoding#lang#slim#parseIntoTree(abbr, type) - return zencoding#lang#html#parseIntoTree(a:abbr, a:type) -endfunction - -function! zencoding#lang#slim#toString(settings, current, type, inline, filters, itemno, indent) - let settings = a:settings - let current = a:current - let type = a:type - let inline = a:inline - let filters = a:filters - let itemno = a:itemno - let indent = a:indent - let dollar_expr = zencoding#getResource(type, 'dollar_expr', 1) - let str = "" - - let comment_indent = '' - let comment = '' - let current_name = current.name - if dollar_expr - let current_name = substitute(current.name, '\$$', itemno+1, '') - endif - if len(current.name) > 0 - let str .= current_name - for attr in current.attrs_order - if !has_key(current.attr, attr) - continue - endif - let val = current.attr[attr] - if dollar_expr - while val =~ '\$\([^#{]\|$\)' - let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g') - endwhile - endif - let attr = substitute(attr, '\$$', itemno+1, '') - let str .= ' ' . attr . '="' . val . '"' - endfor - - let inner = '' - if len(current.value) > 0 - let str .= "\n" - let text = current.value[1:-2] - if dollar_expr - let text = substitute(text, '\%(\\\)\@\ 0 - for child in current.child - let inner .= zencoding#toString(child, type, inline, filters, itemno) - endfor - let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g') - let inner = substitute(inner, "\n" . escape(indent, '\') . "$", "", 'g') - let str .= "\n" . indent . inner - endif - else - let str = current.value[1:-2] - if dollar_expr - let str = substitute(str, '\%(\\\)\@\ 0 - let match = matchstr(attrs, mx) - if len(match) == 0 - break - endif - let attr_match = matchlist(match, mx) - let name = attr_match[1] - let value = len(attr_match[2]) ? attr_match[2] : attr_match[3] - let current.attr[name] = value - let current.attrs_order += [name] - let attrs = attrs[stridx(attrs, match) + len(match):] - endwhile - return current -endfunction - -function! zencoding#lang#slim#toggleComment() - let line = getline('.') - let space = matchstr(line, '^\s*') - if line =~ '^\s*/' - call setline('.', space . line[len(space)+1:]) - elseif line =~ '^\s*[a-z]' - call setline('.', space . '/' . line[len(space):]) - endif -endfunction - -function! zencoding#lang#slim#balanceTag(flag) range - let block = zencoding#util#getVisualBlock() - if a:flag == -2 || a:flag == 2 - let curpos = [0, line("'<"), col("'<"), 0] - else - let curpos = getpos('.') - endif - let n = curpos[1] - let ml = len(matchstr(getline(n), '^\s*')) - - if a:flag > 0 - if a:flag == 1 || !zencoding#util#regionIsValid(block) - let n = line('.') - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l < ml - let ml = l - break - endif - let n -= 1 - endwhile - endif - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - else - while n > 0 - let l = len(matchstr(getline(n), '^\s*\ze[a-z]')) - if l > 0 && l > ml - let ml = l - break - endif - let n += 1 - endwhile - let sn = n - if n == 0 - let ml = 0 - endif - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - call setpos('.', [0, n, 1, 0]) - normal! V - call setpos('.', [0, sn, 1, 0]) - endif -endfunction - -function! zencoding#lang#slim#moveNextPrev(flag) - let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp') - if pos == 2 - startinsert! - elseif pos != 0 - silent! normal! l - startinsert - endif -endfunction - -function! zencoding#lang#slim#splitJoinTag() - let n = line('.') - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let sn = n - let n += 1 - if getline(n) =~ '^\s*|' - while n <= line('$') - if getline(n) !~ '^\s*|' - break - endif - exe n "delete" - endwhile - call setpos('.', [0, sn, 1, 0]) - else - let spaces = matchstr(getline(sn), '^\s*') - call append(sn, spaces . ' | ') - call setpos('.', [0, sn+1, 1, 0]) - startinsert! - endif - break - endif - let n -= 1 - endwhile -endfunction - -function! zencoding#lang#slim#removeTag() - let n = line('.') - let ml = 0 - while n > 0 - if getline(n) =~ '^\s*\ze[a-z]' - let ml = len(matchstr(getline(n), '^\s*[a-z]')) - break - endif - let n -= 1 - endwhile - let sn = n - while n < line('$') - let l = len(matchstr(getline(n), '^\s*[a-z]')) - if l > 0 && l <= ml - let n -= 1 - break - endif - let n += 1 - endwhile - if sn == n - exe "delete" - else - exe sn "," (n-1) "delete" - endif -endfunction diff --git a/sources_forked/zencoding/autoload/zencoding/util.vim b/sources_forked/zencoding/autoload/zencoding/util.vim deleted file mode 100755 index 5a028c97..00000000 --- a/sources_forked/zencoding/autoload/zencoding/util.vim +++ /dev/null @@ -1,249 +0,0 @@ -"============================================================================== -" region utils -"============================================================================== -" deleteContent : delete content in region -" if region make from between '' and '' -" -------------------- -" begin: -" :end -" -------------------- -" this function make the content as following -" -------------------- -" begin::end -" -------------------- -function! zencoding#util#deleteContent(region) - let lines = getline(a:region[0][0], a:region[1][0]) - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) - silent! exe "delete ".(a:region[1][0] - a:region[0][0]) - call setline(line('.'), lines[0][:a:region[0][1]-2] . lines[-1][a:region[1][1]]) -endfunction - -" change_content : change content in region -" if region make from between '' and '' -" -------------------- -" begin: -" :end -" -------------------- -" and content is -" -------------------- -" foo -" bar -" baz -" -------------------- -" this function make the content as following -" -------------------- -" begin:foo -" bar -" baz:end -" -------------------- -function! zencoding#util#setContent(region, content) - let newlines = split(a:content, '\n', 1) - let oldlines = getline(a:region[0][0], a:region[1][0]) - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) - silent! exe "delete ".(a:region[1][0] - a:region[0][0]) - if len(newlines) == 0 - let tmp = '' - if a:region[0][1] > 1 - let tmp = oldlines[0][:a:region[0][1]-2] - endif - if a:region[1][1] >= 1 - let tmp .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), tmp) - elseif len(newlines) == 1 - if a:region[0][1] > 1 - let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] - endif - if a:region[1][1] >= 1 - let newlines[0] .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), newlines[0]) - else - if a:region[0][1] > 1 - let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0] - endif - if a:region[1][1] >= 1 - let newlines[-1] .= oldlines[-1][a:region[1][1]:] - endif - call setline(line('.'), newlines[0]) - call append(line('.'), newlines[1:]) - endif -endfunction - -" select_region : select region -" this function make a selection of region -function! zencoding#util#selectRegion(region) - call setpos('.', [0, a:region[1][0], a:region[1][1], 0]) - normal! v - call setpos('.', [0, a:region[0][0], a:region[0][1], 0]) -endfunction - -" point_in_region : check point is in the region -" this function return 0 or 1 -function! zencoding#util#pointInRegion(point, region) - if !zencoding#util#regionIsValid(a:region) | return 0 | endif - if a:region[0][0] > a:point[0] | return 0 | endif - if a:region[1][0] < a:point[0] | return 0 | endif - if a:region[0][0] == a:point[0] && a:region[0][1] > a:point[1] | return 0 | endif - if a:region[1][0] == a:point[0] && a:region[1][1] < a:point[1] | return 0 | endif - return 1 -endfunction - -" cursor_in_region : check cursor is in the region -" this function return 0 or 1 -function! zencoding#util#cursorInRegion(region) - if !zencoding#util#regionIsValid(a:region) | return 0 | endif - let cur = getpos('.')[1:2] - return zencoding#util#pointInRegion(cur, a:region) -endfunction - -" region_is_valid : check region is valid -" this function return 0 or 1 -function! zencoding#util#regionIsValid(region) - if a:region[0][0] == 0 || a:region[1][0] == 0 | return 0 | endif - return 1 -endfunction - -" search_region : make region from pattern which is composing start/end -" this function return array of position -function! zencoding#util#searchRegion(start, end) - return [searchpairpos(a:start, '', a:end, 'bcnW'), searchpairpos(a:start, '\%#', a:end, 'nW')] -endfunction - -" get_content : get content in region -" this function return string in region -function! zencoding#util#getContent(region) - if !zencoding#util#regionIsValid(a:region) - return '' - endif - let lines = getline(a:region[0][0], a:region[1][0]) - if a:region[0][0] == a:region[1][0] - let lines[0] = lines[0][a:region[0][1]-1:a:region[1][1]-1] - else - let lines[0] = lines[0][a:region[0][1]-1:] - let lines[-1] = lines[-1][:a:region[1][1]-1] - endif - return join(lines, "\n") -endfunction - -" region_in_region : check region is in the region -" this function return 0 or 1 -function! zencoding#util#regionInRegion(outer, inner) - if !zencoding#util#regionIsValid(a:inner) || !zencoding#util#regionIsValid(a:outer) - return 0 - endif - return zencoding#util#pointInRegion(a:inner[0], a:outer) && zencoding#util#pointInRegion(a:inner[1], a:outer) -endfunction - -" get_visualblock : get region of visual block -" this function return region of visual block -function! zencoding#util#getVisualBlock() - return [[line("'<"), col("'<")], [line("'>"), col("'>")]] -endfunction - -"============================================================================== -" html utils -"============================================================================== -function! zencoding#util#getContentFromURL(url) - let res = system(printf("%s %s", g:zencoding_curl_command, shellescape(substitute(a:url, '#.*', '', '')))) - let s1 = len(split(res, '?')) - let utf8 = iconv(res, 'utf-8', &encoding) - let s2 = len(split(utf8, '?')) - return (s2 == s1 || s2 >= s1 * 2) ? utf8 : res -endfunction - -function! zencoding#util#getTextFromHTML(buf) - let threshold_len = 100 - let threshold_per = 0.1 - let buf = a:buf - - let buf = strpart(buf, stridx(buf, '')) - let buf = substitute(buf, ']*>.\{-}', '', 'g') - let buf = substitute(buf, ']*>.\{-}', '', 'g') - let res = '' - let max = 0 - let mx = '\(]\{-}>\)\|\(<\/td>\)\|\(]\{-}>\)\|\(<\/div>\)' - let m = split(buf, mx) - for str in m - let c = split(str, '<[^>]*?>') - let str = substitute(str, '<[^>]\{-}>', ' ', 'g') - let str = substitute(str, '>', '>', 'g') - let str = substitute(str, '<', '<', 'g') - let str = substitute(str, '"', '"', 'g') - let str = substitute(str, ''', "'", 'g') - let str = substitute(str, ' ', ' ', 'g') - let str = substitute(str, '¥', '\¥', 'g') - let str = substitute(str, '&', '\&', 'g') - let str = substitute(str, '^\s*\(.*\)\s*$', '\1', '') - let str = substitute(str, '\s\+', ' ', 'g') - let l = len(str) - if l > threshold_len - let per = (l+0.0) / len(c) - if max < l && per > threshold_per - let max = l - let res = str - endif - endif - endfor - let res = substitute(res, '^\s*\(.*\)\s*$', '\1', 'g') - return res -endfunction - -function! zencoding#util#getImageSize(fn) - let fn = a:fn - - if zencoding#util#isImageMagickInstalled() - return zencoding#util#imageSizeWithImageMagick(fn) - endif - - if filereadable(fn) - let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g') - else - let hex = substitute(system(g:zencoding_curl_command.' "'.fn.'" | xxd -p'), '\n', '', 'g') - endif - - let [width, height] = [-1, -1] - if hex =~ '^89504e470d0a1a0a' - let width = eval('0x'.hex[32:39]) - let height = eval('0x'.hex[40:47]) - endif - if hex =~ '^ffd8' - let pos = 4 - while pos < len(hex) - let bs = hex[pos+0:pos+3] - let pos += 4 - if bs == 'ffc0' || bs == 'ffc2' - let pos += 6 - let height = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) - let pos += 4 - let width = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3]) - break - elseif bs =~ 'ffd[9a]' - break - elseif bs =~ 'ff\(e[0-9a-e]\|fe\|db\|dd\|c4\)' - let pos += (eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])) * 2 - endif - endwhile - endif - if hex =~ '^47494638' - let width = eval('0x'.hex[14:15].hex[12:13]) - let height = eval('0x'.hex[18:19].hex[16:17]) - endif - - return [width, height] -endfunction - -function! zencoding#util#imageSizeWithImageMagick(fn) - let img_info = system('identify -format "%wx%h" "'.a:fn.'"') - let img_size = split(substitute(img_info, '\n', '', ''), 'x') - let width = img_size[0] - let height = img_size[1] - return [width, height] -endfunction - -function! zencoding#util#isImageMagickInstalled() - if !get(s:, 'zencoding_use_identify', 1) - return 0 - endif - return executable('identify') -endfunction diff --git a/sources_forked/zencoding/doc/zencoding.txt b/sources_forked/zencoding/doc/zencoding.txt deleted file mode 100755 index ee453283..00000000 --- a/sources_forked/zencoding/doc/zencoding.txt +++ /dev/null @@ -1,438 +0,0 @@ -*zencoding.txt* ZenCoding for Vim - - ------------------------------------------------------- - ZenCoding: vim plugins for HTML and CSS hi-speed coding - ------------------------------------------------------- - -Author: Yasuhiro Matsumoto -WebSite: http://mattn.kaoriya.net/ -Repository: http://github.com/mattn/zencoding-vim -Site: http://mattn.github.com/zencoding-vim -License: BSD style license - -============================================================================== -CONTENTS *zencoding-contents* - -Introduction |zencoding-introduction| -Install |zencoding-install| -Tutorial |zencoding-tutorial| - 1. Expand Abbreviation |zencoding-expandabbr| - 2. Wrap with Abbreviation |zencoding-wrap-wtih-abbreviation| - 3. Balance Tag Inward |zencoding-balance-tag-inward| - 4. Balance Tag Outward |zencoding-balance-tag-outward| - 5. Go to Next Edit Point |zencoding-goto-next-point| |n| - 6. Go to Previous Edit Point |zencoding-goto-previous-point| - 7. Update Size |zencoding-update-image-size| - 8. Merge Lines |zencoding-merge-lines| - 9. Remove Tag |zencoding-remove-tag| - 10. Split/Join Tag |zencoding-split-join-tag| - 11. Toggle Comment |zencoding-toggle-comment| - 12. Make anchor from URL |zencoding-make-anchor-url| - 13. Make quoted text from URL |zencoding-quoted-text-url| - 14. Code Pretty |zencoding-code-pretty| -Customize |zencoding-customize| - 1. Key Mappings |zencoding-customize-keymappings| - 2. Indent Size |zencoding-indent-size| - 3. Define Tag's Behavior |zencoding-define-tags-behavior| - 4. Complete Tag |zencoding-complete-tag| -Links |zencoding-links| -ToDo |zencoding-todo| - -============================================================================== -INTRODUCTION *zencoding-introduction* *zencoding* - -|ZenCoding| is an editor plugin for high-speed HTML, XML, XSL (or any other -structured code format) coding and editing. The core of this plugin is a -powerful abbreviation engine which allows you to expand expressions?similar to -CSS selectors?into HTML code: -> - div#page>div.logo+ul#navigation>li*5>a -< -...can be expanded into: -> -

    - - -
    -< -Read more about current Zen Coding syntax - http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn - -Abbreviation engine has a modular structure which allows you to expand -abbreviations into different languages. Zen Coding currently supports CSS, -HTML, XML/XSL and HAML, Slim languages via filters. - -============================================================================== -INSTALL *zencoding-install* - -Install the distributed files into Vim runtime directory which is usually -~/.vim/, or $HOME/vimfiles on Windows. - -If you install pathogen that provided from Tim Pope, you should extract the -file into 'bundle' directory. - -============================================================================== -TUTORIAL *zencoding-tutorial* - -If you are seeing this file as :help, then you can't edit this file. -You should copy this section and create new buffer, paste and write as -'zencoding-tutor.txt'. Formally, open the file to start tutorial. - -1. Expand Abbreviation *zencoding-expandabbr* *,* - - Type abbreviation as 'div>p#foo$*3>a' and type |,|. -> -
    -

    - -

    -

    - -

    -

    - -

    -
    -< -2. Wrap with Abbreviation *zencoding-wrap-wtih-abbreviation* *v_,* - - Write as below. -> - test1 - test2 - test3 -< - Then do visual select(line wize) and type |,|. - If you request 'Tag:', then type 'ul>li*'. -> -
      -
    • test1
    • -
    • test2
    • -
    • test3
    • -
    -< - If you type tag as 'blockquote', then you'll see as following. -> -
    - test1 - test2 - test3 -
    -< -3. Balance Tag Inward *zencoding-balance-tag-inward* *d* - - To select inward of ul tag, type |d| in insert mode. -> -
      - *
    • -
    • -
    • -
    -< - If cursor is at '*', |d| select from begin of
      to end of
    . - If cursor is at first of
  • , it select
  • . - -4. Balance Tag Outward *zencoding-balance-tag-outward* *D* - - To select outward of ul tag, insert mode, type D in insert mode. -> -
      - *
    • -
    • -
    • -
    -< - If cursor is at '*', |D| select from next letter of
      to previous - letter of
    . - If cursor is at first of
  • , it select
  • . - -5. Go to Next Edit Point *zencoding-goto-next-point* *n* - - To jump next point that need to edit, type |n| in insert mode. -> - *
    foo
    -
  • -< - If cursor is at '*', |n| move a cursor into attribute value of div - specified id as 'foo'. And type again |n| move a cursor into inner of - div specified id as 'bar'. - -6. Go to Previous Edit Point *zencoding-goto-previous-point* *N* - - To jump previous point that need to edit, type |N| in insert mode. -> -
    foo
    -
    * -< - If cursor is at '*', |N| move a cursor into div specified id as 'bar'. - And type again |N| move a cursor into attribute value of 'foo'. - -7. Update Size *zencoding-update-image-size* *i* - - To expand or update size of image, type |i| on img tag -> - -< - Type 'i' on img tag -> - -< - If you change image, then type it again. it will be following. -> - -< -8. Merge Lines *zencoding-merge-lines* - - To join multi line text like following, type |J|. -> -
      -
    • -
    • -
    • -
    -< - If you select part of line include
  • and type |m|, it will be - following. -> -
      -
    • -
    -< -9. Remove Tag *zencoding-remove-tag* *k* - - To remove tag in the block, type |k|. -> - -< - Type |k| in insert mode, then -> -
    - -
    -< - And type |k| in there again, then div will be removed. - -10. Split/Join Tag *zencoding-split-join-tag* *j* - - To join block, type |j|. -> -
    - cursor is here -
    -< - Type |j| in insert mode. then, -> -
    -< - And type |j| in there again. -> -
    -
    -< -11. Toggle Comment *zencoding-toggle-comment* */* - - Move cursor to block -> -
    - hello world -
    -< - Type '/' in insert mode. -> - -< - Type '/' in there again. -> -
    - hello world -
    -< -12. Make anchor from URL *zencoding-make-anchor-url* *a* - - Move cursor to URL -> - http://www.google.com/ -< - Type |a| -> - Google -< -13. Make quoted text from URL *zencoding-quoted-text-url* *A* - - Move cursor to URL -> - http://github.com/ -< - Type |A| -> -
    - Secure source code hosting and collaborative development - GitHub
    -

    How does it work? Get up and running in seconds by forking a project, pushing an existing repository...

    - http://github.com/ -
    -< -14. Code Pretty *zencoding-code-pretty* *c* - - Select code block, for example select following code from "int main()". -> -

    Writing in C language

    - - int main() { - puts("hello world"); - } -< - Type |c| -> -

    Writing in C language

    - - int main() {
    -   puts("hello world");
    - }
    -< -============================================================================== -CUSTOMIZE *zencoding-customize* - -1. Key Mapping *zencoding-customize-keymappings* - - To specify leading key for expanding or balance tag, or for all, - Add this line in your vimrc: > -> - let g:user_zen_leader_key = '' -< - Or if you prefer to map for each actions, then you set each variables. - - 'user_zen_expandabbr_key' - 'user_zen_expandword_key' - 'user_zen_balancetaginward_key' - 'user_zen_balancetagoutward_key' - 'user_zen_next_key' - 'user_zen_prev_key' - 'user_zen_imagesize_key' - 'user_zen_togglecomment_key' - 'user_zen_splitjointag_key' - 'user_zen_removetag_key' - 'user_zen_anchorizeurl_key' - 'user_zen_anchorizesummary_key' - -2. Indent Size *zencoding-indent-size* - - To change indent size of html, add this code in your vimrc. -> - let g:user_zen_settings = { - \ 'html' : { - \ 'indentation' : ' ' - \ }, - \} -< - If you prefer to change global indent size then add this. -> - let g:user_zen_settings = { - \ 'indentation' : ' ' - \} -< -3. Define Tag's Behavior *zencoding-define-tags-behavior* - - zencoding.vim can change behavior of expanding abbreviation for each - filetypes as |Dictionary|. for details, see official site of zencoding. - for example, vimmer can add following. -> - let g:user_zen_settings = { - \ 'lang' : 'ja', - \ 'html' : { - \ 'filters' : 'html', - \ 'indentation' : ' ' - \ }, - \ 'perl' : { - \ 'indentation' : ' ', - \ 'aliases' : { - \ 'req' : "require '|'" - \ }, - \ 'snippets' : { - \ 'use' : "use strict\nuse warnings\n\n", - \ 'w' : "warn \"${cursor}\";", - \ }, - \ }, - \ 'php' : { - \ 'extends' : 'html', - \ 'filters' : 'html,c', - \ }, - \ 'css' : { - \ 'filters' : 'fc', - \ }, - \ 'javascript' : { - \ 'snippets' : { - \ 'jq' : "$(function() {\n\t${cursor}${child}\n});", - \ 'jq:each' : "$.each(arr, function(index, item)\n\t${child}\n});", - \ 'fn' : "(function() {\n\t${cursor}\n})();", - \ 'tm' : "setTimeout(function() {\n\t${cursor}\n}, 100);", - \ }, - \ }, - \ 'java' : { - \ 'indentation' : ' ', - \ 'snippets' : { - \ 'main': "public static void main(String[] args) {\n\t|\n}", - \ 'println': "System.out.println(\"|\");", - \ 'class': "public class | {\n}\n", - \ }, - \ }, - \} -< -4. Complete Tag *zencoding-complete-tag* - - If you want to complete tags using |omnifunc| then add this. -> - let g:use_zen_complete_tag = 1 -< - -5. Enable functions in different mode - - If you want to use zencoding only in some modes, set an mode option: - - let g:user_zen_mode='n' "only enable normal mode functions, or - let g:user_zen_mode='inv' "enable all functions, which is equal to - let g:user_zen_mode='a' "enable all function in all mode. - -============================================================================== -LINKS *zencoding-links* - -zen-coding official site: - http://code.google.com/p/zen-coding/ - -zencoding.vim: - http://mattn.github.com/zencoding-vim - -development repository: - https://github.com/mattn/zencoding-vim - -my blog posts about zencoding-vim: - http://mattn.kaoriya.net/software/vim/20100222103327.htm - http://mattn.kaoriya.net/software/vim/20100306021632.htm - -japanese blog posts about zencoding-vim: - http://d.hatena.ne.jp/idesaku/20100424/1272092255 - http://d.hatena.ne.jp/griefworker/20110118/vim_zen_coding - http://d.hatena.ne.jp/sakurako_s/20110126/1295988873 - http://looxu.blogspot.jp/2010/02/zencodingvimhtml.html - -tutorial traslated in chinese: - http://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html - -============================================================================== -TODO *zencoding-todo* - * wrapping inline selected. - * more documents. - * more contributor. - * more time to improve zencodig.vim. - -============================================================================== -vim:tw=78:ts=8:ft=help:norl:noet:fen:fdl=0: diff --git a/sources_forked/zencoding/plugin/zencoding.vim b/sources_forked/zencoding/plugin/zencoding.vim deleted file mode 100755 index e627653d..00000000 --- a/sources_forked/zencoding/plugin/zencoding.vim +++ /dev/null @@ -1,215 +0,0 @@ -"============================================================================= -" File: zencoding.vim -" Author: Yasuhiro Matsumoto -" Last Change: 13-Feb-2013. -" Version: 0.75 -" WebPage: http://github.com/mattn/zencoding-vim -" Description: vim plugins for HTML and CSS hi-speed coding. -" SeeAlso: http://code.google.com/p/zen-coding/ -" Usage: -" -" This is vim script support expanding abbreviation like zen-coding. -" ref: http://code.google.com/p/zen-coding/ -" -" Type abbreviation -" +------------------------------------- -" | html:5_ -" +------------------------------------- -" "_" is a cursor position. and type "," (Ctrl+y and Comma) -" NOTE: Don't worry about key map. you can change it easily. -" +------------------------------------- -" | -" | -" | -" | -" | -" | -" | -" | _ -" | -" | -" +------------------------------------- -" Type following -" +------------------------------------- -" | div#foo$*2>div.bar -" +------------------------------------- -" And type "," -" +------------------------------------- -" |
    -" |
    _
    -" |
    -" |
    -" |
    -" |
    -" +------------------------------------- -" -" Tips: -" -" You can customize behavior of expanding with overriding config. -" This configuration will be marged at loading plugin. -" -" let g:user_zen_settings = { -" \ 'indentation' : ' ', -" \ 'perl' : { -" \ 'aliases' : { -" \ 'req' : 'require ' -" \ }, -" \ 'snippets' : { -" \ 'use' : "use strict\nuse warnings\n\n", -" \ 'warn' : "warn \"|\";", -" \ } -" \ } -" \} -" -" You can set language attribute in html using 'zen_settings.lang'. -" -" GetLatestVimScripts: 2981 1 :AutoInstall: zencoding.vim -" script type: plugin - -if &cp || (exists('g:loaded_zencoding_vim') && g:loaded_zencoding_vim) - finish -endif -let g:loaded_zencoding_vim = 1 - -let s:save_cpo = &cpo -set cpo&vim - -if !exists('g:zencoding_debug') - let g:zencoding_debug = 0 -endif - -if !exists('g:zencoding_curl_command') - let g:zencoding_curl_command = 'curl -s -L -A Mozilla/5.0' -endif - -if exists('g:use_zen_complete_tag') && g:use_zen_complete_tag - setlocal omnifunc=zencoding#CompleteTag -endif - -if !exists('g:user_zen_leader_key') - let g:user_zen_leader_key = '' -endif - -function! s:install_plugin_i() - for item in [ - \ {'mode': 'i', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandAbbr', 'func': 'u:call zencoding#expandAbbr(0,"")a'}, - \ {'mode': 'i', 'var': 'user_zen_expandword_key', 'key': ';', 'plug': 'ZenCodingExpandWord', 'func': 'u:call zencoding#expandAbbr(1,"")a'}, - \ {'mode': 'i', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardInsert', 'func': ':call zencoding#balanceTag(1)'}, - \ {'mode': 'i', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardInsert', 'func': ':call zencoding#balanceTag(-1)'}, - \ {'mode': 'i', 'var': 'user_zen_next_key', 'key': 'n', 'plug': 'ZenCodingNext', 'func': ':call zencoding#moveNextPrev(0)'}, - \ {'mode': 'i', 'var': 'user_zen_prev_key', 'key': 'N', 'plug': 'ZenCodingPrev', 'func': ':call zencoding#moveNextPrev(1)'}, - \ {'mode': 'i', 'var': 'user_zen_imagesize_key', 'key': 'i', 'plug': 'ZenCodingImageSize', 'func': ':call zencoding#imageSize()a'}, - \ {'mode': 'i', 'var': 'user_zen_togglecomment_key', 'key': '/', 'plug': 'ZenCodingToggleComment', 'func': ':call zencoding#toggleComment()a'}, - \ {'mode': 'i', 'var': 'user_zen_splitjointag_key', 'key': 'j', 'plug': 'ZenCodingSplitJoinTagInsert', 'func': ':call zencoding#splitJoinTag()'}, - \ {'mode': 'i', 'var': 'user_zen_removetag_key', 'key': 'k', 'plug': 'ZenCodingRemoveTag', 'func': ':call zencoding#removeTag()a'}, - \ {'mode': 'i', 'var': 'user_zen_anchorizeurl_key', 'key': 'a', 'plug': 'ZenCodingAnchorizeURL', 'func': ':call zencoding#anchorizeURL(0)a'}, - \ {'mode': 'i', 'var': 'user_zen_anchorizesummary_key', 'key': 'A', 'plug': 'ZenCodingAnchorizeSummary', 'func': ':call zencoding#anchorizeURL(1)a'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - -function! s:install_plugin_n() - for item in [ - \ {'mode': 'n', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandNormal', 'func': ':call zencoding#expandAbbr(3,"")'}, - \ {'mode': 'n', 'var': 'user_zen_expandword_key', 'key': ',', 'plug': 'ZenCodingExpandWord', 'func': ':call zencoding#expandAbbr(1,"")'}, - \ {'mode': 'n', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardNormal', 'func': ':call zencoding#balanceTag(1)'}, - \ {'mode': 'n', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardNormal', 'func': ':call zencoding#balanceTag(-1)'}, - \ {'mode': 'n', 'var': 'user_zen_next_key', 'key': 'n', 'plug': 'ZenCodingNext', 'func': ':call zencoding#moveNextPrev(0)'}, - \ {'mode': 'n', 'var': 'user_zen_prev_key', 'key': 'N', 'plug': 'ZenCodingPrev', 'func': ':call zencoding#moveNextPrev(1)'}, - \ {'mode': 'n', 'var': 'user_zen_imagesize_key', 'key': 'i', 'plug': 'ZenCodingImageSize', 'func': ':call zencoding#imageSize()'}, - \ {'mode': 'n', 'var': 'user_zen_togglecomment_key', 'key': '/', 'plug': 'ZenCodingToggleComment', 'func': ':call zencoding#toggleComment()'}, - \ {'mode': 'n', 'var': 'user_zen_splitjointag_key', 'key': 'j', 'plug': 'ZenCodingSplitJoinTagNormal', 'func': ':call zencoding#splitJoinTag()'}, - \ {'mode': 'n', 'var': 'user_zen_removetag_key', 'key': 'k', 'plug': 'ZenCodingRemoveTag', 'func': ':call zencoding#removeTag()'}, - \ {'mode': 'n', 'var': 'user_zen_anchorizeurl_key', 'key': 'a', 'plug': 'ZenCodingAnchorizeURL', 'func': ':call zencoding#anchorizeURL(0)'}, - \ {'mode': 'n', 'var': 'user_zen_anchorizesummary_key', 'key': 'A', 'plug': 'ZenCodingAnchorizeSummary', 'func': ':call zencoding#anchorizeURL(1)'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - -function! s:install_plugin_v() - for item in [ - \ {'mode': 'v', 'var': 'user_zen_expandabbr_key', 'key': ',', 'plug': 'ZenCodingExpandVisual', 'func': ':call zencoding#expandAbbr(2,"")'}, - \ {'mode': 'v', 'var': 'user_zen_balancetaginward_key', 'key': 'd', 'plug': 'ZenCodingBalanceTagInwardVisual', 'func': ':call zencoding#balanceTag(2)'}, - \ {'mode': 'v', 'var': 'user_zen_balancetagoutward_key', 'key': 'D', 'plug': 'ZenCodingBalanceTagOutwardVisual', 'func': ':call zencoding#balanceTag(-2)'}, - \ {'mode': 'v', 'var': 'user_zen_mergelines_key', 'key': 'm', 'plug': 'ZenCodingMergeLines', 'func': ':call zencoding#mergeLines()'}, - \ {'mode': 'v', 'var': 'user_zen_codepretty_key', 'key': 'c', 'plug': 'ZenCodingCodePretty', 'func': ':call zencoding#codePretty()'}, - \] - - if !hasmapto(''.item.plug, item.mode) - exe item.mode . 'noremap ' . item.plug . ' ' . item.func - endif - if !exists('g:' . item.var) - endif - if exists('g:' . item.var) - let key = eval('g:' . item.var) - else - let key = g:user_zen_leader_key . item.key - endif - if len(maparg(key, item.mode)) == 0 - exe item.mode . 'map ' . key . ' ' . item.plug - endif - endfor -endfunction - - -if exists('g:user_zen_mode') - let imode = matchstr(g:user_zen_mode, '[ai]') - let nmode = matchstr(g:user_zen_mode, '[an]') - let vmode = matchstr(g:user_zen_mode, '[av]') - - if !empty(imode) - call s:install_plugin_i() - endif - - if !empty(nmode) - call s:install_plugin_n() - endif - - if !empty(vmode) - call s:install_plugin_v() - endif -else - call s:install_plugin_i() - call s:install_plugin_n() - call s:install_plugin_v() -endif - - -delfunction s:install_plugin_i -delfunction s:install_plugin_n -delfunction s:install_plugin_v - -command! -nargs=1 Zen call zencoding#expandAbbr(4, ) - -let &cpo = s:save_cpo -unlet s:save_cpo - -" vim:set et: diff --git a/sources_forked/zencoding/unittest.vim b/sources_forked/zencoding/unittest.vim deleted file mode 100755 index c4fcc3d2..00000000 --- a/sources_forked/zencoding/unittest.vim +++ /dev/null @@ -1,794 +0,0 @@ -let s:sfile = expand('') - -function! s:reload(d) - exe "so" a:d."/plugin/zencoding.vim" - for f in split(globpath(a:d, 'autoload/**/*.vim'), "\n") - silent! exe "so" f - endfor -endfunction - -function! s:show_type(type) - echohl Search | echon "[" a:type "]\n" | echohl None - echo "\r" -endfunction - -function! s:show_category(category) - echohl MatchParen | echon "[" a:category "]\n" | echohl None - echo "\r" -endfunction - -function! s:show_pass(pass) - echohl Title | echo "pass".a:pass."\n" | echohl None -endfunction - -function! s:show_done() - echohl IncSearch | echo "done" | echohl None -endfunction - -function! s:escape(str) - let str = a:str - let str = substitute(str, "\n", '\\n', 'g') - let str = substitute(str, "\t", '\\t', 'g') - return str -endfunction - -function! s:show_title(no, title) - let title = s:escape(a:title) - let width = &columns - 23 - echohl MoreMsg | echon "\rtesting #".printf("%03d", a:no) - echohl None | echon ": " . (len(title) < width ? (title.repeat(' ', width-len(title))) : strpart(title, 0, width)) . ' ... ' -endfunction - -function! s:show_skip(no, title) - let title = s:escape(a:title) - let width = &columns - 23 - echohl WarningMsg | echon "\rskipped #".printf("%03d", a:no) - echohl None | echon ": " . (len(title) < width ? (title.repeat(' ', width-len(title))) : strpart(title, 0, width)) . ' ... ' - echo "" -endfunction - -function! s:show_ok() - echohl Title | echon "ok\n" | echohl None - echo "" -endfunction - -function! s:show_ng(no, expect, got) - echohl WarningMsg | echon "ng\n" | echohl None - echohl ErrorMsg | echo "failed test #".a:no | echohl None - set more - echohl WarningMsg | echo printf("expect(%d):", len(a:expect)) | echohl None - echo join(split(a:expect, "\n", 1), "|\n") - echohl WarningMsg | echo printf("got(%d):", len(a:got)) | echohl None - echo join(split(a:got, "\n", 1), "|\n") - let cs = split(a:expect, '\zs') - for c in range(len(cs)) - if c < len(a:got) - if a:expect[c] != a:got[c] - echohl WarningMsg | echo "differ at:" | echohl None - echo a:expect[c :-1] - break - endif - endif - endfor - echo "" - throw "stop" -endfunction - -function! s:test(...) - let type = get(a:000, 0, '') - let name = get(a:000, 1, '') - let index = get(a:000, 2, '') - - let testgroups = eval(join(filter(split(substitute(join(readfile(s:sfile), "\n"), '.*\nfinish\n', '', ''), '\n', 1), "v:val !~ '^\"'"))) - for testgroup in testgroups - if len(type) > 0 && testgroup.type != type | continue | endif - call s:show_type(testgroup.type) - for category in testgroup.categories - if len(name) > 0 && substitute(category.name,' ','_','g') != name | continue | endif - call s:show_category(category.name) - let tests = category.tests - let start = reltime() - for n in range(len(tests)) - if len(index) > 0 && n != index | continue | endif - let query = tests[n].query - let result = tests[n].result - if has_key(tests[n], 'skip') && tests[n].skip != 0 - call s:show_skip(n+1, query) - continue - endif - if stridx(query, '$$$$') != -1 - silent! 1new - silent! exe "setlocal ft=".testgroup.type - silent! let key = matchstr(query, '.*\$\$\$\$\zs.*\ze\$\$\$\$') - if len(key) > 0 - exe printf('let key = "%s"', key) - else - let key = "\," - endif - silent! let query = substitute(query, '\$\$\$\$.*\$\$\$\$', '$$$$', '') - silent! call setline(1, split(query, "\n")) - let cmd = "normal gg0/\\$\\$\\$\\$\ri\\\\".key - if stridx(result, '$$$$') != -1 - let cmd .= '$$$$' - endif - silent! exe cmd - unlet! res | let res = join(getline(1, line('$')), "\n") - silent! bw! - call s:show_title(n+1, query) - else - call s:show_title(n+1, query) - unlet! res | let res = zencoding#ExpandWord(query, testgroup.type, 0) - endif - if stridx(result, '$$$$') != -1 - if res ==# result - call s:show_ok() - else - call s:show_ng(n+1, result, res) - endif - else - if res ==# result - call s:show_ok() - else - call s:show_ng(n+1, result, res) - endif - endif - endfor - call s:show_pass(reltimestr(reltime(start))) - endfor - endfor -endfunction - -function! s:do_tests(...) - try - if exists('g:user_zen_settings') - let s:old_user_zen_settings = g:user_zen_settings - let g:user_zen_settings = { 'indentation': "\t" } - endif - let oldmore = &more - call s:reload(fnamemodify(s:sfile, ':h')) - let &more = 0 - call call('s:test', a:000) - call s:show_done() - catch - echohl ErrorMsg | echomsg v:exception | echohl None - finally - let &more=oldmore - if exists('g:user_zen_settings') - let g:user_zen_settings = s:old_user_zen_settings - endif - endtry -endfunction - -function! g:zencoding_unittest_complete(arglead, cmdline, cmdpos) - let args = split(a:cmdline, '\s\+', 1) - let testgroups = eval(join(filter(split(substitute(join(readfile(s:sfile), "\n"), '.*\nfinish\n', '', ''), '\n', 1), "v:val !~ '^\"'"))) - try - if len(args) == 2 - return filter(map(testgroups, 'v:val.type'), 'stridx(v:val,args[1])!=-1') - elseif len(args) == 3 - return map(filter(testgroups, 'v:val.type==args[1]')[0].categories, 'substitute(v:val.name," ","_","g")') - endif - catch - endtry - return [] -endfunction - -command! -nargs=* -complete=customlist,g:zencoding_unittest_complete ZenCodingUnitTest call s:do_tests() -if s:sfile == expand('%:p') - ZenCodingUnitTest -endif - -finish -[ -{ - 'type': "html", - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div", - 'result': "
    \n", - }, - { - 'query': "div#wrapper", - 'result': "
    \n", - }, - { - 'query': "div.box", - 'result': "
    \n", - }, - { - 'query': "a[title=TITLE]", - 'result': "\n", - }, - { - 'query': "div#wrapper.box", - 'result': "
    \n", - }, - { - 'query': "div#wrapper.box.current", - 'result': "
    \n", - }, - { - 'query': "div#wrapper.box.current[title=TITLE rel]", - 'result': "
    \n", - }, - { - 'query': "div#main+div#sub", - 'result': "
    \n
    \n", - }, - { - 'query': "div#main>div#sub", - 'result': "
    \n\t
    \n
    \n", - }, - { - 'query': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a", - 'result': "\n\n\n\t\n\t\n\n\n\t
    \n\t\t
    \n\t\t
      \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t\t
    • \n\t\t
    \n\t
    \n\t\n\n", - }, - { - 'query': "ol>li*2", - 'result': "
      \n\t
    1. \n\t
    2. \n
    \n", - }, - { - 'query': "a", - 'result': "\n", - }, - { - 'query': "obj", - 'result': "\n", - }, - { - 'query': "cc:ie6>p+blockquote#sample$.so.many.classes*2", - 'result': "", - }, - { - 'query': "html:4t>div#wrapper>div#header+div#contents+div#footer", - 'result': "\n\n\n\t\n\t\n\n\n\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t\n\n", - }, - { - 'query': "a[href=http://www.google.com/].foo#hoge", - 'result': "\n", - }, - { - 'query': "a[href=http://www.google.com/]{Google}", - 'result': "Google\n", - }, - { - 'query': "{ZenCoding}", - 'result': "ZenCoding", - }, - { - 'query': "a+b", - 'result': "\n\n", - }, - { - 'query': "a>b>i\n", - }, - { - 'query': "a>b>i^b", - 'result': "\n", - }, - { - 'query': "a>b>i<\n\n", - }, - { - 'query': "a>b>i^^b", - 'result': "\n\n", - }, - { - 'query': "blockquote>b>i<\n\n", - }, - { - 'query': "blockquote>b>i^^b", - 'result': "
    \n\n", - }, - { - 'query': "a[href=foo][class=bar]", - 'result': "\n", - }, - { - 'query': "a[a=b][b=c=d][e]{foo}*2", - 'result': "foo\nfoo\n", - }, - { - 'query': "a[a=b][b=c=d][e]*2{foo}", - 'result': "\n\nfoo", - }, - { - 'query': "a*2{foo}a", - 'result': "\n\nfoo\n", - }, - { - 'query': "a{foo}*2>b", - 'result': "foo\nfoo\n", - }, - { - 'query': "a*2{foo}>b", - 'result': "\n\nfoo", - }, - { - 'query': "table>tr>td.name#foo+td*3", - 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n
    \n", - }, - { - 'query': "div#header + div#footer", - 'result': "
    \n
    \n", - }, - { - 'query': "#header + div#footer", - 'result': "
    \n
    \n", - }, - { - 'query': "#header > ul > li < p{Footer}", - 'result': "
    \n\t
      \n\t\t
    • \n\t
    \n\t

    Footer

    \n
    \n", - }, - { - 'query': "#header > ul > li ^ p{Footer}", - 'result': "
    \n\t
      \n\t\t
    • \n\t
    \n\t

    Footer

    \n
    \n", - }, - { - 'query': "a#foo$$$*3", - 'result': "\n\n\n", - }, - { - 'query': "ul+", - 'result': "
      \n\t
    • \n
    \n", - }, - { - 'query': "table+", - 'result': "\n\t\n\t\t\n\t\n
    \n", - }, - { - 'query': "#header>li<#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "#header>li^#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "(#header>li)<#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "(#header>li)^#content", - 'result': "
    \n\t
  • \n
    \n
    \n", - }, - { - 'query': "a>b>i<\n
    \n", - }, - { - 'query': "a>b>i^^div", - 'result': "\n
    \n", - }, - { - 'query': "(#header>h1)+#content+#footer", - 'result': "
    \n\t

    \n
    \n
    \n
    \n", - }, - { - 'query': "(#header>h1)+(#content>(#main>h2+div#entry$.section*5>(h3>a)+div>p*3+ul+)+(#utilities))+(#footer>address)", - 'result': "
    \n\t

    \n
    \n
    \n\t
    \n\t\t

    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n
    \n
    \n\t
    \n
    \n", - }, - { - 'query': "(div>(ul*2)*2)+(#utilities)", - 'result': "
    \n\t
      \n\t
        \n\t
          \n\t
            \n
            \n
            \n", - }, - { - 'query': "table>(tr>td*3)*4", - 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n
            \n", - }, - { - 'query': "(((a#foo+a#bar)*2)*3)", - 'result': "\n\n\n\n\n\n\n\n\n\n\n\n", - }, - { - 'query': "div#box$*3>h3+p*2", - 'result': "
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n" - }, - { - 'query': "div#box.foo$$$.bar$$$*3", - 'result': "
            \n
            \n
            \n", - }, - { - 'query': "div#box$*3>h3+p.bar*2|e", - 'result': "<div id=\"box1\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n<div id=\"box2\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n<div id=\"box3\">\n\t<h3></h3>\n\t<p class=\"bar\"></p>\n\t<p class=\"bar\"></p>\n</div>\n", - }, - { - 'query': "div>div#page>p.title+p|c", - 'result': "
            \n\t\n\t
            \n\t\t\n\t\t

            \n\t\t\n\t\t

            \n\t
            \n\t\n
            \n", - }, - { - 'query': "link:css", - 'result': "\n", - }, - { - 'query': "a[title=\"Hello', world\" rel]", - 'result': "\n", - }, - { - 'query': "div>a#foo{bar}", - 'result': "\n", - }, - { - 'query': ".content{Hello!}", - 'result': "
            Hello!
            \n", - }, - { - 'query': "div.logo+(div#navigation)+(div#links)", - 'result': "
            \n
            \n
            \n", - }, - { - 'query': "h1{header}+{Text}+a[href=http://link.org]{linktext}+{again some text}+a[href=http://anoterlink.org]{click me!}+{some final text}", - 'result': "

            header

            \nTextlinktext\nagain some textclick me!\nsome final text", - }, - { - 'query': "a{&}+div{&&}", - 'result': "&\n
            &&
            \n", - }, - { - 'query': "span$$$$\\,$$$$", - 'result': "", - }, - { - 'query': "foo span$$$$\\,$$$$", - 'result': "foo ", - }, - { - 'query': "foo span$$$$\\,$$$$ bar", - 'result': "foo bar", - }, - { - 'query': "foo $$$$\\ve\\,p\\$$$$bar baz", - 'result': "foo

            bar

            baz", - }, - { - 'query': "foo $$$$\\vee\\,p\\$$$$bar baz", - 'result': "foo

            bar baz

            ", - }, - { - 'query': "f div.boxes>article.box2>header>(hgroup>h2{aaa}+h3{bbb})+p{ccc}$$$$", - 'result': "f
            \n\t
            \n\t\t
            \n\t\t\t
            \n\t\t\t\t

            aaa

            \n\t\t\t\t

            bbb

            \n\t\t\t
            \n\t\t\t

            ccc

            \n\t\t
            \n\t
            \n
            ", - }, - { - 'query': "div.boxes>(div.box2>section>h2{a}+p{b})+(div.box1>section>h2{c}+p{d}+p{e}+(bq>h2{f}+h3{g})+p{h})", - 'result': "
            \n\t
            \n\t\t
            \n\t\t\t

            a

            \n\t\t\t

            b

            \n\t\t
            \n\t
            \n\t
            \n\t\t
            \n\t\t\t

            c

            \n\t\t\t

            d

            \n\t\t\t

            e

            \n\t\t\t
            \n\t\t\t\t

            f

            \n\t\t\t\t

            g

            \n\t\t\t
            \n\t\t\t

            h

            \n\t\t
            \n\t
            \n
            \n", - }, - { - 'query': "(div>(label+input))+div", - 'result': "
            \n\t\n\t\n
            \n
            \n", - }, - { - 'query': "test1\ntest2\ntest3$$$$\\ggVG\\,ul>li>span*>a\\$$$$", - 'result': "", - }, - { - 'query': "test1\ntest2\ntest3$$$$\\ggVG\\,input[type=input value=$#]*\\$$$$", - 'result': "\n\n", - }, - { - 'query': "div#id-$*5>div#id2-$", - 'result': "
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n
            \n\t
            \n
            \n", - }, - { - 'query': "{test case $ }*3", - 'result': "test case 1 test case 2 test case 3 ", - }, - { - 'query': "{test case $${nr}}*3", - 'result': "test case 1\ntest case 2\ntest case 3\n", - }, - { - 'query': "{test case \\$ }*3", - 'result': "test case $ test case $ test case $ ", - }, - { - 'query': "{test case $$$ }*3", - 'result': "test case 001 test case 002 test case 003 ", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "foo\n", - }, - ], - }, - { - 'name': 'split join tag', - 'tests': [ - { - 'query': "
            \n\t$$$$\\j$$$$\n
            ", - 'result': "
            \n\t\n
            ", - }, - { - 'query': "
            \n\tj$$$$/>\n
            ", - 'result': "
            \n\t\n
            ", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "
            \n\t$$$$\\/$$$$\n
            ", - 'result': "
            \n\t\n
            ", - }, - { - 'query': "
            \n\t\n
            ", - 'result': "
            \n\t\n
            ", - }, - ], - }, - { - 'name': 'image size', - 'tests': [ - { - 'query': "img[src=http://mattn.kaoriya.net/images/logo.png]$$$$\\,\\i$$$$", - 'result': "\"\"", - }, - { - 'query': "img[src=/logo.png]$$$$\\,\\i$$$$", - 'result': "\"\"", - }, - ], - }, - { - 'name': 'move next prev', - 'tests': [ - { - 'query': "foo+bar+baz[dankogai=\"\"]$$$$\\,\\gg0\\n\\n\\n\\Byw:%d _\\p$$$$", - 'result': "dankogai", - }, - ], - }, - ], -}, -{ - 'type': 'css', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "@i", - 'result': "@import url();", - }, - { - 'query': "fs:n", - 'result': "font-style: normal;", - }, - { - 'query': "fl:l|fc", - 'result': "float: left;", - }, - { - 'query': "bg+$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat;", - }, - { - 'query': "bg+!$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat !important;", - }, - { - 'query': "m$$$$", - 'result': "margin: $$$$;", - }, - { - 'query': "m0.1p$$$$", - 'result': "margin: 0.1%;", - }, - { - 'query': "m1.0$$$$", - 'result': "margin: 1.0em;", - }, - { - 'query': "m2$$$$", - 'result': "margin: 2px;", - }, - { - 'query': "bdrs10$$$$", - 'result': "border-radius: 10px;", - }, - { - 'query': "-bdrs20$$$$", - 'result': "-webkit-border-radius: 20px;\n-moz-border-radius: 20px;\nborder-radius: 20px;", - }, - { - 'query': "lg(top,#fff,#000)$$$$", - 'result': "background-image: -webkit-gradient(top, 0 0, 0 100, from(#fff), to(#000));\nbackground-image: -webkit-linear-gradient(#fff, #000);\nbackground-image: -moz-linear-gradient(#fff, #000);\nbackground-image: -o-linear-gradient(#fff, #000);\nbackground-image: linear-gradient(#fff, #000);\n", - }, - { - 'query': "m10-5-0$$$$", - 'result': "margin: 10px 5px 0px;", - }, - { - 'query': "m-10--5$$$$", - 'result': "margin: -10px -5px;", - }, - { - 'query': "m10-auto$$$$", - 'result': "margin: 10px auto;", - }, - { - 'query': "w100p$$$$", - 'result': "width: 100%;", - }, - { - 'query': "h50e$$$$", - 'result': "height: 50em;", - }, - { - 'query': "(bg+)+c$$$$", - 'result': "background: #FFF url($$$$) 0 0 no-repeat;\ncolor: #000;", - }, - ], - }, - ], -}, -{ - 'type': 'haml', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", - 'result': "%div\n %p\n %ul#foo\n %li.bar1{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar2{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar3{ :foo => \"bar\", :bar => \"baz\" } baz\n", - }, - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|haml", - 'result': "%div\n %p\n %ul#foo\n %li.bar1{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar2{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar3{ :foo => \"bar\", :bar => \"baz\" } baz\n", - }, - { - 'query': "a*3|haml", - 'result': "%a{ :href => \"\" }\n%a{ :href => \"\" }\n%a{ :href => \"\" }\n", - }, - { - 'query': ".content{Hello!}|haml", - 'result': "%div.content Hello!\n", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "%a{ :href => \"\", :title => \"foo\" } foo\n", - }, - ], - }, - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "%a foo\n bar$$$$\\j$$$$", - 'result': "%a ", - }, - { - 'query': "$$$$\\j$$$$%a ", - 'result': "%a $$$$", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "%a{ :href => \"http://www.google.com\"$$$$\\/$$$$ } hello", - 'result': "-# %a{ :href => \"http://www.google.com\" } hello", - }, - { - 'query': "-# %a{ :href => \"http://www.google.com\"$$$$\\/$$$$ } hello", - 'result': "%a{ :href => \"http://www.google.com\" } hello", - }, - ], - }, - ], -}, -{ - 'type': 'slim', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", - 'result': "div\n p\n ul id=\"foo\"\n li class=\"bar1\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar2\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar3\" foo=\"bar\" bar=\"baz\"\n | baz\n", - }, - { - 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|slim", - 'result': "div\n p\n ul id=\"foo\"\n li class=\"bar1\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar2\" foo=\"bar\" bar=\"baz\"\n | baz\n li class=\"bar3\" foo=\"bar\" bar=\"baz\"\n | baz\n", - }, - { - 'query': "a*3|slim", - 'result': "a href=\"\"\na href=\"\"\na href=\"\"\n", - }, - { - 'query': ".content{Hello!}|slim", - 'result': "div class=\"content\"\n | Hello!\n", - }, - { - 'query': "a[title=$#]{foo}", - 'result': "a href=\"\" title=\"foo\"\n | foo\n", - }, - ], - }, - { - 'name': 'split join tag', - 'tests': [ - { - 'query': "a\n | foo$$$$\\j$$$$", - 'result': "a", - }, - { - 'query': "a$$$$\\j$$$$", - 'result': "a\n | $$$$", - }, - ], - }, - { - 'name': 'toggle comment', - 'tests': [ - { - 'query': "a href=\"http://www.google.com\"$$$$\\/$$$$\n | hello", - 'result': "/a href=\"http://www.google.com\"\n | hello", - }, - { - 'query': "/a href=\"http://www.google.com\"$$$$\\/$$$$\n | hello", - 'result': "a href=\"http://www.google.com\"\n | hello", - }, - ], - }, - ], -}, -{ - 'type': 'xsl', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "vari", - 'result': "\n", - }, - { - 'query': "ap>wp", - 'result': "\n\t\n\n", - }, - ], - }, - ], -}, -{ - 'type': 'xsd', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "xsd:w3c", - 'result': "\n\n\t\n", - }, - ], - }, - ], -}, -{ - 'type': 'mustache', - 'categories': [ - { - 'name': 'expand abbreviation', - 'tests': [ - { - 'query': "div#{{foo}}", - 'result': "
            \n", - }, - { - 'query': "div.{{foo}}", - 'result': "
            \n", - }, - ], - }, - ], -}, -] -" vim:set et: diff --git a/sources_forked/zencoding/zencoding.vim.vimup b/sources_forked/zencoding/zencoding.vim.vimup deleted file mode 100755 index 72608e48..00000000 --- a/sources_forked/zencoding/zencoding.vim.vimup +++ /dev/null @@ -1,265 +0,0 @@ -script_name: ZenCoding.vim -script_id: '2981' -script_type: utility -script_package: zencoding-vim.zip -script_version: '0.80' -required_vim_version: '7.0' -summary: vim plugins for HTML and CSS hi-speed coding. - -detailed_description: | - - This is vim script support expanding abbreviation like zen-coding. - ref: http://code.google.com/p/zen-coding/ - - There is a movie using zencoding.vim - ref: http://mattn.github.com/zencoding-vim - - Source Repository. - ref: http://github.com/mattn/zencoding-vim - - Type abbreviation - +------------------------------------- - | html:5_ - +------------------------------------- - "_" is a cursor position. and type "," (Ctrl + y and Comma) - NOTE: Don't worry about key map. you can change it easily. - +------------------------------------- - | - | - | - | - | - | - | - | _ - | - | - +------------------------------------- - Type following - +------------------------------------- - | div#foo$*2>div.bar - +------------------------------------- - And type "," - +------------------------------------- - |
            - |
            _
            - |
            - |
            - |
            - |
            - | _ - +------------------------------------- - - Tutorial: - - http://github.com/mattn/zencoding-vim/raw/master/TUTORIAL - - How work this: - - http://mattn.github.com/zencoding-vim - - Tips: - - You can customize behavior of expanding with overriding config. - This configuration will be marged at loading plugin. - - let g:user_zen_settings = { - \ 'indentation' : ' ', - \ 'perl' : { - \ 'aliases' : { - \ 'req' : 'require ' - \ }, - \ 'snippets' : { - \ 'use' : "use strict\nuse warnings\n\n", - \ 'warn' : "warn \"|\";", - \ } - \ } - \} - - let g:user_zen_expandabbr_key = '' - - let g:use_zen_complete_tag = 1 - - You can set language attribute in html using zen_settings['lang']. - -install_details: | - - # cd ~/.vim - # unzip zencoding-vim.zip - - or if you install pathogen.vim: - - # cd ~/.vim/bundle # or make directory - # unzip /path/to/zencoding-vim.zip - - if you get sources from repository: - - # cd ~/.vim/bundle # or make directory - # git clone http://github.com/mattn/zencoding-vim.git - -versions: -- '0.80': | - This is an upgrade for ZenCoding.vim: add emmet features. -- '0.74': | - This is an upgrade for ZenCoding.vim: many bug fixes. -- '0.73': | - This is an upgrade for ZenCoding.vim: many bug fixes. and support slim format (experimental). -- '0.72': | - This is an upgrade for ZenCoding.vim: - [fix] fix finding tokens. -- '0.71': | - This is an upgrade for ZenCoding.vim: - [fix] fix finding begin of tokens. -- '0.70': | - This is an upgrade for ZenCoding.vim: - [mod] Changed behavior of expanding. "div div>a|" should keep first div element. - [add] Supported slim formatter. -- '0.60': | - This is an upgrade for ZenCoding.vim: - [fix] fixed expanding {{}}. -- '0.59': | - This is an upgrade for ZenCoding.vim: - [fix] fixed toggleComment and mny bugs. -- '0.58': | - This is an upgrade for ZenCoding.vim: - [fix] fixed 'foo+' style expandos. -- '0.57': | - This is an upgrade for ZenCoding.vim: - [fix] fixed expandos that don't work 'choose' in xsl. -- '0.56': | - This is an upgrade for ZenCoding.vim: - [fix] fixed contents parser. -- '0.55': | - uploaded again: sorry, files was old. -- '0.54': | - [add] support sass, xsd. - [fix] expanding with html tag. - uploaded again: sorry, fileformat was DOS. -- '0.53': | - [fix] gif width/height was swapped. -- '0.52': | - [fix] broken wrap expanding. -- '0.51': | - This is an upgrade for ZenCoding.vim: - [fix] wrap expanding with '&'. - [fix] expand .content to class="content". - [fix] haml expanding. - [fix] bg+ snippet -- '0.50': | - This is an upgrade for ZenCoding.vim: - [fix] fixed parsing '#{{foo}}' and '.{{bar}}'. -- '0.49': | - This is an upgrade for ZenCoding.vim: - [doc] add help manual. -- '0.48': | - This is an upgrade for ZenCoding.vim: - [fix] install mappings to global. -- '0.47': | - This is an upgrade for ZenCoding.vim: - [drastic changes] enable autoload. you should whole replace older files. - package was empty. upload again. -- '0.46': | - This is an upgrade for ZenCoding.vim: - [drastic changes] enable autoload. you should whole replace older files. -- '0.45': | - This is an upgrade for ZenCoding.vim: - fixed attribute parsing like: a[href="hello', world" rel]. -- '0.44': | - This is an upgrade for ZenCoding.vim: - fixed checking whether have mapping using maparg() / hasmapto(). -- '0.43': | - This is an upgrade for ZenCoding.vim: - fixed behavior for nested block. like "html:5>#page>(header#globalHeader>(hgroup>h1+h2)+(nav>ul>li*3>a)+(form>p.siteSearch>input+input[type=button]))+(#contents>(#main>(section>h2+p*5)+p.pagetop>a[href=#page])+(#sub>p+(nav>ul>li>a)))+(footer#globalFoooter>(ul>li>a)+(p.copyright>small))" -- '0.42': | - This is an upgrade for ZenCoding.vim: - fixed select/option indent. -- '0.41': | - This is an upgrade for ZenCoding.vim: - fixed default filter. when using 'e' filter, output become empty. -- '0.40': | - This is an upgrade for ZenCoding.vim: - add the pure vimscript code for 'get image size'. you can use it without perl interface just now. - change key assign of ZenCodingExpandWord from ',' to ';'. it don't effect to most users. -- '0.39': | - This is an upgrade for ZenCoding.vim: fixed problem about 'selection'. see http://github.com/mattn/zencoding-vim/issues/#issue/2 -- '0.38': | - This is an upgrade for ZenCoding.vim: use v7h"_s instead of v7hs for backspace. -- '0.37': | - This is an upgrade for ZenCoding.vim: fixed problem that won't working with some 'backspace' options. -- '0.36': | - This is an upgrade for ZenCoding.vim: fixed problem that filter does not work. -- '0.35': | - This is an upgrade for ZenCoding.vim: enable zencoding for other languages. (meaning php also) -- '0.34': | - This is an upgrade for ZenCoding.vim: enable zencoding for xsl. (you should add ~/.vim/ftplugin/xslt/zencoding.vim) -- '0.33': | - This is an upgrade for ZenCoding.vim: fixed problem breaking multibyte when cursor is in a part of line. enabled zencoding for javascript in html. -- '0.32': | - This is an upgrade for ZenCoding.vim: fixed indentation. supported extends so that you can enable zencoding for php/xhtml/haml other's section 14 in http://github.com/mattn/zencoding-vim/raw/master/TUTORIAL -- '0.31': | - This is an upgrade for ZenCoding.vim: fixed indentation and $$$ problem. fixed about missing support multiple classes. -- '0.30': | - This is an upgrade for ZenCoding.vim: Fixed key assign. -- '0.29': | - This is an upgrade for ZenCoding.vim: Changed leading key to '' from ''. -- '0.28': | - This is an upgrade for ZenCoding.vim: supported 'Balance Tag Inward/Outward', 'Go to Next/Previous Edit Point', 'Update Size', 'Remove Tag', 'Split/Join Tag', 'Toggle Comment' -- '0.27': | - This is an upgrade for ZenCoding.vim: fixed problem that can't work on the part of multibyte characters. fixed inline elements behavior. -- '0.26': | - This is an upgrade for ZenCoding.vim: The count of '(((a#foo + a#bar)*2)*3)' should be 12. -- '0.25': | - This is an upgrade for ZenCoding.vim: store undo before working. good luck about 'table>(tr>td*3)*4'. -- '0.24': | - This is an upgrade for ZenCoding.vim: fixed behavior of parsing area of visual selection. -- '0.23': | - This is an upgrade for ZenCoding.vim: pre-expand '#header>li<#content' to 'div#header>lili'. fix undo ring. support visual selection. when type trigger key on visual select, it request you leader like 'ul>li'. if you give 'ul>li*' as leader, you'll get each separate 'ul>li' tags. and when you give 'blockquote' as leader, you'll get blocked text. -- '0.21': | - This is an upgrade for ZenCoding.vim: treat xhtml as html. -- '0.20': | - This is an upgrade for ZenCoding.vim: add option use_zen_complete_tag for complete abbr. -- '0.19': | - This is an upgrade for ZenCoding.vim: fixed problem that couldn't expand 'link:css' correctly. -- '0.18': | - This is an upgrade for ZenCoding.vim: ignore duplicate key map. -- '0.17': | - This is an upgrade for ZenCoding.vim: fixed key map. -- '0.16': | - This is an upgrade for ZenCoding.vim: fixed problem 'endless loop'. -- '0.15': | - This is an upgrade for ZenCoding.vim: set default filetype to 'html'. -- '0.14': | - This is an upgrade for ZenCoding.vim: fixed tag name like 'fs:n' in 'css'. -- '0.14': | - This is an upgrade for ZenCoding.vim: indentation for each languages. -- '0.13': | - This is an upgrade for ZenCoding.vim: user key map. -- '0.12': | - This is an upgrade for ZenCoding.vim: few extensive notation. -- '0.11': | - This is an upgrade for ZenCoding.vim: fixed indent. -- '0.10': | - This is an upgrade for ZenCoding.vim: fixed behavior of '+' operator -- '0.9': | - This is an upgrade for ZenCoding.vim: fixed single line behavior -- '0.8': | - This is an upgrade for ZenCoding.vim: support 'a[href=http://www.google.com]{Google}' -- '0.7': | - This is an upgrade for ZenCoding.vim: fixed behavior in 'a+b'. -- '0.6': | - This is an upgrade for ZenCoding.vim: fixed strange behavior about 'b_'. -- '0.5': | - This is an upgrade for ZenCoding.vim: recover rest part in line. -- '0.4': | - This is an upgrade for ZenCoding.vim: fixed cursor position. fixed ${lang} replacement. -- '0.3': | - This is an upgrade for ZenCoding.vim: fixed line expanding. -- '0.2': | - This is an upgrade for ZenCoding.vim: fixed problem that moving cursor with expanding. -- '0.1': | - Initial upload - -# __END__ -# vim: filetype=yaml diff --git a/sources_non_forked/syntastic/doc/syntastic.txt b/sources_non_forked/syntastic/doc/syntastic.txt index 70f2ca48..310c1348 100644 --- a/sources_non_forked/syntastic/doc/syntastic.txt +++ b/sources_non_forked/syntastic/doc/syntastic.txt @@ -36,7 +36,9 @@ CONTENTS *syntastic-contents* 5.2.Choosing the executable................|syntastic-config-exec| 5.3.Configuring specific checkers..........|syntastic-config-makeprg| 5.4.Sorting errors.........................|syntastic-config-sort| - 5.5.Debugging..............................|syntastic-config-debug| + 5.5.Filtering errors.......................|syntastic-config-filtering| + 5.6.Debugging..............................|syntastic-config-debug| + 5.7.Profiling..............................|syntastic-profiling| 6.Notes........................................|syntastic-notes| 6.1.Handling of composite filetypes........|syntastic-composite| 6.2.Editing files over network.............|syntastic-netrw| @@ -91,21 +93,21 @@ Syntastic comes preconfigured with a default list of enabled checkers per trying to use conflicting checkers. You can see the list of checkers available for the current filetype with the -|:SyntasticInfo| command. +`:SyntasticInfo` command. You probably want to override the configured list of checkers for the filetypes you use, and also change the arguments passed to specific checkers to suit your needs. See |syntastic-checker-options| below for details. -Use |:SyntasticCheck| to manually check right now. Use |:Errors| to open the -|location-list| window, and |:lclose| to close it. You can clear the error -list with |:SyntasticReset|, and you can use |:SyntasticToggleMode| to switch +Use `:SyntasticCheck` to manually check right now. Use `:Errors` to open the +|location-list| window, and `:lclose` to close it. You can clear the error +list with `:SyntasticReset`, and you can use `:SyntasticToggleMode` to switch between active (checking on writing the buffer) and passive (manual) checking. You don't have to switch focus to the |location-list| window to jump to the different errors. Vim provides several built-in commands for this, for -example |:lnext| and |:lprevious|. You may want to add shortcut mappings for -these commands, or perhaps install a plugin such as Tim Pope's 'unimpaired' +example `:lnext` and `:lprevious`. You may want to add shortcut mappings for +these commands, or perhaps install a plugin such as Tim Pope's "unimpaired" (see https://github.com/tpope/vim-unimpaired) that provides such mappings. ------------------------------------------------------------------------------ @@ -128,7 +130,7 @@ needed: > 2. Functionality provided *syntastic-functionality* Syntax checking can be done automatically or on demand (see -|'syntastic_mode_map'| and |:SyntasticToggleMode| for configuring this). +|'syntastic_mode_map'| and `:SyntasticToggleMode` for configuring this). When syntax checking is done, the features below can be used to notify the user of errors. See |syntastic-global-options| for how to configure and @@ -167,19 +169,19 @@ possible solutions. See also |syntastic-powerline| below if you're using the ------------------------------------------------------------------------------ 2.2. Error signs *syntastic-error-signs* -Syntastic uses the |:sign| commands (provided that the |+signs| feature is +Syntastic uses the `:sign` commands (provided that the |+signs| feature is compiled in) to mark lines with errors and warnings in the sign column. To enable this feature, use the |'syntastic_enable_signs'| option. Signs are colored using the Error and Todo syntax highlight groups by default (see |group-name|). If you wish to customize the colors for the signs, you can use the following groups: - SyntasticErrorSign - For syntax errors, links to 'error' by default - SyntasticWarningSign - For syntax warnings, links to 'todo' by default - SyntasticStyleErrorSign - For style errors, links to 'SyntasticErrorSign' + SyntasticErrorSign - For syntax errors, links to "error" by default + SyntasticWarningSign - For syntax warnings, links to "todo" by default + SyntasticStyleErrorSign - For style errors, links to "SyntasticErrorSign" by default SyntasticStyleWarningSign - For style warnings, links to - 'SyntasticWarningSign' by default + "SyntasticWarningSign" by default Example: > highlight SyntasticErrorSign guifg=white guibg=red @@ -188,8 +190,8 @@ To set up highlighting for the line where a sign resides, you can use the following highlight groups: SyntasticErrorLine SyntasticWarningLine - SyntasticStyleErrorLine - Links to 'SyntasticErrorLine' by default - SyntasticStyleWarningLine - Links to 'SyntasticWarningLine' by default + SyntasticStyleErrorLine - Links to "SyntasticErrorLine" by default + SyntasticStyleWarningLine - Links to "SyntasticWarningLine" by default Example: > highlight SyntasticErrorLine guibg=#2f0000 @@ -197,15 +199,15 @@ Example: > ------------------------------------------------------------------------------ 2.3. The error window *syntastic-error-window* -You can use the |:Errors| command to display the errors for the current buffer +You can use the `:Errors` command to display the errors for the current buffer in the |location-list|. By default syntastic doesn't fill the |location-list| with the errors found by the checkers, in order to reduce clashes with other plugins. Consequently, if -you run |:lopen| or |:lwindow| rather than |:Errors| to open the error window -you wouldn't see syntastic's list of errors. If you insist on using |:lopen| -or |:lwindow| you should either run |:SyntasticSetLoclist| after running the -checks, or set |syntastic_always_populate_loc_list| which tells syntastic to +you run `:lopen` or `:lwindow` rather than `:Errors` to open the error window +you wouldn't see syntastic's list of errors. If you insist on using `:lopen` +or `:lwindow` you should either run `:SyntasticSetLoclist` after running the +checks, or set |'syntastic_always_populate_loc_list'| which tells syntastic to update the |location-list| automatically. ------------------------------------------------------------------------------ @@ -215,10 +217,10 @@ Some checkers provide enough information for syntastic to be able to highlight errors. By default the SpellBad syntax highlight group is used to color errors, and the SpellCap group is used for warnings. If you wish to customize the colors for highlighting you can use the following groups: - SyntasticError - Links to 'SpellBad' by default - SyntasticWarning - Links to 'SpellCap' by default - SyntasticStyleError - Links to SyntasticError by default - SyntasticStyleWarning - Links to SyntasticWarning by default + SyntasticError - Links to "SpellBad" by default (see |hl-SpellBad|) + SyntasticWarning - Links to "SpellCap" by default (see |hl-SpellCap|) + SyntasticStyleError - Links to "SyntasticError" by default + SyntasticStyleWarning - Links to "SyntasticWarning" by default Example: > highlight SyntasticError guibg=#2f0000 @@ -238,7 +240,7 @@ If |'syntastic_aggregate_errors'| is set, syntastic runs all checkers that apply (still cf. |syntastic-filetype-checkers|), then aggregates errors found by all checkers in a single list, and notifies you. In this mode each error message is labeled with the name of the checker that generated it, but you can -disable generation of these labels by turning off '|syntastic_id_checkers|'. +disable generation of these labels by turning off |'syntastic_id_checkers'|. If |'syntastic_sort_aggregated_errors'| is set (which is the default), messages in the aggregated list are grouped by file, then sorted by line number, then @@ -264,7 +266,7 @@ See also: |'syntastic___quiet_messages'| and When errors have been detected, use this command to pop up the |location-list| and display the error messages. -Please note that the |:Errors| command overwrites the current location list with +Please note that the `:Errors` command overwrites the current location list with syntastic's own location list. :SyntasticToggleMode *:SyntasticToggleMode* @@ -304,26 +306,29 @@ Resets the list of errors and turns off all error notifiers. If |'syntastic_always_populate_loc_list'| is not set, the |location-list| is not filled in automatically with the list of errors detected by the checkers. This is useful if you run syntastic along with other plugins that use location -lists. The |:SyntasticSetLoclist| command allows you to stick the errors into +lists. The `:SyntasticSetLoclist` command allows you to stick the errors into the location list explicitly. ============================================================================== 4. Global Options *syntastic-global-options* *'syntastic_check_on_open'* +Type: boolean Default: 0 If this variable is enabled, syntastic in active mode will run syntax checks when buffers are first loaded, as well as on saving: > let g:syntastic_check_on_open = 1 < *'syntastic_check_on_wq'* +Type: boolean Default: 1 In active mode syntax checks are normally run whenever buffers are written to disk, even when the writes happen just before quitting Vim. If you want to -skip checks when you issue |:wq|, |:x|, and |:ZZ|, set this variable to 0: > +skip checks when you issue `:wq`, `:x`, and `:ZZ`, set this variable to 0: > let g:syntastic_check_on_wq = 0 < *'syntastic_aggregate_errors'* +Type: boolean Default: 0 When enabled, syntastic runs all checkers that apply to the current filetype, then aggregates errors found by all checkers and displays them. When disabled, @@ -332,26 +337,30 @@ time a checker finds any errors. > let g:syntastic_aggregate_errors = 1 < *'syntastic_id_checkers'* +Type: boolean Default: 1 When results from multiple checkers are aggregated in a single error list (that is either when |'syntastic_aggregate_errors'| is enabled, or when -checking a file with a composite filetype), it might not be immediately -obvious which checker has produced a given error message. This variable -instructs syntastic to label error messages with the names of the checkers -that created them. > +checking a file with a composite filetype, cf. |syntastic-composite|), it +might not be immediately obvious which checker has produced a given error +message. This variable instructs syntastic to label error messages with the +names of the checkers that created them. > let g:syntastic_id_checkers = 0 < *'syntastic_sort_aggregated_errors'* +Type: boolean Default: 1 By default, when results from multiple checkers are aggregated in a single -error list (that is either when |'syntastic_aggregate_errors'| is enabled, -or when checking a file with a composite filetype), errors are grouped by -file, then sorted by line number, then grouped by type (namely errors take -precedence over warnings), then they are sorted by column number. If you want -to leave messages grouped by checker output, set this variable to 0: > +error list (that is either when |'syntastic_aggregate_errors'| is enabled, or +when checking a file with a composite filetype, cf. |syntastic-composite|), +errors are grouped by file, then sorted by line number, then grouped by type +(namely errors take precedence over warnings), then they are sorted by column +number. If you want to leave messages grouped by checker output, set this +variable to 0: > let g:syntastic_sort_aggregated_errors = 0 < *'syntastic_echo_current_error'* +Type: boolean Default: 1 If enabled, syntastic will echo current error to the command window. If multiple errors are found on the same line, |'syntastic_cursor_columns'| is @@ -359,6 +368,7 @@ used to decide which one is shown. > let g:syntastic_echo_current_error = 1 < *'syntastic_cursor_columns'* +Type: boolean Default: 1 This option controls which errors are echoed to the command window if |'syntastic_echo_current_error'| is set and multiple errors are found on the @@ -371,25 +381,28 @@ up navigation significantly: > let g:syntastic_cursor_column = 0 < *'syntastic_enable_signs'* +Type: boolean Default: 1 -Use this option to tell syntastic whether to use the |:sign| interface to mark +Use this option to tell syntastic whether to use the `:sign` interface to mark syntax errors: > let g:syntastic_enable_signs = 1 < *'syntastic_error_symbol'* *'syntastic_style_error_symbol'* *'syntastic_warning_symbol'* *'syntastic_style_warning_symbol'* -Use this option to control what the syntastic |:sign| text contains. Several +Type: string +Use these options to control what the syntastic `:sign` text contains. Several error symbols can be customized: - syntastic_error_symbol - For syntax errors, defaults to '>>' - syntastic_style_error_symbol - For style errors, defaults to 'S>' - syntastic_warning_symbol - For syntax warnings, defaults to '>>' - syntastic_style_warning_symbol - For style warnings, defaults to 'S>' + syntastic_error_symbol - For syntax errors, defaults to ">>" + syntastic_style_error_symbol - For style errors, defaults to "S>" + syntastic_warning_symbol - For syntax warnings, defaults to ">>" + syntastic_style_warning_symbol - For style warnings, defaults to "S>" Example: > - let g:syntastic_error_symbol = "✗" - let g:syntastic_warning_symbol = "⚠" + let g:syntastic_error_symbol = "\u2717" + let g:syntastic_warning_symbol = "\u26A0" < *'syntastic_enable_balloons'* +Type: boolean Default: 1 Use this option to tell syntastic whether to display error messages in balloons when the mouse is hovered over erroneous lines: > @@ -398,12 +411,14 @@ when the mouse is hovered over erroneous lines: > Note that Vim must be compiled with |+balloon_eval|. *'syntastic_enable_highlighting'* +Type: boolean Default: 1 Use this option to tell syntastic whether to use syntax highlighting to mark errors (where possible). Highlighting can be turned off with the following > let g:syntastic_enable_highlighting = 0 < *'syntastic_always_populate_loc_list'* +Type: boolean Default: 0 By default syntastic doesn't fill the |location-list| with the errors found by the checkers, in order to reduce clashes with other plugins. Enable this @@ -414,9 +429,10 @@ option to tell syntastic to always stick any detected errors into the Please note that if |'syntastic_auto_jump'| is set to a non-zero value the location list is overwritten with Syntastic's own list when taking a jump, regardless of the value of |'syntastic_always_populate_loc_list'|. The -location list is also overwritten when running the |:Errors| command. +location list is also overwritten when running the `:Errors` command. *'syntastic_auto_jump'* +Type: integer Default: 0 Enable this option if you want the cursor to jump to the first detected issue when saving or opening a file. @@ -441,6 +457,7 @@ of the location list being overwritten with Syntastic's own location list, regardless of the value of |'syntastic_always_populate_loc_list'|. *'syntastic_auto_loc_list'* +Type: integer Default: 2 Use this option to tell syntastic to automatically open and/or close the |location-list| (see |syntastic-error-window|). @@ -462,12 +479,14 @@ detected, but not closed automatically. > let g:syntastic_auto_loc_list = 3 < *'syntastic_loc_list_height'* +Type: integer Default: 10 Use this option to specify the height of the location lists that syntastic opens. > let g:syntastic_loc_list_height = 5 < *'syntastic_ignore_files'* +Type: list of strings Default: [] Use this option to specify files that syntastic should never check. It's a list of |regular-expression| patterns. The full paths of files (see |::p|) are @@ -476,6 +495,7 @@ to specify case-insensitive patterns. Example: > let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$'] < *'syntastic_filetype_map'* +Type: dictionary Default: {} Use this option to map non-standard filetypes to standard ones. Corresponding checkers are mapped accordingly, which allows syntastic to check files with @@ -484,11 +504,13 @@ non-standard filetypes: > \ "plaintex": "tex", \ "gentoo-metadata": "xml" } < -Composite filetypes can also be mapped to simple types, which disables the -default behaviour of running both checkers against the input file: > +Composite filetypes (cf. |syntastic-composite|) can also be mapped to simple +types, which disables the default behaviour of running both checkers against +the input file: > let g:syntastic_filetype_map = { "handlebars.html": "handlebars" } < *'syntastic_mode_map'* +Type: dictionary Default: { "mode": "active", "active_filetypes": [], "passive_filetypes": [] } @@ -496,7 +518,6 @@ Use this option to fine tune when automatic syntax checking is done (or not done). The option should be set to something like: > - let g:syntastic_mode_map = { \ "mode": "active", \ "active_filetypes": ["ruby", "php"], @@ -505,7 +526,7 @@ The option should be set to something like: > "mode" can be mapped to one of two values - "active" or "passive". When set to "active", syntastic does automatic checking whenever a buffer is saved or initially opened. When set to "passive" syntastic only checks when the user -calls |:SyntasticCheck|. +calls `:SyntasticCheck`. The exceptions to these rules are defined with "active_filetypes" and "passive_filetypes". In passive mode, automatic checks are still done for @@ -520,16 +541,18 @@ If local variable |'b:syntastic_mode'| is defined its value takes precedence over all calculations involving |'syntastic_mode_map'| for the corresponding buffer. -At runtime, the |:SyntasticToggleMode| command can be used to switch between +At runtime, the `:SyntasticToggleMode` command can be used to switch between active and passive modes. *'b:syntastic_mode'* +Type: string Default: unset Only the local form |'b:syntastic_mode'| is used. When set to either "active" or "passive", it takes precedence over |'syntastic_mode_map'| when deciding whether the corresponding buffer should be checked automatically. *'syntastic_quiet_messages'* +Type: dictionary Default: {} Use this option to filter out some of the messages produced by checkers. The option should be set to something like: > @@ -542,7 +565,7 @@ option should be set to something like: > Each element turns off messages matching the patterns specified by the corresponding value. Values are lists, but if a list consist of a single element you may omit the brackets (e.g. you may write "style" instead of -["style"]). Elements with values [] or '' are ignored (this is useful for +["style"]). Elements with values [] or "" are ignored (this is useful for overriding filters, cf. |filter-overrides|). "level" - takes one of two values, "warnings" or "errors" @@ -572,16 +595,17 @@ errors produced by the said checker). In case of conflicting values for the same keys, the values of the checker-specific filters take precedence. *filter-overrides* -Since filter elements with values [] or '' are ignored, you can disable global +Since filter elements with values [] or "" are ignored, you can disable global filters for particular checkers, by setting the values of the corresponding -elements in |'syntastic___quiet_messages'| to [] or ''. For +elements in |'syntastic___quiet_messages'| to [] or "". For example, the following setting will silence all warnings, except for the ones produced by "pylint": > let g:syntastic_quiet_messages = { "level": "warnings" } let g:syntastic_python_pylint_quiet_messages = { "level" : [] } < *'syntastic_stl_format'* -Default: [Syntax: line:%F (%t)] +Type: string +Default: "[Syntax: line:%F (%t)]" Use this option to control what the syntastic statusline text contains. Several magic flags are available to insert information: %e - number of errors @@ -612,7 +636,7 @@ Several additional flags are available to hide text under certain conditions: These flags can't be nested. Example: > - let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]' + let g:syntastic_stl_format = "[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]" < If this format is used and the current buffer has 5 errors and 1 warning starting on lines 20 and 10 respectively then this would appear on the @@ -623,19 +647,22 @@ If the buffer had 2 warnings, starting on line 5 then this would appear: > [Warn: 5 #2] < *'b:syntastic_skip_checks'* +Type: boolean Default: unset Only the local form |'b:syntastic_skip_checks'| is used. When set to a true value, no checks are run against the corresponding buffer. Example: > let b:syntastic_skip_checks = 1 < *'syntastic_full_redraws'* +Type: boolean Default: 0 in GUI Vim and MacVim, 1 otherwise -Controls whether syntastic calls |:redraw| or |:redraw!| for screen redraws. +Controls whether syntastic calls `:redraw` or `:redraw!` for screen redraws. Changing it can in principle make screen redraws smoother, but it can also cause screen to flicker, or cause ghost characters. Leaving it to the default should be safe. *'syntastic_exit_checks'* +Type: boolean Default: 0 when running under "cmd.exe" on Windows, 1 otherwise Syntastic attempts to catch abnormal termination conditions from checkers by looking at their exit codes. The "cmd.exe" shell on Windows make these checks @@ -643,6 +670,7 @@ meaningless, by returning 1 to Vim when the checkers exit with non-zero codes. The above variable can be used to disable exit code checks in syntastic. *'syntastic_shell'* +Type: string Default: Vim's 'shell' This is the (full path to) the shell syntastic will use to run the checkers. On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for @@ -656,6 +684,7 @@ by the checkers you're using. Example: > let g:syntastic_shell = "/bin/sh" < *'syntastic_nested_autocommands'* +Type: boolean Default: 0 Controls whether syntastic's autocommands |BufReadPost| and |BufWritePost| are called from other |BufReadPost| and |BufWritePost| autocommands (see @@ -663,6 +692,7 @@ are called from other |BufReadPost| and |BufWritePost| autocommands (see other plugins, so only enable it if you actually need that functionality. *'syntastic_debug'* +Type: integer Default: 0 Set this to the sum of one or more of the following flags to enable debugging: @@ -678,15 +708,17 @@ Example: > let g:syntastic_debug = 1 < Syntastic will then add debugging messages to Vim's |message-history|. You can -examine these messages with |:mes|. +examine these messages with `:mes`. *'syntastic_debug_file'* +Type: string Default: unset When set, debugging messages are written to the file named by its value, in addition to being added to Vim's |message-history|: > - let g:syntastic_debug_file = '~/syntastic.log' + let g:syntastic_debug_file = "~/syntastic.log" < *'syntastic_extra_filetypes'* +Type: list of strings Default: [] List of filetypes handled by checkers external to syntastic. If you have a Vim plugin that adds a checker for syntastic, and if the said checker deals with a @@ -694,7 +726,7 @@ filetype that is unknown to syntastic, you might consider adding that filetype to this list: > let g:syntastic_extra_filetypes = [ "make", "gitcommit" ] < -This will allow |:SyntasticInfo| to do proper tab completion for the new +This will allow `:SyntasticInfo` to do proper tab completion for the new filetypes. ============================================================================== @@ -709,7 +741,7 @@ variable 'g:syntastic__checkers' to a list of checkers, e.g. > let g:syntastic_php_checkers = ["php", "phpcs", "phpmd"] < *'b:syntastic_checkers'* -There is also a per-buffer version of this setting, 'b:syntastic_checkers'. +There is also a per-buffer version of this setting, |'b:syntastic_checkers'|. When set, it takes precedence over |'g:syntastic__checkers'|. You can use this in an autocmd to configure specific checkers for particular paths: > autocmd FileType python if stridx(expand("%:p"), "/some/path/") == 0 | @@ -724,7 +756,7 @@ by syntastic: https://github.com/scrooloose/syntastic/wiki/Syntax-Checkers -Use |:SyntasticInfo| to see which checkers are available for a given filetype. +Use `:SyntasticInfo` to see which checkers are available for a given filetype. ------------------------------------------------------------------------------ 5.2 Choosing the executable *syntastic-config-exec* @@ -733,74 +765,75 @@ Use |:SyntasticInfo| to see which checkers are available for a given filetype. The executable run by a checker is normally defined automatically, when the checker is registered. You can however override it, by setting the variable 'g:syntastic___exec': > - let g:syntastic_ruby_mri_exec = '~/bin/ruby2' + let g:syntastic_ruby_mri_exec = "~/bin/ruby2" < This variable has a local version, 'b:syntastic___exec', which takes precedence over the global one in the corresponding buffer. *'b:syntastic__exec'* -And there is also a local variable named 'b:syntastic__exec', which +There is also a local variable named 'b:syntastic__exec', which takes precedence over both 'b:syntastic___exec' and 'g:syntastic___exec' in the buffers where it is defined. ------------------------------------------------------------------------------ 5.3 Configuring specific checkers *syntastic-config-makeprg* -Checkers are run by constructing a command line and passing it to a shell. -In most cases this command line is built using an internal function named -'makeprgBuild()', which provides a number of options that allows you to -customise every part of the command that gets called. +Checkers are run by constructing a command line and by passing it to a shell +(see |'shell'| and |'syntastic_shell'|). In most cases this command line is +built using an internal function named "makeprgBuild()", which provides a +number of options that allow you to customise every part of the command that +gets called. *'syntastic___