diff --git a/google_python_style.vim b/google_python_style.vim new file mode 100644 index 0000000..a8feea9 --- /dev/null +++ b/google_python_style.vim @@ -0,0 +1,36 @@ +" Indent Python in the Google way. + +setlocal indentexpr=GetGooglePythonIndent(v:lnum) + +let s:maxoff = 50 " maximum number of lines to look backwards. + +function GetGooglePythonIndent(lnum) + + " Indent inside parens. + " Align with the open paren unless it is at the end of the line. + " E.g. + " open_paren_not_at_EOL(100, + " (200, + " 300), + " 400) + " open_paren_at_EOL( + " 100, 200, 300, 400) + call cursor(a:lnum, 1) + let [par_line, par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW', + \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" + \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" + \ . " =~ '\\(Comment\\|String\\)$'") + if par_line > 0 + call cursor(par_line, 1) + if par_col != col("$") - 1 + return par_col + endif + endif + + " Delegate the rest to the original function. + return GetPythonIndent(a:lnum) + +endfunction + +let pyindent_nested_paren="&sw*2" +let pyindent_open_paren="&sw*2" diff --git a/pyguide.html b/pyguide.html index b2db3f7..50a9d01 100644 --- a/pyguide.html +++ b/pyguide.html @@ -100,7 +100,7 @@
- Revision 2.18 + Revision 2.19
@@ -168,6 +168,10 @@ programs. ++ To help you format code correctly, we've created a settings + file for Vim. For Emacs, the default settings should be fine. +
@@ -2025,7 +2029,7 @@ Don't do this.-Revision 2.18 +Revision 2.19