OberonCore https://forum.oberoncore.ru/ |
|
Notepad++ Plugins на XDS Oberon https://forum.oberoncore.ru/viewtopic.php?f=30&t=1037 |
Страница 1 из 1 |
Автор: | Александр Ильин [ Пятница, 20 Июнь, 2008 13:53 ] |
Заголовок сообщения: | Notepad++ Plugins на XDS Oberon |
Меня тут недавно приняли в группу разработчиков проекта "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. |
Автор: | Sergo [ Понедельник, 23 Июнь, 2008 22:29 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово. Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно ![]() |
Автор: | Александр Ильин [ Понедельник, 23 Июнь, 2008 22:41 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Sergo писал(а): Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово. А что там, в MutliEdit-е? Я им не пользовался. Опишите, если не трудно, а то я интеграцию компилятора уже начал делать потихоньку.Sergo писал(а): Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно :) Надо Lexer написать для Scintilla. У меня в планах это есть, надо только пример стороннего лексера найти, а то по документации не совсем ясно. Сам разбор проще пареной репы, вопрос как лексер из плагина подключить.
|
Автор: | Sergo [ Вторник, 24 Июнь, 2008 17:00 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Александр Ильин писал(а): Sergo писал(а): Симпатичный редактор. Если бы его удалось "поженить" с компилятором XDS (как это можно сделать в MultiEdit-е), было бы здорово. А что там, в MutliEdit-е? Я им не пользовался. Опишите, если не трудно, а то я интеграцию компилятора уже начал делать потихоньку.Я его тоже не использую, знаком с ним только по документации. В MultiEdit-е есть возможность парсить список ошибок и предупреждений, выдаваемых компилятором, и указывать в тексте программы места, где эти ошибки сделаны. Парсинг осуществляется регулярными выражениями, задаваемыми в специальном диалоге. Естественно, ошибки и предупреждения можно фильтровать. Документацию можно скачать тут: http://www.multieditsoftware.com/ME2k6_Manual/ME2k6.pdf Судя по описанию, очень мощная вещь. После настройки можно делать почти все, что и в любой нормальной IDE. |
Автор: | Александр Ильин [ Вторник, 24 Июнь, 2008 18:42 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Sergo писал(а): В MultiEdit-е есть возможность парсить список ошибок и предупреждений, выдаваемых компилятором, и указывать в тексте программы места, где эти ошибки сделаны. Парсинг осуществляется регулярными выражениями, задаваемыми в специальном диалоге. Это уже умеет плагин NppExec. Фильтрует консольную выдачу регулярными выражениями, остаётся список ошибок, двойной щелчок по пункту списка открывает место в исходнике. Чего там не хватает - так это автоматического перехода к первой ошибке сразу после компиляции и поиска файла исходника за пределами текущего каталога.
|
Автор: | Sergo [ Среда, 25 Июнь, 2008 16:28 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Александр Ильин писал(а): Чего там не хватает - так это [...] поиска файла исходника за пределами текущего каталога. Да, есть такой неприятный момент. Можно открывать файлы в разных папках, если они находятся в текущем каталоге. Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог. Кстати, если заставить компилятор выдавать полные имена файлов (не могу сообразить, как это сделать), то, возможно, этой проблемы не будет? |
Автор: | Александр Ильин [ Среда, 25 Июнь, 2008 17:08 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Sergo писал(а): Кстати, если заставить компилятор выдавать полные имена файлов (не могу сообразить, как это сделать), то, возможно, этой проблемы не будет? Такой опции у компилятора я не видел. Можно сделать программу-обёртку, которая бы запускала компилятор, передавала ему все параметры из командной строки, перехватывала выдачу на консоль и дополняла имена файлов в сообщениях об ошибках. При соответствующих навыках это можно сделать, например, на Perl.
|
Автор: | Александр Ильин [ Среда, 25 Июнь, 2008 17:13 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Sergo писал(а): Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог. Насколько я понимаю, это опция: Settings - Preferences - MISC - Remember the last operation directory.
|
Автор: | Sergo [ Среда, 25 Июнь, 2008 20:11 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Александр Ильин писал(а): Sergo писал(а): Но стоит, скажем, сохранить изменения в одном из этих файлов, и текущим становится уже его каталог. Насколько я понимаю, это опция: Settings - Preferences - MISC - Remember the last operation directory.К сожалению, отключение этой опции проблему не решает - достаточно открыть новый файл, и его каталог становится текущим. Действительно, похоже единственный выход - написать bat-файл, который будет запускать компилятор и фильтровать его выход, заменяя строки "src\..\" на полный путь. Программку для фильтрации написать не проблема. Для запуска bat-файла тоже использовать полный путь. Тогда по идее все должно работать нормально. |
Автор: | Александр Ильин [ Воскресенье, 08 Ноябрь, 2009 19:05 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Версия 2.1.1 данного плагина была выпущена в составе сборки NO2 и доступна для скачивания всем желающим. |
Автор: | Александр Ильин [ Четверг, 17 Декабрь, 2009 08:54 ] |
Заголовок сообщения: | Re: Notepad++ Plugins на XDS Oberon |
Александр Ильин писал(а): Sergo писал(а): Правда, вложенные комментарии в стиле Оберона он раскрашивает неправильно :) Надо Lexer написать для Scintilla. У меня в планах это есть, надо только пример стороннего лексера найти, а то по документации не совсем ясно. Сам разбор проще пареной репы, вопрос как лексер из плагина подключить. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |