Автодополнение кода
Автодополнение кода в блоках с пользовательским кодом
Редактор Monaco обладает системой автодополнения кода (IntelliSense). Её ключевые особенности: 1. Встроенное автодополнение для JavaScript/TypeScript Monaco изначально поддерживает полноценный IntelliSense для JS/TS, включая: - Автодополнение переменных, функций, классов (на основе статического анализа). - Сниппеты (например, for, if, console.log). 2. Базовые контекстные подсказки для остальных языков, включая SQL, без учета их синтаксиса
Автодополнение кода в блоках Python
Автодополнение в Python поддерживает следующий функционал:
- Встроенные функции и типы (builtins)
- Возвращаемые значения return, yield, yield from
- Присваивание кортежей, индексация массивов и словарей, распаковка через * (звёздочку)
- Конструкция with
- Обработка исключений (try/except)
- Передача аргументов: *args и **kwargs
- Декораторы (@decorator), лямбда-функции (lambda), замыкания (closures)
- Генераторы (generators) и итераторы (iterators)
- Встроенные декораторы @property, @staticmethod, @classmethod,
- Магические методы __call__, __iter__, __next__, __get__, __getitem__, __init__
- Генераторы списков (включая вложенные)
- Тернарные операторы (x if condition else y)
- Относительные импорты (from .module import ...)
- Функция getattr()
- Магические методы __getattr__, __getattribute__
- Аннотации функций
- Простые изменения sys.path
- Проверки isinstance в условиях (if, while, assert)
- Пространства имён пакетов (включая pkgutil, pkg_resources и PEP 420)
Помимо стандартного автодополнения кода, анализатор делает подсказки по импортам пользовательского кода. Подробности на странице "Импорты пользовательских скриптов" в разделе Разработка_в_блоке_Python и по импорту системного модуля vmResource.