OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Пятница, 20 Июнь, 2008 13:53 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Меня тут недавно приняли в группу разработчиков проекта "Notepad++ Plugins" на SourceForge, что позволило мне выложить для всеобщего пользования пару плагинчиков. Естественно, с исходниками. Плагины написаны на XDS Oberon (в редакторе Notepad++ : ) ).

ScrollPastEOF v.1.0 - разрешает прокручивать документ дальше конца файла на одну страницу. По умолчанию эта полезная возможность в Notepad++ отключена, и для её включения не предусмотрено никакого интерфейса. Добавлением данного плагина прокрутка включается.

WebEdit v.1.2 - небольшой плагин, конфигурируемый через ini-файл. Добавляет возможность "обёртывать" выделенный текст произвольными строками. Например, так:
"Hello, world!" -> "<p>Hello, world!</p>"
При этом не используется буфер обмена, не снимается выделение и сохраняется положение курсора, так что можно производить несколько "обёртываний" подряд.

Оба плагина, естественно, поставляются с исходными текстами и документацией на английском языке, а также содержат ссылки на компилятор XDS и книги Вирта на EuroProg.ru : )

Плагин ScrollPastEOF интересен тем, что использует модифицированный шаблон линковки (xc.tem). В данном шаблоне добавлена опция для отключения линковки рантайм-библиотеки, что позволяет создавать исполнимые модули (exe, dll) размером от 1.5 Кб. Правда, это накладывает определённые ограничения: нельзя пользоваться динамической памятью и работать с массивами, приложение должно состоять только из одного модуля (не считая SYSTEM, Windows и т.п.) и т.д. Рантайм-библиотека XDS имеет размер около 36 Кб, ScrollPastEOF.dll месте с ресурсом VersionInformation - 5.5 Кб.

WebEdit - это несколько более продвинутый плагин. В комплекте с ним идут модули NotepadPP и Scintilla, предоставляющие интерфейс к приложению и текстовому редактору соответственно. Оба модуля написаны вручную и по мере необходимости, так что основное там есть, а остальное видно, как добавить.

Страничка для скачивания плагинов: http://sourceforge.net/project/showfile ... _id=189927

PS: Notepad++ нормально работает под Wine.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Понедельник, 23 Июнь, 2008 22:29 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово. Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Понедельник, 23 Июнь, 2008 22:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Sergo писал(а):
Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово.
А что там, в MutliEdit-е? Я им не пользовался. Опишите, если не трудно, а то я интеграцию компилятора уже начал делать потихоньку.
Sergo писал(а):
Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно :)
Надо Lexer написать для Scintilla. У меня в планах это есть, надо только пример стороннего лексера найти, а то по документации не совсем ясно. Сам разбор проще пареной репы, вопрос как лексер из плагина подключить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Вторник, 24 Июнь, 2008 17:00 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Sergo писал(а):
Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово.
А что там, в MutliEdit-е? Я им не пользовался. Опишите, если не трудно, а то я интеграцию компилятора уже начал делать потихоньку.


Я его тоже не использую, знаком с ним только по документации.
В MultiEdit-е есть возможность парсить список ошибок и предупреждений, выдаваемых компилятором, и указывать в тексте программы места, где эти ошибки сделаны. Парсинг осуществляется регулярными выражениями, задаваемыми в специальном диалоге. Естественно, ошибки и предупреждения можно фильтровать.
Документацию можно скачать тут: http://www.multieditsoftware.com/ME2k6_Manual/ME2k6.pdf

Судя по описанию, очень мощная вещь. После настройки можно делать почти все, что и в любой нормальной IDE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Вторник, 24 Июнь, 2008 18:42 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Sergo писал(а):
В MultiEdit-е есть возможность парсить список ошибок и предупреждений, выдаваемых компилятором, и указывать в тексте программы места, где эти ошибки сделаны. Парсинг осуществляется регулярными выражениями, задаваемыми в специальном диалоге.
Это уже умеет плагин NppExec. Фильтрует консольную выдачу регулярными выражениями, остаётся список ошибок, двойной щелчок по пункту списка открывает место в исходнике. Чего там не хватает - так это автоматического перехода к первой ошибке сразу после компиляции и поиска файла исходника за пределами текущего каталога.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Среда, 25 Июнь, 2008 16:28 

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

Да, есть такой неприятный момент. Можно открывать файлы в разных папках, если они находятся в текущем каталоге. Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог.

Кстати, если заставить компилятор выдавать полные имена файлов (не могу сообразить, как это сделать), то, возможно, этой проблемы не будет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Среда, 25 Июнь, 2008 17:08 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Среда, 25 Июнь, 2008 17:13 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Sergo писал(а):
Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог.
Насколько я понимаю, это опция: Settings - Preferences - MISC - Remember the last operation directory.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Среда, 25 Июнь, 2008 20:11 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Александр Ильин писал(а):
Sergo писал(а):
Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог.
Насколько я понимаю, это опция: Settings - Preferences - MISC - Remember the last operation directory.

К сожалению, отключение этой опции проблему не решает - достаточно открыть новый файл, и его каталог становится текущим.
Действительно, похоже единственный выход - написать bat-файл, который будет запускать компилятор и фильтровать его выход, заменяя строки "src\..\" на полный путь. Программку для фильтрации написать не проблема. Для запуска bat-файла тоже использовать полный путь. Тогда по идее все должно работать нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Среда, 06 Август, 2008 09:41 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Небольшой тизер ; ) разрабатываемого мною плагина Obide (Oberon IDE). Про условия распространения пока ничего сказать не могу, всё зависит от Штефана Метцелера (Amadeus IT Solutions), оплатившего моё время на разработку.
В настоящий момент заканчивается работа над версией 2.0, осталось добавить поддержку type-bound процедур.
Основные умения плагина: Autocompletion (AKA intellisense), Code Hints, навигация по исходнику (переход к объявлению идентификатора и обратно) и базовая - пока что очень базовая - интеграция компилятора. Первые два умения показаны на картинке достаточно полно. Как видно, корректно обрабатываются: переименование модулей, правила видимости элементов структур, наследование, именованные и безымянные типы, а так же локальные переменные, включая параметры процедур. В реализации использованы модули портируемого компилятора из системы Oberon (OPS - сканер, OPM - машинно-зависимые константы), которые без проблем заработали под XDS, подтвердив свою портируемость. Стандартный парсер не использовался намеренно, чтобы не запинаться о несущественные с точки зрения intellisense ошибки в исходниках.
При вызове функции плагина парсинг текущего модуля производится прямо из буфера Notepad++, так что сохранение файла не требуется, идёт работа с наиболее актуальными данными. Используемые модули по мере необходимости парсятся с жесткого диска.


Вложения:
Obide 2.0 demo.png
Obide 2.0 demo.png [ 55.5 КБ | Просмотров: 6403 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Воскресенье, 08 Ноябрь, 2009 19:05 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Версия 2.1.1 данного плагина была выпущена в составе сборки NO2 и доступна для скачивания всем желающим.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Notepad++ Plugins на XDS Oberon
СообщениеДобавлено: Четверг, 17 Декабрь, 2009 08:54 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2291
Откуда: Россия, Санкт-Петербург
Александр Ильин писал(а):
Sergo писал(а):
Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно :)
Надо Lexer написать для Scintilla. У меня в планах это есть, надо только пример стороннего лексера найти, а то по документации не совсем ясно. Сам разбор проще пареной репы, вопрос как лексер из плагина подключить.
Вот и сделал потихоньку: viewtopic.php?p=39659#p39659


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

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