You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.2 KiB
61 lines
2.2 KiB
"============================================================================= |
|
" FILE: snippets.vim |
|
" AUTHOR: Shougo Matsushita <Shougo.Matsu@gmail.com> |
|
" Last Modified: 21 Oct 2012. |
|
" License: MIT license {{{ |
|
" Permission is hereby granted, free of charge, to any person obtaining |
|
" a copy of this software and associated documentation files (the |
|
" "Software"), to deal in the Software without restriction, including |
|
" without limitation the rights to use, copy, modify, merge, publish, |
|
" distribute, sublicense, and/or sell copies of the Software, and to |
|
" permit persons to whom the Software is furnished to do so, subject to |
|
" the following conditions: |
|
" |
|
" The above copyright notice and this permission notice shall be included |
|
" in all copies or substantial portions of the Software. |
|
" |
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
" IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
" }}} |
|
"============================================================================= |
|
|
|
" Only load this indent file when no other was loaded. |
|
if exists('b:did_indent') |
|
finish |
|
endif |
|
let b:did_indent = 1 |
|
|
|
let s:save_cpo = &cpo |
|
set cpo&vim |
|
|
|
if !exists('b:undo_indent') |
|
let b:undo_indent = '' |
|
endif |
|
|
|
setlocal indentexpr=SnippetsIndent() |
|
|
|
function! SnippetsIndent() "{{{ |
|
let line = getline('.') |
|
let prev_line = (line('.') == 1)? '' : getline(line('.')-1) |
|
|
|
if prev_line =~ '^\s*$' |
|
return 0 |
|
elseif prev_line =~ '^\%(include\|snippet\|abbr\|prev_word\|delete\|alias\|options\)' |
|
\&& line !~ '^\s*\%(include\|snippet\|abbr\|prev_word\|delete\|alias\|options\)' |
|
return &shiftwidth |
|
else |
|
return match(line, '\S') |
|
endif |
|
endfunction"}}} |
|
|
|
let b:undo_indent .= ' |
|
\ | setlocal indentexpr< |
|
\' |
|
|
|
let &cpo = s:save_cpo |
|
unlet s:save_cpo
|
|
|