OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 138 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Суббота, 20 Март, 2010 23:36 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Sergo писал(а):
Вроде все нормально работает
Пути поиска модулей (lookup) пробовали настроить под свою структуру проекта? Удовлетворяет ли предложенное решение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 21 Март, 2010 00:15 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
А вы используете make вообще? Какая у вас интеграция компилятора

Спросили бы что-нибудь попроще:) Я делал это все больше года назад, так что все детали уже не помню..
Запуск компилятора сделан через макросы плагина NppExec. Вызов макросов - через меню Macro или сочетания клавиш, вывод результатов компиляции - в консоль плагина NppExec. Если есть ошибки/предупреждения, то щелчок мышью по соответствующей строке в консоли открывает нужный файл с модулем и переводит курсор на строку с ошибкой (вот как это делал - с ходу не вспомню, но если интересно - могу разобраться и написать). Make не использую.

Для разбора дамп-файлов (*.$$$) написал простую утилитку - запускается из среды и выводит информацию о месте ошибки в консоль.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 21 Март, 2010 00:16 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Sergo писал(а):
Вроде все нормально работает
Пути поиска модулей (lookup) пробовали настроить под свою структуру проекта? Удовлетворяет ли предложенное решение?

Настроил. Решение вполне устраивает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 21 Март, 2010 00:20 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Обнаружил баг, довольно странный. Для этого модуля
Код:
MODULE Charts2;
IMPORT Display, Oberon;

PROCEDURE Handle*(VAR msg: Display.FrameMsg);
BEGIN   
     IF msg IS Oberon.InputMsg THEN END
END Handle;

PROCEDURE AddVector*();
BEGIN
END AddVector;

END Charts2.

автодополнение показывает в списке только одну экспортируемую процедуру: Handle.

Но если убрать в этой процедуре текст IF msg IS Oberon.InputMsg THEN END,
то в списке начинают отображаться обе процедуры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 21 Март, 2010 00:24 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Идеи для будущей версии 2.3:
- по Ctrl+Shift+9 переходить к объявлению предка. Например, чтобы можно было от имени метода перейти к объявлению этого метода в предке (аналогичный переход делать и по простому Ctrl+9, если после имени метода стоит символ "^", означающий вызов унаследованного метода);
- по Ctrl+Alt+9 можно переходить не к объявлению переменной, а сразу к объявлению её типа. Не знаю, насколько это будет полезно;
- повторное нажатие Ctrl+9 может переходить к следующему объявлению такого же идентификатора. Иногда бывает полезно, если есть метод и просто глобальная процедура с одинаковыми именами, между ними переключаться;
- генерация карты объектных зависимостей. Напрашивается два вида связей: кто от кого наследуется и кто кого использует (в смысле объектной композиции - поля записей объектного типа). Для этого вся информация у плагина есть. Для рисования, собственно, картинки, уже есть опыт использования GraphViz (программка рисует диаграмму импорта модулей).

Это, так сказать, в порядке мозгового штурма. Чтобы не забылось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 21 Март, 2010 00:27 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Sergo писал(а):
Обнаружил баг, довольно странный.
Спасибо большое! : )
Если поставить ";" после IF..END, то тоже будет работать. Видимо, проблема с определением конца процедуры: некорректно ожидается идентификатор после END'а.

ДОП: Исправил, и тест добавил на будущее. Если ещё ошибки найдёте, обязательно пишите!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Четверг, 25 Март, 2010 22:15 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Блин, столько проблем с этим опенсорсом. Собрать пакет из нескольких компонентов - почти невозможная задача. То одно не работает, то другое. Пока первое исправили, второе потеряло совместимость с третьим, без которого первое не работает, так что приходится ждать, пока второе приведут в порядок, но его старый разработчик забросил, а новый такую мегафичу с разбегу залепить решил, что скомпилировать это всё удастся только через год, не говоря уже об отладке...

