OberonCore https://forum.oberoncore.ru/ |
|
Oberon-2 IDE на основе Notepad++ https://forum.oberoncore.ru/viewtopic.php?f=30&t=2027 |
Страница 3 из 7 |
Автор: | Александр Ильин [ Суббота, 20 Март, 2010 23:36 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Sergo писал(а): Вроде все нормально работает Пути поиска модулей (lookup) пробовали настроить под свою структуру проекта? Удовлетворяет ли предложенное решение?
|
Автор: | Sergo [ Воскресенье, 21 Март, 2010 00:15 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): А вы используете make вообще? Какая у вас интеграция компилятора Спросили бы что-нибудь попроще:) Я делал это все больше года назад, так что все детали уже не помню.. Запуск компилятора сделан через макросы плагина NppExec. Вызов макросов - через меню Macro или сочетания клавиш, вывод результатов компиляции - в консоль плагина NppExec. Если есть ошибки/предупреждения, то щелчок мышью по соответствующей строке в консоли открывает нужный файл с модулем и переводит курсор на строку с ошибкой (вот как это делал - с ходу не вспомню, но если интересно - могу разобраться и написать). Make не использую. Для разбора дамп-файлов (*.$$$) написал простую утилитку - запускается из среды и выводит информацию о месте ошибки в консоль. |
Автор: | Sergo [ Воскресенье, 21 Март, 2010 00:16 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Sergo писал(а): Вроде все нормально работает Пути поиска модулей (lookup) пробовали настроить под свою структуру проекта? Удовлетворяет ли предложенное решение?Настроил. Решение вполне устраивает. |
Автор: | Sergo [ Воскресенье, 21 Март, 2010 00:20 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Обнаружил баг, довольно странный. Для этого модуля Код: 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, то в списке начинают отображаться обе процедуры. |
Автор: | Александр Ильин [ Воскресенье, 21 Март, 2010 00:24 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Идеи для будущей версии 2.3: - по Ctrl+Shift+9 переходить к объявлению предка. Например, чтобы можно было от имени метода перейти к объявлению этого метода в предке (аналогичный переход делать и по простому Ctrl+9, если после имени метода стоит символ "^", означающий вызов унаследованного метода); - по Ctrl+Alt+9 можно переходить не к объявлению переменной, а сразу к объявлению её типа. Не знаю, насколько это будет полезно; - повторное нажатие Ctrl+9 может переходить к следующему объявлению такого же идентификатора. Иногда бывает полезно, если есть метод и просто глобальная процедура с одинаковыми именами, между ними переключаться; - генерация карты объектных зависимостей. Напрашивается два вида связей: кто от кого наследуется и кто кого использует (в смысле объектной композиции - поля записей объектного типа). Для этого вся информация у плагина есть. Для рисования, собственно, картинки, уже есть опыт использования GraphViz (программка рисует диаграмму импорта модулей). Это, так сказать, в порядке мозгового штурма. Чтобы не забылось. |
Автор: | Александр Ильин [ Воскресенье, 21 Март, 2010 00:27 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Sergo писал(а): Обнаружил баг, довольно странный. Спасибо большое! : )Если поставить ";" после IF..END, то тоже будет работать. Видимо, проблема с определением конца процедуры: некорректно ожидается идентификатор после END'а. ДОП: Исправил, и тест добавил на будущее. Если ещё ошибки найдёте, обязательно пишите! |
Автор: | Александр Ильин [ Четверг, 25 Март, 2010 22:15 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Блин, столько проблем с этим опенсорсом. Собрать пакет из нескольких компонентов - почти невозможная задача. То одно не работает, то другое. Пока первое исправили, второе потеряло совместимость с третьим, без которого первое не работает, так что приходится ждать, пока второе приведут в порядок, но его старый разработчик забросил, а новый такую мегафичу с разбегу залепить решил, что скомпилировать это всё удастся только через год, не говоря уже об отладке... Пытаюсь собрать новую версию NO2, как вы поняли. Действующие лица: "первое" - Function List (текущие версии существуют только в Unicode-варианте), "второе" - QuickText, "третье" - Notepad++ Unicode. Кажется, удастся сделать custom build QuickText'а, для нужд моего пакета. Там проблема в том, что из-за добавления поддержки новых языков в Notepad++ QuickText перестал работать с внешними лексерами (у меня Oberon-2 Lexer - как раз "внешний"). Проблема в том, что список языков зашит в плагин константой. Парадокс в том, что константа - при очевидных недостатках - это ещё хорошее решение, поскольку Notepad++ вообще не предоставляет плагинам нормального интерфейса для поулчения списка языков. Каждый изощряется как может. Например, FunctionList лезет через WinApi в главное меню "Languages" и там просматривает список пунктов. Недавно в Notepad++ ввели настройку "Make Languages menu compact" (по умолчанию включена), и этот способ перестал работать, поскольку имена языков попрятались в субменю по алфавиту. Хак на хаке, ё-моё... : ( |
Автор: | Info21 [ Четверг, 25 Март, 2010 23:02 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Блин, столько проблем с этим опенсорсом. Собрать пакет из нескольких компонентов - почти невозможная задача. Любопытный опыт, чувствуется, что наболело
... Хак на хаке, ё-моё... : ( |
Автор: | Александр Ильин [ Пятница, 26 Март, 2010 17:04 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
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 |
Автор: | Александр Ильин [ Воскресенье, 28 Март, 2010 20:56 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
После пары дней скачивания разных студий и дополнений к ним, решил, что проще требуемый функционал включить в собственный плагин WebEdit. Единственное, что при этом потеряется, - это GUI для настройки (надо будет править ini-файл, но это можно делать в том же Notepad++, не отходя от кассы) и привязка к текущему языку (т.е. если сейчас выбран язык PHP, то одни шаблоны, а если Oberon, то другие). Последнее вообще не жалко, да и из пользователей WebEdit'а никто ничего подобного не просил. Так проще. Я давно нечто подобное хотел сделать, но замахнулся тогда слишком широко - портировать модуль EditKeys из Oberon System. Будем постепенно приближаться, и всё получится. Всяко лучше, чем ждать у моря погоды с этим QuickText заброшенным или утечки памяти там в сишном коде вылавливать. Илья Ермаков писал(а): Фактически, дальновидный коллектив будет связываться только с таким инструментарием, который в случае необходимости мог бы быть разработан и поддерживаться самостоятельно. (Пусть гипотетически, но это хорошая бритва для отсечения избыточно сложного базового ПО, которое потом аукнется). Согласен.
|
Автор: | Александр Ильин [ Понедельник, 29 Март, 2010 18:47 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
За день добавил нужный функционал в свой плагин WebEdit. Ещё полдня с релизом и документацией промаялся. Вот и все дела. |
Автор: | Sergo [ Вторник, 30 Март, 2010 03:15 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Если ещё ошибки найдёте, обязательно пишите! Небольшой баг: если список идентификаторов у модуля большой (занимает более чем 2/3 высоты экрана), то нижняя часть списка часто выходит за пределы экрана: Вложение:
|
Автор: | Sergo [ Вторник, 30 Март, 2010 03:17 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Идеи для будущей версии 2.3 [..] Еще одна идея: в списке, который открывается по Ctrl+Space, экспортируемые модулями идентификаторы отображать разными цветами в зависимости от их категории: константа, переменная, тип или процедура.
|
Автор: | Александр Ильин [ Вторник, 30 Март, 2010 08:32 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
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-файл. |
Автор: | Александр Ильин [ Вторник, 30 Март, 2010 08:43 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Sergo писал(а): Еще одна идея: в списке, который открывается по Ctrl+Space, экспортируемые модулями идентификаторы отображать разными цветами в зависимости от их категории: константа, переменная, тип или процедура. Цветов не предусмотрено, но перед идентификатором можно поместить маленькую картиночку. Можно с цветом, можно с буквой или ещё с чем-то. Дизайн предлОжите?
|
Автор: | Valery Solovey [ Вторник, 30 Март, 2010 11:32 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Ну, тогда нужно ещё по этому признаку и сортировать; а потом ещё и по алфавиту. Или отнестись к обозначению этого признака в списке как к избыточной сложности, и оставить всё как есть. |
Автор: | Александр Ильин [ Вторник, 30 Март, 2010 11:59 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Valery Solovey писал(а): Ну, тогда нужно ещё по этому признаку и сортировать; а потом ещё и по алфавиту. Или отнестись к обозначению этого признака в списке как к избыточной сложности, и оставить всё как есть. Нет, сортировать будем только по алфавиту, а вот признак вывести можно. Собственно, на сегодня при использовании общепринятого соглашения об именах методы и так отделены в списке от переменных благодаря первой заглавной букве (сортировка чувствительна к регистру). Другое дело, что когда открываешь контекстный список для модуля, то константы и типы перемешиваются с процедурами. Вот тут-то и можно немножко визуально их развести.
|
Автор: | Geniepro [ Вторник, 30 Март, 2010 14:33 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Нет, сортировать будем только по алфавиту, а вот признак вывести можно. Если признак будет выведен, то сверху над признаками и идентификаторами в идеале следовало бы добавить узкую полоску с треугольничком, показывающим направление сортировки. Нажмёте над признаком -- будет сортировка по признаку туда-сюда, нажмёте над идентификатором -- будет сортировка по имени...
|
Автор: | Sergo [ Вторник, 30 Март, 2010 14:59 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Sergo писал(а): Небольшой баг: если список идентификаторов у модуля большой (занимает более чем 2/3 высоты экрана), то нижняя часть списка часто выходит за пределы экрана А почему у вас экран такой маленький по высоте? Я заложил максимальную высоту списка = 32 строки. Это предполагает, что на экране не будет меньше 64 строк текста, а у вас на скриншоте еле помещается 36 строк. Это ограничение монитора? |
Автор: | Sergo [ Вторник, 30 Март, 2010 15:03 ] |
Заголовок сообщения: | Re: Oberon-2 IDE на основе Notepad++ |
Александр Ильин писал(а): Дизайн предлОжите? Дизайнер из меня не очень:) Но, по-моему, чем проще, тем лучше. Скажем, так: Вложение: Pict2.gif [ 5.67 КБ | Просмотров: 11278 ] Процедуры, которых в списках импорта больше всего - помечать светло-желтым квадратиком (или светло-серым), константы - красным, типы -зеленым, переменные - синим. Главное, чтобы иконки были небольшими, и по их цвету было сразу ясно, что именно экспортируется. |
Страница 3 из 7 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |