Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Bitrix AssistantNew to Visual Studio Code? Get it now.
Bitrix Assistant

Bitrix Assistant

Pesherin Denis

|
3 installs
| (0) | Free
Индекс ядра 1С-Битрикс, подсказки PHP и JS (LSP), SSH-синхронизация с сервером и терминал на сервере — без внешних сервисов и LLM
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Bitrix Assistant

Подсказки, навигация и заливка файлов на сервер для разработки на 1С-Битрикс — прямо в VS Code.

Знакомо: нужно вспомнить, что делает CIBlockElement::GetList, какие поля лежат в $arResult чужого компонента или какой метод у CFile? Bitrix Assistant строит карту ядра Битрикса и вашего проекта и подсказывает по ходу набора — как в дорогих IDE, только без переезда.

Зачем это нужно

  • Не держать в голове API ядра. Набрали CFile:: — увидели методы. Навели — прочитали сигнатуру и что метод делает. Кликнули — перешли к исходнику.
  • Чужой код становится понятнее. Работает и с легаси (CFile, CMain, $USER, $APPLICATION), и с D7 (Bitrix\Main\...), и с вашими модулями в local/.
  • Файлы на сервер — без FTP-клиента. Сохранили файл — он ушёл на сервер. Или одна комбинация клавиш. Перед перезаписью можно посмотреть diff с серверной версией.
  • Ничего не нужно доустанавливать. Сервер подсказок и PHP-рантайм уже внутри расширения: не надо ставить PHP, Node, Composer и настраивать индексы руками.

Что вы получаете

  • Подсказки по PHP: классы ядра и проекта (включая легаси), методы и свойства после -> и ::, глобальные функции, ключи $arParams и $arResult компонентов, типы $APPLICATION, $USER, $DB, методы трейтов и родителей. Вставка сразу с use-импортом.
  • Подсказки по JS: объекты BX.*, расширения Битрикса, их зависимости и параметры.
  • Навигация: Ctrl+Click и hover по классам, методам, свойствам, константам, функциям и переменным; структура файла и хлебные крошки.
  • Анализ кода: все вхождения символа (Find All References) и подсветка использований, переход к типу (Go to Type Definition) и к реализациям, иерархия вызовов и иерархия типов, CodeLens с числом наследников и переопределений, подписи параметров в вызовах (inlay hints), сворачивание классов/функций/#region.
  • Типы из PHPDoc: @var/@param/@return с Foo[], array<Foo>, array{ITEMS: Foo[]} — работают foreach по массивам объектов, $items[0] и подсказки по членам элемента.
  • Диагностика типов (при включённой bitrix.php.semantic): несовпадение аргументов и возвращаемых значений с учётом иерархии классов, strict_types, nullable-типов и приведений скаляров.
  • Мелочи, которые экономят время: переименование локальных переменных (F2) с защитой от опасных случаев, кликабельные пути в require/include, форматирование хвостовых пробелов и пустой строки в конце файла.
  • Синхронизация: загрузка и скачивание файлов и каталогов, загрузка по сохранению, сверка проекта в обе стороны, сравнение с сервером, резервные копии .bak.
  • Терминал на сервере: открывается по сохранённому профилю, пароль вводить каждый раз не нужно.
  • Проверки: ошибки синтаксиса PHP, диагностика подсказок, авто-импорт классов, генерация @property-аннотаций для ORM-таблиц.
  • Настройка под проект: несколько папок сразу, свой путь к bitrix, исключения для индекса и синхронизации, горячие клавиши.

Быстрый старт

  1. Установите расширение и откройте папку проекта, где лежит bitrix/.
  2. Дождитесь сообщения «Индекс готов» — на большом проекте это около минуты.
  3. Наберите \CF в PHP-файле или BX. в JS — появятся подсказки.
  4. Для синхронизации: «Bitrix Assistant: Добавить SSH-профиль» → «Подключиться».

Требования

  • VS Code 1.100 или новее.
  • macOS (Apple Silicon и Intel), Linux (x64 и arm64) или Windows (x64).
  • Проект с каталогом bitrix/ в корне (путь можно указать в настройках).
  • PHP, Node.js и Composer ставить не нужно: внутри расширения уже есть PHP 8.4.

PHP: встроенная версия и другие версии

