Monaco

reborn85 Открыто

По поиску не нашел аналогичное сообщение.

При использовании версии 6.1 получается существует возможность формирования своих собственных форм.
Как предложение попробовать в конфигураторе создать собственное окно редактирования модуля и подключиться туда Monaco или
bsl_console

по мотивам
https://github.com/salexdv/bsl_console
https://infostart.ru/1c/articles/1446383/
https://infostart.ru/1c/tools/1266087/
https://infostart.ru/1c/articles/1282663/

Комментарии

bolsun
#1, 28 апреля 2024 00:44

Это сделать то можно, вопрос насколько будет удобно переключаться туда - сюда.
bolsun изменил статус на Открыто


bolsun
#2, 28 апреля 2024 00:52

Но теоретически

Автоматическую синхронизацию между окнами сделать можно.
Даже можно заменить окно модуля конфигуратора на Monaco.
Можно добавить хоткей для быстрого переключения между режимами.

Эти все варианты я обдумывал, когда хотел такую штуку сделать через AvalonEditor, который в ТурбоПоиске используется, но можно и Monaco.


bolsun
#3, ред. 28 апреля 2024 00:55

Если с ИР адаптером это соединить, то может что-то получиться. Но без переключения постоянно в обычный режим не получится (т.к. нужна будет отладка как минимум)


bolsun
#4, 28 апреля 2024 00:58

В текущей версии это все нужно в основном только для подсветки языка запросов, ну и еще каких-нибудь фич редактора.
Т.к многие функции окна конфигуратора и даже подсказку, TurboConf + ИР, заменяет уже сейчас и работает достаточно быстро.


reborn85
#5, ред. 28 апреля 2024 01:10

181365f207ee8e40ddf55bae68b7b4ca.png

181365f207ee8e40ddf55bae68b7b4ca.gif

9c6d0069850cea583381f9a95de051b3.png

e435d255c68fc626c579554f40827b99.png

3150fee3faf7b85c537a422ecc8eec50.png


reborn85
#6, 28 апреля 2024 01:11

основное это просмотр текущих изменений. и возможность сравнивать прямо там
тёмная тема
номера строк

часто в пользовательском приходится писать а потом копипастить


bolsun
#7, ред. 28 апреля 2024 01:14

(6) reborn85, я могу сделать переключение в такой режим типа просмотр/какие-то правки, но нужно чтобы кто-то уже дальше этот режим Monaco допиливал.


bolsun
#8, ред. 28 апреля 2024 01:14

(7) как я понял вроде есть опенсорс bsl_console, но нужно смотреть как это все интегрировать.


bolsun
#9, ред. 28 апреля 2024 01:22

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

Главное:

  1. Открытие отдельного окна с Monaco и передачей ему текста текущего модуля для просмотра

Потом:
2. Редактирование и синхронизация изменений.

Потом уже:
3. Возможность открывать отдельные окна для каждого модуля

Дальше
4. Бесшовная интеграция

Ну и т.д.

как то так.


tormozit
#10, ред. 28 апреля 2024 07:43

Я так понимаю редактор Турбоконфа предлагается открывать поверх редактора модуля и сразу скрывать если активирую другое поле?
Как будет происходить синхронизация между редактором Турбоконфа и основным редактором?

  1. Я очень часто жму CTRL+S при редактировании модуля.
  2. Я часто пользуюсь глобальной заменой
  3. Я часто пользуюсь переименованием объекта с автозаменой обращений к нему в модуле

Что будет происходить в этих случаях, если я буду смотреть в редактор модуля Туброконфа?


bolsun
#11, 28 апреля 2024 15:13

(10) tormozit,

  1. Тут пока вижу только приемлемый вариант по Ctrl+S заменять текст в окне конфигуратора и также выполнять Ctrl+S, затем возвращать фокус в Монако.
    2 и 3. Я так понял это не на полную замену, а для определенных режимов работы. Но часть команд можно пробрасывать в конфигуратор. Насколько это будет удобно и бесшовно пока сложно сказать.

Наверно это будет как какой-то продвинутый режим редактирования, с быстрым переключением туда/сюда.
Нужно прототип набросать, тогда будет понятнее.


bolsun
#12, 28 апреля 2024 15:29

