Почему это происходит? : PyDev не поддерживает синтаксический анализ метаданных моста сценариев PyObjC и, следовательно, не имеет способа самоанализ / извлечение символов для многих классов PyObjC.
Что нужно сделать, чтобы исправить это : В исходном коде PyDev есть несколько скриптов Python, которые обрабатывают обнаружение этих метаданных.Сценарии выполняются Eclipse с использованием настроенного интерпретатора, и они возвращают строки, которые используются для настройки интерпретатора, заполнения списков выполненных работ, показа советов по использованию и т. Д.
Сценарии, которые соответствуют вашим потребностям:
- interpreterInfo.py - вызывается для получения списка каталогов и других импортов верхнего уровня по умолчанию для данного интерпретатора.
- importTipper.py - генерирует советы по использованию для данного символа.
- pycompletion.py - генерирует список завершений для данного символа.
Примеры вызововк приведенным выше сценариям с использованием системного интерпретатора:
% /usr/bin/python interpreterInfo.py | grep PyObjC
|/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjCINS_PATH
Создание дополнений для модуля:
>>> import pycompletion
>>> print pycompletion.GetImports('os')
@@COMPLETIONS(/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/os.py,(EX_CANTCREAT, 3),(EX_CONFIG, 3),(EX_DATAERR, 3), ....
Кажется возможным создать простую библиотеку macobjc.py
с подпрограммами, которые обнаруживают и читаютфайл (ы) PyObjC.bridgesupport.Скрипты PyDev могут быть изменены для вызова этой библиотеки, чтобы возвращать список допустимых дополнений для этих классов.Вам нужно будет указать Eclipse на локальную копию исходного кода PyDev, чтобы разрабатывать и тестировать свои патчи для этих файлов.Как только вы закончите, вы можете отправить его вверх по течению;Я должен верить, что ребята из PyDev примут хорошо написанный патч для поддержки дополнений PyObjC.