Skip to content

Commit 338de5d

Browse files
committed
Improve indent for ...
1 parent decdfda commit 338de5d

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

indent/python.vim

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
" Vim indent file
22
" Language: Python
33
" Author: Akinori Hattori <hattya@gmail.com>
4-
" Last Change: 2022-09-27
4+
" Last Change: 2023-05-21
55
" License: MIT License
66

77
if exists('b:did_indent')
@@ -33,6 +33,7 @@ let s:compound_stmts = {
3333
\ '^\s*\<finally\>': '\v^\s*<%(try|except|else)>',
3434
\}
3535
let s:dedent = '\v^\s*<%(pass|return|raise|break|continue)>'
36+
let s:ellipsis = '\v^\s*\.{3}\.@!'
3637
let s:lcont = '\\$'
3738
let s:syn_skip = '\v\c%(Comment|Quotes|String)$'
3839
let s:syn_str = '\v\c%(Quotes|String)$'
@@ -134,6 +135,9 @@ function! GetPEP8PythonIndent() abort
134135
elseif ll =~# s:dedent
135136
" simple statement
136137
let ind -= shiftwidth()
138+
elseif ll =~# s:ellipsis
139+
" ellipsis
140+
let ind -= shiftwidth()
137141
elseif getline(v:lnum - 1) =~# s:lcont
138142
" line continuation
139143
if s:is_compound_stmt(ll)

test/indent.vimspec

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,20 @@ Describe filetype indent
341341
\]
342342
Assert Equals(Insert(in), Buffer(out))
343343
End
344+
345+
It decreases the indent level after ellipsis
346+
let in = "def spam():\<CR>...\<CR>"
347+
let in .= "def eggs():\<CR>....\<CR>"
348+
let in .= "def ham():"
349+
let out = [
350+
\ 'def spam():',
351+
\ ' ...',
352+
\ 'def eggs():',
353+
\ ' ....',
354+
\ ' def ham():',
355+
\]
356+
Assert Equals(Insert(in), Buffer(out))
357+
End
344358
End
345359

346360
Describe if statement

0 commit comments

Comments
 (0)