Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message

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

Post by KDJ »

FindReplaceEx.js

In Find/Replace dialog added "More" button and the options:
- "Replace all" closes dialog,
- Check "in selection" if selection not empty,
- Cycle search,
- Prompt.
x64 version.

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

Post by KDJ »

FindReplaceEx.js
Fixed: AkelPad hung on Win7 after pressing F1 (help for RegExp).

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

Post by Instructor »

ColumnCounter.js

Добавлено: поддержка автоматического определения разрядности числа при MinDigits = 0 (по умолчанию).
Добавлено: поддержка автоматического определения шага при Step = 0.
Добавлено: поддержка шестнадцатеричных чисел.
Добавлено: если выделена только одна строка, то выделенное число будет увеличено на величину назначенного шага.

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

Post by F. Phoenix »

KDJ, I updated Russian translation for FindReplaceEx:

Code: Select all

/**************************************
FindReplaceEx.js - ver. 2013-09-01
Interface language
Language:      Russian (1049)
Translated by: F.Phoenix
**************************************/
sTxtMore        = 'Ещё';
sTxtReplAllCD   = '"Заменить всё" закрывает диалог';
sTxtCheckInSel  = 'Отметить "В выделении" если есть выделение';
sTxtCycleSearch = 'Поиск по кругу';
sTxtPrompt      = 'Запрос';
sTxtFRTempl     = 'Шаблоны поиска и замены';
sTxtTemplates   = 'Шаблоны';
sTxtName        = 'Наименование';
sTxtFindWhat    = 'Что найти';
sTxtReplaceWith = 'Чем заменить';
sTxtMatchCase   = 'Учитывать регистр';
sTxtWholeWord   = 'Слово целиком';
sTxtRegExp      = 'Регулярные выражения';
sTxtEscSeq      = 'Esc-последовательности';
sTxt1Yes0No     = '(1 = да, 0 = нет)';
sTxtNew         = 'Создать';
sTxtAdd         = 'Добавить';
sTxtEdit        = 'Изменить';
sTxtDelete      = 'Удалить';
sTxtOK          = 'OK';
sTxtClose       = 'Закрыть';
sTxtNameExists  = 'Такое наименование шаблона уже используется.';
sTxtNoName      = 'Необходимо заполнить поле "Наименование".';
sTxtNoFindWhat  = 'Необходимо заполнить поле "Что найти".';
sTxtWantRemove  = 'Вы дейстительно хотите удалить этот шаблон?';
sHlpAnyChar     = 'любой символ (точка)';
sHlpSpecChars   = '()[]{}^$.?+*|\\ специальные символы';
sHlpFF          = 'перевод страницы \\x0C';
sHlpAnyNL       = 'перевод строки';
sHlpTab         = 'табуляция \\x09';
sHlpVTab        = 'вертикальная табуляция \\x0B';
sHlpDigit       = 'цифра [0-9]';
sHlpNonDigit    = 'не цифра [^0-9]';
sHlpWhiteSp     = 'пробельный символ [ \\f\\n\\t\\v]';
sHlpNonWhiteSp  = 'непробельный символ';
sHlpWordChar    = 'словесный символ [A-Za-z0-9_]';
sHlpNonWordChar = 'несловесный символ';
sHlpCharHex     = 'символ - код в диапазоне 0-10FFFF';
sHlpCharHex2    = 'символ - 2-значный код';
sHlpCharHex4    = 'символ - 4-значный код';
sHlpBeginLine   = 'начало строки';
sHlpEndLine     = 'конец строки';
sHlpBeginText   = 'начало документа';                        // вариант: 'начало текста'
sHlpEndText     = 'конец документа';                         // вариант: 'конец текста'
sHlpBeginRange  = 'начало диапазона поиска';
sHlpEndRange    = 'конец диапазона поиска';
sHlpWordBoun    = 'граница слова';
sHlpNonWordBoun = 'не граница слова';
sHlpAlternative = 'одна из альтернатив: ab либо xy';
sHlpCharSet     = 'набор символов, нужен любой из них';
sHlpNegCharSet  = 'исключающий набор символов';
sHlpRange       = 'диапазон символов от a до z';
sHlpNegRange    = 'исключающий диапазон';
sHlpCapture     = 'запоминающая скобка';
sHlpNotCapture  = 'незапоминающая скобка';
sHlpPreceded    = 'строка следует за ab';                    // вариант: 'ранее следует ab'
sHlpNotPreceded = 'строка не следует за ab';                 // вариант: 'ранее не следует ab'
sHlpFollowed    = 'строка предшествует ab';                  // вариант: 'далее следует ab'
sHlpNotFollowed = 'строка не предшествует ab';               // вариант: 'далее не следует ab'
sHlpBackrefer9  = 'обратная ссылка, диапазон 1-9';
sHlpBackrefer99 = 'обратная ссылка, диапазон 01-99';
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)';
sHlpNonGreedy   = 'все квантификаторы ленивы';


