AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Coder plugin (2)
Goto page Previous  1, 2, 3 ... 11, 12, 13 ... 56, 57, 58  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Drugmix



Joined: 08 Apr 2013
Posts: 392

PostPosted: Fri Jul 26, 2013 10:23 am    Post subject: Reply with quote

Вопрос не по адресу

И ещё вопрос:
Вот пример валидного .ahk кода:
Code:
RegExReplace(value, "i)^.*\\|\.ahk[^\w]*")

Группой из круглых скобок здесь является первая и последняя, а вместо этого подсвечиваются левая и средняя.
i) - эта скобка в шаблонах регулярных выражений, использующаяся как непарная для того, чтобы слева от неё можно было перечислять настройки для шаблона.
Как это исправить?

Этот вопрос стоило задавать в теме плагина XBrackets.


Last edited by Drugmix on Sun Aug 04, 2013 10:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 392

PostPosted: Fri Jul 26, 2013 10:44 am    Post subject: Reply with quote

И ещё вопрос:
В .ahk у некоторых команд и функций есть некоторые параметры, которые ожидают не строку (string), а выражение или переменную (expression). Хотелось бы разукрасить атрибуты по их типу (отличать string от expression разными цветами). Как это сделать?
Code:
IniRead, expression, string


И ещё вопрос про типы атрибутов: внутри атрибута всегда можно переключать тип с expression на string или в обратную сторону. Как в таком случае настроить правильную раскраску атрибута по типа?
Из expression в string переключение происходит добавлением кавычек: весь текст внутри этих кавычек будет string'ом.
Из string в expression можно переключить двумя способами:
1. поставить в начале атрибута знак процента с пробелом после него - тогда всё после них будет считаться expression (а обратно в string можно переключаться добавляя текст обрамлённый кавычками).
2. обрамить expression знаками процента. Текст внутри процентов - будет считаться expression'ом, а снаружи - string'ом. (Этот метод работает только для переменных, но переменные - это подмножество expression'ов.)
Вот пример валидного кода с переключением типа у кусков атрибутов:
Code:
IniRead, expression "string" expression "string", % expression "string" expression "string"
IniRead, expression, %expression%string%expression%string
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 324

PostPosted: Fri Jul 26, 2013 2:10 pm    Post subject: Reply with quote

Drugmix
1) Часть Ваших "почему" относится к работе совсем другого плагина (XBrackets). Например в его настройках есть опция автозавершения скобок "Даже если правая скобка уже существует" (правда это Вам поможет только со скобками, но не поможет в случае с кавычками).

2) Парность кавычек не всегда и не везде благо. Например, вот одинаковый по смыслу код на VB и на C#
VB: Const quote As String = """"
C#: const string quote = "\"";
Еще нужно учитывать, что иногда мы имеем дело с "вложенными" кавычками, а иногда с "соседствующими". Вон сколько в полиграфии разных ёлочек до лапок напридумывать пришлось (чтобы кавычки в тексте не сливались).
ПРИМЕР

Вот так правильно:
«Пускай же говорят собаки: „Ай, Моська! Знать она сильна, что лает на Слона!“»
А вот так уже нет:
"Пускай же говорят собаки: "Ай, Моська! Знать она сильна, что лает на Слона!""
Поскольку есть правило, что "кавычки одного рисунка рядом не повторяются". Поэтому с машинописными кавычками фраза станет на один символ короче.
Вот так правильно:
"Пускай же говорят собаки: "Ай, Моська! Знать она сильна, что лает на Слона!"
Ну и как программа должна разобраться, где здесь парная кавычка Smile


3) Вообще говоря, с инженерной точки зрения, "любые универсальные инструменты заведомо хуже специальных". Проводя аналогию с текстовым редактором, для кодоспецифичных задач лучше подыскать специализированный редактор (вот и универсальный NP++ Вас тоже ведь чем-то не устроил).
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 392

PostPosted: Sat Jul 27, 2013 4:26 pm    Post subject: Reply with quote

opk44
1. и 2. Спасибо. По моей логике - эти два плагина должны бы быть объединены, это позволило бы создавать более гибкие .coder правила: я посмотрел настройки XBrackets и увидел, что там есть 'Skip escaped bracket characters: \[, \} etc.', так вот escaping же зависит от языка, т. е. эта настройка должна быть тесно связана с .coder файлами.
Там же, кстати, увидел и настройку, отвечающую за подсветку скобок, что решило это проблему:


3. Потому-то и придумали настройки. Т. е. гибкость и настраиваемость инструмента можно противопоставить универсальности инструмента. И немного offtopic:
Лично для меня NP++ (я его храню и периодически ещё использую) ещё пока конкурентоспособен AkelPad'у потому что АкелПад не умеет делать сравнение двух вкладок, например [и похоже, что не предвидится] или наличие безбаговых макросов).
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 324

PostPosted: Sat Jul 27, 2013 9:20 pm    Post subject: Reply with quote

Drugmix wrote:
3...АкелПад не умеет делать сравнение двух вкладок, например [и похоже, что не предвидится]...
Так ли это? winMergeTabs.js справляется с этим на ура. Кстати, с помощью "специальной" софтинки (это в продолжение разговора о специальном и универсальном). Поэтому АкелПад-у просто нет никакой надобности реализовывать эту функцию самостоятельно.
P.S. При использовании WinMergePortable вероятно придется подправить скрипт согласно выбранному Вами пути установки.

Отыщите массив путей (строки 63-72):
Code:
var winMergePaths = paths
и пропишите полный путь к WinMergePortable. Например так:
Code:
...
       "C:\\TOOLS\\WinMergePortable\\WinMergePortable.exe", 
...
Back to top
View user's profile Send private message
saym101



Joined: 13 Nov 2007
Posts: 24
Location: Voronezh

PostPosted: Sun Jul 28, 2013 10:24 am    Post subject: Reply with quote

Подскажите, почему не получается добавить расширение к подсветке? беру php.coder добавляю к нему расширение *.tpl и после открытия файла он не подсвечивается. Хотя в нем вся разметка как у php? Какие танцы нужны для этого? Или дабавьте это расширение по умолчанию что ли. Спасибо.
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1338
Location: Poland

PostPosted: Sun Jul 28, 2013 11:01 am    Post subject: Reply with quote

saym101
You should remove the file: ...\AkelPad\AkelFiles\Plugs\Coder\cache
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 324

PostPosted: Sun Jul 28, 2013 11:52 am    Post subject: Reply with quote

saym101
1. Как правило, достаточно обновить обновить кэш (файл "\AkelFiles\Plugs\Coder\cache"). Для этого проще всего предварительно руками его стереть. Кстати, проверьте, включена ли в настройке плагина опция "Использовать кэш".
2. Не лишне также будет посмотреть в сам файл 'cache'. Каким-либо coder-файлом '*.tpl' может УЖЕ использоваться. Ведь tpl это не формат, а всего лишь сокращение от 'template'(шаблон) и используется многими пакетами и программами (от Паскаля до Фотошопа) по своему разумению. Если ближе к AkelPad-у, то, например, tpl может использоваться нестандартными подсветками (Smarty.coder и Txt.coder Аверина Андрея и т.д.).
Т.е. включение Вами '*.tpl' в php.coder могло "подраться" с уже существующей привязкой к другому coder-файлу.
3. Из пункта 2 следует, что tpl вряд ли будет включен в php.coder "по умолчанию".
Upd:
4. Проверить включен ли режим highlight (ну а что, все бывает).
Back to top
View user's profile Send private message
saym101



Joined: 13 Nov 2007
Posts: 24
Location: Voronezh

PostPosted: Sun Jul 28, 2013 1:39 pm    Post subject: Reply with quote

Спасибо за ответы. Помогло. В моем случае tpl это как раз текстовый файл.
Back to top
View user's profile Send private message Visit poster's website
Lenchik



Joined: 10 Jan 2011
Posts: 233

PostPosted: Sun Jul 28, 2013 2:49 pm    Post subject: Reply with quote

А ещё можете написать меню и включать по желанию.
пример меню
Code:
"&Типы подсветок"  Index(-1)
{
  "1С" Call("Coder::Settings", 1, "1S") Icon("%a\AkelFiles\Plugs\Toolbar\1S.ico")
  "AkelPad menu" Call("Coder::Settings", 1, "akelmenu")
  "Assembler" Call("Coder::Settings", 1, "asm") Icon("%a\AkelFiles\Plugs\Toolbar\asm.ico")
  "AutoHotkey" Call("Coder::Settings", 1, "ahk")  Icon("%a\AkelFiles\Plugs\Toolbar\ahk.ico")
  "AutoIt" Call("Coder::Settings", 1, "au3") Icon("%a\AkelFiles\Plugs\Toolbar\au3.ico")
  "Avisynth" Call("Coder::Settings", 1, "avs") Icon("%a\AkelFiles\Plugs\Toolbar\avisynth.ico")
  "AWK" Call("Coder::Settings", 1, "awk") Icon("%a\AkelFiles\Plugs\Toolbar\awk.ico")
  "Bat/Cmd" Call("Coder::Settings", 1, "bat") Icon("%a\AkelFiles\Plugs\Toolbar\bat.ico")
  "BBCode" Call("Coder::Settings", 1, "bbc") Icon("%a\AkelFiles\Plugs\Toolbar\BBCode.ico")
  "C++" Call("Coder::Settings", 1, "cpp") Icon("%a\AkelFiles\Plugs\Coder.dll", 4)
  "Coder Syntax" Call("Coder::Settings", 1, "coder") Icon("%a\AkelFiles\Plugs\Coder.dll", 2)
  "CSS" Call("Coder::Settings", 1, "css") Icon("%a\AkelFiles\Plugs\Toolbar\css.ico")
  "diff" Call("Coder::Settings", 1, "diff")
  "fb2" Call("Coder::Settings", 1, "fb2") Icon("%a\AkelFiles\Plugs\Toolbar\fb2.ico")
  "Fortran" Call("Coder::Settings", 1, "ftn") Icon("%a\AkelFiles\Plugs\Toolbar\for.ico")
  "Hash" Call("Coder::Settings", 1, "md5")
  "HTML" Call("Coder::Settings", 1, "html") Icon("%a\AkelFiles\Plugs\Toolbar\html.ico")
  "Ini" Call("Coder::Settings", 1, "ini") Icon("%a\AkelFiles\Plugs\Toolbar\css.ico")
  "Inno" Call("Coder::Settings", 1, "iss") Icon("%a\AkelFiles\Plugs\Toolbar\iss.ico")
  "Java" Call("Coder::Settings", 1, "java")
  "JScript" Call("Coder::Settings", 1, "js") Icon("%a\AkelFiles\Plugs\Toolbar\js.ico")
  "Log" Call("Coder::Settings", 1, "log")
  "LSS" Call("Coder::Settings", 1, "lss") Icon("%a\AkelFiles\Plugs\Toolbar\lss.ico")
  "Lua" Call("Coder::Settings", 1, "lua") Icon("%a\AkelFiles\Plugs\Toolbar\lua.ico")
  "Mnu" Call("Coder::Settings", 1, "mnu") Icon("%a\AkelFiles\Plugs\Toolbar\Mnu.ico")
  "Msg" Call("Coder::Settings", 1, "msg")
  "NSIS" Call("Coder::Settings", 1, "nsi") Icon("%a\AkelFiles\Plugs\Toolbar\nsi.ico")
  "Pascal" Call("Coder::Settings", 1, "dpr") Icon("%a\AkelFiles\Plugs\Toolbar\Pascal.ico")
  "Perl" Call("Coder::Settings", 1, "pl")  Icon("%a\AkelFiles\Plugs\Toolbar\Perl.ico")
  "PHP" Call("Coder::Settings", 1, "php") Icon("%a\AkelFiles\Plugs\Toolbar\PHP.ico")
  "Powershell" Call("Coder::Settings", 1, "ps1")
  "PRG" Call("Coder::Settings", 1, "prg") Icon("%a\AkelFiles\Plugs\Toolbar\prg.ico")
  "Python" Call("Coder::Settings", 1, "py")  Icon("%a\AkelFiles\Plugs\Toolbar\Python.ico")
  "Resource" Call("Coder::Settings", 1, "rc") Icon("%a\AkelFiles\Plugs\Toolbar\rc.ico")
  "RDF" Call("Coder::Settings", 1, "rdf")
  "Sharp" Call("Coder::Settings", 1, "cs") Icon("%a\AkelFiles\Plugs\Toolbar\Sharp.ico")
  "Smarty" Call("Coder::Settings", 1, "tpl") Icon("%a\AkelFiles\Plugs\Toolbar\smarty.ico")
  "SQL" Call("Coder::Settings", 1, "sql")  Icon("%a\AkelFiles\Plugs\Toolbar\sql.ico")
  "Text" Call("Coder::Settings", 1, "txt") Icon("notepad.exe",0)
  "Unix shell" Call("Coder::Settings", 1, "sh")
  "VB / VBScript" Call("Coder::Settings", 1, "vbs") Icon("%a\AkelFiles\Plugs\Toolbar\vbs.ico")
  "XBL" Call("Coder::Settings", 1, "xbl")
  "XML / DXL" Call("Coder::Settings", 1, "xml") Icon("%a\AkelFiles\Plugs\Toolbar\xml.ico")
  "XUL" Call("Coder::Settings", 1, "xul")
  SEPARATOR
 "Без типа" Call("Coder::Settings", 1, "?")
  SEPARATOR
  -"Обновить кэш" Call("Coder::Settings", 2) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 3)
  "Редактировать типы подсветок"
  {
    "AkelPad menu" OpenFile("%a\AkelFiles\Plugs\Coder\akelmenu.coder")
    "Assembler" OpenFile("%a\AkelFiles\Plugs\Coder\asm.coder") Icon("%a\AkelFiles\Plugs\Toolbar\asm.ico")
    "AutoHotkey" OpenFile("%a\AkelFiles\Plugs\Coder\ahk.coder") Icon("%a\AkelFiles\Plugs\Toolbar\ahk.ico")
    "AutoIt" OpenFile("%a\AkelFiles\Plugs\Coder\au3.coder") Icon("%a\AkelFiles\Plugs\Toolbar\au3.ico")
    "Avisynth" OpenFile("%a\AkelFiles\Plugs\Coder\avs.coder") Icon("%a\AkelFiles\Plugs\Toolbar\avisynth.ico")
    "AWK" OpenFile("%a\AkelFiles\Plugs\Coder\awk.coder")
    "Bat/Cmd" OpenFile("%a\AkelFiles\Plugs\Coder\bat.coder") Icon("%a\AkelFiles\Plugs\Toolbar\bat.ico")
    "BBCode" OpenFile("%a\AkelFiles\Plugs\Coder\Bbc.coder") Icon("%a\AkelFiles\Plugs\Toolbar\BBCode.ico")
    "C++" OpenFile("%a\AkelFiles\Plugs\Coder\cpp.coder") Icon("%a\AkelFiles\Plugs\Coder.dll", 4)
    "Coder Syntax" OpenFile("%a\AkelFiles\Plugs\Coder\coder.coder") Icon("%a\AkelFiles\Plugs\Coder.dll", 2)
    "CSS" OpenFile("%a\AkelFiles\Plugs\Coder\css.coder") Icon("%a\AkelFiles\Plugs\Toolbar\css.ico")
    "diff" OpenFile("%a\AkelFiles\Plugs\Coder\diff.coder")
    "fb2" OpenFile("%a\AkelFiles\Plugs\Coder\fb2.coder")
    "Fortran" OpenFile("%a\AkelFiles\Plugs\Coder\fortran.coder")
    "Hash" OpenFile("%a\AkelFiles\Plugs\Coder\hashsum.coder")
    "HTML" OpenFile("%a\AkelFiles\Plugs\Coder\html.coder") Icon("%a\AkelFiles\Plugs\Toolbar\html.ico")
    "Ini" OpenFile("%a\AkelFiles\Plugs\Coder\ini.coder") Icon("%a\AkelFiles\Plugs\Toolbar\css.ico")
    "Inno" OpenFile("%a\AkelFiles\Plugs\Coder\inno.coder") Icon("%a\AkelFiles\Plugs\Toolbar\iss.ico")
    "Java" OpenFile("%a\AkelFiles\Plugs\Coder\_java.coder")
    "JScript" OpenFile("%a\AkelFiles\Plugs\Coder\js.coder") Icon("%a\AkelFiles\Plugs\Toolbar\js.ico")
    "Log" OpenFile("%a\AkelFiles\Plugs\Coder\_log.coder")
    "LSS" OpenFile("%a\AkelFiles\Plugs\Coder\lss.coder")
    "Lua" OpenFile("%a\AkelFiles\Plugs\Coder\lua.coder") Icon("%a\AkelFiles\Plugs\Toolbar\lua.ico")
    "Mnu" OpenFile("%a\AkelFiles\Plugs\Coder\mnu.coder")
    "Msg" OpenFile("%a\AkelFiles\Plugs\Coder\msg.coder")
    "NSIS" OpenFile("%a\AkelFiles\Plugs\Coder\nsis.coder") Icon("%a\AkelFiles\Plugs\Toolbar\nsi.ico")
    "Pascal" OpenFile("%a\AkelFiles\Plugs\Coder\pascal.coder") Icon("%a\AkelFiles\Plugs\Toolbar\Pascal.ico")
    "Perl" OpenFile("%a\AkelFiles\Plugs\Coder\perl.coder") Icon("%a\AkelFiles\Plugs\Toolbar\Perl.ico")
    "PHP" OpenFile("%a\AkelFiles\Plugs\Coder\php.coder") Icon("%a\AkelFiles\Plugs\Toolbar\PHP.ico")
    "Powershell" OpenFile("%a\AkelFiles\Plugs\Coder\ps1.coder")
    "PRG" OpenFile("%a\AkelFiles\Plugs\Coder\prg.coder") Icon("%a\AkelFiles\Plugs\Toolbar\prg.ico")
    "Python" OpenFile("%a\AkelFiles\Plugs\Coder\python.coder") Icon("%a\AkelFiles\Plugs\Toolbar\Python.ico")
    "Resource" OpenFile("%a\AkelFiles\Plugs\Coder\rc.coder") Icon("%a\AkelFiles\Plugs\Toolbar\rc.ico")
    "RDF" OpenFile("%a\AkelFiles\Plugs\Coder\rdf.coder")
    "Sharp" OpenFile("%a\AkelFiles\Plugs\Coder\cs.coder") Icon("%a\AkelFiles\Plugs\Toolbar\Sharp.ico")
    "Smarty" OpenFile("%a\AkelFiles\Plugs\Coder\smarty.coder") Icon("%a\AkelFiles\Plugs\Toolbar\smarty.ico")
    "SQL" OpenFile("%a\AkelFiles\Plugs\Coder\sql.coder") Icon("%a\AkelFiles\Plugs\Toolbar\sql.ico")
    "Text" OpenFile("%a\AkelFiles\Plugs\Coder\txt.coder") Icon("notepad.exe",0)
    "Unix shell" OpenFile("%a\AkelFiles\Plugs\Coder\sh.coder")
    "VB / VBScript" OpenFile("%a\AkelFiles\Plugs\Coder\vbs.coder") Icon("%a\AkelFiles\Plugs\Toolbar\vbs.ico")
    "XBL" OpenFile("%a\AkelFiles\Plugs\Coder\xbl.coder")
    "XML / DXL" OpenFile("%a\AkelFiles\Plugs\Coder\xml.coder") Icon("%a\AkelFiles\Plugs\Toolbar\xml.ico")
    "XUL" OpenFile("%a\AkelFiles\Plugs\Coder\xul.coder")
  }
  "Настроить темы" Call("Coder::Settings")  Icon("%a\AkelFiles\Plugs\Toolbar\coder.ico")
   SEPARATOR
  -"Редактировать меню..." Call("ContextMenu::Main", 1, 1, "&Типы подсветок")
}
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Sun Jul 28, 2013 3:45 pm    Post subject: Reply with quote

opk44 wrote:
P.S. При использовании WinMergePortable вероятно придется подправить скрипт согласно выбранному Вами пути установки.
Там же есть аргумент "-path=".
Back to top
View user's profile Send private message Send e-mail
opk44



Joined: 16 Jan 2010
Posts: 324

PostPosted: Sun Jul 28, 2013 7:56 pm    Post subject: Reply with quote

Instructor wrote:
Там же есть аргумент "-path=".
Разумеется, но вызов с аргументами предполагает некие дополнительные телодвижения (прописывание скрипта в меню или на кнопку). Я же исходил из того, что скрипт вероятно будет вызываться наипростейшим образом, т.е. вызовом самого плагина и выбором скрипта из списка либо назначением горячей клавиши. Как тут аргумент передать? Поэтому мне показалось (возможно только "показалось"), что разумнее будет показать как и где в самом скрипте путь прописать. Это может и плохо в долгосрочной перспективе (проблемы с обновлением версий скрипта), но зато в краткосрочном плане дает выигрыш - можно сразу воспользоваться скриптом и убедиться в его эффективности, ничего не зная даже о настройке тулбара и контекстного меню. Аргументами можно будет заниматься потом, когда скрипт осядет в коллекции постоянно используемого инструментария.
Вот так как-то.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Mon Jul 29, 2013 1:50 pm    Post subject: Reply with quote

opk44
Ясно.
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5311

PostPosted: Wed Jul 31, 2013 10:36 am    Post subject: Reply with quote

Drugmix wrote:
Срабатывает только для случая, когда все эти кавычки идут подряд: """""", а я подразумевал, что между этими кавычками может находиться или отсутствовать какой-то текст.
Code:
`(")("").*("")(")`
Back to top
View user's profile Send private message Send e-mail
thhor



Joined: 31 Jul 2013
Posts: 2

PostPosted: Wed Jul 31, 2013 11:52 pm    Post subject: Выделение в тексте цветовых кодов соответствующим цветом Reply with quote

Знатоки! Подскажите, существует ли плагин который подсвечивает (выделяет) в тексте цветовые коды соответствующим им (кодам) цветом?
Например в строке типа:
"color: #f5f5f5;"
#f5f5f5 было бы выделено соответствующим этому коду цветом!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 11, 12, 13 ... 56, 57, 58  Next
Page 12 of 58

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group