разные файлы в кадрах редактора

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

разные файлы в кадрах редактора

Сообщение БудДен » 04.01.22 12:52

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

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 04.01.22 15:48

Как ни странно, удалось подсунуть другой текст.
Теперь целая куча новых подзадач:

* ✓ команда ИСР.ПереоткройТекМршм - пытается открыть Мршм для текущего ярм/Mod. При этом (пока) открывается
новая вкладка с Мршм. В будущем такая вкладка должна быть либо недоступной, либо невидимой. И, видимо, должна сообщать,
если он не найден? - не сообщает
* ✓ Мршм должен открываться только на чтение
* ✓ починить работу клавиатуры в режиме "только чтение"
* ✓ синхронизированный просмотр
* переоткрытие МРШМ, когда он нужен.
Последний раз редактировалось БудДен 10.01.22 22:26, всего редактировалось 1 раз.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 04.01.22 22:11

Синхронизированный просмотр на уровне прототипа заработал - при движении курсора в главном окне серый немигающий курсор движется во вспомогательном.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 04.01.22 23:22

Ну вот, лоханулся. Т.к. один мршм имеет исходниками несколько файлов, то дело никак не ограничится только двойным редактором... Хотя, конечно, можно все остальные файлы открывать какой-то кнопкой в отдельном окне, но тогда не будет синхронной навигации. В принципе можно считать, что это слишком жирно. Может быть, надо ввести понятие "окно номер 1" и "окно номер 2" и в явном виде начинать всегда с окна номер 1, а неосновные исходники открывать в окне номер 2. Тогда будет, по сути, 3 окна, два из которых - мршм и ярм - всегда жёстко связаны, а остальные - по надобности.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 06.01.22 01:59

В режиме прототипа сделал просмотр макрорасширенного и исходного кода вместе. Но как всё же уныло программировать на Обероне после лиспа... А ведь сам сегодня объяснял человеку, что язык системного программирования только таким многословным и может быть.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 07.01.22 02:25

Возникла не весьма приятная ситуация с ИСР - вроде невинные изменения, и сыпется куча ошибок.
Явно что-то пошло не так. Стал разбираться, как итог получился такой документ:

https://gitlab.com/budden/ja-o-s/-/blob ... тка-гпи.md

Т.е. стал ясен ландшафт, на котором нужно делать, а что делать? То неведомо. Главное, что это сложная и отдельная задача,
которая отвлекает от макросов. Но работать в ИСР, которая постоянно зависает - тоже не дело.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 08.01.22 00:33

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

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 08.01.22 01:42

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

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 08.01.22 02:47

Прекрасно то, что блокировка объекта текст показывает, ради кого он заблокирован. Так легко удалось понять, что происходит спор между совершенно левым исполнителем команды и диспетчером сообщений формы ИСР. Я брал за образец команду "Открой", и теперь возникает уже почти уверенность, что команда неправильная. Неведомо кто оперирует над окном и формой, хотя и у окна, и у формы есть свои диспетчеры сообщений. Это ещё можно было бы понять для случая, когда окно только строится и соответственно некому строить себя самостоятельно. Но когда мы открываем новый документ в уже существующем окне, окно должно само управлять процессом. Т.е. возникает опять же, почти уверенность, что в ИСР есть серьёзные ошибки. Однако, поскольку оно работало, пока я не стал добавлять функционал, возможно, что проблема на моей стороне.

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

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 10.01.22 01:19

В общем, я понял, что мне не нравится, как устроен UI в A2/ЯОС с точки зрения его внутреннего устройства. Наверное, сложность адекватна сложности задачи отрисовки UI, однако уровень документированности явно критично недостаточен. Определённый прогресс в направлении решения задачи есть, удалось пройти через одно сложное место, но пока что всё равно всё зависает на каждом шагу. Будем продолжать копать в этом направлении, и по ходу дела, видимо, придётся пополнять документацию о программировании ГПИ в ЯОС.

БудДен
Сообщения: 2839
Зарегистрирован: 07.10.18 14:01

Re: разные файлы в кадрах редактора

Сообщение БудДен » 10.01.22 01:20

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

Ответить