OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Четверг, 17 Декабрь, 2009 08:48 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
Доступен для скачивания плагин Oberon2Lexer v0.3. Работает как в Notepad++ ANSI, так и в Notepad++ Unicode.

Что умеет:
  • плагин добавляет пункт "Oberon-2" к меню "Languages" и по умолчанию активируется при открытии файлов с расширением .ob2;
  • текст раскрашивается в соответствии со следующими стилями (цвет фона везде белый, в отличие от данного форума):
    • Unsafe - слово SYSTEM, выделяется красным;
    • Flow breaker - слова EXIT, RETURN и HALT, выделяются жирным синим;
    • Keyword - все стандартные идентификаторы, которые я смог найти, кроме упомянутых в стилях "Unsafe" и "Flow breaker", выделяются синим: IF THEN ELSE END;
    • Number - константы типа REAL (в том числе с буквами "E" и "D") и INTEGER, включая шестнадцатиричные с суффиксом "H", по умолчанию не выделяются;
    • String - строки в 'одинарных' и "двойных" кавычках, а также шестнадцатиричные константы с суффиксом "X", по умолчанию не выделяются;
    • Comment - (* блочные комментарии (* с произвольным уровнем вложенности *) *) и -- хвостовые комментарии до конца строки, выделяются серым;
    • Compiler option - <* директивы компилятора XDS (* в том числе с комментариями *) *>, выделяются зелёным;
    • Error - этот стиль используется для незакрытых строк, комментариев, опций компилятора, а также неправильных числовых констант (1.E+), неизвестных символов (например, %, @, $) и т.п., выделяется красным с подчёркиванием;
    • Default - всё остальное - чёрным по белому.
  • настройка шрифтов, цветов и прочих параметров выделения для каждого из стилей производится в стандартном диалоге "Settings - Styler Configurator...", там же можно назначить другие расширения файлов для подсветки данным плагином.

Что НЕ умеет:
  • изменять список распознаваемых ключевых слов;
  • сворачивание кода (фолдинг) - планируется в следующей версии.

Прямая ссылка для скачивания:
http://cdnetworks-kr-1.dl.sourceforge.n ... r.v0.3.zip

Список альтернативных ссылок (зеркал) доступен здесь:
http://sourceforge.net/projects/oberonr ... p/download

