Получить автозаполнение для специальной переменной в python - PullRequest
1 голос
/ 05 апреля 2020

Я использую против кода для python сценариев. Эти скрипты запускаются только на сервере. Сервер, однако, передает определенные переменные в сценарий при выполнении сценария.

например, mbo всегда передается в нем. mbo - это специальное ключевое слово, которое соответствует некоторому классу. Пример mbo.py

class Mbo:
    def getString(column: str)-> str:
        return 'ABC'
    def setString(columnName: str)-> None:
        # do something with columnName.

Цель: В моем проекте в любом файле python всякий раз, когда пользователь вводит mbo, за которым следует код . против покажите автозаполнение для .getString() и .setString() без импорта этого класса, так как он передается в сценарий сервером.

Я могу попытаться написать расширение для кода, чтобы добавить эту функцию.

Здесь я застрял в том, какое расширение необходимо здесь. LSP? Я не хочу потерять функцию существующего python LSP для python.

Может ли любой опытный с API расширения кода направить меня в правильном направлении.

Примечание: Я не могу импортировать этот класс Mbo только для автозаполнения в vscode, потому что я импортирую его. Затем я запускаю тот же скрипт на сервере. Сервер выдает ошибки о файле.

1 Ответ

1 голос
/ 08 апреля 2020

Вы можете попробовать сделать импорт условным:

try:
    mbo
except NameError:
    import mbo

Этого может быть достаточно, чтобы заставить работать один из двух модулей IntelliSense в расширении Python.

В противном случае вы ищете на ваше собственное расширение. LSP, очевидно, является лучшим вариантом, но есть также стиль регистрации классов classi c. Документы VS Code содержат детали . Но вы все еще, вероятно, собираетесь набрать sh с расширением Python, так как оно и ваше расширение будут зарегистрированы для работы с Python файлами.

...