X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/dc1fdffa795bce2425025e9d29d14a321c5424dd..18593f1150972346884dac64d7e71fd6a5f2b0fc:/indent/python.vim diff --git a/indent/python.vim b/indent/python.vim index 69ce187..c632c7b 100644 --- a/indent/python.vim +++ b/indent/python.vim @@ -170,7 +170,7 @@ function! GetPythonPEPIndent(lnum) return maybe_indent + &sw else " control structure not found - return maybe_indent + return maybe_indent endif endif @@ -191,6 +191,13 @@ function! GetPythonPEPIndent(lnum) return -1 endif + " If this line is dedented and the number of indent spaces is valid + " (multiple of the indentation size), trust the user + let dedent_size = thisindent - indent(plnum) + if dedent_size < 0 && thisindent % &sw == 0 + return -1 + endif + " In all other cases, line up with the start of the previous statement. return indent(sslnum) endfunction