X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/7dfebca4ed468be64afffd8107e7a87f35d8ef5b..e0562c8f61eb871f99192b66fbdccd5fbe60dcd2:/indent/python.vim diff --git a/indent/python.vim b/indent/python.vim index befc60a..939968e 100644 --- a/indent/python.vim +++ b/indent/python.vim @@ -1,6 +1,7 @@ " PEP8 compatible Python indent file " Language: Python -" Maintainer: Hynek Schlawack +" Maintainer: Daniel Hahler +" Prev Maintainer: Hynek Schlawack " Prev Maintainer: Eric Mc Sween (address invalid) " Original Author: David Bustos (address invalid) " License: CC0 @@ -9,6 +10,7 @@ " Written in 2004 by David Bustos " Maintained from 2004-2005 by Eric Mc Sween " Maintained from 2013 by Hynek Schlawack +" Maintained from 2017 by Daniel Hahler " " 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 @@ -23,14 +25,10 @@ if exists("b:did_indent") endif let b:did_indent = 1 -setlocal expandtab setlocal nolisp setlocal autoindent setlocal indentexpr=GetPythonPEPIndent(v:lnum) setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except -setlocal tabstop=4 -setlocal softtabstop=4 -setlocal shiftwidth=4 if !exists('g:python_pep8_indent_multiline_string') let g:python_pep8_indent_multiline_string = 0 @@ -301,17 +299,19 @@ function! s:indent_like_previous_line(lnum) return base + s:sw() endif + let empty = getline(a:lnum) =~# '^\s*$' + " If the previous statement was a stop-execution statement or a pass if getline(start) =~# s:stop_statement " Remove one level of indentation if the user hasn't already dedented - if indent(a:lnum) > base - s:sw() + if empty || current > base - s:sw() return base - s:sw() endif " Otherwise, trust the user return -1 endif - if s:is_dedented_already(current, base) + if !empty && s:is_dedented_already(current, base) return -1 endif