В расширение встроен один PHP-рантайм — PHP 8.4 (сборка static-php-cli под вашу платформу: macOS Intel/Apple Silicon, Linux x64/arm64, Windows x64). Он запускает сервер подсказок и используется для проверки синтаксиса, если ничего другого не выбрано. Ставить PHP на компьютер не обязательно.

Другие версии (7.4, 8.0, 8.1, 8.2, 8.3) в комплект не входят. Если проект работает на другой версии PHP, есть три пути.

  1. PHP уже установлен на компьютере — выберите auto: расширение возьмёт php из PATH (а если его нет — встроенный PHP 8.4). Статус-бар покажет фактическую версию.
  2. Скачать статическую сборку — команда «Bitrix Assistant: скачать PHP для проверки синтаксиса» (bitrix.php.downloadRuntime). Сборка кладётся в хранилище расширения, ничего в системе не меняет; список скачанного — команда «управлять скачанными версиями PHP».
  3. Установить PHP нужной версии на компьютер (например, brew install php@8.3 или официальный установщик для Windows) и указать путь к нему — см. ниже.

Как указать путь к конкретной версии

Путь хранится в состоянии расширения (workspaceState VS Code) — ни в файлах проекта, ни в .vscode/settings.json записи нет. Файл на диске выбирать не нужно: путь вводится строкой, его можно вставить из буфера обмена. Состояние не попадает в git и не синхронизируется между машинами: на другом компьютере путь задаётся заново.

Команда «Bitrix Assistant: указать путь к PHP для версии» (bitrix.php.setPath): выберите версию → введите путь в поле. Поддерживаются ~ и переменные окружения ${env:HOME}; пустое поле удаляет путь для этой версии. После сохранения расширение проверит, что файл существует и что его версия совпадает с выбранной, и предупредит, если это не так.

Настройки bitrix.php.version и bitrix.php.paths в settings.json теперь играют роль значения по умолчанию: они читаются, только пока для проекта нет записи в состоянии расширения. Их удобно держать в .vscode/settings.json, чтобы задать стартовые значения для команды (тот же формат):

{
  "bitrix.php.version": "8.3",
  "bitrix.php.paths": {
    // macOS, Homebrew; на Linux — "/usr/bin/php8.3",
    // на Windows — "C:\\php83\\php.exe"
    "8.3": "/opt/homebrew/opt/php@8.3/bin/php",
    "7.4": "~/.php/7.4/bin/php",
    "8.2": "${env:PHP82_BIN}"
  }
}

Версия PHP привязана к папке проекта: у каждого проекта в мульти-рут workspace своя запись в состоянии расширения (ключ — путь папки).

Что делает расширение, если версии нет

При старте и при смене bitrix.php.version расширение проверяет выбранную версию: встроенный рантайм, путь из bitrix.php.paths, bitrix.php.lintBinary, скачанные сборки, затем php, php8.3 и Homebrew-пути. Если ничего не найдено (или найден файл другой версии), появляется предупреждение с кнопками «Скачать» и «Указать путь» — молча подставлять другую версию расширение не будет.

Проверить вручную: команда «Bitrix Assistant: проверить PHP, выбранный для проекта» (bitrix.php.checkRuntime). Порядок поиска и источник выбранного бинарника пишутся в лог («Bitrix Assistant: Показать лог»).

Установка

  • Из Marketplace: панель Extensions → поиск «Bitrix Assistant» → Install.
  • Из файла: Extensions → ... → Install from VSIX…, либо code --install-extension bitrix-assistant-<версия>-<платформа>.vsix.
  • После установки откройте папку проекта и дождитесь сообщения «Индекс готов».

SSH-профиль

  1. Команда «Bitrix Assistant: Добавить SSH-профиль» (или «Подключиться» — если профилей ещё нет, расширение предложит создать).
  2. Заполните: имя, хост, порт, пользователь, пароль или путь к приватному ключу, корень проекта на сервере (например, /home/bitrix/www).
  3. «Bitrix Assistant: Подключиться к серверу» — появится дерево файлов сервера.
  4. Клавиши по умолчанию: Ctrl+Alt+P — сменить сервер, Ctrl+Alt+U — загрузить файл, Ctrl+Alt+S — сохранить и загрузить.

Пароли хранятся в защищённом хранилище VS Code, а не в файлах проекта. Если профилей несколько, один можно назначить профилем по умолчанию — при включённой настройке bitrix.ssh.autoConnect расширение подключится к нему при старте.