Btw it crushes sometimes when regex tooltip opened.

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

Post by KDJ »

F. Phoenix
Thanks, Russian translation uploaded: FindReplaceEx_1049.lng
Btw it crushes sometimes when regex tooltip opened.
Yes, but for now I do not know what is the cause.

This bug is revealed in the following case:
1. Run AkelPad and open any file.
2. Run FindReplaceEx.js.
3. Switch to another task (eg. Firefox).
4. Switch to AkelPad.
5. Open RegExp help (F1 key or click link "?").
6. Wait a few seconds.
7. AkelPad is frozen.

To unfreeze AkelPad:
1. Switch to another task.
2. Switch to AkelPad.

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

Post by KDJ »


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

Post by Instructor »

KDJ wrote:To unfreeze AkelPad:

Code: Select all

  if (false/*bFRT*/)
  {
    oSys.Call("User32::SetFocus", hEdit);
...
Looks not frozen :)

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

Post by KDJ »

Instructor
I don't understand this. What should I do?

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

Post by Instructor »

KDJ
In FindReplaceEx.js comment out:

Code: Select all

  //if (bFRT)
  //{
  //  oSys.Call("User32::SetFocus", hEdit);
  //  hWndOwn = hWndFRT;
  //}
  //else

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

Post by KDJ »

Instructor
It does not solve the problem.
This piece of code is executed only when is opened the window "FindReplace templates" (bFRT==1). In this case, the script is working properly.
The error occurs when the window "FindReplace templates" is closed (bFRT==0).

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

Post by Instructor »

KDJ wrote:7. AkelPad is frozen.
You should unlock main thread. For example, like this:

Code: Select all

AkelPad.WindowRegisterClass(sClassName);
AkelPad.WindowRegisterClass(sClassName + "ThreadMenu")
...
AkelPad.WindowUnregisterClass(sClassName);
AkelPad.WindowUnregisterClass(sClassName + "ThreadMenu");
...

function PostThreadMenu(wParam, lParam)
{
  hWndThreadMenu = oSys.Call("user32::CreateWindowExW", 0, sClassName + "ThreadMenu", "", 0x80000000 /*WS_POPUP*/, 0, 0, 0, 0, hMainWnd, 0, hInstDLL, CallbackThreadMenu);
  PostMessage(hWndThreadMenu, 3000, wParam, lParam);
}

function CallbackThreadMenu(hWnd, uMsg, wParam, lParam)
{
  if (uMsg == 3000)
  {
    RegExpHelp(wParam, lParam);
    oSys.Call("User32::DestroyWindow", hWnd);
  }
}
And replace RegExpHelp with PostThreadMenu.

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

Post by KDJ »

Instructor
This is what I needed, thank you very much.

FindReplaceEx.js
Fixed bug that occurs when RegExp help is displayed.

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

Post by Instructor »

Infocatcher
Вызов:

Code: Select all

Call("Scripts::Main", 1, "toggleComments.js", "-method=0 -addSpaces=false -preferLineComments=true -lineCommentsAtStart=false -checkSyntax=0")

Code: Select all

//  1
//  2
Результат:

Code: Select all

 1
 2
Не хватает одного пробела в начале, т.е. должно быть:

Code: Select all

  1
  2

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

Post by KDJ »

PluginText.js
Aded:
- SpecialCharText,
- x64 verion.
Locked