Строка документации Python с vim pythoncomplete не отображает переводы строк для моих собственных функций класса - PullRequest
3 голосов
/ 02 апреля 2012

Я получаю некоторые неожиданные результаты при попытке использовать Python Omni Completion в своих собственных функциях класса.Строка документации для функций не форматируется правильно с разрывами строк, как показано на рисунке ниже:

Unexpected result

Когда я импортирую модули из стандартной библиотеки Python, я получаю результат Iможно ожидать:

Expected result

В соответствии с соглашениями Python docstring символ новой строки в исходном файле должен интерпретироваться как символ новой строки.Кто-нибудь знает, что здесь происходит и, возможно, как решить проблему?

1 Ответ

3 голосов
/ 06 апреля 2012

Редактировать: я написал автозаполнение, которое должно быть намного лучше , чем pythoncomplete: https://github.com/davidhalter/jedi-vim


* * * * * * * vim довольно глупый.Это простой скрипт, который анализирует текущий файл и imports все остальные.Это довольно опасно и не должно быть сделано.Однако это работает не так уж плохо (но также и не очень хорошо).

Так что разница между вашими двумя сценариями в том, что стандартные библиотеки импортируются.Как и ваши файлы, но не текущий файл.Если вы использовали второй модуль с именем test2 и использовали:

import test
test.mydoc.prettyStr

Он должен работать.

Ваш текущий файл анализируется.Парсер прост и не очень хорош.Парсер строк строки особенно странен из-за этой строки (номер строки ~ 290):

docstr = docstr.replace('\n', ' ')

Вы можете изменить его - просто измените этот файл: /usr/share/vim/vim73/autoload/pythoncomplete.vim Возможно, он находится в другом каталоге.

В настоящее время я пишу лучшее автозаполнение для python / vi (это также причина, по которой я это знаю).Но это все еще довольно трудоемкая работа.Я надеюсь, что через месяц я буду готова с бета-версией.Я стараюсь держать вас в курсе.

...