Строка документации Python с vim pythoncomplete не отображает переводы строк для моих собственных функций класса
Я получаю некоторые неожиданные результаты, когда пытаюсь использовать Python Omni Completion в своих собственных функциях класса. Строка документации для функций неправильно форматируется с переносами строк, как показано на рисунке ниже:
Когда я импортирую модули из стандартной библиотеки Python, я получаю ожидаемый результат:
В соответствии с соглашениями документации строки Python перевод строки в исходном файле должен интерпретироваться как перевод строки. Кто-нибудь знает, что здесь происходит и, возможно, как решить проблему?
1 ответ
Изменить: я написал автозаполнение, которое должно быть намного лучше, чем pythoncomplete: https://github.com/davidhalter/jedi-vim
Python Omni Completion
Вим довольно глупо. Это простой скрипт, который анализирует текущий файл и imports
все остальные. Это довольно опасно и не должно быть сделано. Однако это работает не так уж плохо (но и не очень хорошо).
Так что разница между вашими двумя сценариями в том, что стандартные библиотеки импортируются. Как и ваши файлы, но не текущий файл. Если вы использовали второй модуль с именем test2
и использовал:
import test
test.mydoc.prettyStr
Он должен работать.
Ваш текущий файл анализируется. Парсер прост и не очень хорош. Парсер Dostring особенно странен из-за этой строки (номер строки ~290):
docstr = docstr.replace('\n', ' ')
Вы можете изменить его - просто измените этот файл:/usr/share/vim/vim73/autoload/pythoncomplete.vim
Может быть, это в другом каталоге.
В настоящее время я нахожусь в процессе написания лучшего автозаполнения для python/vi (это также причина, почему я знаю это). Но это все еще довольно трудоемкая работа. Я надеюсь, что через месяц я буду готова с бета-версией. Я стараюсь держать вас в курсе.