Coder plugin (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Изменено: механизм изменения глобальных переменных.

Changed: global variables change mechanism.


Coder plugin v8.5

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor wrote:Не вызывают доверия такого рода сообщения, учитывая, что const, namespace, final присутствуют в php.coder; const в сообщении дублируется; traits - это вроде вообще не ключевое слово, а принцип действия.
Я php не пользуюсь, это мне php-программеры сказали и текст сообщения составили. С const и т.д. проблема, наверное, была в настройке цветов, т.к. когда я смотрел то, эти слова не подсвечивались.. С этим решено. Что там колбасят на php.net я не знаю, но use и trait: 1, 2, надо добавить, т.к. они уже вовсю используются в коде и дальше будет больше.
Instructor wrote:Чтобы пользователи не стремались, была изменена логика работы с глобальными переменными :) См. версию 8.5.
Всё просто и понятно. Реально спасибо! :)

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Хотелось сделать подсветку функций и свойств/методов:

Code: Select all

;0			1	${OP}		0	" "	"("	""	""	""
;...
;0			1	${OP}		0	"."	""	""	""	""
Но имеется несколько проблем:
1. Имена захватываются вместе с символами-ограничителями, а хотелось бы без них.
2. Первое "правило" закоменчено, т.к. оно почему-то выделяет цветом всю строку, а не то, что хотелось бы.
3. Последнее "правило" закоменчено, т.к. тоже выделяет всю строку, а хотелось бы, чтобы этим правилом подсвечивалось только последний метод в строке, за которым нет вообще никаких символов, т.е. дальше идёт перевод строки.
Думаю, идею неплоха, прошу помощи.

P.S. Ещё было бы здорово, если бы для подсветки свойств/методов во все темы добавить дополнительную мнемонику, а то остальные мнемоники, не использующиеся в скриптах, не подходят по цветам.
И добавить бы мнемонику для дирректив компилятора.
Last edited by VladSh on Fri Feb 17, 2012 9:04 am, edited 2 times in total.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh
Укажите конкретный пример.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Файл синтаксиса для 1С.
Инструкция к файлу:
1. Помещаем 1s.coder в "[AkelPad]\AkelFiles\Plugs\Coder".
2. Удаляем "[AkelPad]\AkelFiles\Plugs\Coder\cache"

Code: Select all

/1S=53005400520020002200230038003000380030003800300022000D0043004F004D004D0020002200230030003000380030003000300022000D0056004100520020002200300022000D00440045004C00310020002200230046004600300030003000300022000D00440045004C00320020002200230046004600300030003000300022000D00540059005000450020002200300022000D004F00500020002200230046004600300030003000300022000D0054004100470020002200300022000D00410054005400520020002200300022000D004900460020002200230046004600300030003000300022000D00410052004500410020002200230039003600330032003000300022000D004E0055004D0020002200300022000D0048006900670068004C0069006700680074005F0046006F006E0074005300740079006C00650020002200300022000D0048006900670068004C0069006700680074005F0046006F006E007400530069007A00650020002200300022000D0048006900670068004C0069006700680074005F0046006100630065004E0061006D0065002000220022000D0048006900670068004C0069006700680074005F0042006100730069006300540065007800740043006F006C006F00720020002200230030003000300030004600460022000D0048006900670068004C0069006700680074005F004200610073006900630042006B0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F00530065006C00540065007800740043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F00530065006C0042006B0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F004C0069006E006500540065007800740043006F006C006F00720020002200230030003000300030004600460022000D0048006900670068004C0069006700680074005F004C0069006E00650042006B0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F004C0069006E00650042006F00720064006500720043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F0041006C007400540065007800740043006F006C006F00720020002200230030003000300030004600460022000D0048006900670068004C0069006700680074005F0041006C00740042006B0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F0041006C00740042006F00720064006500720043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F0043006F006C0075006D006E0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F004D00610072006B006500720043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F004300610072006500740043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F00550072006C0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F00410063007400690076006500550072006C0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F0056006900730069007400550072006C0043006F006C006F00720020002200300022000D0048006900670068004C0069006700680074005F004100750074006F004D00610072006B0046006C0061006700730020002200310022000D0048006900670068004C0069006700680074005F004100750074006F004D00610072006B0046006F006E0074005300740079006C00650020002200300022000D0048006900670068004C0069006700680074005F004100750074006F004D00610072006B00540065007800740043006F006C006F00720020002200230030003000300030003000300022000D0048006900670068004C0069006700680074005F004100750074006F004D00610072006B0042006B0043006F006C006F00720020002200230037003500440039003700350022000D0043006F006400650046006F006C0064005F00500061006E0065006C004600690072007300740042006B0043006F006C006F00720020002200230046004600460046004600460022000D0043006F006400650046006F006C0064005F00500061006E0065006C005300650063006F006E00640042006B0043006F006C006F00720020002200230045003900450039004500390022000D0043006F006400650046006F006C0064005F00500061006E0065006C004E006F0072006D0061006C0046006F006C00640043006F006C006F00720020002200230038003000380030003800300022000D0043006F006400650046006F006C0064005F00500061006E0065006C0041006300740069007600650046006F006C00640043006F006C006F00720020002200230030003000300030004600460022000D0043006F006400650046006F006C0064005F00500061006E0065006C004E006F0072006D0061006C004E006F00640065004F00700065006E0042006B0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004E006F0072006D0061006C004E006F006400650043006C006F007300650042006B0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004100630074006900760065004E006F00640065004F00700065006E0042006B0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004100630074006900760065004E006F006400650043006C006F007300650042006B0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004E006F0072006D0061006C004E006F00640065004F00700065006E005300690067006E0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004E006F0072006D0061006C004E006F006400650043006C006F00730065005300690067006E0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004100630074006900760065004E006F00640065004F00700065006E005300690067006E0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F00500061006E0065006C004100630074006900760065004E006F006400650043006C006F00730065005300690067006E0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F004C00690073007400540065007800740043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F004C0069007300740042006B0043006F006C006F00720020002200300022000D0043006F006400650046006F006C0064005F005400610067004D00610072006B0046006C0061006700730020002200300022000D0043006F006400650046006F006C0064005F005400610067004D00610072006B0046006F006E0074005300740079006C00650020002200320022000D0043006F006400650046006F006C0064005F005400610067004D00610072006B00540065007800740043006F006C006F00720020002200230030003000300030003000300022000D0043006F006400650046006F006C0064005F005400610067004D00610072006B0042006B0043006F006C006F00720020002200230045003300430043004600460022000D004100750074006F0043006F006D0070006C006500740065005F0049006E00640065006E007400200022002000200022000D0000000000

Инструкция к теме:
1. Копируем текст и добавляем в файл "[AkelPad]\AkelFiles\Plugs\Coder.ini".
2. Запускаем Coder::Settings (Главное меню->Настройки..->Плагины...->Coder::Settings).
3. Нажимаем кнопку "Связь" и связываем файл синтаксиса "1s.coder" с темой "1S".

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor

Синий ниже использую чтобы было видно, как должно подсвечиваться;
красный - как не должно.


1.
VladSh wrote:1. Имена захватываются вместе с символами-ограничителями, а хотелось бы без них.
Имеется строка

Code: Select all

Set ndcUnprocessed = ndSelected.ParentDatabase.UnprocessedDocuments()
хотелось бы чтобы подсвечивались методы без символов-ограничителей:

1.1. правило "подсвечивать метод между точками":

Code: Select all

0         1   ${OP}      0   "."   "."   ""   ""   ""
должно бы подсвечивать вот так:
Set ndcUnprocessed = ndSelected.ParentDatabase.UnprocessedDocuments()
а захватываются и точки.


1.2. правило "подсвечивать метод от точки и до открывающейся скобки":

Code: Select all

0         1   ${OP}      0   "."   "("   ""   ""   ""
должно бы подсвечивать вот так:
Set ndcUnprocessed = ndSelected.ParentDatabase.UnprocessedDocuments()
а захватываются и точка с открывающей скобкой.


1.3. Имеется строка

Code: Select all

Set oNN = New NotesName(ndb.Server)
правило "подсвечивать свойство от точки до закрывающей скобки"

Code: Select all

0         1   ${OP}      0   "."   ")"   ""   ""   ""
должно бы подсвечивать вот так:
Set oNN = New NotesName(ndb.Server)
а захватываются и точка с закрывающей скобкой.


1.4. Имеется строка
If Me.m_ndSource.IsUIDocOpen And Not Me.EditMode Then
правило "подсвечивать свойство от точки до пробела" (или зяпятой)

Code: Select all

0         1   ${OP}      0   "."   " "   ""   ""   ""
хотелось бы чтобы не захватывало точку и пробел.


2.
VladSh wrote:2. Первое "правило" закоменчено, т.к. оно почему-то выделяет цветом всю строку, а не то, что хотелось бы.

Code: Select all

0         1   ${OP}      0   " "   "("   ""   ""   ""
строка с правилом подсветки имени функции
bForms = Not IsNull(ArrayGetIndex(ndDialog.GetItemValue("HideCode"), "bForms"))
вроде бы отображает правильно (хотя нет - захватывает скобку, как и в предыдущих примерах), но, главное, - задевает другие строки, не имеющие к этому отношения:
For i% = 1 To ndc.Count
Call ndCopy.CopyToDataBase(
ndbNew)
3.
VladSh wrote:3. Последнее "правило" закоменчено, т.к. тоже выделяет всю строку, а хотелось бы, чтобы этим правилом подсвечивалось только последний метод в строке, за которым нет вообще никаких символов, т.е. дальше идёт перевод строки.
правило для подсветки свойства в конце строки

Code: Select all

0         1   ${OP}      0   "."   ""   ""   ""   ""
вроде бы работает правильно:
sServer = ndb.Server
но захватывает другие строки:
bForms = Not IsNull(ArrayGetIndex(ndDialog.GetItemValue("HideCode"), "bForms")) And bResult
Вроде всё, что имелось ввиду.


Ещё вопрос, можно и сделать так, чтобы *.php-файлы всегда отображались шрифтом Consolas? Если в теме "для php" я укажу шрифт, то оно применится ко всем файлам, открываемым с этой темой, а это не подходит, надо только чтобы шрифт применился к *.php.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

А если в coder-файле прописать, то не подходит?

Code: Select all

Font:
;=================================================================
;FontStyle             FontSize              FaceName
;=================================================================
${HighLight_FontStyle} ${HighLight_FontSize} Consolas

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Lenchik
Что-то я думал, что оно будет то же самое, что и в настройках указать, а оказывается нет.
То, что надо, спасибо! 8)

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Предложение в cpp.coder и ему подобные(с C-подобным синтаксисом комментариев) дополнительно настроить выделение особыми цветом/стилем специальные виды комментариев, например "/*! */" ,"/** */", "//!< " и прочие подобные .

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

VladSh wrote:1. Имена захватываются вместе с символами-ограничителями, а хотелось бы без них.
пока решил с помощью:

Code: Select all

;401=1+16+128+256	-		текст, начинающимся определённым символом, без его захвата, и до конца слова
Добавлено:
411 неправильно определяет конец слова, - квадратные скобки попадают в подсветку:
!@IsMember("[OrderReg]"; @UserRoles)
Хотелось бы подсветить значение чисто между квадратными скобками.


Добавлено-2:
Немного по окошку фолдинга.
1. Было бы очень неплохо иметь возможность не целиться в крестик сворачивания/разворачивания, а использовать для этого дабл-клик по строке (имени функции и т.п.).
2. Не смог в настройках найти переменную, отвечающую за цвет фона и текста выделенной в окошке строки.
3. Не смог в настройках найти переменную, отвечающую за цвет фона и текста подсвечиваемой строки при клике в окне редактирования.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

VladSh
Что не осталось решенным - не понятно. Флаги 16, 128, 256 должны решить все указанные проблемы. А в примерах под пунктом 2 используем флаг 8.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

В php.coder надо добавить:
json_encode
json_decode
memory_get_peak_usage

Magic Methods

И, возможно,
ENT_QUOTES, ENT_NOQUOTES, далее см. по ссылке (эти две, по идее, используются чаще)
STR_PAD_RIGHT, STR_PAD_LEFT, STR_PAD_BOTH

Offline
Posts: 14
Joined: Tue Feb 21, 2012 9:55 am
Location: Voronezh

Post by Sergeyka »

Здравствуйте.

Я изучаю программирование для одного кроссплатформенного решения. Там используется язык Lua со своими дополнениями. Ищу текстовый редактор со следующей поддержкой: Например, при вводе math. и нажатия горячей клавиши(или автоматически) должны появится все функции, принадлежащие math. Т.е. PI, COS, SIN и т.д.

Я вижу в плагине Coder следующую информацию:
12293 0 ${OP} 0 "math." "abs"
12293 0 ${OP} 0 "math." "cos"

Но почему тогда после написания math. и нажатия Ctrl+пробел появляются функции, не относящиеся к math?
Или такой возможности плагин не предоставляет?

Спасибо.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Sergeyka
Вы не туда смотрите. То куда Вы посмотрели отвечает исключительно за подсветку. Смотреть Вам нужно в секцию Blocks: Фактически оттуда берутся все подсказки. Вам нужно самостоятельно добавить туда требуемые Вам шаблоны. Типа так

Code: Select all

$~math.abs
math.abs($[])
$~math.sin
math.sin($[])
А то что ВЫ видели, оно вероятно с знаком + в конце, то собранные по всему документу лексемы(режим по-умолчанию включен в настройках плагина).

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Instructor wrote:Что не осталось решенным - не понятно. Флаги 16, 128, 256 должны решить все указанные проблемы. А в примерах под пунктом 2 используем флаг 8.

Code: Select all

385		1	${TYPE}		0	"["	"]"	""	""	""
покатило для разделителей []:
@Command([ToolsRunMacro]; "sAgentName")
всё подсвечивается правильно.

А если использовать

Code: Select all

;подсветка имён функций
8			1	${OP}		0	" "	"("	""	""	""	
;подсветка имён методов и свойств; правила:	"."	")",	"."	"(",	"."	".",	"."	",",	"."	" "
401		1	${OP}		0	"."	""	""	""	""
то такой код подсвечивает текст так:
bForms = Not IsNull(ArrayGetIndex(ndDialog.GetItemValue("HideCode"), "bForms"))
т.е.:
- захватывает начальную точку и скобку после слова;
- захватывает закрывающую скобку в конце всего предложения.
А если сделать

Code: Select all

385			1	${OP}		0	" "	"("	""	""	""	
то подсветит всё, что идёт после первого пробела, даже если в строке нет "(":
bForms = Not IsNull(ArrayGetIndex(ndDialog.GetItemValue("HideCode"), "bForms")) And bResult
Locked