OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 20 Август, 2019 15:31

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




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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Александр Ильин писал(а):
Я бы более жёсткий синтаксис задал.
А я бы поддержал.


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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3061
Откуда: Астрахань
И я тоже.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Практически готов плагин для полноценной подсветки синтаксиса. Наконец-то поддерживаются вложенные комментарии. Более того, простенький парсер надёжно подсвечивает следующие ошибки синтаксиса:
- незакрытая строковая константа;
- попытка создать вложенную директиву компилятора;
- неизвестный символ - например, % или @ не могут встретиться в тексте программы, равно как и верхняя половина таблицы ASCII;
- дисбалланс (* и *), <* и *>. При этом комментарии внутри опций компилятора, как и прочие особые случаи, корректно обрабатываются в соответствии с ожиданиями компилятора XDS;
- ошибки форматирования числовых констант с полной поддержкой синтаксиса чисел с плавающей точкой, а также суффиксами "H" и "X".

Для установки разных цвето-шрифтовых атрибутов определено 9 стилей:
- Default - пользовательские идентификаторы, знаки препинания и прочий программный текст, не попадающий в остальные категории;
- Keyword - ключевые слова и стандартные идентификаторы, не входящие в следующие два стиля;
- Flow breakers - особо выделены слова, прерывающие поток выполнения: EXIT, HALT, RETURN (при желании можно задать цвет и шрифт, идентичные стилю Keyword);
- Unsafe - идентификатор SYSTEM;
- Number - числа: десятичные, шестнадцатиричные и с плавающей точкой;
- String - строковые '...{"}...', "...{'}..." и символьные константы (0X..0FFX и прочие шестнадцатиричные константы с суффиксом "X");
- Comment - комментарии блочные (*...*), в том числе с произвольным уровнем вложенности, и оконечные (от "--" до конца строки);
- Compiler option - опции компилятора <*...*>, используемые в XDS;
- Error - стиль для подсветки синтаксических ошибок.
Все стили настраиваются через стандартный диалог Settings - Style configurator.

Фолдинг пока не реализован, но никаких препятствий к этому нет.

Библиотека Amadeus не используется, поэтому, в отличие от Obide, исходники будут доступны вместе с первым выпуском. Однако, есть ложка дёгтя. Плагин FunctionList не работает с внешними лексерами. Соответственно, если выбрать Languages - Oberon-2, то список функций текущего модуля оказывается пуст. В этой связи ищу добровольца со знанием С++ для доработки FunctionList. Суть работы вот в чём:
1) скачать исходники и добиться успешной компиляции;
2) сделать так, чтобы при выборе внешнего лексера подгружались правила поиска функций для одноимённого user-defined языка. Другими словами, всё необходимое уже есть, надо только заставить правильно обработать один особый случай, создав "короткое замыкание" в нужном месте.

Вообще, суть FunctionList в том, что он предоставляет возможность задать набор регулярных выражений для поиска объявлений функций в исходном тексте. Каждый набор правил закреплён за одним из поддерживаемых языков программирования. Поддержка языков бывает трёх видов: 1) встроенная в текстовый редактор Scintilla (компонент, вокруг которого построен Notepad++), 2) добавленная средствами Notepad++ (в меню View - User-Defined Language...) и 3) добавленная плагином (external lexer по терминологии Scintilla). Как вариант, можно попробовать сделать один особый набор правил, который FunctionList активировал бы в случае, если текущий язык предоставлен плагином.

Есть желающие помочь?


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

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 81
Откуда: Львів
В версии 2 бета написано:
Цитата:
How to make parsing rules

This is not so easy to explain. At first you need to know how to work with RE
(Regular Expressions).
Open "Plugins->Function List->Language Parsing Rules...". You see a new dialog
to change/modify the rules. Here you can change for each language the rules.
To understand how does a parsing works, please have a review to the other
parsing rules and to the help dialog box. Open it by click on help within the
"Language Parsing Rules" box.
The tree can show at maximum one group with a set of currently one subgroups.
For example:

O INCLUDE
O CLASS
|-O Class name
| |-O ENUM
| | |-- Enum 1
| | '-- Enum 2
| '-O METHODE
| |-- Metohde 1
| '-- Methode 2

Therefore you only need to change the combo box in "Group Properties". Change
the subgroup combo box of CLASS to METHODE.

BTW: If you added your own User Defined Language you will also see the language
in the left list at bottom.


