Как сделать функции в модуле расширения Python видимыми для Emacs?
Итак, у меня есть несколько библиотек C++, которые я хочу использовать с python; они скомпилированы в серию.so файлов, и я могу импортировать их просто отлично. Оболочки из C++ в python для этих.so файлов создаются SIP.
Однако мне нравится использовать Emacs в качестве среды разработки, и такие функции, как автозаполнение и правильное обнаружение включений и т. Д. И т. Д., Не работают. Однако я замечаю, что другие IDE правильно отображают информацию об автозаполнении, доступную из модуля. Я не знаю, как передать эту информацию в emacs, и в настоящее время я не знаю, как другие IDE получают ее (возможно, проверяют модуль расширения?).
По сути, информация, которую я хочу получить, - это то, что доступно пользователю на уровне интерпретатора при загрузке модуля, а затем вызывается справка о том, что этот модуль экспортирует через созданную оболочку SIP.
Я не уверен, что SIP будет генерировать файл.py из файлов.sip, которые у меня есть для используемой библиотеки, но если это так, то я был бы рад, если бы кто-то сказал мне потому что я уверен, посмотрел.
Первое редактирование
Я использую инструмент emacs Semantic из пакета CEDET. В моем.emacs у меня есть две строки, в которые добавляются переменные окружения PYTHONPATH и LD_LIBRARY_PATH с помощью setenv, чтобы при создании оболочки python под emacs для управления процессом он мог подобрать эти внешние библиотеки. У меня есть те же соответствующие каталоги, доступные для семантики через некоторые вызовы для установки semantic-python-dependency-system-include-path.
Второе редактирование. Я узнал, как используемая библиотека предоставляет графический интерфейс с поддержкой автозаполнения и проверкой синтаксиса. Есть файл.api, который он загружает, вот пример того, что этот файл.api содержит:
tulip.tlp.EDGE_TYPE? 10 tulip.tlp.DIRECTED? 10 tulip.tlp.INV_DIRECTED? 10 tulip.tlp.UNDIRECTED? 10 tulip.tlp.ElementType? 10 tulip.tlp.NODE? 10 tulip.tlp.EDGE? 10
Вот суть остального файла.api!
Что я делаю, чтобы emacs мог видеть, какие функции предоставляются сгенерированной SIP оболочкой?