Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Irbis Language SupportNew to Visual Studio Code? Get it now.
Irbis Language Support

Irbis Language Support

Venjer

|
3 installs
| (0) | Free
Полная поддержка языка IRBIS PFT с библиотекой функций UNIFOR, автодополнением и интеллектуальными подсказками
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

IRBIS PFT Language Extension для VS Code

Расширение VS Code для поддержки языка форматирования PFT (Print Format Table) системы ИРБИС с поддержкой функций UNIFOR и встроенных функций верхнего уровня.

Возможности

🚀 Автодополнение кода

  • Библиотека функций UNIFOR — около 80 функций с документацией
  • Встроенные функции — s, val, f, rsum, rmax, rmin, ravr, l, ref (& перед ними необязателен — в реальных форматах чаще опускается)
  • Сниппеты — быстрая вставка часто используемых конструкций

📖 Интеллектуальная документация

  • Hover-подсказки для функций UNIFOR, встроенных функций, проверок присутствия p()/a(), ключевых слов (if/then/else/fi/and/or/not/break), операторов сравнения (включая : — «содержит») и синтаксиса ссылок на поля v/d/n/g с разбором ^подполе/*смещение/.длина
  • Категоризация функций по назначению

🎨 Подсветка синтаксиса

  • Выделение функций UNIFOR (&uf, &unifor) и встроенных функций
  • Подсветка ссылок на поля (v200^a) и глобальных переменных
  • Выделение строковых литералов, комментариев и проверок наличия p()/a()
  • Подсветка подключаемых форматов (@name)

🔍 Навигация и диагностика

  • Переход по F12/Ctrl+клик к подключаемому файлу: @name → name.pft, &uf('K<справочник>\') / &uf('K<справочник>!') → <справочник>.mnu, &uf('6<формат>') → <формат>.pft
  • Проверка парности if/fi в реальном времени
  • Проверка незакрытых скобок и строковых литералов

📐 Форматирование

  • Расстановка отступов по вложенности if/fi и групп в скобках
  • Содержимое литералов и комментариев не изменяется

⚡ Команды и горячие клавиши

  • Ctrl+Shift+U — показать функции по категориям
  • Ctrl+Shift+I — форматировать документ

Установка

  1. Откройте Visual Studio Code
  2. Перейдите в раздел расширений (Ctrl+Shift+X)
  3. Найдите "Irbis Language Support"
  4. Нажмите "Установить"

Альтернативная установка из VSIX

  1. Скачайте файл .vsix
  2. Откройте VS Code
  3. Нажмите Ctrl+Shift+P
  4. Введите "Extensions: Install from VSIX"
  5. Выберите скачанный файл

Использование

  1. Создайте файл с расширением .pft
  2. Начните вводить код — автодополнение активируется автоматически
  3. Наведите курсор на функцию или ссылку на поле для просмотра документации
  4. Используйте Ctrl+Shift+I для форматирования кода

Требования

  • Visual Studio Code версии 1.96.0 или выше

Кодировка

Файлы ИРБИС (.pft, а также служебные .fst, .mnu, .par, .wss, .stw, .ws, .gbl) в реальных инсталляциях хранятся в кодировке Windows-1251, а не в UTF-8. Расширение прописывает это по умолчанию через contributes.configurationDefaults, поэтому такие файлы открываются и сохраняются в CP1251 без ручной настройки.

  • Если в ваших пользовательских настройках (User Settings, не workspace) уже стоит безусловный "files.encoding", он имеет приоритет над дефолтом расширения, и .pft снова откроется как UTF-8. Чтобы это исправить, добавьте в свой settings.json:
    "[irbis]": { "files.encoding": "windows1251" }
    
  • Если конкретный файл на самом деле в другой кодировке (например, UTF-8), откройте его и выберите в статус-баре внизу текущую кодировку → Reopen with Encoding → нужную кодировку.
  • Чтобы вернуть для .pft кодировку по умолчанию (UTF-8), пропишите у себя "[irbis]": { "files.encoding": "utf8" }.

Известные проблемы

  • Диагностика ограничена парностью конструкций; семантические ошибки не выявляются
  • .fst/.mnu/.par/.wss/.stw/.ws/.gbl распознаются только для корректной кодировки — подсветки, автодополнения и диагностики для них нет

Архитектура

Исходный код организован по слоям:

src/
  domain/          язык PFT: токенизатор, форматтер, диагностика, справочники функций и полей
  application/      сценарии: автодополнение, hover, переход по @include, выбор функции
  infrastructure/vscode/   адаптеры к API VS Code и точка активации

Ключевое правило: domain и application не импортируют vscode. Весь контакт с API редактора сосредоточен в infrastructure/vscode/. Это позволяет тестировать язык, форматтер, диагностику и справочники функций обычными mocha-тестами без запуска редактора; правило проверяется автоматически тестом src/test/architecture.test.ts.

Разработка

npm install       # установка зависимостей
npm run compile   # сборка в out/
npm run watch     # сборка в фоновом режиме при изменениях
npm test          # компиляция + запуск тестов (mocha)
npm run package   # сборка .vsix через @vscode/vsce

Для отладки в самом VS Code — открыть проект и нажать F5 (Extension Development Host).

История версий

0.1.2 (Текущая версия)

  • Исправлено: & больше не обязателен перед s/val/f/rsum/rmax/rmin/ravr/l/ref для hover и подсветки синтаксиса — в реальных форматах эти функции почти всегда вызываются без &
  • Добавлены hover-подсказки для break/if/then/else/fi/and/or/not, операторов сравнения (включая : — «содержит») и синтаксиса ссылок на поля v/d/n/g с разбором ^подполе/*смещение/.длина

0.1.1

  • Файлы .pft и служебные форматы ИРБИС (.fst, .mnu, .par, .wss, .stw, .ws, .gbl) открываются и сохраняются в кодировке Windows-1251 по умолчанию (см. раздел «Кодировка»)
  • Форматирование (Ctrl+Shift+I) больше не переводит CRLF в LF
  • Диагностика пересчитывается с задержкой 300 мс после последнего изменения, а не на каждое нажатие клавиши
  • Подсветка повторяющихся литералов |...| и |...|+
  • Добавлены ESLint и .editorconfig
  • Удалён встроенный справочник и hover/автодополнение полей RUSMARC — покрывал лишь 11 полей из сотен возможных и создавал ложное впечатление полноты

0.1.0

  • Исходный код реорганизован по слоям domain/application/infrastructure с независимым от vscode доменным и прикладным слоем (см. раздел «Архитектура»)
  • Сборка выводится в out/, пакет .vsix больше не содержит исходники TypeScript, тесты и служебные файлы
  • Значок расширения заменён на PNG 512×512
  • Исправлена обработка комментариев: /* действует до конца строки, конструкции */ и // в PFT нет
  • Список ключевых слов приведён к реальному синтаксису PFT (if/then/else/fi/and/or/not/break); case, for, while, select удалены как несуществующие
  • Библиотека UNIFOR расширена до ~80 функций, исправлены коды даты и времени и описание счётчика S
  • Добавлены встроенные функции верхнего уровня: &s, &val, &f, &rsum, &rmax, &rmin, &ravr, &l, &ref
  • Добавлены hover-подсказки по полям и подполям RUSMARC
  • Добавлен переход к подключаемому формату (@name) по F12
  • Добавлена диагностика парности if/fi, скобок и строковых литералов
  • Форматирование переписано: отступы по вложенности, содержимое литералов и комментариев не изменяется
  • Удалён дублирующий legacy-список функций, добавлены модульные тесты (63, включая проверку архитектурных границ)

0.0.3

  • Добавлена поддержка hover-подсказок
  • Улучшено автодополнение функций
  • Добавлены snippet'ы для часто используемых функций
  • Исправлены ошибки в подсветке синтаксиса

0.0.2

  • Добавлено автодополнение встроенных функций
  • Улучшена подсветка синтаксиса
  • Добавлено форматирование кода

0.0.1

  • Первоначальный релиз
  • Базовая подсветка синтаксиса для .pft файлов

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

Если у вас есть предложения по улучшению или вы нашли ошибку, пожалуйста, создайте issue в репозитории проекта.

Лицензия

Данное расширение распространяется под лицензией MIT.


Приятного использования! 🚀

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft