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 

Дополнения к FAQ
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jul 19, 2007 10:56 am    Post subject: Дополнения к FAQ Reply with quote

Вопрос: где взять файлы настройки подсветок и автодополнений?
Ответ: в дистрибутиве Coder-плагина, здесь, и ещё некоторые файлы можно найти прямо в теме Coder plugin либо создать свои (примеров хватает).

Вопрос: создал свой файл настроек подстветки и дополнений с расширением "coder", положил его в папку "...\AkelPad\AkelFiles\Plugs\Coder\", перегружал AkelPad, но подсветка так и не заработала Sad
Ответ: файл должен быть в кодировке Unicode (little endian), т.е. сохранён как 1200 (UTF-16 LE). После этого следует перегрузить AkelPad либо произвести обновления кэша (см. Coder-Rus.txt).


Last edited by VladSh on Wed Sep 26, 2012 12:22 pm; edited 4 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jul 19, 2007 10:57 am    Post subject: ОБЩАЯ ИНФА Reply with quote

На данный момент существует несколько источников информации по AkelPad'у и всему, что идёт к нему:
- краткое описание самой программы в файле AkelPad-Rus.htm (Справка\Руководство);
- краткое описание плагинов на русском языке;
- более подробная, но не вся, документация на английском;
- более подробная информация по запуску в соответствующих текстовых файлах в дистрибутивах плагинов;
- здесь, в форумах, а также здесь; информация в них разрознена по многим темам и, по моему мнению, НЕ является легкодоступной для понимания НЕпрограммистов, поэтому кое что будет изложено ниже.

С релизом 3.3.4 к AkelPad'у добавилась возможность создавать и настраивать контектсные меню (ContextMenu plugin):
- меню окна редактирования;
- меню вкладок;
- меню ссылок;
- меню последних файлов;
- дополнительные группы меню Главного меню программы.
- возможность заменять Главное меню программы своим собственным.
Данные изменения в отличие от предыдущих (эволюционных) я считаю революционными, т.к. AkelPad теперь, почти полностью, можно настраивать под себя! Использование скриптов и плагинов становится ещё более востребованным.

Как может выглядеть прога смотрим в теме Скриншоты AkelPad'а.


Last edited by VladSh on Wed Sep 26, 2012 12:24 pm; edited 11 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jul 19, 2007 10:59 am    Post subject: ПЛАГИНЫ Reply with quote

Вопрос: как вызвать плагин?
Ответ: выделить плагин в окне плагинов (меню Настройки\Плагины...) и нажать кнопку "Вызвать".
Также можно вызывать их программно из контекстных меню или из скриптов; подробнее об этом смотри ниже, в след. постах.

Вопрос: что означает галочка в окне работы с плагинами напротив некоторых плагинов?
Ответ: при взведённой галке напротив плагина этот плагин загружается либо отрабатывается (например RecentFiles plugin, чистящий историю последних файлов) при загрузке AkelPad'а.

Ситуация: я назначил для старого плагина комбинацию клавиш, теперь, когда удалил его, при нажатии данной комбинации клавиш вылетает сообщение: "Heвoзмoжнo oткpыть фaйл ...!"
Вопрос: как с этим бороться? Хотелось бы переопределить эту комбинацию клавиш.
Ответ: Поможет кнопка "Ok" в диалоге плагинов. После этого следует перегрузить AkelPad.


Last edited by VladSh on Wed Sep 26, 2012 12:30 pm; edited 5 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jul 19, 2007 11:01 am    Post subject: СКРИПТЫ Reply with quote

Ответ на вопрос: "Как пользоваться скриптами?".

Информация по теме: "Scripts plugin" и "Сборник скриптов для Scripts plugin'а". Также кое что можно найти в теме "ContextMenu plugin".


Вопрос: как и где можно посмотреть свойства и методы AkelPad.document?
Ответ:
Основные команды - это получение выделенного текста в окне редактирования AkelPad'а и замена выделенного текста. Это используется для обработки выделенного текста. Пример см. здесь.

Instructor wrote:
Полный перечень методов, а также их синтаксис и параметры вызова см. в файле "Scripts.zip\Source\Scripts.idl"
а также в текстовом файле дистрибутива плагина Scripts-Rus.txt.


Работа с переводами строк в тексте:
Quote:
- для скрипта, который получает текст из выделения методом GetSelText(), преобразование содержимого в массив строк производится так:
Quote:
var arrContent = strContent.split('\r');

- для скрипта, который получает текст путём чтения другого файла методом ReadFile(), преобразование содержимого в массив строк производится так:
Quote:
var arrContent = strContent.split('\r\n');
Универсальный способ:
Infocatcher wrote:
var arrContent = strContent.split(/\r\n|\n|\r/);


Last edited by VladSh on Wed Sep 26, 2012 12:29 pm; edited 26 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jul 19, 2007 11:07 am    Post subject: FAQ по плагину ContextMenu Reply with quote

Тема "ContextMenu plugin"
Всё начиналось отсюда.

ВЫЗОВ ИСПОЛНЯЕМЫХ ФАЙЛОВ ИЗ КОНТЕКСТНЫХ МЕНЮ и ТУЛБАРА:

1. Можно вызывать внутренние команды AkelPad'а с помощью Command(номер).

О номерах команд см. в предыдущем сообщении.


2. Можно вызывать скрипты с помощью Call() или Exec()
Пример:
Code:
"Наименование позиции меню/подсказки тулбара" Call("Scripts::Main", 1, "Script.js", "%f", 0)


ОБЩАЯ ИНФОРМАЦИЯ ПО ВЫЗОВАМ СКРИПТОВ:

Instructor wrote:
VladSh wrote:
Ещё вопрос. Все подменюшки, которые я пишу с вызовами скриптов почуму-то идут с галочкой перед именем, почему она появляется, и можно ли её как-то убрать?
Галочка означает, что плагин загружен. Можно пользоваться методом Exec() вместо Call(). Например так:
Code:
"Наименование позиции меню/подсказки тулбара" Exec(`WScript "%a\AkelFiles\Plugs\Scripts\Script.js" "%f"`)
при наличии знака минуса перед наименованием пункта меню, он не будет каким-либо образом менять свой статус! Подробнее см. файл ContextMenu-Rus.txt в дистрибутиве плагина.

- РАБОТА С АРГУМЕНТАМИ (4-й параметр):

Вопрос: для чего нужен параметр "%f" ?

Instructor wrote:
VladSh wrote:
Updated: Замечено, что EXPLORER -> Open в любом меню работает корректно, т.е. если жму в окне редактирования/на текущей вкладке, то открывается именно открытый в текущей вкладке файл; если вызываю из меню последних файлов - открывается именно выделенный файл из меню последних файлов.
Именно поэтому в релизе к 3.3.4 значится "Добавлено: сообщение AKD_GETRECENTFILES."

В параметре %f есть необходимость, только, если в скрипте идет обработка аргументов вызова.

%f - аргумент "имя файла". Т.е. он обязателен если мы хотим чтобы скрипт, работающий по имени файла, отрабатывал из любого меню (и из меню редактирования и из меню последних файлов).
В отличие от метода AkelPad.GetEditFile(0), который возвращает имя файла текущей закладки (т.е. текущего редактируемого файла):
Code:
var AkelPad = new ActiveXObject("AkelPad.document");
var fileName = AkelPad.GetEditFile(0);

этот код возвращает имя файла вне зависимости от того меню, в котором мы сейчас находимся, т.к. мы передаём его через аргументы:
Code:
objArgs = WScript.Arguments;
var fileName = objArgs(0);

- ПЕРЕДАЧА АРГУМЕНТОВ В СКРИПТ

Можно передавать несколько аргументов, это можно сделать просто через пробел, например:
Code:
Call("Scripts::Main", 1, "MyScript.js", "1 2")

или, если в параметре имеются пробелы, -заключая каждый в кавычки:
Code:
Call("Scripts::Main", 1, "MyScript.js", `"%u" "1" "ext param"`)

- ПРОВЕРКА ВНУТРИ СКРИПТА НА НАЛИЧИЕ АРГУМЕНТОВ
Code:
if (WScript.Arguments.length)   //Или на конкретное число аргументов


В Scripts-плагин было добавлено 2 метода GetArgLine и GetArgValue для более удобной работы с аргументами; подробнее см. Scripts-Rus.txt либо примеры скриптов.

3. Можно вызывать плагины.
Instructor wrote:
DV
Quote:
Где можно посмотреть описание всех функций и параметров плагина?
Используюмые методы можно посмотреть в дефолтных меню. Что касаемо метода Call() с дополнительными параметрами, то это уже зависит от вызываемого плагина.
-----------------------------------------------------------------

Вопрос: где взять контекстные меню?
Ответ: например здесь.

N.B.: меню работают со скриптами, находящимися в теме "Сборник скриптов для Scripts plugin'а". Скрипты из этой темы нужно не скачивать, а брать прямо со страницы, т.к. они периодически изменяются авторами и поэтому являются актуальными для указанных контекстных меню.


4. Можно запускать другие файлы.
4.1. hta-приложения.
Формат записи:
Quote:
Exec('mshta "<путь к hta-файлу>"')


4.2. chm-файлы.
Quote:
Exec('"hh.exe" "<путь к chm-файлу>"')

Пример: запуск справки
Code:
"AkelPad-Eng.chm" Exec(`"hh.exe" "%a\AkelFiles\AkelPad4-Eng.chm"`)
Файл справки AkelPad4-Eng.chm необходимо предварительно скачать отсюда.

Комментирование кода в контекстных меню осуществляется символом ; либо #

Расположение комбинаций клавиш по аналогии с главным меню программы (справа) можно сделать использовав в качестве разделителя символ табуляции (для того, чтобы набрать символ табуляции в поле редактирования меню, нужно нажать Ctrl+Tab).


Last edited by VladSh on Tue Dec 06, 2011 11:56 am; edited 23 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Wed Aug 08, 2007 10:29 am    Post subject: Некоторые тонкости запуска других скриптов из Script-плагина Reply with quote

Варианты запуска на примерах:
Code:
AkelPad.Call("Scripts::Main", 1, "ShiftRight.js", 0)
Code:
eval(AkelPad.ReadFile(AkelPad.GetAkelDir() + "\\AkelFiles\\Plugs\\Scripts\\ShiftRight.js"));

Разница заключается в том, что в первом варианте скрипт запускается в фоне, т.е. скрипт, из которого производится вызов, продолжает выполняться дальше, т.е. параллельно с вызываемым!

Если этот вызов находится в последней строке скрипта, то метод Call вполне приемлем. Параметры его вызова:
Instructor wrote:
Added: possibility to call AkelPad plugin with parameters (like ContextMenu's Call() method). For example:
Code:
AkelPad.Call("Macros::Main", 1, "123", 1, 0);
// 1 -execute, "123" -macro name, 1 -repeat count, 0 -reserved

Если же нужно отработать вызываемый скрипт, а только потом продолжить выполнение текущего скрипта (с задержкой на время выполнения вызываемого скрипта), то нужно использовать 2-й варинт с eval.


Last edited by VladSh on Tue Aug 03, 2010 4:27 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Thu Jan 10, 2008 5:21 pm    Post subject: Подниму-ка я тему вверх Reply with quote

Описание пункта "Выполнить" из меню настроек
По умолчанию (строка "Команда" в настройках пустая), этот пункт недоступен для всех типов файлов.
Для выполнения файлов по их системной ассоциации в поле "Команда" следует прописать:
Code:
rundll32.exe shell32,ShellExec_RunDLL "%f"

а для выполнения в их рабочем каталоге в поле "Рабочий каталог" прописать:
Code:
%d


Last edited by VladSh on Thu Mar 25, 2010 9:37 am; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Wed Oct 29, 2008 4:35 pm    Post subject: Ещё раз подниму тему вверх :-) Reply with quote

