2019-12-31 05:45:23 +08:00
|
|
|
" Copyright 2019 Google LLC
|
|
|
|
"
|
|
|
|
" Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
" you may not use this file except in compliance with the License.
|
|
|
|
" You may obtain a copy of the License at
|
|
|
|
"
|
|
|
|
" https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
"
|
|
|
|
" Unless required by applicable law or agreed to in writing, software
|
|
|
|
" distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
" See the License for the specific language governing permissions and
|
|
|
|
" limitations under the License.
|
|
|
|
|
2010-11-30 04:32:06 +08:00
|
|
|
" 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"
|