diff --git a/autoload/pydocstring.vim b/autoload/pydocstring.vim index b83db24..3de6605 100644 --- a/autoload/pydocstring.vim +++ b/autoload/pydocstring.vim @@ -76,7 +76,12 @@ endfunction function! s:exit_callback(msg) abort unlet s:job " Needed for Neovim - if len(s:results) + let length = len(s:results) + if length + if length == 1 && s:results[0] == '' + let s:results = [] + return + endif let view = winsaveview() silent execute '% delete' call setline(1, s:results) @@ -94,6 +99,7 @@ function! s:execute(cmd, lines, indent, start_lineno, cb, ex_cb) abort return endif + let s:results = [] if has('nvim') if exists('s:job') call jobstop(s:job) diff --git a/tests/format.vader b/tests/format.vader index 956816f..133a6cd 100644 --- a/tests/format.vader +++ b/tests/format.vader @@ -39,3 +39,40 @@ Expect python: :param arg2: """ pass + + +Given python (Format all twice): + class Foo: + def foo(arg1): + pass + + + def bar(arg1, arg2): + pass + + +Execute: + :PydocstringFormat + :sleep 1 + :PydocstringFormat + :sleep 1 + +Expect python: + class Foo: + """Foo.""" + + def foo(arg1): + """foo. + + :param arg1: + """ + pass + + + def bar(arg1, arg2): + """bar. + + :param arg1: + :param arg2: + """ + pass