1. Размер Tab при отжатой галке "Пробелы" теперь реально равен количеству пробелов, указанных в поле размера!

2. Появилась возможность настраивать собственные префиксы для гиперссылок (по используемым протоколам); например:
Code:
http: https: www. ftp: file: mailto: notes: \\

3. Синтаксис плагинов ContextMenu, Hotkeys и ToolBar, приведен к одному (за редкими исключениями), что очень удобно: разобравшись в одном - легко настраиваешь другие. В последнем есть ещё команда Icon для отображения указанной иконки, которую можно указать из *.dll, *.exe (по номеру расположения в файле) либо напрямую из файла *.ico, находящегося на диске.
Подробное описание см. в файлах ContextMenu-Rus.txt, Hotkeys-Rus.txt и ToolBar-Rus.txt в дистрибутивах соответствующих плагинов.
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Tue Aug 03, 2010 4:30 pm    Post subject: Ещё кое что по написанию скриптов Reply with quote

Из скрипта по номеру можно вызывать внутренние команды AkelPad'а, по аналогии с Command(), но для более сложных случаев - команда SendMessage

Примеры вызовов см. "//Send message" в файлах Test.js, Test.vbs (в папке "...\AkelPad\AkelFiles\Plugs\Scripts\" Scripts-plugin'а), где 3-й параметр - как раз номер команды (номера см. в AkelDLL.h под заголовком "//AkelPad menu messages:").

Перечень номеров команд см. в "AkelPad 4 - руководство пользователя" (файл справки AkelHelp-Rus.htm).


1. Несколько действий вмещаем в одно действие отмены.
Иногда случается необходимость несколько действий вместить в одно действие отмены..
Лучше всего пересмотреть логику скрипта и переписать алгоритм так, чтобы в результате работы скрипта было одно действие установки выделения (метод SetSel) и записи (метод ReplaceSel). Если же по каким-то причинам это сделать не удаётся, то можно обойти это другим способом:
Code:
var hEditWnd = AkelPad.GetEditWnd();

AkelPad.SendMessage(hEditWnd, 3081 /*AEM_BEGINUNDOACTION*/, 0, 0);

//AkelPad.SetSel(...);
AkelPad.ReplaceSel(pContent1);
//AkelPad.SetSel(...);
AkelPad.ReplaceSel(pContent2);
//...

AkelPad.SendMessage(hEditWnd, 3082 /*AEM_ENDUNDOACTION*/, 0, 0)


2. Убираем мигание выделения.
Иногда при выделении всего текста (SetSel(0, -1)) и вставке результата (ReplaceSel) происходит неприятное мигание выделения. Убрать его можно разместив в своём скрипте функцию
Code:
function setRedraw(hWnd, bRedraw) {
   var oSys = AkelPad.SystemFunction();
   AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
   bRedraw && oSys.Call("user32::InvalidateRect", hWnd, 0, true);
}

тогда скрипт будет выглядеть так:
Code:
//код

setRedraw(hEditWnd, false);

AkelPad.SetSel(0, -1);
AkelPad.ReplaceSel(pContent);

setRedraw(hEditWnd, true);

//код

на время отладки скрипта вызовы функции setRedraw лучше закоментировать, чтобы при ошибке в скрипте не отключалась прорисовка текущего окна редактирования.


3. Получение текста BE-методом GetTextRange.
В некоторых случаях
- когда не требуется обработки всего текста текущего файла;
- когда не нужно выделять весь файл, а нужно производить поиск какого-либо текста вверх/вниз от текущей позиции курсора
лучше не пользоваться SetSel(0, -1), а заменить её на получение/анализ/изменение текста в бэкграунде, т.е. GetTextRange(0, -1). Таким образом в вышеуказанных случаях можно избежать использования setRedraw.


Last edited by VladSh on Wed Sep 26, 2012 12:32 pm; edited 3 times in total
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2602
Location: Киев, Русь

PostPosted: Sat Dec 24, 2011 11:22 pm    Post subject: SendMessage применительно к AkelPad'у Reply with quote

Микс из сообщений Instrictor'а и FeyFre по 2-му параметру SendMessage wrote:
WM_* системные сообщения. Могут посылаться любому окну, зависит от конкретного сообщения. См. MSDN.

AKD_* сообщения AkelPad'a. Посылаются главному окну. См. AkelDLL.h.
Все AKD_* объявлены как WM_USER + ###:
Code:
#define AKD_FRAMEFIND              (WM_USER + 264)
#define AKD_FRAMEFINDA             (WM_USER + 265)
#define AKD_FRAMEFINDW             (WM_USER + 266)

WM_USER объявлен в PlatformSDK (Windows SDK) в файле WinUser.h как 0x0400

EM_* сообщения RichEdit'a. Посылаются окну редактирования. См. MSDN.

Скачайте со страницы плагинов плагин-шаблон AkelDLL (а ещё лучше исходники самого редактора). Там Вы найдёте файл AkelDLL.h. В нём описаны все сообщения которые можно послать редактору (AkelPad.GetMainWnd()), что они требуют, что возвращают, что делают и есть примеры. 99% тех сообщений можно посылать из Scripts.
Также в файле AkelEdit.h (есть только в исходнике редактора, в плагине-шаблоне нету) описаны все сообщения, которые можно посылать окну редактирования (AkelPad.GetEditWnd()) в 4 версии (в 3-ей справка по RichEdit есть у Microsoft), примеры также прилагаются.

FeyFre wrote:
Изменение размеров Tab'а не сохраняя настройки:
Сообщение AKD_FRAMEFIND возвращает указатель на внутреннюю структуру Акеле FRAMEDATA (берем там в том же AkelDll.h) - структура которая содержит всю индивидуальную информацию вкладки (каждой вкладке своя, в SDI - в единичном экземпляре).

Нашел путь прямее (не сохраняя настройки программы!), тут мы напрямую у контролла спрашиваем размер табов, и устанавливаем его, без участия FRAMEDATA. Соотв. оно в настройки не попадет.
Для изменения установок вкладки добавлен специальный метод SetFrameInfo, см. скрипт InstructorShiftTabSize.js.


Instructor по 3-му параметру SendMessage wrote:
FIS_ - используются для установки параметров текущей вкладки (AKD_SETFRAMEINFO/SetFrameInfo).
FI_ - используются для получения параметров текущей вкладки (AKD_GETFRAMEINFO).


Вопрос: как проверить, установлена ли галка "Пробелы" в настройках в "Размере табуляции"?
Code:
var bTabStopAsSpaces = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1223 /*AKD_GETFRAMEINFO*/, 52 /*FI_TABSTOPASSPACES*/, 0);


