OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 23 Сентябрь, 2019 02:08

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




Начать новую тему Ответить на тему  [ Сообщений: 125 ]  На страницу 1, 2, 3, 4, 5 ... 7  След.
Автор Сообщение
 Заголовок сообщения: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Воскресенье, 08 Ноябрь, 2009 19:02 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Небольшой анонс для тех, кто не следит за новостями на http://oberonrevival.sourceforge.net/

Выложен и доступен для скачивания пакет NO2 версии 0.1.

Собрано наспех, так что длинных справочных файлов с описанием не приложено, но всё работает как часы, и проверено временем.

Это моя личная сборка на основе редактора Notepad++ (версии 4.8.0) для работы с исходниками на XDS Oberon-2. В сборку влючены и настроены необходимые плагины, при запуске вы их увидите: Function List показывает список процедур в текущем файле, Explorer предоставляет список файлов и стандартное контекстное меню Проводника, в том числе пункты от TortoiseSVN (для тех, у кого он есть), NppExec позволяет работать с командной строкой, в том числе вылавливать и подсвечивать сообщения об ошибках компилятора XDS, а по двойному клику - открывать соответствующее место в нужном файле. Есть фолдинг и подсветка синтаксита в виде userDefineLang.xml (реагирует на расширение файла *.ob2). Там не без недостатков, но в целом работает. Ключевые слова все, какие вспомнил, распознаются и подсвечиваются, фолдинг работает для всех составных операторов, процедур и RECORD'ов.

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

В комплекте предустановлен плагин Obide последней версии - 2.1.1, анонсированный ранее. Описание основных функций и клавиатурных сокращений см. в plugins/doc/Obide.txt.

Сборка является портативной, т.е. все настройки хранит в собственном каталоге, к реестру и "Application Data" не привязывается, может работать с флешки и т.п. Без опасения можете скачать, попробовать и удалить. Notepad++, вроде бы, неплохо работает под Wine, но сам я не пробовал.

Предложения по смене названия "NO2" приветствуются, поскольку оно вызывает ассоциации с NativeOberon. Я отталкивался от Notepad++ + Oberon-2.

Прочие замечания, предложения и благодарности принимаются здесь, либо в списке рассылки oberonrevival-xds-dev@lists.sourceforge.net (оформить подписку).


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

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
О, огромное спасибо! Давно облизывался на эту вещь:)
Кстати, заметил, что по Ctrl+Spacebar не у всех модулей вываливается список экспортируемых ими идентификаторов. В чем может быть причина?


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8174
Откуда: Троицк, Москва
Супер. А на линуксе это работает?


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Info21 писал(а):
Супер. А на линуксе это работает?
Под Wine должно, вроде бы. Надо чтобы кто-то попробовал и отписался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 04:49 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Sergo писал(а):
Кстати, заметил, что по Ctrl+Spacebar не у всех модулей вываливается список экспортируемых ими идентификаторов. В чем может быть причина?
Причин на сегодня может быть несколько:
0) указанный модуль отсутствует в списке IMPORT текущего модуля;
1) *.mod, *.def и прочее не поддерживается, только *.ob2;
2) файл не найден (надо бы подсказочку отобразить в этом случае, сделаем);

По второму пункту добавлю, что импортированные модули ищутся в текущем каталоге текущего модуля, затем в следующих каталогах в указанном порядке: ..\A3, ..\Lib, ..\..\A3, ..\..\Lib, ..\..\Src. Это пока что не вынесено в настройки, а просто намертво зашито в плагин. Пока я был единственным пользователем, я реализовал поддержку нужной мне структуры проекта. Теперь ожидаю предложений, чтобы понять, как лучше сделать. То ли достаточно ли будет глобального Obide.ini, то ли нужен такой файл в каталоге каждого проекта, то ли обязательно нужно искать и разбирать xc.red.

3) ошибки или неизвестные конструкции в исходном тексте модуля;

В третьем случае обычно можно видеть неполный список идентификаторов. Тогда можно прислать мне исходник и описание, в каком месте не видно какого идентификатора (текст лучше сократить до минимального воспроизведящего ошибку). Например, только недавно я добавил поддержку объявлений вида 'TYPE Ptr* = POINTER ["Modula"] TO ...', 'VAR x ["C"]*: ...' и т.п.

4) список идентификаторов не отображается также для преобразований типов и вызовов функций (" var (Type).| ") - это пока не поддерживается, и реализовать для общего случая, как мне предствляется, довольно сложно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 08:25 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
А вроде бы у XDS есть своя IDE, или я с Зонноном путаю?..


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Geniepro писал(а):
А вроде бы у XDS есть своя IDE, или я с Зонноном путаю?..

