diff options
Diffstat (limited to 'base/.vim/indent')
-rw-r--r-- | base/.vim/indent/json.vim | 177 | ||||
-rw-r--r-- | base/.vim/indent/php.vim | 272 |
2 files changed, 0 insertions, 449 deletions
diff --git a/base/.vim/indent/json.vim b/base/.vim/indent/json.vim deleted file mode 100644 index 7873d65..0000000 --- a/base/.vim/indent/json.vim +++ /dev/null @@ -1,177 +0,0 @@ -" Vim indent file -" Language: JSON -" Mantainer: Eli Parra <[email protected]> https://github.com/elzr/vim-json -" Last Change: 2014-05-13: merged Fix for square bracket matching by Jakar -" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c -" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json -" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe -" http://www.vim.org/scripts/script.php?script_id=2765 - -" 0. Initialization {{{1 -" ================= - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") - finish -endif -let b:did_indent = 1 - -setlocal nosmartindent - -" Now, set up our indentation expression and keys that trigger it. -setlocal indentexpr=GetJSONIndent() -setlocal indentkeys=0{,0},0),0[,0],!^F,o,O,e - -" Only define the function once. -if exists("*GetJSONIndent") - finish -endif - -let s:cpo_save = &cpo -set cpo&vim - -" 1. Variables {{{1 -" ============ - -let s:line_term = '\s*\%(\%(\/\/\).*\)\=$' -" Regex that defines blocks. -let s:block_regex = '\%({\)\s*\%(|\%([*@]\=\h\w*,\=\s*\)\%(,\s*[*@]\=\h\w*\)*|\)\=' . s:line_term - -" 2. Auxiliary Functions {{{1 -" ====================== - -" Check if the character at lnum:col is inside a string. -function s:IsInString(lnum, col) - return synIDattr(synID(a:lnum, a:col, 1), 'name') == "jsonString" -endfunction - -" Find line above 'lnum' that isn't empty, or in a string. -function s:PrevNonBlankNonString(lnum) - let lnum = prevnonblank(a:lnum) - while lnum > 0 - " If the line isn't empty or in a string, end search. - let line = getline(lnum) - if !(s:IsInString(lnum, 1) && s:IsInString(lnum, strlen(line))) - break - endif - let lnum = prevnonblank(lnum - 1) - endwhile - return lnum -endfunction - -" Check if line 'lnum' has more opening brackets than closing ones. -function s:LineHasOpeningBrackets(lnum) - let open_0 = 0 - let open_2 = 0 - let open_4 = 0 - let line = getline(a:lnum) - let pos = match(line, '[][(){}]', 0) - while pos != -1 - let idx = stridx('(){}[]', line[pos]) - if idx % 2 == 0 - let open_{idx} = open_{idx} + 1 - else - let open_{idx - 1} = open_{idx - 1} - 1 - endif - let pos = match(line, '[][(){}]', pos + 1) - endwhile - return (open_0 > 0) . (open_2 > 0) . (open_4 > 0) -endfunction - -function s:Match(lnum, regex) - let col = match(getline(a:lnum), a:regex) + 1 - return col > 0 && !s:IsInString(a:lnum, col) ? col : 0 -endfunction - -" 3. GetJSONIndent Function {{{1 -" ========================= - -function GetJSONIndent() - " 3.1. Setup {{{2 - " ---------- - - " Set up variables for restoring position in file. Could use v:lnum here. - let vcol = col('.') - - " 3.2. Work on the current line {{{2 - " ----------------------------- - - " Get the current line. - let line = getline(v:lnum) - let ind = -1 - - " If we got a closing bracket on an empty line, find its match and indent - " according to it. - let col = matchend(line, '^\s*[]}]') - - if col > 0 && !s:IsInString(v:lnum, col) - call cursor(v:lnum, col) - let bs = strpart('{}[]', stridx('}]', line[col - 1]) * 2, 2) - - let pairstart = escape(bs[0], '[') - let pairend = escape(bs[1], ']') - let pairline = searchpair(pairstart, '', pairend, 'bW') - - if pairline > 0 - let ind = indent(pairline) - else - let ind = virtcol('.') - 1 - endif - - return ind - endif - - " If we are in a multi-line string, don't do anything to it. - if s:IsInString(v:lnum, matchend(line, '^\s*') + 1) - return indent('.') - endif - - " 3.3. Work on the previous line. {{{2 - " ------------------------------- - - let lnum = prevnonblank(v:lnum - 1) - - if lnum == 0 - return 0 - endif - - " Set up variables for current line. - let line = getline(lnum) - let ind = indent(lnum) - - " If the previous line ended with a block opening, add a level of indent. - " if s:Match(lnum, s:block_regex) - " if exists('*shiftwidth') - " return indent(lnum) + shiftwidth() - " else - " return indent(lnum) + &sw - " endif - " endif - - " If the previous line contained an opening bracket, and we are still in it, - " add indent depending on the bracket type. - if line =~ '[[({]' - let counts = s:LineHasOpeningBrackets(lnum) - if counts[0] == '1' || counts[1] == '1' || counts[2] == '1' - if exists('*shiftwidth') - return ind + shiftwidth() - else - return ind + &sw - endif - else - call cursor(v:lnum, vcol) - end - endif - - " }}}2 - - return ind -endfunction - -" }}}1 - -let &cpo = s:cpo_save -unlet s:cpo_save - -" vim:set sw=2 sts=2 ts=8 noet: - diff --git a/base/.vim/indent/php.vim b/base/.vim/indent/php.vim deleted file mode 100644 index 3c498a7..0000000 --- a/base/.vim/indent/php.vim +++ /dev/null @@ -1,272 +0,0 @@ -" Vim indent file -" Language: Php -" Authors: Miles Lott <[email protected]>, Johannes Zellner <[email protected]>, Pim Snel <[email protected]> -" URL: http://lingewoud.nl/downloads.php -" Last Change: 23 feb 2004 -" Version: 0.3 -" Notes: This is a combination of the PHP indent file of Miles Lott with -" the HTML indent file of Johannes Zellner. Usefull for editing -" php-files with html parts in it. -" -" Changelog: -" 0.3 - 25 mar 2004 -" - fixed wrong indention when a php-tag is opened and closed on -" one single line. -" 0.2 - 23 feb 2004 -" - applied patch from Holger Dzeik <[email protected]> -" - added changelog -" - added default indention of 3 spaces after the <?php for better -" reading -" - replaced URL -" - reformatted the options section -" 0.1 - 27 mar 2003 -" - initial creation of html-enhanced php indent-file - -" Options: -let php_noindent_switch=0 " set this to '1' to not try to indent switch/case statements -set sw=3 " default shiftwidth of 3 spaces - - -if exists("b:did_indent") - finish -endif -let b:did_indent = 1 - -setlocal indentexpr=GetPhpIndent() -"setlocal indentkeys+=0=,0),=EO -setlocal indentkeys+=0=,0),=EO,o,O,*<Return>,<>>,<bs>,{,} - -" Only define the function once. -if exists("*GetPhpIndent") - finish -endif - -" Handle option(s) -if exists("php_noindent_switch") - let b:php_noindent_switch=1 -endif - -if exists('g:html_indent_tags') - unlet g:html_indent_tags -endif - -function GetPhpIndent() - " Find a non-empty line above the current line. - let lnum = prevnonblank(v:lnum - 1) - - " Hit the start of the file, use zero indent. - if lnum == 0 - return 0 - endif - - let line = getline(lnum) " last line - let cline = getline(v:lnum) " current line - let pline = getline(lnum - 1) " previous to last line - let ind = indent(lnum) - - let restore_ic=&ic - let &ic=1 " ignore case - - let ind = <SID>HtmlIndentSum(lnum, -1) - let ind = ind + <SID>HtmlIndentSum(v:lnum, 0) - - let &ic=restore_ic - - let ind = indent(lnum) + (&sw * ind) - - " Indent after php open tags - if line =~ '<?php' && line !~ '?>' - let ind = ind + &sw - endif - if cline =~ '^\s*[?>]' " // Fix from Holger Dzeik <[email protected]> Thanks! - let ind = ind - &sw - endif - - - if exists("b:php_noindent_switch") " version 1 behavior, diy switch/case,etc - " Indent blocks enclosed by {} or () - if line =~ '[{(]\s*\(#[^)}]*\)\=$' - let ind = ind + &sw - endif - if cline =~ '^\s*[)}]' - let ind = ind - &sw - endif - return ind - else " Try to indent switch/case statements as well - " Indent blocks enclosed by {} or () or case statements, with some anal requirements - if line =~ 'case.*:\|[{(]\s*\(#[^)}]*\)\=$' - let ind = ind + &sw - " return if the current line is not another case statement of the previous line is a bracket open - if cline !~ '.*case.*:\|default:' || line =~ '[{(]\s*\(#[^)}]*\)\=$' - return ind - endif - endif - if cline =~ '^\s*case.*:\|^\s*default:\|^\s*[)}]' - let ind = ind - &sw - " if the last line is a break or return, or the current line is a close bracket, - " or if the previous line is a default statement, subtract another - if line =~ '^\s*break;\|^\s*return\|' && cline =~ '^\s*[)}]' && pline =~ 'default:' - let ind = ind - &sw - endif - endif - - if line =~ 'default:' - let ind = ind + &sw - endif - return ind - endif -endfunction - - -" [-- local settings (must come before aborting the script) --] -"setlocal indentexpr=HtmlIndentGet(v:lnum) -"setlocal indentkeys=o,O,*<Return>,<>>,<bs>,{,} - - - -" [-- helper function to assemble tag list --] -fun! <SID>HtmlIndentPush(tag) - if exists('g:html_indent_tags') - let g:html_indent_tags = g:html_indent_tags.'\|'.a:tag - else - let g:html_indent_tags = a:tag - endif -endfun - - -" [-- <ELEMENT ? - - ...> --] -call <SID>HtmlIndentPush('a') -call <SID>HtmlIndentPush('abbr') -call <SID>HtmlIndentPush('acronym') -call <SID>HtmlIndentPush('address') -call <SID>HtmlIndentPush('b') -call <SID>HtmlIndentPush('bdo') -call <SID>HtmlIndentPush('big') -call <SID>HtmlIndentPush('blockquote') -call <SID>HtmlIndentPush('button') -call <SID>HtmlIndentPush('caption') -call <SID>HtmlIndentPush('center') -call <SID>HtmlIndentPush('cite') -call <SID>HtmlIndentPush('code') -call <SID>HtmlIndentPush('colgroup') -call <SID>HtmlIndentPush('del') -call <SID>HtmlIndentPush('dfn') -call <SID>HtmlIndentPush('dir') -call <SID>HtmlIndentPush('div') -call <SID>HtmlIndentPush('dl') -call <SID>HtmlIndentPush('em') -call <SID>HtmlIndentPush('fieldset') -call <SID>HtmlIndentPush('font') -call <SID>HtmlIndentPush('form') -call <SID>HtmlIndentPush('frameset') -call <SID>HtmlIndentPush('h1') -call <SID>HtmlIndentPush('h2') -call <SID>HtmlIndentPush('h3') -call <SID>HtmlIndentPush('h4') -call <SID>HtmlIndentPush('h5') -call <SID>HtmlIndentPush('h6') -call <SID>HtmlIndentPush('i') -call <SID>HtmlIndentPush('iframe') -call <SID>HtmlIndentPush('ins') -call <SID>HtmlIndentPush('kbd') -call <SID>HtmlIndentPush('label') -call <SID>HtmlIndentPush('legend') -call <SID>HtmlIndentPush('map') -call <SID>HtmlIndentPush('menu') -call <SID>HtmlIndentPush('noframes') -call <SID>HtmlIndentPush('noscript') -call <SID>HtmlIndentPush('object') -call <SID>HtmlIndentPush('ol') -call <SID>HtmlIndentPush('optgroup') -call <SID>HtmlIndentPush('pre') -call <SID>HtmlIndentPush('q') -call <SID>HtmlIndentPush('s') -call <SID>HtmlIndentPush('samp') -call <SID>HtmlIndentPush('script') -call <SID>HtmlIndentPush('select') -call <SID>HtmlIndentPush('small') -call <SID>HtmlIndentPush('span') -call <SID>HtmlIndentPush('strong') -call <SID>HtmlIndentPush('style') -call <SID>HtmlIndentPush('sub') -call <SID>HtmlIndentPush('sup') -call <SID>HtmlIndentPush('table') -call <SID>HtmlIndentPush('textarea') -call <SID>HtmlIndentPush('title') -call <SID>HtmlIndentPush('tt') -call <SID>HtmlIndentPush('u') -call <SID>HtmlIndentPush('ul') -call <SID>HtmlIndentPush('var') - - -" [-- <ELEMENT ? O O ...> --] -if !exists('g:html_indent_strict') - call <SID>HtmlIndentPush('body') - call <SID>HtmlIndentPush('head') - call <SID>HtmlIndentPush('html') - call <SID>HtmlIndentPush('tbody') -endif - - -" [-- <ELEMENT ? O - ...> --] -if !exists('g:html_indent_strict_table') - call <SID>HtmlIndentPush('th') - call <SID>HtmlIndentPush('td') - call <SID>HtmlIndentPush('tr') - call <SID>HtmlIndentPush('tfoot') - call <SID>HtmlIndentPush('thead') -endif - -delfun <SID>HtmlIndentPush - -set cpo-=C - -" [-- count indent-increasing tags of line a:lnum --] -fun! <SID>HtmlIndentOpen(lnum) - let s = substitute('x'.getline(a:lnum), - \ '.\{-}\(\(<\)\('.g:html_indent_tags.'\)\>\)', "\1", 'g') - let s = substitute(s, "[^\1].*$", '', '') - return strlen(s) -endfun - -" [-- count indent-decreasing tags of line a:lnum --] -fun! <SID>HtmlIndentClose(lnum) - let s = substitute('x'.getline(a:lnum), - \ '.\{-}\(\(<\)/\('.g:html_indent_tags.'\)\>>\)', "\1", 'g') - let s = substitute(s, "[^\1].*$", '', '') - return strlen(s) -endfun - -" [-- count indent-increasing '{' of (java|css) line a:lnum --] -fun! <SID>HtmlIndentOpenAlt(lnum) - return strlen(substitute(getline(a:lnum), '[^{]\+', '', 'g')) -endfun - -" [-- count indent-decreasing '}' of (java|css) line a:lnum --] -fun! <SID>HtmlIndentCloseAlt(lnum) - return strlen(substitute(getline(a:lnum), '[^}]\+', '', 'g')) -endfun - -" [-- return the sum of indents respecting the syntax of a:lnum --] -fun! <SID>HtmlIndentSum(lnum, style) - if a:style == match(getline(a:lnum), '^\s*</') - if a:style == match(getline(a:lnum), '^\s*</\<\('.g:html_indent_tags.'\)\>') - let open = <SID>HtmlIndentOpen(a:lnum) - let close = <SID>HtmlIndentClose(a:lnum) - if 0 != open || 0 != close - return open - close - endif - endif - endif - if '' != &syntax && - \ synIDattr(synID(a:lnum, 1, 1), 'name') =~ '\(css\|java\).*' && - \ synIDattr(synID(a:lnum, strlen(getline(a:lnum)) - 1, 1), 'name') - \ =~ '\(css\|java\).*' - if a:style == match(getline(a:lnum), '^\s*}') - return <SID>HtmlIndentOpenAlt(a:lnum) - <SID>HtmlIndentCloseAlt(a:lnum) - endif - endif - return 0 -endfun - -" vim: set ts=3 sw=3: |