Вопрос: как получить число открытых вкладок, без перебора всех документов?
Code:
var nCountAll = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1291 /*AKD_FRAMESTATS*/, 0 /*FWS_COUNTALL*/, 0);


Вопрос: как читать настройки проги, используя AKD_GETMAININFO?
FeyFre wrote:
АkelРad не выдаёт нагора указатели на память которую он использует. В целях безопасности (что-бы никто туда не нагадил).
В качестве lParam (4 аргумент) нужно дать адрес памяти, куда записать значение, а возвращает оно количество записаных символов.
Если вызвали с параметром = 0, то оно скажет сколько нужно _TCHAR-ов памяти (включая завершающий ноль).
Если вызвали с адресом буфера - запишет туда, и вернет количество _TCHAR-ов, но уже без нуля.


Вопрос: как это определить номер или индекс текущей вкладки?
Code:
var hWndMain = AkelPad.GetMainWnd();
var lpFrame = AkelPad.SendMessage(hWndMain, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0);
var nFrameIndex = AkelPad.SendMessage(hWndMain, 1294 /*AKD_FRAMEINDEX*/, 0, lpFrame);
Для того, чтобы получать lpFrame для нужной нам вкладки по номеру, то 1 /*FWF_CURRENT*/ надо заменить на 8 /*FWF_BYTABINDEX*/ и в последнем параметре указывать индекс вкладки (начинается с нуля), - см. функцию getTabFile в FileTabs.js. Там же см. функцию получения имени файла по индексу вкладки.
Back to top
View user's profile Send private message Visit poster's website
Egorkaru



