Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:Не хватает одного пробела в начале, т.е. должно быть [...]
Надо добавить -removeSpaces=false к аргументам.
То есть это обратная сторона -addSpaces – когда-то это был один -noSpaces (там по коду до сих пор есть проверка на случай старого вызова), но потом мне подумалось, что удобнее будет разделить.

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

Post by Instructor »

Infocatcher
С "-removeSpaces=false" работает как надо, благодарю.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

InsertDateFromCalendar.js
Added:
- buttons "OK" and "Options",
- x64 version.
Improved working on Win7.

Offline
Posts: 176
Joined: Sat Dec 24, 2011 4:05 pm

Post by F. Phoenix »

KDJ, I found a mistake in FindFiles.js translation:
sHlpAlternative = "одна из альтнатив: ab либо xy";
should be
sHlpAlternative = "одна из альтернатив: ab либо xy";

Complete file:

Code: Select all

/*****************************************
FindFiles.js - ver. 2013-09-14
Interface language
Language:      Russian (1049)
Translated by: Averin Andrey & F. Phoenix
******************************************/
sTxtScriptName  = "Поиск файлов";
sTxtDir         = "&Каталог";
sTxtCurrent     = "&Текущий";
sTxtBrowse      = "&Выбрать...";
sTxtSubDirs     = "Подкаталоги &уровень:";
sTxtAll         = "Все";
sTxtFileName    = "&Имя файла";
sTxtWildcards   = "(поддерживаются шаблоны: *?)";
sTxtRegExp      = "Регулярные выражения";
sTxtTextInFile  = "&Текст в файле";
sTxtNotName     = "Кроме этих имён";
sTxtMatchCase   = "С учетом регистра";
sTxtMultiline   = "Многострочно";
sTxtNotContain  = "Не содержащие текст";
sTxtInStreams   = "Включить NTFS потоки";
sTxtSkipBinary  = "Не искать в бинарных";
sTxtSkipLarger  = "Не искать в файлах крупнее:";
sTxtFiles       = "Файлы";
sTxtSearch      = "Искать";
sTxtEdit        = "Правка";
sTxtCopyList    = "Копировать";
sTxtClearList   = "Очистить";
sTxtSettings    = "Настройки";
sTxtClose       = "Закрыть";
sTxtChooseDir   = "Выберите каталог:";
sTxtNoFiles     = "<нет файлов>";
sTxtSeparateWnd = "Запустить в отдельном окне";
sTxtKeepFiles   = "Вывод списка файлов";
sTxtPathShow    = "Показать полный путь в списке файлов";
sTxtDirNoExist  = "Каталог не существует.";
sTxtFileNoExist = "Файлы не существуют.";
sTxtErrorRE     = "Ошибка в регулярном выражении.";
sTxtByteSymbol  = "Б";
sTxtNTFSStream  = "Поток NTFS";
sTxtWait        = "Подождите...";
sHlpAnyChar     = "любой одиночный символ";
sHlpAnyString   = "любая подстрока";
sHlpSemicolQuot = "точка с запятой (если внутри кавычек)";
sHlpListSepar   = "разделитель списка имен (вне кавычек)";
sHlpAnyChar_NL  = "любой символ, кроме \\n";
sHlpDigit       = "цифра [0-9]";
sHlpNonDigit    = "не цифра [^0-9]";
sHlpWhiteSp     = "пробельный символ [ \\f\\n\\r\\t\\v]";
sHlpNonWhiteSp  = "непробельный символ";
sHlpWordChar    = "словесный символ [A-Za-z0-9_]";
sHlpNonWordChar = "несловесный символ";
sHlpNULL        = "нулевой символ";
sHlpFF          = "перевод страницы \\x0C";
sHlpNL          = "перевод строки \\x0A";
sHlpCR          = "возврат каретки \\x0D";
sHlpTab         = "табуляция \\x09";
sHlpVTab        = "вертикальная табуляция \\x0B";
sHlpCharHex     = "символ с кодом FF";
sHlpUniCharHex  = "символ юникода 00FF";
sHlpBegin       = "начало строки или текста";
sHlpEnd         = "конец строки или текста";
sHlpWordBoun    = "граница слова";
sHlpNonWordBoun = "не граница слова";
sHlpAlternative = "одна из альтернатив: ab либо xy";
sHlpCharSet     = "набор символов, нужен любой из них";
sHlpNegCharSet  = "исключающий набор символов";
sHlpRange       = "диапазон символов от a до z";
sHlpNegRange    = "исключающий диапазон";
sHlpCapture     = "запоминающая скобка";
sHlpNotCapture  = "незапоминающая скобка";
sHlpFollow      = "далее следует ab";
sHlpNotFollow   = "далее не следует ab";
sHlpBackrefer   = "обратная ссылка";
sHlpZeroOrOne   = "0 или 1 раз";
sHlpZeroOrMore  = "0 или более раз";
sHlpOneOrMore   = "1 или более раз";
sHlpexactly     = "ровно 3 раза";
sHlpAtLeast     = "не менее 3 раз";
sHlpFromTo      = "от 3 до 7 раз";
sHlpSpecChars   = "()[]{}^$.?+*|\\ специальные символы";

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

