From e8790b1d8f486fe0284687a416feb62788cd8e33 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 17 Jan 2020 13:48:22 +0100 Subject: [PATCH] minor: rewrite/expand show_documentation (#980) * minor: rewrite/expand show_documentation * tests: improve 'documentation docstrings' --- pythonx/jedi_vim.py | 14 +++++++++++--- test/vspec/documentation.vim | 11 ++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pythonx/jedi_vim.py b/pythonx/jedi_vim.py index 666970ff..a7f7c7ed 100644 --- a/pythonx/jedi_vim.py +++ b/pythonx/jedi_vim.py @@ -726,9 +726,17 @@ def show_documentation(): if not definitions: echo_highlight('No documentation found for that.') vim.command('return') - else: - docs = ['Docstring for %s\n%s\n%s' % (d.desc_with_module, '=' * 40, d.docstring()) - if d.docstring() else '|No Docstring for %s|' % d for d in definitions] + return + + docs = [] + for d in definitions: + doc = d.docstring() + if doc: + title = 'Docstring for %s' % d.desc_with_module + underline = '=' * len(title) + docs.append('%s\n%s\n%s' % (title, underline, doc)) + else: + docs.append('|No Docstring for %s|' % d) text = ('\n' + '-' * 79 + '\n').join(docs) vim.command('let l:doc = %s' % repr(PythonToVimStr(text))) vim.command('let l:doc_lines = %s' % len(text.split('\n'))) diff --git a/test/vspec/documentation.vim b/test/vspec/documentation.vim index 0d4172e6..074e6088 100644 --- a/test/vspec/documentation.vim +++ b/test/vspec/documentation.vim @@ -15,7 +15,16 @@ describe 'documentation docstrings' normal GK Expect bufname('%') == "__doc__" Expect &filetype == 'rst' - let content = join(getline(1,'$'), "\n") + let header = getline(1, 2) + PythonJedi vim.vars["is_py2"] = sys.version_info[0] == 2 + if g:is_py2 + Expect header[0] == "Docstring for __builtin__:class ImportError" + Expect header[1] == "===========================================" + else + Expect header[0] == "Docstring for builtins:class ImportError" + Expect header[1] == "========================================" + endif + let content = join(getline(3, '$'), "\n") Expect stridx(content, "Import can't find module") > 0 normal K Expect bufname('%') == ''