Joined: 22 Mar 2013
Posts: 44
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Apr 08, 2013 5:15 am    Post subject: Reply with quote

Вопрос:
Куда делось меню Синтаксис, которое присутствует в Notepad++?

Ответ:
Можно его воссоздать. Обязательным условием этого решения является наличие ContextMenu (259 Кб) и Coder (510 Кб) плагинов.
1. Вызовите ContextMenu::Main.
1.1. Откройте диалог Настройки -> Плагины... или нажмите сочетание клавиш Alt+P.
1.2. Выделите ContextMenu::Main из списка и нажмите Вызвать.
2. В выпадающем списке выберите вместо Меню ContextMenu::Show - Главное меню.
3. Поставьте галочку Включено, если её нет.
4. Измените меню:
Code:
"Синтаксис" Index(5)
{
  "Assembler" Call("Coder::Settings", 1, "asm")
  "AutoIt" Call("Coder::Settings", 1, "au3")
  "Bat" Call("Coder::Settings", 1, "bat")
  "C++" Call("Coder::Settings", 1, "cpp")
  "Sharp" Call("Coder::Settings", 1, "cs")
  "CSS" Call("Coder::Settings", 1, "css")
  "HTML" Call("Coder::Settings", 1, "html")
  "Ini" Call("Coder::Settings", 1, "ini")
  "Inno" Call("Coder::Settings", 1, "inno")
  "JScript" Call("Coder::Settings", 1, "js")
  "Lua" Call("Coder::Settings", 1, "lua")
  "NSIS" Call("Coder::Settings", 1, "nsis")
  "Pascal" Call("Coder::Settings", 1, "pascal")
  "Perl" Call("Coder::Settings", 1, "perl")
  "PHP" Call("Coder::Settings", 1, "php")
  "Python" Call("Coder::Settings", 1, "python")
  "Resource" Call("Coder::Settings", 1, "rc")
  "SQL" Call("Coder::Settings", 1, "sql")
  "VBScript" Call("Coder::Settings", 1, "vbs")
  "XML" Call("Coder::Settings", 1, "xml")
  SEPARATOR
  "Без темы" Call("Coder::Settings", 1, "?")
}

5. Нажмите ОК.


Last edited by Egorkaru on Mon Apr 08, 2013 1:57 pm; edited 7 times in total
Back to top
View user's profile Send private message Send e-mail
Egorkaru



Joined: 22 Mar 2013
Posts: 44
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Apr 08, 2013 9:24 am    Post subject: Reply with quote

Вопрос:
Как пользоваться скриптами?

Ответ:
1. Установите Scripts плагин.
1.1. Скачайте архив Scripts.zip (311 Кб) и распакуйте его в любую папку.
1.2. Если у Вас 32-битная версия AkelPad'а, скопируйте содержимое папки Plugs в папку {AkelPadDir}\AkelFiles\Plugs.
1.3. Если у Вас 64-битная версия AkelPad'а, скопируйте содержимое папки Plugs64 в папку {AkelPadDir}\AkelFiles\Plugs.
1.4. Скопируйте содержимое папки Docs в папку {AkelPadDir}\AkelFiles\Docs.
1.5. При необходимости скопируйте содержимое папки Source в папку {AkelPadDir}\AkelFiles\Source.
2. Откройте диалог Настройки -> Плагины... или нажмите сочетание клавиш Alt+P.
3. Выделите Scripts::Main из списка и нажмите Вызвать.
4. В появившемся диалоге Scripts плагина найдите, например, скрипт SearchReplace.js.
5. При необходимости назначьте горячее сочетание клавиш для скрипта и нажмите Запустить.
6. Чтобы использовать дополнительные скрипты, их необходимо скопировать в папку {AkelPadDir}\AkelFiles\Plugs\Scripts. После этого дополнительные скрипты появятся в диалоге Scripts плагина.
Дополнительные скрипты можно взять в дистрибутиве Scripts плагина, в теме "Scripts collection" или здесь.