С полноценной заменой редактирования, как минимум будут сложности с одновременным редактированием нескольких документов и переключением между ними. Переход к определению и т.д.
Все это придется делать через пробрасывание команд в конфигуратор.
Потому нужно понимать четко задачу. Что это, какой то более удобный просмотровщик с возможностью небольших правок или что-то большее.


tormozit
#13, ред. 28 апреля 2024 16:07

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


bolsun
#14, 28 апреля 2024 18:24

(13) tormozit, почему бы не иметь возможность быстро подправить код в Монако?
Открыл ты например diff с версией в хранилище и тут же можешь какую ту правку сделать небольшую.


tormozit
#15, ред. 28 апреля 2024 18:41

Намного надежнее будет открыть сравнение текстов в одной странице и штатный редактор в другой. В ИР адаптере есть команда похожая "Найти последнее изменение метода" https://fastcode.im/Templates/8602 . Правда там сейчас нет удобного перехода из окна сравнения в редактор, т.к. там подразумевается анализ одного метода.


reborn85
#16, 28 апреля 2024 23:06

Ок. Другой вариант.
В качестве теста сделать замену как редактора запроса, как в том же едт есть конструктор а есть редактор запроса - отдельная форма
Тут тоже по идее можно сделать вызов отдельной формы именно для редактировании.

Там не нужен именно отладчик, не будет несколько форм (форма в один момент только одна).

Почему именно отдельную форму с монако, все таки интересно сам вариант использования других форм для редактирования и в перспективе не зависеть от окно редактора конфигуратора, потому что возможностей внедриться в монако насколько я понял значительно больше чем те что сейчас идут (предположение по эмпирическим данным)

И тут можно сделать скрин конфигуратора с редактором монако - как реклама - это будет выглядит что то с чем то и вполне реально людей может новых заинтересовать.А скоро (к 27релизу) обещают же темную тему, в совокупности с темной темой конфигуратора и тесной темой монако это будет бомбически смотреться.


tormozit
#17, 29 апреля 2024 11:27

(16) reborn85, кажется похожая команда есть в ИР адаптере. Не хватало лишь наличия страницы с этим редактором в окне "Текст", хотя одним кликом можно было открыть консоль запросов, где он есть. В следующей версии ИР добавлю ее и в окно "Текст". Также поднимется приоритет этого редактора в некоторых случаях, включая этот. Но стабильность работы этого редактора в обычной форме на платформах 8.3.1-25 все еще не очень высокая.


reborn85
#18, 29 апреля 2024 18:17

штатный редактор текста запроса нервно дышит в сторонке

сейчас приходится часть кода + запросы в пользовательской писать и перекидывать в конфигуратор


tormozit
#19, 30 апреля 2024 21:18

(17) tormozit, выпустил ИР 7.25 с описанным изменением


bolsun
#20, ред. 01 мая 2024 23:41

(18) reborn85, вот пример интегрированного в TurboConf редактора Monaco


tormozit
#21, ред. 01 мая 2024 23:44

(20) bolsun, самое интересное не показал - список таблиц и их полей подсказке после точки


bolsun
#22, 01 мая 2024 23:43

А вот дальше нужно в него передавать контекст и необходимые данные по метаданным для подсказки.


bolsun
#23, 01 мая 2024 23:43

(21) tormozit, понятно их нет в данном прототипе.


bolsun
#24, 01 мая 2024 23:46

Для меня важнее синхронизация текста и как это будет примерно выглядеть.
В принципе можно сделать и синхронизацию позиции и переход к определению для текстов модулей.


bolsun
#25, 01 мая 2024 23:48

Если найдутся желающие уже дорабатывать конкретно этот редактор Monaco в TurboConf, то я могу реализовать и предоставить методы для этого в API.


bolsun
#26, 01 мая 2024 23:59

(23) tormozit, я так понял у тебя в ИР используется Monaco, так тебе видимо намного проще чем всем остальным передать в него нужную информацию ))


reborn85
#27, 02 мая 2024 00:00

(20) bolsun, вот, уже прямо интересно смотрится.


bolsun
#28, ред. 02 мая 2024 00:04

(27) reborn85, но в данный момент версия с ИР адаптером вроде не уступает, а даже подсказывает метаданные