F. Phoenix
Thanks, corrected Russian translation already uploaded: FindFiles_1049.lng

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »


Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

SearchReplace.js (Akel 4.8.5). Команда Find All. Номер найденной строки в Log::Output на единицу больше чем реальный в основном окне. Скриншот. Так и должно быть?

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

Post by Instructor »

yozhic
Не воспроизводится. Возможно у вас включен перенос по словам и активен флаг 2 ручного параметра StatusPosType.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
Да, это из-за переноса по словам (StatusPosType был 0). Большое спасибо.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

AkelPadMethodsView.js
Added: option "Run in separate window" in the menu.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

How to capture from edit window:
WM_NOTIFY -> AEN_MODIFY,
WM_COMMAND -> EN_CHANGE.

The following code does not work:

Code: Select all

var hScript  = AkelPad.ScriptHandle(WScript.ScriptName, 3 /*SH_FINDSCRIPT*/);
var hEditWnd = AkelPad.GetEditWnd();

if (hScript && AkelPad.ScriptHandle(hScript, 13 /*SH_GETMESSAGELOOP*/)) //script already is running, so close it
  AkelPad.ScriptHandle(hScript, 33 /*SH_CLOSESCRIPT*/);
else
{
  AkelPad.SendMessage(hEditWnd, 3226 /*AEM_SETEVENTMASK*/, 0, 0x00000040 /*AENM_MODIFY*/);
  AkelPad.SendMessage(hEditWnd, 1093 /*EM_SETEVENTMASK*/, 0, 0x1 /*ENM_CHANGE*/);
  AkelPad.WindowSubClass(hEditWnd, EditCallback, 273 /*WM_COMMAND*/, 78 /*WM_NOTIFY*/);
  AkelPad.ScriptNoMutex();
  AkelPad.WindowGetMessage();
  AkelPad.WindowUnsubClass(hEditWnd);
}

function EditCallback(hWnd, uMsg, wParam, lParam)
{
  if ((uMsg == 273 /*WM_COMMAND*/) || (uMsg == 78 /*WM_NOTIFY*/)) WScript.Echo(uMsg);
  return 0;
}

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

Post by FeyFre »

KDJ, this(WM_COMMAND,WM_NOTIFY, and other such notifications) are sent by edit windows into its parent window, not into itself. And you subclassing editwindow itself. You must subclass main window, or frame window(depending on mode: SDI/MDI/PMDI). (see docs:

Code: Select all

AkelPad.WindowSubClass(hHandle,function,...)
hHandle can be any real window handle or special values:
      1   //WSC_MAINPROC   Install capture for main window messages.
      2   //WSC_EDITPROC   Install capture for all edit windows messages.
      3   //WSC_FRAMEPROC  Install capture for all MDI frames messages.
..)

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

FeyFre
Oh indeed, thank you very much.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

AkelPadManualSettings.js
Fixed: AkelPad hangs when you changes TabOptionsMDI from 256 (standard tab style) to 512 (button tab style).

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

Post by Infocatcher »

Locked