Last edited by Egorkaru on Sat Jan 11, 2014 5:41 am; edited 5 times in total
Back to top
View user's profile Send private message Send e-mail
Egorkaru



Joined: 22 Mar 2013
Posts: 44
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Apr 08, 2013 10:24 am    Post subject: Reply with quote

Вопрос:
Создал свой файл с расширением *.coder, скопировал его в папку {AkelPadDir}\AkelFiles\Plugs\Coder, перезапустил AkelPad, но ни подсветка синтаксиса, ни фолдинг, ни автодополнение так и не заработали. Что делать?

Ответ:
Файл должен быть в кодировке Unicode (little endian), т.е. сохранён как 1200 (UTF-16 LE). После этого следует перезапустить AkelPad, либо произвести обновления кэша (см. Coder-{Lang}.txt, где {Lang} - это первые три латинские буквы Вашего родного языка).
Back to top
View user's profile Send private message Send e-mail
Egorkaru



Joined: 22 Mar 2013
Posts: 44
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Apr 08, 2013 10:54 am    Post subject: Reply with quote

Вопрос:
Где взять файлы с расширением *.coder?

Ответ:
В дистрибутиве Coder плагина, здесь, и ещё некоторые файлы можно найти прямо в теме Coder plugin либо создать свои (примеров хватает).
Back to top
View user's profile Send private message Send e-mail
Egorkaru



Joined: 22 Mar 2013
Posts: 44
Location: Белово, Кемеровская область, Россия

PostPosted: Mon Apr 08, 2013 11:18 am    Post subject: Reply with quote

Вопрос:
Как я могу изменить сочетания клавиш в программе, по Ctrl+F я хочу открывать диалог Заменить вместо Найти?

Ответ:
Вариант 1:
1. С помощью Hotkeys плагина (181 Кб) добавьте:
Имя: Заменить
Команда: Command(4161)
Горячая клавиша: Ctrl+F
2. Если Вы хотите запускать диалог Найти через сочетание клавиш Ctrl+Shift+F, то добавьте:
Имя: Найти
Команда: Command(4158)
Горячая клавиша: Ctrl+Shift+F
3. Если Вы хотите заблокировать использование сочетания Ctrl+R, то добавьте:
Имя: Блокировка
Команда: Command(0)
Горячая клавиша: Ctrl+R

Вариант 2:
Возьмите Resource Hacker (580 Кб). Откройте в нём файл программы AkelPad.exe или языковой модуль, например {AkelPadDir}\AkelFiles\Langs\Russian.dll. Слева появится дерево ресурсов. Раскройте Accelerators\1302\1033, там найдите
Code:
VK_R, 4161, NOINVERT, CONTROL, VIRTKEY

Из этой строчки Вам нужны только три параметра:
1. VK_R - это клавиша R;
2. CONTROL - это дополнительная клавиша Ctrl;
3. 4161 - это код отправляемый программе при нажатии на Ctrl+R, в данном случае этот код отвечает за открытие диалогового окна Заменить.
Измените VK_R на VK_F (VK_F - это клавиша F). Результат:
Code:
VK_F, 4161, NOINVERT, CONTROL, VIRTKEY

Теперь найдите строку
Code:
VK_F, 4158, NOINVERT, CONTROL, VIRTKEY

она отвечает за открытие диалогового окна Найти. Т.к. теперь имеются одинаковые сочетания клавиш Ctrl+F, необходимо либо удалить эту строку с кодом 4158, либо назначить другие горячие клавиши. Назначьте диалогу Найти сочетание клавиш Ctrl+Shift+F, измените строку
Code:
VK_F, 4158, NOINVERT, CONTROL, VIRTKEY

на
Code:
VK_F, 4158, NOINVERT, CONTROL, SHIFT, VIRTKEY

После всех манипуляций нажмите Compile Script и File -> Save. Теперь диалог Заменить открывается по Ctrl+F, а диалог Найти по Ctrl+Shift+F.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
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