OberonCore
https://forum.oberoncore.ru/

Прозрачная работа с utf8-исходниками
https://forum.oberoncore.ru/viewtopic.php?f=47&t=4904
Страница 1 из 2

Автор:  Пётр Кушнир [ Четверг, 26 Декабрь, 2013 21:08 ]
Заголовок сообщения:  Прозрачная работа с utf8-исходниками

По следам viewtopic.php?p=84955#p84955 реализовал прототип компонента, который поможет сторонникам плоских текстов писать в плоском тексте, а сторонникам составных документов не терять возможность совместной работы со сторонниками плоских текстов :) Мир, дружба, компонентный подход.
Инструкция по использованию в документации Jedi/Docu/Plain.
Брать все здесь: https://bitbucket.org/petryxa/jedi/overview

Автор:  Пётр Кушнир [ Четверг, 26 Декабрь, 2013 21:10 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Посмотрим, насколько это востребовано :)

Автор:  Роман М. [ Пятница, 27 Декабрь, 2013 03:17 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр, благодарю. Хорошая вещь, красиво сделано! И самое главное, так просто в использовании.

Понравилось также то, что при сохранении файла "знает" в каком формате сохранять.

Автор:  Пётр Кушнир [ Пятница, 27 Декабрь, 2013 13:18 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Да, что интересно, при установленном конвертере .cp файлы модулей в плейнтексте автоматически распознаются при просмотре Info > Repository.

Вложения:
Комментарий к файлу: 123
Снимок.PNG
Снимок.PNG [ 8.19 КБ | Просмотров: 14745 ]

Автор:  Роман М. [ Пятница, 27 Декабрь, 2013 15:24 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Для автоматической загрузки добавил в модуль Config строку
Код:
Dialog.Call("JediPlain.Init", "", res);

Доволен. :)

Автор:  Пётр Кушнир [ Пятница, 27 Декабрь, 2013 15:35 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Роман, а вы не думали о возможности сохранять некоторые встроенные отображения в текстовом виде, с последующим восстановлением?
Например, коммандер мог бы при сохранении конвертироваться в код типа такого:
Код:
(*Jedi.useBase64Force:='JiMxMDUwOyYjMTA4NjsmIzEwODQ7JiMxMDg0OyYjMTA3MjsmIzEwODU7JiMxMDc2OyYjMTA3NzsmIzEwODg7'*)
Есть много простых типов отображений, которые можно было бы сохранить в байты, а потом восстановить. Если такие штуки поддерживает конвертер - хорошо, если не поддерживает, то это будет просто строка в комментарии, которая не помешает даже консольным компиляторам.

Автор:  Роман М. [ Пятница, 27 Декабрь, 2013 16:25 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
Роман, а вы не думали о возможности сохранять некоторые встроенные отображения в текстовом виде, с последующим восстановлением?
Например, коммандер мог бы при сохранении конвертироваться в код типа такого:
Код:
(*Jedi.useBase64Force:='JiMxMDUwOyYjMTA4NjsmIzEwODQ7JiMxMDg0OyYjMTA3MjsmIzEwODU7JiMxMDc2OyYjMTA3NzsmIzEwODg7'*)
Есть много простых типов отображений, которые можно было бы сохранить в байты, а потом восстановить. Если такие штуки поддерживает конвертер - хорошо, если не поддерживает, то это будет просто строка в комментарии, которая не помешает даже консольным компиляторам.

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

Автор:  Димыч [ Суббота, 28 Декабрь, 2013 17:31 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
Посмотрим, насколько это востребовано :)

Это как раз именно то, что нужно.
Спасибо огромное!

Автор:  Пётр Кушнир [ Воскресенье, 29 Декабрь, 2013 01:22 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Димыч писал(а):
Пётр Кушнир писал(а):
Посмотрим, насколько это востребовано :)

Это как раз именно то, что нужно.
Спасибо огромное!
О, востребованность растет :)
Димыч, если не трудно, тоже в процессе использования обдумайте такой вариант развития конвертера:
Пётр Кушнир писал(а):
Роман, а вы не думали о возможности сохранять некоторые встроенные отображения в текстовом виде, с последующим восстановлением?
Например, коммандер мог бы при сохранении конвертироваться в код типа такого:
Код:
(*Jedi.useBase64Force:='JiMxMDUwOyYjMTA4NjsmIzEwODQ7JiMxMDg0OyYjMTA3MjsmIzEwODU7JiMxMDc2OyYjMTA3NzsmIzEwODg7'*)
Есть много простых типов отображений, которые можно было бы сохранить в байты, а потом восстановить. Если такие штуки поддерживает конвертер - хорошо, если не поддерживает, то это будет просто строка в комментарии, которая не помешает даже консольным компиляторам.

Автор:  Роман М. [ Воскресенье, 29 Декабрь, 2013 02:45 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр, а для какой цели используется GuardAction (Services.Action)?

Автор:  Пётр Кушнир [ Воскресенье, 29 Декабрь, 2013 13:16 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Роман М. писал(а):
Пётр, а для какой цели используется GuardAction (Services.Action)?
А это такой способ борьбы с тем, что модуль DevRBrowser считает что все сырцы обязательно открываются дефолтным конвертером. Хук составляет самоочищающийся список загруженных отображений и при попытке открыть такое отображение передает его реальный конвертер. Это позволяет в будущем сохранять исходник в тот же формат, который был.
Таким образом, либо отображение из списка открывается в окне, либо не открывается и экшн-элемент списка сам себя удаляет

Автор:  Роман М. [ Воскресенье, 29 Декабрь, 2013 15:33 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
Роман М. писал(а):
Пётр, а для какой цели используется GuardAction (Services.Action)?
А это такой способ борьбы с тем, что модуль DevRBrowser считает что все сырцы обязательно открываются дефолтным конвертером. Хук составляет самоочищающийся список загруженных отображений и при попытке открыть такое отображение передает его реальный конвертер. Это позволяет в будущем сохранять исходник в тот же формат, который был.
Таким образом, либо отображение из списка открывается в окне, либо не открывается и экшн-элемент списка сам себя удаляет
Хитро. :) А модуль DevRBrowser не поддаётся убеждениям?

Автор:  Пётр Кушнир [ Воскресенье, 29 Декабрь, 2013 23:40 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Роман М. писал(а):
Хитро. :) А модуль DevRBrowser не поддаётся убеждениям?

поддается, конечно, но он не в моем ведении :)
да и автора у подсистемы Dev пока нет, некому жаловаться.

Автор:  Роман М. [ Понедельник, 30 Декабрь, 2013 11:38 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Немного изменил модуль, отделив поиск конвертера UTF-8 в отдельную процедуру, который вместо поиска при каждом открытии файла делает это одинажды в разделе инициализации модуля.

Добавлю: изначальные имена модулей изменены, включая конвертера, у которого название теперь ConvUtf8 (в подсистеме Conv).

Вложения:
PrivPlainText.txt [5.33 КБ]
Скачиваний: 779

Автор:  Пётр Кушнир [ Понедельник, 30 Декабрь, 2013 13:27 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

А как же всякие модные форки и пулл-реквесты?

Автор:  Роман М. [ Понедельник, 30 Декабрь, 2013 15:15 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
А как же всякие модные форки и пулл-реквесты?

Форк Jedi? Я не захотел заводить его в том виде, котором он был создан изначально (т.е. для пробы), оторванным от моей сборки. В итоге адаптировал для себя. Поглядеть можно в Seamless work with plain UTF-8 CP files (6a0af8a5b988).

Автор:  Пётр Кушнир [ Понедельник, 30 Декабрь, 2013 21:37 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Вообще говоря, Jedi для разработчиков, а не для пробы. ;)

Автор:  Пётр Кушнир [ Понедельник, 20 Январь, 2014 19:51 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
Есть много простых типов отображений, которые можно было бы сохранить в байты, а потом восстановить. Если такие штуки поддерживает конвертер - хорошо, если не поддерживает, то это будет просто строка в комментарии, которая не помешает даже консольным компиляторам.
Реализовал пробную поддержку отображений (коммандер, ссылки) в виде base64-блоба в комментариях.
https://bitbucket.org/petryxa/jedi/src

Автор:  Роман М. [ Вторник, 21 Январь, 2014 15:26 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Пётр Кушнир писал(а):
Пётр Кушнир писал(а):
Есть много простых типов отображений, которые можно было бы сохранить в байты, а потом восстановить. Если такие штуки поддерживает конвертер - хорошо, если не поддерживает, то это будет просто строка в комментарии, которая не помешает даже консольным компиляторам.
Реализовал пробную поддержку отображений (коммандер, ссылки) в виде base64-блоба в комментариях.
https://bitbucket.org/petryxa/jedi/src
Постепенно движемся по направлению к RFC? :)

Автор:  ilovb [ Пятница, 09 Май, 2014 18:25 ]
Заголовок сообщения:  Re: Прозрачная работа с utf8-исходниками

Петр, спасибо. Отличная штука.

ps Товарищи, призываю вас не использовать расширение *.cp
Это расширение уже занято плюсами. Предлагаю всем перейти на .cps

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