Команды

Команда Действие
bitrix.ssh.connect Выбрать/создать профиль и подключиться
bitrix.ssh.terminal Открыть терминал на сервере по сохранённому профилю (без ввода логина и пароля)
bitrix.ssh.disconnect Закрыть соединение
bitrix.ssh.upload Загрузить текущий файл (или файл из контекстного меню)
bitrix.ssh.download Скачать текущий файл с сервера
bitrix.ssh.syncAll Двусторонняя/односторонняя синхронизация по mtime
bitrix.ssh.preview Открыть файл с сервера только для просмотра
bitrix.ssh.compareRemote Сравнить локальный файл с серверным (diff; из палитры, меню вкладки и проводника)
bitrix.ssh.downloadRemote Скачать файл/каталог с сервера (контекстное меню дерева)
bitrix.ssh.uploadLocal Загрузить локальную версию файла/каталога на сервер
bitrix.ssh.copyRemotePath Скопировать путь на сервере
bitrix.ssh.refresh Обновить дерево сервера
bitrix.showMenu Меню расширения (клик по статус-бару)
bitrix.showLog Показать лог расширения
bitrix.ssh.addProfile / bitrix.ssh.removeProfile Управление профилями
bitrix.index.rebuild Полная перестройка индекса
bitrix.index.reindexFile Переиндексировать активный файл
bitrix.index.stats Статистика и путь к БД
bitrix.orm.generateAnnotations PHPDoc @property для *Table.php
bitrix.lsp.restart Перезапустить LSP-сервер
bitrix.php.selectVersion Версия PHP для проекта (auto, 7.4–8.4)
bitrix.php.setPath Указать путь к PHP нужной версии (в bitrix.php.paths)
bitrix.php.checkRuntime Проверить, что выбранный PHP доступен
bitrix.php.downloadRuntime Скачать статическую сборку выбранной версии
bitrix.php.manageRuntimes Список/удаление скачанных версий PHP
bitrix.php.lintWorkspace Проверить синтаксис всего проекта

Горячие клавиши

Привязки расширения работают сразу после установки. Дальше — что нажимать и зачем.

Команды расширения

Действие macOS Windows / Linux Команда
Сменить сервер (профиль SSH) ⌘⌥P Ctrl+Alt+P bitrix.ssh.switchProfile
Загрузить текущий файл на сервер ⌘⌥U Ctrl+Alt+U bitrix.ssh.upload
Сохранить и сразу загрузить ⌘⌥S Ctrl+Alt+S bitrix.ssh.saveAndUpload

Две последние срабатывают только когда фокус в редакторе кода — чтобы не мешать диалогам и терминалу. Свои комбинации задаются настройками bitrix.keybindings.switchProfile, bitrix.keybindings.upload, bitrix.keybindings.saveAndUpload, после чего нужно выполнить Bitrix Assistant: применить горячие клавиши из настроек — команда с подтверждением записывает их в keybindings.json (если VS Code не подхватил сразу, перезагрузите окно). Посмотреть текущие привязки: Bitrix Assistant: открыть Keyboard Shortcuts — откроет редактор привязок с фильтром по bitrix.

Навигация по коду

Действие macOS Windows / Linux Зачем
Перейти к определению F12 F12 Прыжок к классу/методу/функции/свойству. То же делает ⌘+клик (Ctrl+клик). Работает по индексу, включая ядро, vendor/ и стабы PHP
Посмотреть определение, не уходя из файла ⌥F12 Alt+F12 (Linux Ctrl+Shift+F10) Компактное окно поверх кода — удобно посмотреть сигнатуру и вернуться
Все ссылки на символ ⇧F12 Shift+F12 Где ещё используется метод/свойство/класс. На макбуках с медиа-F-клавишами жмите Fn+Shift+F12
Перейти к реализации ⌘F12 Ctrl+F12 Для интерфейса и абстрактного метода — список реализаций, для класса — наследники
Перейти к типу не назначено не назначено Показать класс значения под курсором (в т.ч. тип переменной из @var/@param). Команда Go to Type Definition, назначается по желанию
Иерархия вызовов не назначено не назначено Кто вызывает метод и кого вызывает он сам: правый клик → Call Hierarchy / Peek Call Hierarchy
Иерархия типов не назначено не назначено Родители и наследники класса: правый клик → Type Hierarchy
Символы в файле (outline) ⇧⌘O Ctrl+Shift+O Структура текущего файла: классы, методы, функции
Символы во всём проекте ⌘T Ctrl+T Поиск класса/функции по имени во всём индексе
Показать подсказку (hover) с клавиатуры ⌘K ⌘I Ctrl+K Ctrl+I Описание, сигнатура, тип, doc-блок без мыши
Назад / вперёд по переходам ⌃- / ⌃⇧- Alt+← / Alt+→ Вернуться туда, где были до прыжка