Полные исходники плагина прилагаются (два проекта на XDS Oberon-2, тот, что с суффиксом "U" - для Unicode-версии Notepad++). Синтаксический разбор сделан максимально ниотчегонезависимо (см. структуру проекта на приложенных картинках). Отдельный модуль связывает плагин с Notepad++, отдельный модуль связывает его с Scintilla, а сканер работает вообще сам по себе и может быть портирован в любое приложение. На картинке красным отмечены модули, импортирующие SYSTEM, в прямоугольную рамку взяты модули, импортирующие "окна" (модуль Windows), овалом - все остальные.
Вложение:
Комментарий к файлу: Структура ANSI-проекта
Oberon2Lexer.png
Oberon2Lexer.png [ 40.16 КБ | Просмотров: 5989 ]
Вложение:
Комментарий к файлу: Структура Unicode-проекта
Oberon2LexerU.png
Oberon2LexerU.png [ 44.57 КБ | Просмотров: 5988 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Четверг, 17 Декабрь, 2009 15:26 

Зарегистрирован: Четверг, 03 Август, 2006 16:28
Сообщения: 182
Спасибо, отличная вещь! Взял на вооружение:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Среда, 10 Ноябрь, 2010 22:40 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
Выпущен плагин Oberon2Lexer v0.3.1.

Исправлена ошибка распознавания шестнадцатеричных констант (суффиксы "H" и "X") c использованием строчных букв 'a'..'f'.

Прямая ссылка для скачивания:
http://citylan.dl.sourceforge.net/proje ... v0.3.1.zip

Список альтернативных ссылок (зеркал) доступен здесь:
https://sourceforge.net/settings/mirror ... v0.3.1.zip


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Пятница, 12 Ноябрь, 2010 20:47 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2284
Откуда: Россия, Санкт-Петербург
В связи с изменениями в Scintilla, касающимися интерфейса к внешним лексерам, существующие версии плагина не совместимы с Notepad++ v5.8 и старше. Поддержка нового интерфейса запланирована в версии 1.0 вместе с фолдингом. Обратная совместимость новой версии плагина со старыми версиями Notepad++/Scintilla будет сохранена.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Понедельник, 15 Ноябрь, 2010 18:52 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
В Линуксе я использую простой текстовый редактор SciTE (Scintiila), но в нём нет подстветки синтаксиса для Оберона.

Попробовал применить такую настройку раскраски, но почему-то ничего не подсвечивает, хотя цвет шрифта можно поменять без проблем.

Код:
filter.oberon2=Oberon-2 (ob2 mod txt cp)|*.ob2;*.Mod;*.mod;*.txt;*.cp|

file.patterns.oberon2=*.ob2;*.mod;*.txt;*.cp
file.patterns.oberon2.all=$(file.patterns.oberon2)
lexer.$(file.patterns.oberon2.all)=oberon2

keywordclass.oberon2=ARRAY BEGIN BY CASE DIV DO ELSE ELSIF END EXIT FOR IF IMPORT IN IS LOOP MODULE NIL \
OF OR POINTER PROCEDURE RECORD REPEAT RETURN THEN TO TYPE VAR WHILE WITH

#keywordclass.oberon2.smart=add default implements index name nodefault read readonly \
#remove stored write writeonly

#~ keywordclass.oberon2.package=package contains requires

#~ keywords.$(file.patterns.oberon2)=$(keywordclass.oberon2) $(keywordclass.oberon2.smart)
#~ keywords.$(file.patterns.oberon2.package)=$(keywordclass.oberon2) $(keywordclass.oberon2.smart) $(keywordclass.oberon2.package)
keywords.$(file.patterns.oberon2)=$(keywordclass.oberon2)

# If enabled some keywords will only be highlightend in appropriate context.
# As implemented those are keywords related to property and DLL exports declarations
#lexer.oberon2.smart.highlighting=1

# oberon2 styles

# Default
style.oberon2.32=$(font.base)
# White space
#~ style.oberon2.0=fore:#808080
style.oberon2.0=fore:#000000
# Identifiers
style.oberon2.1=
# Comment: { ... }
#~ style.oberon2.2=$(colour.code.comment.box),$(font.code.comment.box)
# Comment: (* ... *)
#~ style.oberon2.3=$(colour.code.comment.box),$(font.code.comment.box)
# Line Comment: // ...
#~ style.oberon2.4=$(colour.code.comment.line),$(font.code.comment.line)
# Preprocessor: {$ ... }
#~ style.oberon2.5=$(colour.preproc)
# Preprocessor: (*$ ... *)
#~ style.oberon2.6=$(colour.preproc)
# Number
style.oberon2.7=$(colour.number)
# Hex Number
style.oberon2.8=$(colour.number)
# Keyword
style.oberon2.9=$(colour.keyword),bold
# String
style.oberon2.10=$(colour.string)
# End of line where string is not closed
style.oberon2.11=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Character
style.oberon2.12=$(colour.char)
# Operators
style.oberon2.13=$(colour.operator),bold
# Inline Asm
#~ style.oberon2.14=fore:#804080

# Braces are only matched in operator style
braces.oberon2.style=13

#~ comment.block.oberon2=//~
#~ comment.stream.start.oberon2={
#~ comment.stream.end.oberon2=}
comment.box.start.oberon2=(*
comment.box.middle.oberon2= *
comment.box.end.oberon2= *)

statement.indent.$(file.patterns.oberon2)=9 DO ELSE FOR THEN REPEAT WHILE TYPE
statement.end.$(file.patterns.oberon2)=13 ;
statement.lookback.$(file.patterns.oberon2)=20
block.start.$(file.patterns.oberon2)=9 BEGIN
block.end.$(file.patterns.oberon2)=9 END


Где здесь ошибка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Понедельник, 15 Ноябрь, 2010 20:32 
Аватара пользователя

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

Scintilla поддерживает внешние лексеры (подгружаемые из динамических библиотек) и SciTE, я уверен, тоже. Можно попробовать портировать плагин под Линукс. Это было бы интересно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Плагин Oberon2Lexer для Notepad++
СообщениеДобавлено: Понедельник, 05 Май, 2014 11:15 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1427
Роман М. писал(а):
Где здесь ошибка?

Как минимум нужна такая строчка:
Код:
lexerpath.$(file.patterns.oberon2.all)=Oberon2Lexer.dll

ps viewtopic.php?f=28&t=4356&p=87245#p87245


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

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


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

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


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

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