bolsun
#29, ред. 02 мая 2024 00:06

И даже штатный TurboConf без ИР тоже показывает подсказки, но пока не все


bolsun
#30, 02 мая 2024 00:08

Мне кажется хорошее применение этому редактору будет для diff, для ТурбоПоиска - быстро подправить что-то, для языка запросов и основного редактирования модулей - не уверен.


reborn85
#31, 02 мая 2024 00:09

Ни одними подсветкой полей едины

  1. подсветка текущей строки
  2. Номер строки
  3. Выделение цветом текстовых констант
  4. Формирование визуальных блоков текста
  5. Возможность разворачивания и сворачивания областей прямо в тексте
  6. Отдельно для режим языка запросов, режим встроенного языка используется
  7. Визуальное позиционирование и акцентрирование на нужных областях кода/запроса

это вот только что сейчас вспомнил на вскидку, в том что есть сейчас - ничего этого нет


bolsun
#32, 02 мая 2024 00:11

(31) reborn85, ну метаданные из кэша я могу предоставить. Если кто-то их сконвертирует и отправит в Monaco, будет значит там подсветка полей.


bolsun
#33, 02 мая 2024 00:12

Синхронизацию окна Monaco и конфигуратора я могу сделать.


tormozit
#34, ред. 02 мая 2024 00:13

(31) reborn85, в ИР адаптере это уже есть с полной передачей контекста в обе стороны yxc70KusXy.mp4


bolsun
#35, 02 мая 2024 00:13

Я могу прокинуть метод для выполнения JS кода в API, дальше уже любой желающий может расширить.


reborn85
#36, 02 мая 2024 00:13

(32) bolsun, https://github.com/salexdv/bsl_console - есть же только эта документация, верно ?

технически можно поизучать если это все, просто никогда не погружался в такое.
а метаданные там через обычный json передаются.


bolsun
#37, 02 мая 2024 00:15

(36) reborn85, ну да, я же передал код и тип синтаксиса. Я тоже дальше не разбирался, т.к. не инициатор предложения и у меня достаточно задач по движку ))


tormozit
#38, ред. 02 мая 2024 00:17

(36) reborn85, да. Классический заброс метаданных туда можно подсмотреть в УИР. В ИР заброса нет, т.к. ИР берет на себя все вычисления типов.


bolsun
#39, 02 мая 2024 00:18

(38) tormozit, только нужно будет сконвертировать их из формата кэша ТК - в формат bsl-console


reborn85
#40, 02 мая 2024 00:18

(36) tormozit, именно в таком контексте не пробовал, попробую спасибо.

но у тебя в движке я смотрю нет возможности работы с историей изменений и change кода
но это возможно, возможности именно этого движка которые нужно добавлять. т.е. вроде бы то что нужно но не полноценно, не так как на первичных скринах/ссылках скидывал.


reborn85
#41, 02 мая 2024 00:20

Поизучаю документацию напишу позже (после праздников), может чем и помогу (не факт но интересно)


tormozit
#42, 02 мая 2024 00:29

(40) reborn85, историю в этом окне подключу в следующей версии ИР. В консоли запросов она и сейчас есть.


tormozit
#43, 02 мая 2024 08:59

(42) tormozit, подключил в ИР 7.25.2


bolsun
#44, ред. 02 мая 2024 15:49

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


bolsun
#45, 02 мая 2024 15:47

Только странно работает подсказка, если что-то уже набрано ничего не выдает. Видимо что-то нужно подкручивать.


tormozit
#46, ред. 02 мая 2024 15:51

Эта задача явно не на пару дней. Предлагаю сначала выпустить 6.1. А то он как то затянулся.


bolsun
#47, ред. 02 мая 2024 15:54

(46) tormozit, так этот функционал и не планируется в 6.1 точно, и вообще пока не планируется. Но одно другому не мешает.
Вот с уведомлениями все опять разломали, теперь снова нужно тестировать.
Либо переносить их в 6.2 тоже.


vigor
#48, 08 мая 2024 07:41

https://github.com/brijeshb42/monaco-vim
Оставлю здесь, вдруг потенциально будет возможна интеграция


Для вставки изображения или файла, перетащите его в поле редактора или вставьте файл из буфера