Подсказки, проверки и правки

Действие macOS Windows / Linux Зачем
Вызвать подсказки ⌃Space Ctrl+Space Список классов, методов, свойств, переменных, ключей $arParams/$arResult
Подсказка параметров ⇧⌘Space Ctrl+Shift+Space Сигнатура вызываемого метода/функции с подсветкой текущего аргумента (в т.ч. в new)
Быстрое исправление ⌘. Ctrl+. Импорт класса (use), подключение JS-библиотеки, генерация @property
Переименовать переменную F2 F2 Переименование локальной переменной и всех её использований в файле. Классы и методы не переименовываются — это защита от порчи кода
Проблемы (ошибки и предупреждения) ⇧⌘M Ctrl+Shift+M Список диагностик: синтаксис, неизвестные функции/методы, типы, видимость
Форматировать файл ⇧⌥F Shift+Alt+F (Linux Ctrl+Shift+I) Убирает пробелы в конце строк и лишние пустые строки в конце файла
Форматировать выделение ⌘K ⌘F Ctrl+K Ctrl+F То же для выделенного фрагмента

Сворачивание кода

Действие macOS Windows / Linux
Свернуть блок (класс, метод, #region) ⌥⌘[ Ctrl+Shift+[
Развернуть блок ⌥⌘] Ctrl+Shift+]
Свернуть всё ⌘K ⌘0 Ctrl+K Ctrl+0
Развернуть всё ⌘K ⌘J Ctrl+K Ctrl+J

Работа с файлами и сервером

Действие macOS Windows / Linux Зачем
Сохранить ⌘S Ctrl+S Обычное сохранение; при включённой bitrix.ssh.uploadOnSave файл сразу уйдёт на сервер
Сохранить всё ⌥⌘S Ctrl+K S
Терминал Control + ` Ctrl + ` Обычный терминал VS Code; терминал на сервере — отдельная команда расширения
Фокус в хлебных крошках ⇧⌘; Ctrl+Shift+; Быстро перейти к соседнему классу/методу

Как назначить или изменить клавишу

  1. ⌘K ⌘S (Windows/Linux Ctrl+K Ctrl+S) — откроется редактор Keyboard Shortcuts.
  2. Найдите действие по названию (например, Go to Type Definition, Call Hierarchy, Type Hierarchy) или по id (editor.action.goToTypeDefinition, editor.showCallHierarchy, editor.showTypeHierarchy).
  3. Двойной клик по строке → нажмите новую комбинацию.
  4. Для команд расширения удобнее Bitrix Assistant: открыть Keyboard Shortcuts (там сразу видно наши привязки) и Bitrix Assistant: применить горячие клавиши из настроек.

Если комбинация занята системой или другой привязкой, VS Code покажет конфликт при сохранении — выберите другую. На macOS функциональные клавиши (F2, F12) на ноутбуках по умолчанию работают как медиа-клавиши: либо зажмите Fn, либо включите «Использовать F1, F2 и т.д. как стандартные функциональные клавиши» в настройках клавиатуры macOS.


Настройки

