" Maintainer: Hynek Schlawack <hs@ox.cx>
" Prev Maintainer: Eric Mc Sween <em@tomcom.de> (address invalid)
" Original Author: David Bustos <bustos@caltech.edu> (address invalid)
-" License: Public Domain
+" License: CC0
+"
+" vim-python-pep8-indent - A nicer Python indentation style for vim.
+" Written in 2004 by David Bustos <bustos@caltech.edu>
+" Maintained from 2004-2005 by Eric Mc Sween <em@tomcom.de>
+" Maintained from 2013 by Hynek Schlawack <hs@ox.cx>
+"
+" To the extent possible under law, the author(s) have dedicated all copyright
+" and related and neighboring rights to this software to the public domain
+" worldwide. This software is distributed without any warranty.
+" You should have received a copy of the CC0 Public Domain Dedication along
+" with this software. If not, see
+" <http://creativecommons.org/publicdomain/zero/1.0/>.
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
let s:maxoff = 50
let s:block_rules = {
- \ '^\s*elif\>': ['if', 'elif'],
- \ '^\s*else\>': ['if', 'elif', 'for', 'try', 'except'],
- \ '^\s*except\>': ['try', 'except'],
- \ '^\s*finally\>': ['try', 'except', 'else']
- \ }
+ \ '^\s*elif\>': ['if', 'elif'],
+ \ '^\s*else\>': ['if', 'elif', 'for', 'try', 'except'],
+ \ '^\s*except\>': ['try', 'except'],
+ \ '^\s*finally\>': ['try', 'except', 'else']
+ \ }
let s:paren_pairs = ['()', '{}', '[]']
let s:control_statement = '^\s*\(if\|while\|with\|for\|except\)\>'
let s:stop_statement = '^\s*\(break\|continue\|raise\|return\|pass\)\>'
" Skip strings and comments
let s:skip_special_chars = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
- \ '=~? "string\\|comment"'
+ \ '=~? "string\\|comment"'
let s:skip_search = 'synIDattr(synID(line("."), col("."), 0), "name") ' .
- \ '=~? "comment"'
+ \ '=~? "comment"'
-" compatibility with vim patch 7.3.629: 'sw' can be set to -1 to follow 'ts'
+" Use 'shiftwidth()' instead of '&sw'.
+" (Since Vim patch 7.3.629, 'shiftwidth' can be set to 0 to follow 'tabstop').
if exists('*shiftwidth')
function! s:sw()
return shiftwidth()
let stopline = max([0, line('.') - s:maxoff])
- " Return if cursor is in a comment or string
+ " Return if cursor is in a comment.
exe 'if' s:skip_search '| return [0, 0] | endif'
let positions = []