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 писал(а): А Вы интересовались, как устроен редактор Оберона и ББ? ![]() Да. Было муторно разбираться. На первый взгляд:
|
Автор: | 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/ |