Своя среда есть, но она не очень удобная.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8174
Откуда: Троицк, Москва
Александр Ильин писал(а):
Info21 писал(а):
Супер. А на линуксе это работает?
Под Wine должно, вроде бы. Надо чтобы кто-то попробовал и отписался.
Это потому что Notepad++ не линуксовая программа? Тогда понятно...


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Info21 писал(а):
Александр Ильин писал(а):
Info21 писал(а):
Супер. А на линуксе это работает?
Под Wine должно, вроде бы. Надо чтобы кто-то попробовал и отписался.
Это потому что Notepad++ не линуксовая программа? Тогда понятно...

Александр сделал очень важную вещь - портировал на Oberon-2 привязку к Scintilla.
Она весьма и весьма нетривиальна (даже с учетом того, что исходник делается автоматом).
Имея ее, можно теперь встраиваться во многие редакторы, из которых Scintilla "торчит" наружу. В линуксе таких – вагон и маленькая тележка.
Не скажу, что это совсем уж просто, но теперь подъемно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 10:12 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Geniepro писал(а):
А вроде бы у XDS есть своя IDE, или я с Зонноном путаю?..
Про Зоннон не знаю, а у XDS - есть. Но там кроме подсветки синтаксиса и интеграции компилятора ничего нет (да и то, когда я смотрел, привязка эта не работала при наличии пробелов в путях). Плагины предусмотрены только для "языковых драйверов" - в комплекте идут Oberon, Modula и Java - но плагин умеет только синтаксис подсвечивать. Текстовый редактор также сильно ограничен в возможностях.


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Александр, Вы пошли по пути правки исходников для XDS на Notepad++ с написанием соотв-х плагинов.

Вы не рассматривали вариант чтобы использовать для редактирования ББ? К нему ведь можно прикрутить что угодно - и "плагины" и вызов компилятора XDS...


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Евгений Темиргалеев писал(а):
Вы не рассматривали вариант чтобы использовать для редактирования ББ? К нему ведь можно прикрутить что угодно - и "плагины" и вызов компилятора XDS...
Я пошёл по пути наименьшего сопротивления. Чтобы в ББ прикрутить подсветку синтаксиса, надо залезть куда-то внутрь подсистемы Text, вывести наружу "проводки", потом снаружи к ним что-то "припаять" (плагин), а потом проверять как оно работает и почему. В Notepad++ достаточно ввести список ключевых слов в поле ввода, выбрать цвет текста, фона и сохранить настройки. Я смотрел в подсистему Text, когда разбирался с проблемами отображения юникодных символов. Честно скажу, большого желания двигаться в этом направлении не появилось.

В Notepad++ пришлось порыться, но относительно недолго и только на поверхности, поскольку все необходимые привязки уже вынесены в интерфейсы (опубликованы функции, коды команд). Scintilla - вообще песня: отличная документация, простая и единообразная работа с командами. Подключил - и работает. В ББ была бы ещё головная боль с поддержкой, которую я, как разработчик ответственный, не могу сбрасывать со счетов. Во-первых, пришлось бы скорее всего клонировать подсистему Text, во-вторых, думать про 1.5 vs. 1.6. Бинарные исходники сильно затрудняют автоматизированный анализ изменений (готовыми инструментами типа WinMerge) и автоматическое ветвление/слияние с помощью существующих систем контроля версий. Конечно, можно было бы написать инструмент для сравнения файлов (например, по схеме экспорт->сравнение->импорт), но это, опять же, долгие дни работы.

Возможности GUI в ББ тоже оставляют желать. Либо изучать WinApi, либо изобретать текстовые интерфейсы. Оба пути долгие и трудные. Например, только недавно я придумал, как можно было бы реализовать контекстный список команд. В Scintilla всё это уже есть, просто отправляешь одно сообщение - и список отображается привычным образом. Другой пример - у меня есть реализация тулбара, которая отображает список открытых окон и работает как панель закладок (tab), но до приличного вида довести её так и не удалось из-за незнания WinApi. Замучился искать, в чём проблема, и бросил. Самому пользоваться ещё ладно, но другим рекомендовать - не дозрела.

Есть и другие странности. Например, любит ББ очищать буфер UNDO после сохранения документа. Отключается это только хирургически путём залезания вовнутрь, настройки такой нет, а после отключения в интерфейсе появляются странности: после выполнения цепочки Save+Undo команда "Сохранить" не доступна, хотя документ в окне отличается от документа на диске.

Я старался написать свой плагин так, чтобы его легко можно было портировать в другое окружение. То есть, привязки к внутренностям Notepad++ достаточно хорошо локализованы. Если кто-то заинтересован - пожалуйста, давайте согласовывать интерфейсы. Я скажу, что мне нужно, и что будет на выходе, а вы со своей стороны обеспечите использование и отображение.

