OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Вторник, 05 Февраль, 2019 18:53 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Кстати, в Активном Обероне один физический файл может содержать несколько программных модулей, а есть еще пространства имен. И как с этим всем быть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Вторник, 05 Февраль, 2019 18:54 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Я два раза описал проблему с зумом, не знаю, чем ещё можно тут помочь. Возможно, дело было несколько сложнее. Я менял в нескольких местах. Сначала пробовал изменить в конфиг файле, этого оказалось мало, тогда полез в исходники. Хорошего результата (курьер 18 в PET сразу, отсутствие обрезания в меню, курьер 18 по умолчанию для новых составных документов) добиться так и не удалось. Не скажу, что лёг костьми, но определённые усилия приложил.

Но я советую, если хотите понять, в чём была моя проблема, то прочитайте то, что я написал. Похоже, из вас с Кеметом ни один не смог прочитать.


Последний раз редактировалось budden Вторник, 05 Февраль, 2019 19:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Вторник, 05 Февраль, 2019 18:59 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Несколько символьных файлов будут показывать на один исходный. Дальше вопрос - разрулит ли построитель дерева в PET эту ситуацию. Примерно то же можно сказать и про пр-ва имён (кстати, они смотрятся как костыль).

Кстати, нужен (обязательно) поиск в дереве кода, которое строит PET. Вы же не хотите уподобляться микрософту?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Вторник, 05 Февраль, 2019 19:05 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Так все прочитали. Там же был ответ, что проблема в том, что в бинарном Обероновском формате документов шрифт Оберон и кодировка Оберон прибиты гвоздями. И бинарный формат используется только для сгенерированного файла сборки, потому что он содержит форматирование, выделение цветом и тд. Но это не мешает изменять размер шрифта открытого документа, используя функцию зума документа


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Вторник, 05 Февраль, 2019 19:07 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Плохо прочитали, ну да ладно. У вас всё работает, а я этим заниматься в ближайшее время не буду. Можно оставить в покое эту тему.
Попробую последний раз написать. Я открываю в PET ТЕКСТОВЫЙ файл (.Mod, а не .Text), и у меня в конфиг-файле поставлен шрифт КУРЬЕР. Так вот документ открывается с курьером, но при масштабировании колёсиком курьер заменяется шрифтом ОБЕРОН. Вот. Хотя я вроде именно это уже два раза и написал. Может быть, там было что-то более сложное, включая замену шрифта где-то в исходниках. Не помню и не суть. Проверять не буду больше принципиально и вообще снесу все директории оберона на внешний диск, а диск от соблазна спрячу подальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Среда, 06 Февраль, 2019 06:24 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
2budden - на "ванильной" a2 не воспроизводится - текст маштабируется без смены шрифта.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Среда, 06 Февраль, 2019 08:08 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
budden писал(а):
Я открываю в PET ТЕКСТОВЫЙ файл (.Mod, а не .Text)

На всякий случай: .Mod или .Text ничего не значит в смысле формата файла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Среда, 06 Февраль, 2019 23:04 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Kemet писал(а):
2budden - на "ванильной" a2 не воспроизводится - текст маштабируется без смены шрифта.

Значит, считаем, что проблема не подтвердилась.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Четверг, 07 Февраль, 2019 05:54 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Возможно, что ты так и пользуешься непонятной сборкой от 2015 года, хотя я несколько раз сказал об обновлении до текущей. И возможно, что в той древней сборке функции маштабирования шрифтов вообще нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Четверг, 07 Февраль, 2019 11:36 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Нет, последнее время я пользовался той сборкой, которую Вы рекомендовали. Я, к сожалению, не могу себе больше позволить запустить A2 ни разу, потому что мне нужно искать работу, если я запущу один раз, это кончится тем, что я буду неделями просиживать. Просто напишите руководство о том, как пользователь (или хотя бы пользователь с навыками программирования) может сделать все шрифты, кроме меню, из своего набора ttf шрифтов, причём размер по умолчанию должен быть 18. Если документ старый и в нём шрифт зашит, то тут уж придётся воспользоваться инструментом масштабирования, но для новых документов умолчание должно быть задано пользователем. Мои проблемы возникли от того, что от слишком мелкого шрифта по умолчанию у меня сразу начинали болеть глаза и первое, что мне пришлось сделать - это попробовать изменить шрифты. Также при печати русский язык показывался в другом размере, и это тоже надо было исправить. Я почитал документацию и стал это делать. Почти сразу пришлось лезть в исходники. В итоге мне так и не удалось ничего добиться.

Если вам надо, чтобы кто-то пользовался A2 (хотя я не понял, надо ли это кому-то или все напротив, хотят сохранить своё конкурентное преимущество), то имеет смысл попробовать сделать так, чтобы вновь пришедший пользователь не уходил, сломав свои зубы об этот вопрос. Для этого нужно не лаконичное "у вас есть исходники", а чёткая и быстро выполнимая инструкция.

Для сравнения, в блекбоксе мне тоже пришлось столкнуться с этой проблемой и её худо-бедно удалось решить. Вот начало обсуждения: viewtopic.php?f=1&t=6280&p=104925&hilit=шрифт#p104925
А конец, я, кстати, не нашёл. Но решение в принципе вот здесь описано: https://gitlab.com/budden/nkp

В случае A2 у меня было на это меньше времени, а система сложнее. Я не осилил вопрос даже со всеми вашими рекомендациями, и я точно уверен, что дело тут не во мне: я регулярно успешно решаю подобные вопросы в разных технологиях. Обычно для этого надо погуглить и на стековерфлоу ответ находится. Второй-третий ответ всегда подходит и решает задачу. Здесь стековерфлоу объявили ненужным, своего аналога не создали, т.е. для решения вопросов нужно каждый раз идти на поклон к немногочисленным знатокам. Это в корне неправильно, и это можно исправить.

С точки зрения программиста шрифты - это "нечто простое, что можно исправить", т.е. они не влияют на жизнеспособность системы. С точки зрения вновь пришедшего шрифты - это то, что он захочет заменить. И если их заменить нельзя, то выводы о жизнеспособности системы (и за ними оргвыводы) будут сделаны очень быстро. Я здесь говорю не про себя, а про среднестатистического "пользователя".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Суббота, 27 Июль, 2019 13:08 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Вот этот проект продолжать буду. Для начала нужно всё же разобраться со шрифтами, а потом уже займусь переходом к определению. План действий по переходу к определению вроде прорисовывается, исходя из вышесказанного в этой теме. Для начала посмотрю, как поживают шрифты в новых версиях. Если глаза от них не вытекут, то попробую делать на основе текущей версии. Видимо, русскоязычность пока придётся отложить, поскольку сделать англоязычные шрифты проще, чем русскоязычные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Среда, 28 Август, 2019 16:03 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Не помню, писал ли я уже, что коллеги сообщили о существовании TFPET - версия PET с переходом к определению, а также есть сайт bbos.org с исходниками, содержащими перекрёстные ссылки. Файлы TF*, которые всё это реализуют, всё ещё находятся в репозитории, но устарели.

Немного поизучал зависимости в файлах TF*, чтобы понять, как проще модернизировать. Вот что обнаружилось:

FoxScanner менялся около 60 раз. Мы можем попробовать синхронизировать BimboScanner/TFAOParser с современным состоянием языка и у нас получится два парсера для одного и того же языка. Смысла в этом мало, поэтому хочется заменить BimboScanner/TFAOParser на лексер из FoxScanner/FoxParser

* TFXRef - 976 строк. Мало зависит от S=BimboScanner (4+50), сильно зависит от
TS=TFTypeSys (больше 100), от TFScopeTools - (15)
* TFTypeSys - абстрактное от языка синт. дерево - 1063 строки - ни от чего не зависит в данной компании! Пишет символьные файлы.
Используется в TFDocGenerator, TFCheck, TFAOParser, TFDumpTS, TFTypeSys
* TFScopeTools - 167 строк - используется в TFPET, TFCheck, TFModuleTrees, TFXRef
* BimboScanner - 545 строк
* TFAOParser - 1316 строк - зависит от TS=TFTypeSys (202), S=BimboScanner(276)

Модуль TFTypeSys хочется оставить, т.к. он центральный в этой инфраструктуре и от него всё зависит. Но TFAOParser тоже от него зависит. Если мы хотим выкинуть TFAOParser и оставить FoxParser, то возникает проблема: мы не можем менять FoxParser.

Т.е. похоже, что заменив TFAOParser на FoxParser, придётся и TFTypeSys заменить на FoxParserTree, причём объём работы получается немалым.

Знатоки, что скажете на тему целесообразности такого плана?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Среда, 28 Август, 2019 19:26 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Могу высказать общие соображения по поводу 2-х парсеров. Задача разбора исходников для работы с редактором и задача разбора исходников для трансляции в машинный код - это две разные задачи, которые кроме очевидного места пересечения, имеют достаточно различий. Если не пытаться в каждой из задач выполнить соседнюю, то это позволяет иметь более простые отдельные решения. Но будет ли общая сложность меньше или выше? Вряд ли есть простой универсальный ответ на этот вопрос. Если в транслятор изначально не закладывалась вспомогательная задача для работы с текстом, то доделать его до нужного уровня может быть проблематичным, и действительно, может быть проще иметь отдельный разборщик. Если же закладывалась, то наоборот. Поэтому ответ может быть получен из анализа того, для чего создавались FoxScanner/FoxParser и что из этого вышло.
В целом, иметь несколько разборщиков - это нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Четверг, 29 Август, 2019 14:41 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Да, всё верно, спасибо, учту это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Суббота, 21 Сентябрь, 2019 17:01 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Пока всё же планирую всё переделать на Fox. Мотивация: в обычном PET структура файла тоже показывается, а переход к определению основан на файлах символов, которые генерируются отдельной процедурой. Т.е. кардинального отличия TF от обычного стека технологий в плане качества поддержки для IDE нет. А значит, выглядит обоснованной идея сократить количество парсеров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переход к определению
СообщениеДобавлено: Воскресенье, 26 Апрель, 2020 00:16 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Переход к определению реализован в ЯОС. Возможно, и в A2 возьмут, но это спрашивайте у команды A2. Благодарность Comdiv за подсказку правильного проектного решения.


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

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


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

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


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

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