1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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"
|
|