Очередная попытка заменить родной конфигуратор, EDT, снегопат и консоль кода из инструментов разработчика. Шутка, конечно!
Попалось мне на глаза недавно вот это видео и что-то мне так понравилось, что захотелось сделать что-то подобное, но для встроенного языка.
В итоге получилось плохо, но работает! :-)
Для работы требуется версия платформы не ниже 8.3.14.1565
Основные возможности:
1. Подсветка синтаксиса языка 1С
2. Автокомплит для глобальных перечислений и функций, метаданных и объектов метаданных
Нужна ли вообще консоль кода в управляемом приложении? Тут пусть каждый решает для себя. Кстати, есть статья на эту тему.
Благодарности:
Выражаю благодарность команде 1c-syntax и их проекту для VSCode за подробное описание внутренних конструкций языка в JSON. Без этого проект вряд ли бы ушел дальше простой подсветки синтаксиса. Еще хочу поблагодарить Александра Кунташова за ссылочку на видео в его Telegram-канале и саму идею, а также проект vanessa-automation за само видео.
Уверен, что всё можно реализовать гораздо лучше. Критика и предложения горячо приветствуются!
Тестировалось в следующих условиях:
ОС Windows 10 x64, релизы платформы 8.3.15.1830, 8.3.16.1148, 8.3.17.1386, 8.3.18.891
Исходники:
Исходники можно взять тут https://github.com/salexdv/bsl_console
Известные проблемы:
- На платформах до 8.3.16 могут не работать горячие клавиши CTRL+C, CTRL+V и CTRL+Z и т.п.
- На платформах до 8.3.18 команды копировать/вставить работают только в пределах окна редактора
- В веб-клиенте недоступно любое взаимодействие редактора и 1С. Можно попробовать только набор кода. Иногда для этого в браузере надо предварительно открыть данную ссылку
- Для работы в linux требуется отдельная сборка, кроме того некоторый функционал может пока не работать.
- Из-за особенностей реализации подсказка через точку для реквизитов ссылочного типа работает только тогда, когда подсказываемый реквизит выбран через Enter
- Исходники редактора сохраняются в каталоге временных файлов пользователя. На некоторых версиях платформы консоль может выдавать ошибку Метод объекта не обнаружен (init), если в имени пользователя операционной системы используется кириллица. Решением будет изменить в коде каталог хранения исходников.