Может ничего и не надо делать?
1.2 скомпилировался.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Ihor писал(а):
1.2 скомпилировался.
Большое спасибо, что откликнулись!
Ihor писал(а):
Может ничего и не надо делать?
Я вчера целый день промаялся. Перепробовал альфу, бету, затем нашёл наиболее свежую версию. Сначала надеялся запустить на ANSI-версии Notepad++, потом стал пробовать Unicode. В общем, только сегодня выяснил, что FunctionList на самом деле поддерживает внешние лексеры, но его вводит в заблуждение настройка "Make language menu compact". Уж не знаю, какими хаками там одно к другому прикручено, но выход найден, список процедур отображается.

Теперь буду думать, придётся ли переходить на новую Unicode-версию Notepad++ или удастся остаться на старой.


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

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 81
Откуда: Львів
Что плохого в Unicode-версии?


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

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

Не находит. Соответственно, и поиск с заменой тоже не работает.

Смена кодировки документа (пробовал ANSI и UTF-8) не помогает.

Правда, сейчас проверил в ANSI версии - тоже не работает. Возможно, что это глюки Scintilla 2.0.1. Помню, мне приходилось его вручную "откатывать" на предыдущую версию после обновления Notepad++, так как при вводе вместо кириллицы появлялись какие-то странные символы.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Info21 писал(а):
А на линуксе это работает?
Unix Installation


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Ihor писал(а):
В версии 2 бета написано:
Цитата:
BTW: If you added your own User Defined Language you will also see the language
in the left list at bottom.
Может ничего и не надо делать?
1.2 скомпилировался.
Все-таки что-то не так. Никак не могу заставить работать FunctionList последней версии с внешним лексером Oberon2Lexer в Notepad++ Unicode v5.6.4. В меню Languages язык Oberon-2 появляется, синтаксис нормально подсвечивается, но в диалоге настройки FunctionList язык Oberon-2 отсутствует.

То, что выше написано про Used-defined Language, - не про внешние лексеры (подключенные через плагины DLL), а про языки, созданные с помощью диалога View - User Define Dialog... Мне раньше показалось, что мой внешний лексер работает, но на самом деле у меня просто не был удалён одноимённый User-defined язык, и он иногда активировался из-за недоработок в Notepad++.

Так что запрос доработки FunctionList остаётся актуальным, без этого я не могу выпустить NO2 v0.2. Поскольку Oberon2Lexer существует и в ANSI, и в Unicode версиях, то и FunctionList устроит любой. Желательно, всё же работать с последней версией (ссылка на исходники дана выше).

Нужно добавить поддержку одного дополнительного языка. Это может быть язык "External", обозначающий любой внешний лексер (да, пусть поддерживается только один внешний лексер), либо "Default", применяющаяся всегда, когда для текущего языка не заданы правила (в заголовке окна последней версии FunctionList при этом пишется "Function List - No Rule Defined", вместо этого пусть будет "Function List - Default"). Подозреваю, что второй вариант проще, чем поиск и распознавание внешних лексеров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Четверг, 04 Февраль, 2010 09:53 

Зарегистрирован: Четверг, 04 Февраль, 2010 09:31
Сообщения: 263
Не понял компилятор xc прикручен к плагину или нет - не могу скомпилировать даже стандартный пример из каталога samles - ctrl+1 - пишет compiled successfully


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
dizer писал(а):
Не понял компилятор xc прикручен к плагину или нет
Нет, в качестве компилятора вызывается make в каталоге текущего файла. Компиляция считается успешной, если в выдаче не обнаружено текста ошибок в формате XC.

Интеграция компилятора находится в состоянии proof-of-concept, т.е. сделан только некий минимум для демонстрации того, что она в принципе возможна. Для полноценной работы там ещё много нужно сделать.


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

Зарегистрирован: Четверг, 04 Февраль, 2010 09:31
Сообщения: 263
Спасибо за ответ. я просмотрел все что есть на текущий момент относящееся ide oberona и все более склоняюсь к мысли о перспективности интеграции xdc компиллятора в netbeans - notepad даже с двумя плюсами при максимуме затраченных усилий будет увы только полумерой....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-2 IDE на основе Notepad++
СообщениеДобавлено: Четверг, 04 Февраль, 2010 12:35 

Зарегистрирован: Среда, 30 Сентябрь, 2009 14:45
Сообщения: 147
Не знаю netbeans, но мне бы хватило и notepad при наличии хорошей книжки и системы помощи. Почему, кстати, оберона нет в eclipse?


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