Пытаюсь собрать новую версию NO2, как вы поняли. Действующие лица: "первое" - Function List (текущие версии существуют только в Unicode-варианте), "второе" - QuickText, "третье" - Notepad++ Unicode.

Кажется, удастся сделать custom build QuickText'а, для нужд моего пакета. Там проблема в том, что из-за добавления поддержки новых языков в Notepad++ QuickText перестал работать с внешними лексерами (у меня Oberon-2 Lexer - как раз "внешний"). Проблема в том, что список языков зашит в плагин константой. Парадокс в том, что константа - при очевидных недостатках - это ещё хорошее решение, поскольку Notepad++ вообще не предоставляет плагинам нормального интерфейса для поулчения списка языков. Каждый изощряется как может. Например, FunctionList лезет через WinApi в главное меню "Languages" и там просматривает список пунктов. Недавно в Notepad++ ввели настройку "Make Languages menu compact" (по умолчанию включена), и этот способ перестал работать, поскольку имена языков попрятались в субменю по алфавиту.

Хак на хаке, ё-моё... : (


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Четверг, 25 Март, 2010 23:02 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Пятница, 26 Март, 2010 17:04 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Sergo писал(а):
Обнаружил баг, довольно странный.
Доступен для скачивания плагин Obide (Oberon IDE) v2.2.1. Что нового:
- Исправлена ошибка парсинга конца процедуры (viewtopic.php?p=44795#p44795).

Ссылка для скачивания (также через некоторое время будет доступна установка средствами стандартного плагина "Plugin Manager"):
http://downloads.sourceforge.net/projec ... .2.2.1.zip

Описание и история изменений:
http://downloads.sourceforge.net/projec ... .2.2.1.txt


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 28 Март, 2010 20:56 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
После пары дней скачивания разных студий и дополнений к ним, решил, что проще требуемый функционал включить в собственный плагин WebEdit. Единственное, что при этом потеряется, - это GUI для настройки (надо будет править ini-файл, но это можно делать в том же Notepad++, не отходя от кассы) и привязка к текущему языку (т.е. если сейчас выбран язык PHP, то одни шаблоны, а если Oberon, то другие). Последнее вообще не жалко, да и из пользователей WebEdit'а никто ничего подобного не просил. Так проще.

Я давно нечто подобное хотел сделать, но замахнулся тогда слишком широко - портировать модуль EditKeys из Oberon System. Будем постепенно приближаться, и всё получится. Всяко лучше, чем ждать у моря погоды с этим QuickText заброшенным или утечки памяти там в сишном коде вылавливать.
Илья Ермаков писал(а):
Фактически, дальновидный коллектив будет связываться только с таким инструментарием, который в случае необходимости мог бы быть разработан и поддерживаться самостоятельно. (Пусть гипотетически, но это хорошая бритва для отсечения избыточно сложного базового ПО, которое потом аукнется).
Согласен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 29 Март, 2010 18:47 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
За день добавил нужный функционал в свой плагин WebEdit. Ещё полдня с релизом и документацией промаялся. Вот и все дела.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 03:15 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Если ещё ошибки найдёте, обязательно пишите!
Небольшой баг: если список идентификаторов у модуля большой (занимает более чем 2/3 высоты экрана), то нижняя часть списка часто выходит за пределы экрана:
Вложение:
pict.gif
pict.gif [ 24.67 КБ | Просмотров: 11345 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 03:17 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Идеи для будущей версии 2.3 [..]
Еще одна идея: в списке, который открывается по Ctrl+Space, экспортируемые модулями идентификаторы отображать разными цветами в зависимости от их категории: константа, переменная, тип или процедура.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 08:32 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Sergo писал(а):
Небольшой баг: если список идентификаторов у модуля большой (занимает более чем 2/3 высоты экрана), то нижняя часть списка часто выходит за пределы экрана
А почему у вас экран такой маленький по высоте? Я заложил максимальную высоту списка = 32 строки. Это предполагает, что на экране не будет меньше 64 строк текста, а у вас на скриншоте еле помещается 36 строк. Это ограничение монитора? Окно Notepad++ развёрунто на всю высоту экрана?

Ещё я заметил, что у вас межстрочный интервал великоват. Scintilla выставляет высоту строки = максимальной высоте используемого в стилях шрифта. Обычно это говорит о том, что у вас стоит слишком большой (по высоте) шрифт для подсветки скобок: Settings - Styler Configurator... - Global Styles - Brace highlight style - Font size. Также см. прочие размеры шрифтов в глобальном и языковом стиле. Более простое решение размерно-шрифтовой проблемы - в стиле Global Styles - Global override поставить галочки "Enable global font" и "Enable global font size", и здесь же выставить единый шрифт и размер шрифта для всего приложения Notepad++, для всех язков и почих подсветок.

Помогло? Сколько строк стало на экране? Если число строк не увеличится или результат вас не устроит визуально, придётся уменьшить размер списка. Я думаю можно вынести этот параметр в ini-файл.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 08:43 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Sergo писал(а):
Еще одна идея: в списке, который открывается по Ctrl+Space, экспортируемые модулями идентификаторы отображать разными цветами в зависимости от их категории: константа, переменная, тип или процедура.
Цветов не предусмотрено, но перед идентификатором можно поместить маленькую картиночку. Можно с цветом, можно с буквой или ещё с чем-то. Дизайн предлОжите?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 11:32 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Ну, тогда нужно ещё по этому признаку и сортировать; а потом ещё и по алфавиту. Или отнестись к обозначению этого признака в списке как к избыточной сложности, и оставить всё как есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 11:59 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Valery Solovey писал(а):
Ну, тогда нужно ещё по этому признаку и сортировать; а потом ещё и по алфавиту. Или отнестись к обозначению этого признака в списке как к избыточной сложности, и оставить всё как есть.
Нет, сортировать будем только по алфавиту, а вот признак вывести можно. Собственно, на сегодня при использовании общепринятого соглашения об именах методы и так отделены в списке от переменных благодаря первой заглавной букве (сортировка чувствительна к регистру). Другое дело, что когда открываешь контекстный список для модуля, то константы и типы перемешиваются с процедурами. Вот тут-то и можно немножко визуально их развести.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 14:33 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Александр Ильин писал(а):
Нет, сортировать будем только по алфавиту, а вот признак вывести можно.
Если признак будет выведен, то сверху над признаками и идентификаторами в идеале следовало бы добавить узкую полоску с треугольничком, показывающим направление сортировки. Нажмёте над признаком -- будет сортировка по признаку туда-сюда, нажмёте над идентификатором -- будет сортировка по имени...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 14:59 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Sergo писал(а):
Небольшой баг: если список идентификаторов у модуля большой (занимает более чем 2/3 высоты экрана), то нижняя часть списка часто выходит за пределы экрана
А почему у вас экран такой маленький по высоте? Я заложил максимальную высоту списка = 32 строки. Это предполагает, что на экране не будет меньше 64 строк текста, а у вас на скриншоте еле помещается 36 строк. Это ограничение монитора?
Да, это на ноутбуке с разрешением 1280*800. Если разрешение монитора 1280*1024, а Brace highlight style - Font size поставить 10, то этот глюк исчезает. Но, конечно, хорошо бы на всякий случай вынести настройку максимальной высоты списка в ini-файл.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Вторник, 30 Март, 2010 15:03 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Дизайн предлОжите?

Дизайнер из меня не очень:) Но, по-моему, чем проще, тем лучше. Скажем, так:
Вложение:
Pict2.gif
Pict2.gif [ 5.67 КБ | Просмотров: 11280 ]

Процедуры, которых в списках импорта больше всего - помечать светло-желтым квадратиком (или светло-серым), константы - красным, типы -зеленым, переменные - синим. Главное, чтобы иконки были небольшими, и по их цвету было сразу ясно, что именно экспортируется.


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

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


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

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


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

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