Discuss and announce AkelPad plugins
Offline
Posts: 202 Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia
Post
by Kley » Mon May 11, 2015 10:31 pm
KDJ
Запустить диалог "Поиск",
Переместить окно диалога,
Нажать кнопку\меню для запуска диалога еще раз, еще, еще...
Окно перемещается с места на место.
Offline
Posts: 512 Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Post
by YuS » Tue May 12, 2015 3:16 am
KDJ wrote:
Added:
- context menu to Templates/Batches header list (click or right click),
- possibility to choose columns in Templates/Batches list.
Changed: now by default, the list of templates is not sorted. To change it, click on the list header.
FindReplaceEx_1049.lng FindReplaceEx_1049.lng Code: Select all
/**************************************************
FindReplaceEx.js - ver. 2015-05-11
Interface language
Language: Russian (1049)
Translated by: F. Phoenix, Andrey_A_A, VladSh, YuS
**************************************************/
sTxtMore = 'Ещё';
sTxtCount = 'Подсчитать';
sTxtFindAll = 'Найти все';
sTxtBookmarkAll = 'Закладки на все';
sTxtUnmarkAll = 'Убрать закладки';
sTxtTemplates = 'Шаблоны';
sTxtBatches = 'Пакеты';
sTxtWait = 'Подождите...';
sTxtTotalFound = 'Всего вхождений: ';
sTxtReplAllCD = '"Заменить всё" закрывает диалог';
sTxtReplAllWM = '"Заменить всё" без сообщения';
sTxtCheckInSel = 'Отметить "В выделении" если есть выделение';
sTxtCycleSearch = 'Поиск по кругу';
sTxtPrompt = 'Запрос';
sTxtWhatFind = 'Что найти';
sTxtReplaceWith = 'Чем заменить';
sTxtMatchCase = 'Учитывать регистр';
sTxtWholeWord = 'Слово целиком';
sTxtRegExp = 'Регулярные выражения';
sTxtEscSeq = 'Esc-последовательности';
sTxtNew = 'Создать';
sTxtAdd = 'Добавить';
sTxtRename = 'Изменить';
sTxtRemove = 'Удалить';
sTxtToBatch = 'В пакет';
sTxtOK = 'OK';
sTxtCheckRE = 'Проверить RegExp';
sTxtMoveUp = 'Вверх';
sTxtMoveDown = 'Вниз';
sTxtBatchReplace = 'Заменить всё (пакетом)';
sTxtTemplateName = 'Имя шаблона';
sTxtConditions = 'Условия'; //new
sTxtAllColumns = 'Все колонки'; //new
sTxtNameOnly = 'Только имя'; //new
sTxtSortByName = 'Сортировка по имени'; //new
sTxtNameInvalid = 'Неверное имя.';
sTxtNameExists = 'Такое наименование шаблона уже используется.';
sTxtWantRemove = 'Вы действительно хотите удалить этот шаблон?';
sTxtBatchNumber = 'Пакет №';
sTxtWantBatchRepl = 'Заменить всё этим пакетом?';
sTxtNoFindText = 'Нет текста в поле "Что найти".';
sTxtRegExpOK = 'Регулярное выражение правильное.';
sTxtRegExpError = 'Ошибка в регулярном выражении.';
//context menu
sMnuUndo = '&Отменить';
sMnuRedo = '&Повторить';
sMnuCut = 'Вырезать';
sMnuCopy = '&Копировать';
sMnuPaste = '&Вставить';
sMnuDelete = '&Удалить';
sMnuSelectAll = 'Выделить всё';
//RegExp help
sHlpAnyChar = 'любой символ (точка)';
sHlpSpecChars = '()[]{}^$.?+*|\\ специальные символы';
sHlpFF = 'перевод страницы \\x0C';
sHlpAnyNL = 'перевод строки';
sHlpTab = 'табуляция \\x09';
sHlpVTab = 'вертикальная табуляция \\x0B';
sHlpDigit = 'цифра [0-9]';
sHlpNonDigit = 'не цифра [^0-9]';
sHlpWhiteSp = 'пробельный символ [ \\f\\n\\t\\v]';
sHlpNonWhiteSp = 'непробельный символ';
sHlpWordChar = 'словесный символ (non-delimiter)';
sHlpNonWordChar = 'несловесный символ (delimiter)';
sHlpCharHex = 'символ - код в диапазоне 0-10FFFF';
sHlpCharHex2 = 'символ - 2-значный код';
sHlpCharHex4 = 'символ - 4-значный код';
sHlpAlternative = 'одна из альтернатив: ab либо xy';
sHlpCharSet = 'набор символов, нужен любой из них';
sHlpNegCharSet = 'исключающий набор символов';
sHlpRange = 'диапазон символов от a до z';
sHlpNegRange = 'исключающий диапазон';
sHlpBeginLine = 'начало строки';
sHlpEndLine = 'конец строки';
sHlpBeginText = 'начало документа';
sHlpEndText = 'конец документа';
sHlpBeginRange = 'начало диапазона поиска';
sHlpEndRange = 'конец диапазона поиска';
sHlpWordBoun = 'граница слова';
sHlpNonWordBoun = 'не граница слова';
sHlpExcludePrev = 'исключить предыдущее из результата';
sHlpZeroOrOne = '0 или 1 раз';
sHlpZeroOrMore = '0 или более раз';
sHlpOneOrMore = '1 или более раз';
sHlpExactly = 'ровно 3 раза';
sHlpAtLeast = 'не менее 3 раз';
sHlpFromTo = 'от 3 до 7 раз';
sHlpBackslash = 'обратный слеш';
sHlpNL = 'перевод строки';
sHlpEntireStr = 'вся захваченная строка';
sHlpSubmatch9 = '9я подстрока (диапазон 1-9)';
sHlpSubmatch99 = '99я подстрока (диапазон 01-99)';
sHlpGreedy = '- выше жадные квантификаторы ';
sHlpLazy = 'добавить для ленивого квантификатора';
sHlpPossesive = 'добавить для сверхжадного квантификатора';
sHlpCapture1 = 'запоминающая скобка';
sHlpCapture2 = 'соответствует негативному ab, захвату';
sHlpNotCapture = 'незапоминающая скобка';
sHlpAtomicGrouping = 'атомарная группа (незапоминающая)';
sHlpPreceded = 'строка следует за ab';
sHlpNotPreceded = 'строка не следует за ab';
sHlpFollowed = 'строка предшествует ab';
sHlpNotFollowed = 'строка не предшествует ab';
sHlpcondition = 'если (1) то x, иначе y';
sHlpBackrefer9 = 'обратная ссылка, диапазон 1-9';
sHlpBackrefer99 = 'обратная ссылка, диапазон 01-99';
sHlpIgnoreCase = 'не учитывать регистр символов';
sHlpMultiline = 'многострочный поиск (по умолчанию)';
sHlpDotDefault = 'точке соответствует любой символ (по умолчанию)';
sHlpInvertGreed = 'инвертировать жадность квантификаторов';
sHlpMatchCase = 'учитывать регистр символов';
sHlpMultilineOff = 'выключить многострочный поиск';
sHlpDotDefaultOff = 'точке соответствует любой символ, кроме \\n';
sHlpInvertGreedOff = 'отменить инвертирование жадности';
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Tue May 12, 2015 6:08 pm
Kley wrote: ...
Окно перемещается с места на место.
FindReplaceEx.js
Fixed: minor bugs.
Updated: Russian translation by
YuS .
Offline
Site Admin
Posts: 6311 Joined: Thu Jul 06, 2006 7:20 am
Post
by Instructor » Wed May 13, 2015 4:53 pm
Kley
В диалоге
HexSelAs.js напрашивается деактивация группы "Два байта", когда отмечена галочка "Один байт (авто)".
Code: Select all
oSys.Call("user32::EnableWindow", hWndUtf16LE, nAnsi == 8);
oSys.Call("user32::EnableWindow", hWndUtf16BE, nAnsi == 8);
AkelPad.SendMessage(hWndChkAnsi, 241 /*BM_SETCHECK*/, (nAnsi == 4), 0);
Offline
Posts: 202 Joined: Sat Mar 28, 2015 2:36 pm
Location: Russia
Post
by Kley » Wed May 13, 2015 7:26 pm
Instructor , Спасибо.
"HexSelAs.js"
Небольшая доработка интерфейса.
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Wed May 13, 2015 8:11 pm
Instructor wrote: Suggestion:
- If "Replace all" without message not set, "Batch replace all" show replace message once (with using AkelPad.TextReplace).
It seems to me that this is a topic for a separate script - batch replace without standard "Replace" dialog.
---
Request.
Now AkelPad.TextReplace() with argument bAll=true returns -1.
Can you change this method, so that it will return count of changes.
Offline
Site Admin
Posts: 6311 Joined: Thu Jul 06, 2006 7:20 am
Post
by Instructor » Thu May 14, 2015 5:56 am
KDJ wrote: It seems to me that this is a topic for a separate script - batch replace without standard "Replace" dialog.
At first thought the same (add the argument to run without Replace dialog), but this is require to pass the direction somehow.
KDJ wrote: Request.
Scripts plugin v16.7
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Thu May 14, 2015 5:57 pm
Instructor
Thank you very much.
Can you still take into account this:
Scripts-Eng.txt wrote: If there is syntax error in regular expression (with FRF_REGEXP flag), the return value is (–100 - PatternOffset).
Offline
Posts: 1250 Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine
Post
by DV » Fri May 15, 2015 10:53 am
Набросок:
UpdateAkelUpdater.js UpdateAkelUpdater.js Code: Select all
var sAkelUpdaterOutputDir = AkelPad.GetAkelDir(1 /*ADTYPE_AKELFILES*/);
var sAkelUpdaterZip = getTempPathToAkelUpdaterZip();
if (!downloadFile("http://akelpad.sourceforge.net/files/tools/AkelUpdater.zip", sAkelUpdaterZip))
{
WScript.Echo("ERROR: Could not download AkelUpdater.zip");
WScript.Quit();
}
if (!unpackZip(sAkelUpdaterZip, sAkelUpdaterOutputDir))
{
deleteFile(sAkelUpdaterZip);
WScript.Echo("ERROR: Could not unpack AkelUpdater.zip");
WScript.Quit();
}
deleteFile(sAkelUpdaterZip);
WScript.Echo("Updated successfully!");
function getTempPathToAkelUpdaterZip()
{
var sTempDir = ".\\";
var pBuf;
if (pBuf = AkelPad.MemAlloc(256 * _TSIZE))
{
var oSys = AkelPad.SystemFunction();
oSys.Call("kernel32::GetTempPath" + _TCHAR, 256 - 1, pBuf);
sTempDir = AkelPad.MemRead(pBuf, _TSTR);
AkelPad.MemFree(pBuf);
}
return sTempDir + "AkelUpdater.zip";
}
function downloadFile(sSourceUrl, sDestFile)
{
var savedOK = false;
var oXMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
oXMLHTTP.onreadystatechange = function() {
if (oXMLHTTP.readyState === 4)
{
if (oXMLHTTP.status == 200)
{
var oADOStream = new ActiveXObject("ADODB.Stream");
oADOStream.open();
oADOStream.type = 1; // Binary
oADOStream.write(oXMLHTTP.ResponseBody);
oADOStream.position = 0;
oADOStream.saveToFile(sDestFile, 2);
oADOStream.close();
savedOK = true;
}
}
};
oXMLHTTP.open("GET", sSourceUrl, false);
oXMLHTTP.send();
return savedOK;
}
function deleteFile(sFileName)
{
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
oFSO.DeleteFile(sFileName, true);
}
function unpackZip(sZipFileName, sOutputDir)
{
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
if (!oFSO.FolderExists(sOutputDir))
oFSO.CreateFolder(sOutputDir);
var oShell = new ActiveXObject("Shell.Application");
var filesInZip = oShell.NameSpace(sZipFileName).Items();
if (filesInZip.Count == 0)
return false; // no items, maybe it's not an archive
oShell.NameSpace(sOutputDir).CopyHere(filesInZip, 4 /*No progress dialog*/ + 16 /*Yes to All*/);
WScript.Sleep(500);
return true;
}
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Fri May 15, 2015 7:27 pm
FindReplaceEx.js
Added possibility to set AkelPad font in edit controls (Templates/Batches dialog) - available in context menu or by pressing Ctrl+F.
Offline
Posts: 512 Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Post
by YuS » Sat May 16, 2015 1:13 am
KDJ wrote:
Added possibility to set AkelPad font in edit controls (Templates/Batches dialog) - available in context menu or by pressing Ctrl+F.
Code: Select all
/**************************************************
FindReplaceEx.js - ver. 2015-05-15
Interface language
Language: Russian (1049)
Translated by: F. Phoenix, Andrey_A_A, VladSh, YuS
**************************************************/
...
sMnuAPFont = 'Шрифт (Вид->Шрифт)'; //new
...
Offline
Site Admin
Posts: 6311 Joined: Thu Jul 06, 2006 7:20 am
Post
by Instructor » Sat May 16, 2015 2:52 pm
KDJ wrote: Can you still take into account this
Done .
Here is also
test version of AkelPad with implemented FRF_ALLFILES.
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Sat May 16, 2015 5:41 pm
Instructor
Thanks, everything works fine.
---
FindReplaceEx.js
Updated Russian translation by
YuS .
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Sun May 17, 2015 4:46 pm
FindReplaceEx.js
Added:
- possibility of naming the batches (via context menu or F2),
- context menu for batch tabs.
Offline
Posts: 1949 Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland
Post
by KDJ » Mon May 18, 2015 7:34 pm
Instructor
I'm trying "Batch replace" without "Replace" dialog and I encountered a small problem.
Text for test: aaaa
Caret at 3 position (offset 1 based).
Replace:
AkelPad.TextReplace(0, "a", "bc", 0x00100000 /*FRF_UP*/, 1);
or
AkelPad.TextReplace(0, "a", "bc", 0x00180000 /*FRF_UP|FRF_REGEXP*/, 1);
After replacement, in the first case the caret is at 5 position, in the second case at 3.