Зарегистрирован: Вторник, 25 Март, 2008 23:04
Сообщения: 81
Откуда: Львів
Посмотрю как появится время.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Недавно вышел из беты FunctionList 2.1. Похоже, внешние лексеры поддерживаются! : ))
У меня тем временем уже есть заготовка фолдинга, надо несколько багов ещё отловить.
Так что намечается NO2 v0.2 примерно в течение месяца.


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

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Ждем-с:) Кстати, первая версия NO2 работает как часы - каких-либо багов замечено не было.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Александр Ильин писал(а):
импортированные модули ищутся в текущем каталоге текущего модуля, затем в следующих каталогах в указанном порядке: ..\A3, ..\Lib, ..\..\A3, ..\..\Lib, ..\..\Src. Это пока что не вынесено в настройки, а просто намертво зашито в плагин. Пока я был единственным пользователем, я реализовал поддержку нужной мне структуры проекта. Теперь ожидаю предложений, чтобы понять, как лучше сделать. То ли достаточно ли будет глобального Obide.ini, то ли нужен такой файл в каталоге каждого проекта, то ли обязательно нужно искать и разбирать xc.red.
Добавил чтение настроек из файла Notepad++\Plugins\Config\Obide.ini. Секция Globals, ключ lookup. По умолчанию = ".\;..\A3;..\Lib;..\..\A3;..\..\Lib;..\..\Src". Как видно, список путей указывается через точку с запятой. Пути указываются относительно текущего открытого файла.

Пока что решил остановиться на глобальной настройке. Искать и суммировать пути по всем *.prj и xc.red мне что-то не улыбается, тем более, что проектов в одном каталоге может быть несколько, - поди разберись, к какому из них относится текущий файл.

Ещё сегодня добавил Code Hint для идентификатора модуля: выводится имя модуля (в случае псевдонима бывает полезно) и полное имя файла, где плагин нашёл исходник данного модуля (будет полезно для отладки списка путей) либо сообщение, что файл не найден. В последнем случае также выводится значение параметра Global.lookup, т.е. список относительных путей для поиска.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Доступен для скачивания плагин Obide (Oberon IDE) v2.2. Что нового:
- Добавлена поддержка Unicode-версии Notepad++.
- Добавлена подсказка для модулей: полное имя и полный путь к файлу.
- Пути поиска модулей загружаются из файла Obide.ini, если он есть.
- Пункт меню "Go to Definition" переименован в "Go to Declaration".
- Если при попытке перейти к объявлению модуля не удаётся найти файл, то выводится соответствующее сообщение, в котором указывается список путей поиска.
- Исправлен формат ресурса Version Information dll-файлов.
- Версия плагина выведена в заголовок окна About.

Ссылка для скачивания: http://downloads.sourceforge.net/projec ... .v.2.2.zip
Описание и история изменений: http://downloads.sourceforge.net/projec ... .v.2.2.txt


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

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Огромное спасибо! Вроде все нормально работает, кроме компиляции по CTRL+1. Пишет, что "compiled successfully", даже для текста с ошибками. Пока не разбирался, в чем тут дело. Правда, для меня это не критично - у меня Notepad уже интегрирован с компилятором, хотя и топорно.


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

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2309
Откуда: Россия, Томск
Sergo писал(а):
Огромное спасибо! Вроде все нормально работает, кроме компиляции по CTRL+1. Пишет, что "compiled successfully", даже для текста с ошибками. Пока не разбирался, в чем тут дело. Правда, для меня это не критично - у меня Notepad уже интегрирован с компилятором, хотя и топорно.

Команда компиляции устроена просто. В каталоге текущего файла производится попытка запустить программу "make" (предполагается, что она где-то есть среди путей в переменной окружения PATH). Далее, если в выдаче не обнаруживается ошибок компилятора XDS, то выводится сообщение "Compiled successfully". Даже в том случае, если произошли другие ошибки и сам make отработать не смог.

Я обычно компилирую в соседнем окне cmd.exe, либо - редко - в консоли плагина NppExec. Редко - потому что места экранного жалко всё время держать его открытым.

Вообще, надо бы убрать, наверное, эту "компиляцию". Тем более, что в новых версиях Notepad++ Ctrl+1 уже используется для чего-то другого. Основная причина, по которой компиляция не развивается, - это то, что на время ожидания завершения работы компилятора основной процесс Notepad++ замораживается, а это совсем не красиво с точки зрения пользователя, да и не удобно. Надо многопоточность вводить, а я этим совсем в XDS не занимался. Пожалуй, в следующей версии уберу, чтобы никого не смущать.

А вы используете make вообще? Какая у вас интеграция компилятора?


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

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


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

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


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

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