Наверное, резюме такое, что в Notepad++ порог вхождения не только оказался существенно ниже, он оказался похож на лестницу. Сначала понятно, как настроить подсветку, потом понятно, как увидеть список функций, затем ясно, как написать плагин, далее видно, как сделать с текстом всё что угодно. Шаг за шагом настроил как нужно. А как правильно дополнить ББ или подсистему Text, и с чего вообще начинать - мне, например, не понятно.

Собственно, по этой же причине я не сделал свой плагин для какого-нибудь gVim или Emacs: высокий порог вхождения, непривычный интерфейс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 19:56 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Sergo писал(а):
Кстати, заметил, что по Ctrl+Spacebar не у всех модулей вываливается список экспортируемых ими идентификаторов. В чем может быть причина?
Причин на сегодня может быть несколько:
[...]
2) файл не найден (надо бы подсказочку отобразить в этом случае, сделаем);

Теперь понятно. Пункт 2 - у меня другая структура каталогов.

Александр Ильин писал(а):
По второму пункту добавлю, что импортированные модули ищутся в текущем каталоге текущего модуля, затем в следующих каталогах в указанном порядке: ..\A3, ..\Lib, ..\..\A3, ..\..\Lib, ..\..\Src. Это пока что не вынесено в настройки, а просто намертво зашито в плагин. Пока я был единственным пользователем, я реализовал поддержку нужной мне структуры проекта. Теперь ожидаю предложений, чтобы понять, как лучше сделать. То ли достаточно ли будет глобального Obide.ini, то ли нужен такой файл в каталоге каждого проекта, то ли обязательно нужно искать и разбирать xc.red.

Можно предложить еще один вариант. Все пути для поиска файлов просто забивать в файл проекта - *.prj. Примерно так:

-lookup = *.ob2 = $!/src; $!/Каталог1; $!/Каталог1/Каталог2; $!/Каталог3; и.т.д.

Ну а редактор должен искать эту строку в файле текущего проекта и читать оттуда список каталогов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 22:49 

Зарегистрирован: Среда, 04 Июль, 2007 16:43
Сообщения: 233
Notepad++, a source code editor and MS Windows Notepad replacement, has the mission to offer a greener environment. By optimizing its routines, it results in reducing CPU power consumption then reducing the world carbon dioxide emissions.

Что-то зеленые в последнее время заметно активизировались :mrgreen:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 22:54 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Александр Ильин писал(а):
Предложения по смене названия "NO2" приветствуются

Вот несколько вариантов. Они настолько стандартны, что объяснять их не нужно и настолько универсальны, что подойдут почти ко в сему (в этом же и их недостаток):
OinN
NforO
N&O

Я не совсем понял, что называется NO2 (-ом?). Это плагин? Если да, то можно вспомнить, что плагин - это подчинённый элемент основной программы. А поскольку данный конкретный плагин прокладывает мостик между основной программой и Обероном, то его можно назвать ONB (Oberon - Notepad Bridge).

Если это название сборки, то, например, ONI (Oberon and Notepad++ Integration). Или NOC (Notepad Oberon Combining).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 23:17 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Хм, а таб-то у ейтой программы равен ( x - 1 ) mod 8. При x mod 8 # 0. То есть, на один пробел недостаёт до обычного своего положения. Это настройки такие или так было задумано изначально?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Понедельник, 09 Ноябрь, 2009 23:20 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Хотя нет. Он тупо равен трём. То есть, дело в настройках. : ) Осталось только найти их...


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

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1200
Александр Ильин писал(а):
Предложения по смене названия "NO2" приветствуются

N2O поприятнее будет. ;)


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Trurl писал(а):
N2O поприятнее будет. ;)
Зато в NO2 горит C. ; )


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2311
Откуда: Россия, Томск
Вот за что люблю Оберон, так это за то, что за три дня можно написать полноценный плагин подсветки синтаксиса, который ещё и мелкие ошибки будет подсказывать навроде незакрытой строковой константы.
Правда, константы типа REAL сложноваты. Я бы более жёсткий синтаксис задал. Сейчас такой:
Цитата:
digit{digit} "." [digit{digit}] [ ("E"|"D") ["+"|"-"] digit{digit} ]
Примеры:
1.
1.E5
1.E+5
1.0
1.0E5
1.0E+5

А я бы сделал такой:
Цитата:
digit{digit} "." digit{digit} [ ("E"|"D") ("+"|"-") digit{digit} ]
Например:
1.0 (цифра после точки обязательна)
1.0E+5 (знак "+" или "-" обязателен)


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

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


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

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


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

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