OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 23:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Суббота, 25 Январь, 2020 11:47 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Январь, 2020 11:54 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Хм, да вот еще. А если как идентифицировать исходные тексты программ по ЯП в рамках формата ODC?
Ну допустим захочется использовать тот же Рокот (Рефал-0) или какой-либо DSL.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Январь, 2020 14:08 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
Как определить, есть ли в тексте модуль: прочесть первое слово в документе, если это 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? И почему стили хранить отдельно от документов? Вот напр я сделал свой модуль, оформил его по-своему, как мне нравится, использовал свои стили. Вы скачали и хотите поменять, напр, шрифт. Что тогда?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Январь, 2020 15:18 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Там много чего можно улучшить. Но потребуется изменить формат odc, а затем все вытекающие проблемы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 25 Январь, 2020 15:55 
Аватара пользователя

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 27 Январь, 2020 13:44 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
adimetrius писал(а):
Как определить, есть ли в тексте модуль: прочесть первое слово в документе, если это MODULE - значит, документ содержит модуль на КП. ...

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 27 Январь, 2020 14:00 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Иван Денисов писал(а):
Всё это сделано в подсистеме Master, вы её уже изучали?
https://blackbox.oberon.org/extension/Master

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 27 Январь, 2020 14:39 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Иван Денисов писал(а):
Всё это сделано в подсистеме Master

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Январь, 2020 05:03 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Стилями в Ворде не пользовался. Наверное пользовался чем-то аналогичным в LibreOffice для оформления заголовков единообразно во всем документе.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Январь, 2020 11:45 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Иван Денисов писал(а):
Но так как версткой почти никто в ББ не занимается, то это мало кому нужно.
А статей не пишете? ББ надёжней, чем Ворд (даже новый, бывает, падает, когда много формул-картинок). Или латех рулит? ))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 28 Январь, 2020 11:46 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Какой-то аппарат типа вордовских стилей есть у R.Campbell на zinnamturm.eu -- надо там искать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 01 Февраль, 2020 12:14 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
На всякий случай, оставлю ссылки на статьи о внутреннем устройстве текстовых редакторов:
https://habr.com/ru/post/197650/
https://habr.com/ru/company/jugru/blog/424763/

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 02 Февраль, 2020 09:42 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Info21 писал(а):
Иван Денисов писал(а):
Но так как версткой почти никто в ББ не занимается, то это мало кому нужно.
А статей не пишете? ББ надёжней, чем Ворд (даже новый, бывает, падает, когда много формул-картинок). Или латех рулит? ))

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 02 Февраль, 2020 15:11 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
hothing писал(а):
На всякий случай, оставлю ссылки на статьи о внутреннем устройстве текстовых редакторов

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 02 Февраль, 2020 22:32 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Trurl писал(а):
А Вы интересовались, как устроен редактор Оберона и ББ? ;)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 03 Февраль, 2020 08:03 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Ну, если тут муторно, что уж говорить о работе jetbrains?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 04 Февраль, 2020 13:07 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Для полноценного и переносимого редактора необходимо (вероятно) использовать индустриальный 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/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 04 Февраль, 2020 13:10 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Trurl писал(а):
Ну, если тут муторно, что уж говорить о работе jetbrains?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 04 Февраль, 2020 13:52 
Аватара пользователя

Зарегистрирован: Суббота, 16 Февраль, 2008 02:47
Сообщения: 660
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 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Блэкбокс — это всё таки не просто редактор IDE, а фреймворк для множества задач. Так что тестовый редактор можно бы и доработать, чтобы был больше похож на ворд. Мне вот не хватает выравнивания страницы по середине окна. Было бы здорово иметь возможность показывать границы страниц, как это делает ворд.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB