----------------------------------------------------------- XBrackets - плагин для текстового редактора AkelPad ----------------------------------------------------------- Плагин позволяет: 1) автозавершить скобки ([{""}]) - т.е. он добавляет соответствующую правую скобку при печати левой скобки. Плагин использует "умное" автозавершение: - для скобок ([{ анализируется следующий символ; - для кавычек " анализируются следующий и предыдущий символы. 2) подсветить активные скобки - т.е. он подсвечивает скобку под курсором и соответствующую ей парную скобку. 3) перейти к парной скобке - функция GoToMatchingBracket. 4) выделить текст между парными скобками - функция SelToMatchingBracket. Примечание: Чтобы избежать перерисовки подсвеченных активных скобок, плагин XBrackets.dll должен быть загружен ПОСЛЕ плагина HighLight.dll. Для работы функций GoToMatchingBracket и SelToMatchingBracket плагин должен быть активен - то есть должна быть активна его функция Main. Дополнительные настройки (файл "AkelFiles\Plugs\XBrackets.ini"): common.user_brpairs = «» ‘’ “” Определяемые пользователем пары скобок, которые плагин XBrackets может автозавершать и подсвечивать. Обратите внимание, что пары скобок, которые состоят из одинаковых открывающего и закрывающего символа (такие как "" или ''), могут быть подсвечены неправильно, поскольку невозможно определить наверняка, находится ли каретка у открывающего или же у закрывающего символа такой пары скобок. Для того, чтобы задать свою пару скобок, следуйте таким правилам: 1) Пары скобок должны разделяться пробелом (' ') 2) Каждая пара скобок должна состоять из двух символов: первый задаёт левую (открывающую) скобку, и второй задаёт правую (закрывающую) скобку. Если в качестве пары скобок вы зададите всего 1 символ или 3 или больше символов, такая пара скобок будет проигнорирована. 3) Можно задать до 30 пар скобок. 4) Не забудьте добавить символ новой закрывающей/открывающей скобки в набор 'next_char_ok'/'prev_char_ok' при необходимости. autobrackets.next_char_ok = .,!?:;<)]}"'>/ »’” Набор символов, для которых разрешено автозавершение скобок при печати открывающей скобки ПЕРЕД таким символом. Кроме того, автозавершение любых скобок разрешено перед следующими жёстко закодированными символами: '\r', '\n', '\0', ' ' и '\t'. Этот набор может содержать до 90 символов. Пробелы игнорируются. autobrackets.prev_char_ok = ([{<= «‘“ Набор символов, для которых разрешено автозавершение скобок при печати скобки ПОСЛЕ такого символа. Это правило применяется только к тем парам скобок, которые состоят из одинаковых открывающего и закрывающего символа (такие как "" или ''). Кроме того, автозавершение таких скобок разрешено после следующих жёстко закодированных символов: '\r', '\n', '\0', ' ' и '\t'. Этот набор может содержать до 90 символов. Пробелы игнорируются. autocomplete.all_autobr = 0 Стандартное поведение: перед автозакрытием скобки проверяются символы из набора 'next_char_ok' (а также из набора 'prev_char_ok' в зависимости от типа скобки). autocomplete.all_autobr = 1 Автозакрытие скобок разрешено ПЕРЕД любым символом (т.е. набор 'next_char_ok' игнорируется). Это правило дополнительно зависит от настройки "Even if corresponding right bracket exists". autocomplete.all_autobr = 2 Автозакрытие скобок разрешено ПОСЛЕ любого символа (т.е. набор 'prev_char_ok' игнорируется). Это правило применяется только к тем парам скобок, которые состоят из одинаковых открывающего и закрывающего символа (такие как "" или ''). autocomplete.all_autobr = 3 Автозакрытие скобок разрешено ПЕРЕД и ПОСЛЕ любого символа (т.е. оба набора 'next_char_ok' и 'prev_char_ok' игнорируются). autocomplete.ovr_autobr = 0 В режиме "печать поверх" (Overwrite) закрывающая скобка не добавляется автоматически. autocomplete.ovr_autobr = 1 В режиме "печать поверх" (Overwrite) закрывающая скобка добавляется как новый символ (не поверх имеющегося символа). autocomplete.ovr_autobr = 2 В режиме "печать поверх" (Overwrite) закрывающая скобка добавляется поверх имеющегося символа (затирая его). autocomplete.sel_autobr = 0 При печати открывающей скобки выделенный текст исчезает (заменяется на напечатанную скобку). autocomplete.sel_autobr = 1 При печати открывающей скобки выделенный текст заключается в соответствующую пару скобок. highlight.hlt_bothbr = 1 Если каретка находится между двумя парными скобками, подсвечиваются обе пары скобок. highlight.hlt_bothbr = 0 Если каретка находится между двумя парными скобками, подсвечивается только одна пара скобок (справа от закрывающей скобки приоритет выше). highlight.hlt_style = 3 XBrackets перерисовывает скобки, подсвеченные плагином Coder. Для подсветки парных скобок используется жирный шрифт. highlight.hlt_style = 2 XBrackets перерисовывает скобки, подсвеченные плагином Coder. Для подсветки парных скобок используется шрифт по умолчанию. highlight.hlt_style = 1 Для подсветки парных скобок используется жирный шрифт. XBrackets не перерисовывает скобки, подсвеченные плагином Coder. highlight.hlt_style = 0 Для подсветки парных скобок используется шрифт по умолчанию. XBrackets не перерисовывает скобки, подсвеченные плагином Coder. highlight.quote_detect_lines = 1 Количество строк, которые просматривает XBrackets в поисках парной кавычки в обоих направлениях (когда направление поиска не может быть определено, например: " " ). Если это значение превышает 'highlight.quote_max_lines', то оно уменьшается до значения 'highlight.quote_max_lines'. Значение 1 означает "в пределах текущей строки". Значение 0 запрещает поиск парной кавычки в данных условиях. highlight.quote_max_lines = 10 Количество строк, которые просматривает XBrackets в поисках парной кавычки в одном определённом направлении (когда направление поиска может быть определено, например: "a b" ). Значение 1 означает "в пределах текущей строки". Значение 0 запрещает поиск парной кавычки вообще. Дополнительные настройки плагина можно менять, не закрывая AkelPad. В три шага, вот в таком порядке: 1а. Открываем окно "Плагины" (Настройки -> Плагины...) и отключаем функцию XBrackets::Main (если она активна). 1б. (альтернативный вариант) Запускаем XBrackets::Settings и в появившемся окне дважды щелкаем лев.кн.мыши на "Status: the plugin is active", чтобы надпись сменилась на "Status: the plugin is NOT active". При деактивации плагин автоматически сохраняет свои настройки. 2. Открываем файл "XBrackets.ini" (если настройки хранятся в ini-файле) или ключ реестра "HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Plugs" и меняем настройки плагина XBrackets. Не забываем сохранить изменённый файл "XBrackets.ini". 3. Активируем плагин XBrackets, вызвав функцию XBrackets::Main или запустив XBrackets::Settings и в появившемся окне дважды щелкнув лев.кн.мыши на "Status: the plugin is NOT active". При активации плагин автоматически перечитывает свои настройки. -------- История: -------- v.4.6 (Май 2011) - исправлено: ошибка выделения памяти, появившаяся в версии 4.4 (в AutoBracketsFunc при вызове sys_memalloc) v.4.5 (Май 2011) + улучшен алгоритм поиска парной кавычки - исправлено: в многосимвольном комментарии мог подсвечиваться не тот символ v.4.4 (Май 2011) * для AkelPad 4.6.0+ + теперь XBrackets тесно сотрудничает с Coder (при наличии оного) + добавлено: параметры 'hlt_style', 'quote_detect_lines' и 'quote_max_lines' * изменено: к именам всех параметров добавлены префиксы (см. выше) + мелкие исправления/улучшения v.4.3 (Март 2011) + экспериментальный алгоритм для поиска парной кавычки + мелкие исправления/улучшения + поддержка AkelPad x64 v.4.2 (Ноябрь 2010) + несколько мелких улучшений v.4.1 (Ноябрь 2010) * обновлена иконка (спасибо se7h) v.4.0 (Октябрь 2010) * четвёртая годовщина XBrackets :) * для AkelPad 4.5.0+ * убрано: параметр 'hlt_bkgnd' (больше не нужен) + добавлено: настройка как цвета скобок, так и фона + другие мелкие улучшения/исправления + добавлена иконка (спасибо se7h) v.3.8 (Июль 2010) - исправлено: теперь автозакрытие скобок не происходит в read-only файле(-ах) - исправлено: неправильная перерисовка скобок в режиме PMDI v.3.7 (Июнь 2010) * для AkelPad 4.4.4+ v.3.6 (Май 2010) + SettingsDlg: добавлены РУС и УКР языки v.3.5 (Февраль 2010) + при активном 'hlt_bkgnd' цвет подсветки накладывается на цвет выделения v.3.4 (Февраль 2010) + добавлено: параметр 'hlt_bkgnd' - исправлено: после рестарта XBrackets::Main скобки могли не подсвечиваться v.3.3 (Февраль 2010) * для AkelPad 3.7.4+/4.4.0+ v.3.2 (Ноябрь 2009) + изменено: теперь 'sel_autobr = 1' заменяет весь выделенный текст v.3.1 (Ноябрь 2009) + добавлено: параметр 'all_autobr' v.3.0 (Октябрь 2009) * третья годовщина XBrackets :) + улучшено: закрывающую скобку можно напечатать "поверх" добавленной автоматически + добавлено: параметры 'ovr_autobr', 'sel_autobr', 'hlt_bothbr' + добавлено: параметр 'user_brpairs' (пользовательские скобки!) + добавлено: параметры 'next_char_ok' и 'prev_char_ok' + обновлена документация плагина v.2.8 (Август 2009) * для AkelPad 3.7.3+/4.3.0+ v.2.7 (Март 2009) * для AkelPad 3.7.0+/4.2.0+ v.2.6 (Март 2009) + новая функция: SelToMatchingBracket - исправлено: поддержка разделяемых окон в AkelPad 4.1.6 v.2.5 (Февраль 2009) + теперь можно задать типы файлов, в которых игнорируются скобки после // + улучшена поддержка AkelEdit + другие мелкие улучшения/исправления v.2.4 (Декабрь 2008) + закрывающую скобку можно напечатать "поверх" добавленной автоматически + новая настройка: пропуск "экранированных" скобок (после '\') v.2.3 (Август 2008) + некоторые исправления v.2.2 (Август 2008) * для AkelPad 3.6.0+/4.0.1+ + теперь GoToMatchingBracket не требует подсветки скобок + некоторые исправления v.2.1 (Август 2008) + новая функция: GoToMatchingBracket + небольшие оптимизации v.2.0 (Июль 2008) * для AkelPad 3.6.0+ v.1.9 (Апрель 2008) * название плагина изменено на XBrackets + несколько мелких улучшений v.1.8 (Март 2008) - Исправлено: ошибка при закрытии AkelPad 3.5.0 v.1.7 (Январь 2008) + (опционально) автозавершение ' ' + (опционально) автозавершение и подсветка < /> v.1.6 (Ноябрь 2007) + Совместимость с AkelPad 3.4.2+ v.1.5 (Сентябрь 2007) * для AkelPad 3.4.0+ - Исправлено: закомментированные скобки (C/C++/Pascal) обрабатывались некорректно v.1.4 (Август 2007) * для AkelPad 3.3.0+ - Исправлено: подсвеченные скобки оставляли след на панели LineBoard - Исправлено: некоторые внутренние переменные неправильно инициализировались v.1.3 (Июль 2007) * для AkelPad 3.3.0+ + для файлов C/C++/Pascal скобки после // не подсвечиваются + теперь вызов диалога настроек не активирует плагин (AkelBrackets::Main) + теперь плагин может быть активирован/деактивирован из диалога настроек v.1.2 (Март 2007) * для AkelPad 3.3.0+ - границы области редактирования определялись неправильно + (настройка) автозакрытие скобок при уже имеющейся правой скобке + уменьшен размер dll-файла (сборка с помощью Build.cmd) v.1.1 (Февраль 2007) * для AkelPad 3.2.1+ + подсветка активных скобок + диалог настроек v.1.0 (Октябрь 2006) * начальная версия * для AkelPad 3.1.2+ + автозавершение скобок Автор выражает благодарность Александру Шенгальцу aka Instructor за его помощь в создании и тестировании этого плагина. ----------------------------------------------------------- The icon by se7h. ----------------------------------------------------------- (C) Oct 2006 - May 2011, Vitaliy Dovgan aka DV dvv81 ukr net