Ключ По умолчанию Смысл
bitrix.ssh.uploadOnSave false Загружать файл при сохранении
bitrix.ssh.downloadOnOpen false Скачивать при открытии, если на сервере новее
bitrix.ssh.exclude cache/upload/*.min.js Что не синхронизировать
bitrix.index.enabled true Индексация
bitrix.index.bitrixPath bitrix Путь к каталогу bitrix (относительно workspace или абсолютный)
bitrix.index.exclude cache/upload/*.min.js Что не индексировать
bitrix.index.jsMaxFileSizeKb 512 Пропуск больших JS-файлов
bitrix.index.phpStubs true Импорт встроенных функций/классов PHP (stdlib) в индекс
bitrix.index.vendor true Индексировать vendor/ и local/vendor/ (Composer-зависимости)
bitrix.js.enableLibraryCheck false Диагностика неподключённых библиотек (по умолчанию выкл.)
bitrix.lsp.enabled true Запуск LSP
bitrix.lsp.phpBinary "" Явный путь к PHP (иначе встроенный бинарник)
bitrix.php.lint true Проверять синтаксис PHP через php -l
bitrix.php.version auto Значение по умолчанию для версии PHP проекта: auto (что установлено на ПК, иначе встроенный 8.4), 7.4–8.4. Фактическая версия хранится в состоянии расширения (команда «выбрать версию PHP»)
bitrix.php.paths {} Значение по умолчанию для путей к PHP по версиям: { "8.3": "/opt/homebrew/opt/php@8.3/bin/php" }; поддерживаются ~ и ${env:VAR}. Рабочие пути хранятся в состоянии расширения (команда «указать путь к PHP»)
bitrix.php.lintBinary "" Общий путь к PHP (устаревшая настройка, для любой версии)
bitrix.php.semantic false Семантические PHP-предупреждения: неизвестные функции/переменные, число и типы аргументов, типы возврата. Неизвестные функции и методы видны всегда, даже при false
bitrix.ssh.autoConnect false Подключаться при старте к профилю по умолчанию
bitrix.keybindings.switchProfile "" Клавиша смены сервера (пусто — Ctrl/Cmd+Alt+P)
bitrix.keybindings.upload "" Клавиша загрузки файла (пусто — Ctrl/Cmd+Alt+U)
bitrix.keybindings.saveAndUpload "" Клавиша «сохранить и загрузить» (пусто — Ctrl/Cmd+Alt+S)


Индексация

Расширение строит локальный индекс ядра Битрикса и проекта: модули, компоненты, классы, методы, свойства, константы, функции, JS-расширения и глобальные переменные. Индекс нужен для подсказок и переходов, на сервер ничего не отправляется.

  • Первая индексация крупного проекта занимает около минуты, дальше обновляется по мере изменения файлов и при сохранении.
  • Если меняли bitrix.index.bitrixPath или переключали ветку — перезагрузите окно.
  • Полная перестройка: «Bitrix Assistant: Перестроить индекс». Статистика и путь к базе: «Bitrix Assistant: Статистика индекса».

Если что-то не работает

  1. Откройте канал Bitrix Assistant в панели Output — там ход индексации, запуск сервера подсказок и ошибки; команда «Bitrix Assistant: Показать лог» открывает его.
  2. Нет подсказок — проверьте, что открыта папка проекта с каталогом bitrix/ и что в логе есть «Индекс готов».
  3. Пустой список подсказок по классам — «Bitrix Assistant: Перестроить индекс» и перезагрузка окна.
  4. Проблемы с подключением — проверьте профиль и пароль; при неудаче расширение один раз спросит пароль заново.

Честные ограничения

  • Это не замена PhpStorm: рефакторинги, отладчик и глубокий статический анализ там сильнее. Расширение закрывает повседневные задачи — подсказки, переходы, синхронизацию.
  • Индекс строится локально и никуда не отправляется. Пароли хранятся в защищённом хранилище VS Code, а не в файлах проекта.
  • Первая индексация крупного проекта занимает около минуты, база индекса — сотни мегабайт в служебной папке VS Code.
  • Расширение не работает с LLM и внешними сервисами: всё считается локально из вашего кода.
  • Анализ PHP эвристический (регулярные выражения + индекс), а не полноценный парсер: типы выводятся по литералам, new, PHPDoc и instanceof; динамика (call_user_func, $obj->$method(), строковые имена) не видна.
  • Переименование — только локальные переменные в текущем файле и только когда это безопасно (нет вхождения в строках, compact(), $$var). Классы и методы не переименовываются.
  • Форматирование намеренно консервативное: отступы и стиль скобок не меняются, файлы с heredoc пропускаются. Полный PSR-12 — задача отдельного форматтера.
  • CodeLens, иерархии и поиск вызовов опираются на индекс: пока он строится или файл не сохранён, результат может быть неполным.

Обратная связь

  • Ошибки и пожелания: https://github.com/dpesherin/bitrix-assistant/issues
  • Лицензия: MIT.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft