OberonCore
https://forum.oberoncore.ru/

BlackBox: улучшение редактора текстов
https://forum.oberoncore.ru/viewtopic.php?f=127&t=6545
Страница 1 из 2

Автор:  hothing [ Суббота, 25 Январь, 2020 11:47 ]
Заголовок сообщения:  BlackBox: улучшение редактора текстов

Стандартный редактор текстов нужно улучшить так, чтобы он поддерживал стили форматирования (a la TeX
+ Word/Writer). Это даст не только возможность использовать ББ как довольно продвинутый текстовый процессор, но и наконец решит проблему оформления исходных текстов программ: на текущий момент довольно трудно поменять уже оформленный текст, а использованный стиль форматирования может мешать\раздражать.

Мне пока не ясно как это сделать: по идее, в файле odc тогда нужно сохранять ссылки на стили вместо прямого форматирования и блок с описанием стилей (стили это набор параметров оформления). Но нужно, чтобы стили можно было хранить вне документа и применять их автоматически. И как это реализовать пока не ясно.

Автор:  hothing [ Суббота, 25 Январь, 2020 11:54 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Хм, да вот еще. А если как идентифицировать исходные тексты программ по ЯП в рамках формата ODC?
Ну допустим захочется использовать тот же Рокот (Рефал-0) или какой-либо DSL.

Автор:  adimetrius [ Суббота, 25 Январь, 2020 14:08 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Как определить, есть ли в тексте модуль: прочесть первое слово в документе, если это MODULE - значит, документ содержит модуль на КП.
Я пользуюсь кроме КП еще языком определения грамматик Babel; определение грамматики начинается со слова BABEL. И мне удобно, чтобы в одном тексте за модулем КП следовало определение грамматики. Так вот, я устанавливаю сканер на текст и читаю, пока не найду слово BABEL. Strings.Find не подходит, поскольку я хочу "проскакивать" комментарии; поэтому пользуюсь собственным модифицированным сканером, который умеет пропускать комментарии.

Вообще, нигде в Language Report и даже Platform-Specific Issues или Programming Conventions нет указаний, как модули должны располагаться в документах. Компилятор в ББ поддерживает два "соглашения": DevCompiler.Compile ищет модуль в начале текста, а DevCompiler.CompileSelection компилирует то, что выделено - т.е. допускает, что модуль располагается вовсе не в начале текста. И уж точно не по расширению файла и не по типу хранимого в файле объекта определяется, содержит ли текст модуль на КП. Кмк, это дает уникальную гибкость: как уже сказал, мне удобно в одном тексте держать модуль КП и обслуживаемую им грамматику Babel и набор тестов.

Есть еще один "источник", по которому можно определять, следует ли в тексте искать модуль: это расположение файла. По соглашению, они располагаются в Subsystem/Mod/. Babel предлагает хранить свои определения в Subsystem/Bab/. Вы могли бы, например, договориться хранить свои программы в Subsystem/Рокот/ или как-то так.

Мне интересен ваш посыл про стили и оформление модулей. Как вы себе представляете use case? И почему стили хранить отдельно от документов? Вот напр я сделал свой модуль, оформил его по-своему, как мне нравится, использовал свои стили. Вы скачали и хотите поменять, напр, шрифт. Что тогда?

Автор:  Trurl [ Суббота, 25 Январь, 2020 15:18 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Там много чего можно улучшить. Но потребуется изменить формат odc, а затем все вытекающие проблемы.

Автор:  Иван Денисов [ Суббота, 25 Январь, 2020 15:55 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

hothing писал(а):
Стандартный редактор текстов нужно улучшить так, чтобы он поддерживал стили форматирования (a la TeX
+ Word/Writer). Это даст не только возможность использовать ББ как довольно продвинутый текстовый процессор, но и наконец решит проблему оформления исходных текстов программ: на текущий момент довольно трудно поменять уже оформленный текст, а использованный стиль форматирования может мешать\раздражать.

Мне пока не ясно как это сделать: по идее, в файле odc тогда нужно сохранять ссылки на стили вместо прямого форматирования и блок с описанием стилей (стили это набор параметров оформления). Но нужно, чтобы стили можно было хранить вне документа и применять их автоматически. И как это реализовать пока не ясно.

Всё это сделано в подсистеме Master, вы её уже изучали?
https://blackbox.oberon.org/extension/Master

Автор:  hothing [ Понедельник, 27 Январь, 2020 13:44 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

adimetrius писал(а):
Как определить, есть ли в тексте модуль: прочесть первое слово в документе, если это MODULE - значит, документ содержит модуль на КП. ...

Меня тоже очень привлекает идея смешения ЯП, описателей ресурсов и конфигурации в одном документе. Но, вот парсить текст чтобы определить ЯП, как-то излишне и не надежно. Допустим, взбрело в голову использовать в одном документе два модуля на Модула-2 и КП. Как тогда однозначно определить ЯП?

adimetrius писал(а):
Мне интересен ваш посыл про стили и оформление модулей. Как вы себе представляете use case? И почему стили хранить отдельно от документов? Вот напр я сделал свой модуль, оформил его по-своему, как мне нравится, использовал свои стили. Вы скачали и хотите поменять, напр, шрифт. Что тогда?

[*]Стили нужно хранить отдельно, чтобы при открытии любого текста автоматически применялось мое форматирование. По-моему, настраивать стили (форматирование) при открытии каждого документа - дурацкое занятие. А если вдруг будет работать команда (удаленно)?
[*]Если я хочу поменять оформление, то я открою редактор стилей и изменю параметры стиля. Например будет свой стиль для ключевых слов, комментариев и т.д. Причем для разных языков можно использовать свой набор стилей.

Автор:  hothing [ Понедельник, 27 Январь, 2020 14:00 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Иван Денисов писал(а):
Всё это сделано в подсистеме Master, вы её уже изучали?
https://blackbox.oberon.org/extension/Master

Нет, не изучал, Иван. Посмотрю.

Автор:  hothing [ Понедельник, 27 Январь, 2020 14:39 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Иван Денисов писал(а):
Всё это сделано в подсистеме Master

Иван, я посмотрел. Не соглашусь с Вами, что эта система реализует то о чем я говорил.
Похоже но, не то: стили отсутствуют. Вы в Ворде пользуетесь стилями?
(Я пользуюсь активно, и хотя это кажется сложнее, чем прямое форматирование, но в итоге дает серьезную экономию времени)

Автор:  Иван Денисов [ Вторник, 28 Январь, 2020 05:03 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Стилями в Ворде не пользовался. Наверное пользовался чем-то аналогичным в LibreOffice для оформления заголовков единообразно во всем документе.

В Мастере есть возможность сохранять разные варианты форматирования в файлы и потом их применять к различным документам. Я подумал, что вы именно такое имеете в виду под стилями. Теперь я понимаю, что вы имеете в виду под стилем набор атрибутов.

Сделать такое не сложно в ББ, обычно я пользуюсь Ctrl+Shift+C, если хочу перекопировать стиль. Ну а хранить разные стили в документе также вовсе не проблема. Делаете отображение на подобие линейки "Мастер стилей" и вставляете в начале документа. Потом также отображения вроде вкладок, которыми оформляете стилизованные участки текста. Можно добавить меню для сохранения и применения стилей. Короче, в рамках существующего фреймворка задача разрешима. Но так как версткой почти никто в ББ не занимается, то это мало кому нужно. Занимался я помнится версткой, когда всю документацию переделывал. Так вот мне Ctrl+Shift+C вполне тогда хватило. Я еще добавил команду, чтобы длинное тире и кавычки французские автоматически создавались. А вот с копированием стилей не возникло проблем.

Автор:  Info21 [ Вторник, 28 Январь, 2020 11:45 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Иван Денисов писал(а):
Но так как версткой почти никто в ББ не занимается, то это мало кому нужно.
А статей не пишете? ББ надёжней, чем Ворд (даже новый, бывает, падает, когда много формул-картинок). Или латех рулит? ))

Автор:  Info21 [ Вторник, 28 Январь, 2020 11:46 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Какой-то аппарат типа вордовских стилей есть у R.Campbell на zinnamturm.eu -- надо там искать.

Автор:  hothing [ Суббота, 01 Февраль, 2020 12:14 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

На всякий случай, оставлю ссылки на статьи о внутреннем устройстве текстовых редакторов:
https://habr.com/ru/post/197650/
https://habr.com/ru/company/jugru/blog/424763/

На мой взгляд стоило бы опираться на работу проделанную JetBrains.

Автор:  Иван Денисов [ Воскресенье, 02 Февраль, 2020 09:42 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Info21 писал(а):
Иван Денисов писал(а):
Но так как версткой почти никто в ББ не занимается, то это мало кому нужно.
А статей не пишете? ББ надёжней, чем Ворд (даже новый, бывает, падает, когда много формул-картинок). Или латех рулит? ))

Да, статьи лучше в LaTeX. Для взаимодействия с некоторыми авторами приходится перегонять в RTF, и тут помогает команда latex2rtf.
Но вот Блэкбокс всё равно нужен, чтобы сравнивать, что люди вставили в текст. Очень удобно в Блэкбоксе через F9 выполнять сравнение текстов.

Автор:  Trurl [ Воскресенье, 02 Февраль, 2020 15:11 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

hothing писал(а):
На всякий случай, оставлю ссылки на статьи о внутреннем устройстве текстовых редакторов

А Вы интересовались, как устроен редактор Оберона и ББ? ;)

Автор:  hothing [ Воскресенье, 02 Февраль, 2020 22:32 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Trurl писал(а):
А Вы интересовались, как устроен редактор Оберона и ББ? ;)

Да. Было муторно разбираться. На первый взгляд:
  • переоптимизировано
  • сложно для модификации (см.п.1)

Автор:  Trurl [ Понедельник, 03 Февраль, 2020 08:03 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Ну, если тут муторно, что уж говорить о работе jetbrains?

Автор:  hothing [ Вторник, 04 Февраль, 2020 13:07 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Для полноценного и переносимого редактора необходимо (вероятно) использовать индустриальный text shaping engine, например Harfbuzz
О рендеринге текста:
https://habr.com/ru/post/469529/
https://habr.com/ru/post/277525/
https://habr.com/ru/post/311566/

О тонкостях редактирования:
https://habr.com/ru/post/474036/

Автор:  hothing [ Вторник, 04 Февраль, 2020 13:10 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Trurl писал(а):
Ну, если тут муторно, что уж говорить о работе jetbrains?

А для Вас код редактора ББ образец понятного, хоть и сложного кода?
Редактор CodeInsight в IDE достаточно просто исследовать...

Автор:  adimetrius [ Вторник, 04 Февраль, 2020 13:52 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

hothing писал(а):
Для полноценного и переносимого редактора необходимо (вероятно) использовать индустриальный text shaping engine, например Harfbuzz
О рендеринге текста:
https://habr.com/ru/post/469529/
https://habr.com/ru/post/277525/
https://habr.com/ru/post/311566/

О тонкостях редактирования:
https://habr.com/ru/post/474036/


Спасибо, при беглом просмотре показалось любопытным. Но вопрос: все перечисленные тонкости, кмк, не актуальны для редактора IDE. Как полагаете?

Автор:  Иван Денисов [ Вторник, 04 Февраль, 2020 16:35 ]
Заголовок сообщения:  Re: BlackBox: улучшение редактора текстов

Блэкбокс — это всё таки не просто редактор IDE, а фреймворк для множества задач. Так что тестовый редактор можно бы и доработать, чтобы был больше похож на ворд. Мне вот не хватает выравнивания страницы по середине окна. Было бы здорово иметь возможность показывать границы страниц, как это делает ворд.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/