Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

I think that if to use a common repository for all command lines and give each row a unique identifier, it is possible. But this is not a task for scripts.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ
Can you alter the RegExpTestJS.js to use the language (lng) files? This is sorely lacking :)

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

Post by KDJ »

RegExpTestJS.js especially for VladSh.
Added an external file with translation.
But I guess not everything can be translated.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ
Thank you!
All translate is not necessary. We need only the basic elements of the interface and help.
I'll try to translate))

Append:
Something that happened :):

Code: Select all

/********************************
RegExpTestJS.js - ver. 2012-09-05
Interface language
Language:      Russian (1049)
Translated by: collective creativity :)
*********************************/
pTxtCaption   = "Тестирование регулярных выражений...";
pTxtRegExp    = "Регулярное выражение (RE)";
pTxtSource    = "RE.source";
pTxtEscape    = "&Escape";
pTxtUnEscape  = "&UnEscape";
pTxtRE        = "RE";
pTxtIgCase    = "&ignoreCase";
pTxtGlobal    = "&global";
pTxtMultiL    = "&multiline";
pTxtNewLine   = "New line:";
pTxtCollect   = "&Collection";
pTxtNLWin     = "Win (\\r\\n)";
pTxtNLUnix    = "Unix (\\n)";
pTxtNLMac     = "Mac (\\r)";
pTxtString    = "Строка с данными для обработки (Str)";
pTxtAction    = "Действие";
pTxtMeTest    = "RE.test(Str)";
pTxtMeExec    = "RE.exec(Str)";
pTxtMeSearch  = "Str.search(RE)";
pTxtMeMatch   = "Str.match(RE)";
pTxtMeSplit   = "Str.split(RE)";
pTxtMeReplace = "Str.replace(RE,With):";
pTxtResult    = "Результат";
pTxtLastInd   = "RE.lastIndex=";
pTxtResetInd  = "&Reset index";
pTxtArray     = "Array";
pTxtEmpArray  = "empty Array";
pTxtGlobPro   = "Свойства глобального объекта RegExp";
pTxtTest      = "Тестировать";
pTxtHelp      = "Справка";
pTxtOpaqMinus = "Прозрачн. +";
pTxtOpaqPlus  = "Прозрачн. -";
pTxtClose     = "Закрыть";
pTxtCopyPaste = "Copy/Paste";
pTxtCopy      = "Copy";
pTxtCopyCB    = "Копировать в буфер обмена";
pTxtCopyAP    = "Вставить в окно редактирования AkelPad";
pTxtPasteCB   = "Вставить из буфера обмена";
pTxtPasteAP   = "Вставить из окна редактирования AkelPad";
pTxtNoRE      = "Регулярное выражение отсутствует."
pTxtNoStr     = "Строка для тестирования отсутствует.";
pTxtRECollect = "Частоиспользуемые регулярные выражения...";
pTxtName      = "Наименование";
pTxtValue     = "Значение";
pTxtAdd       = "Add (Ins)";
pTxtRename    = "Rename (F2)";
pTxtDelete    = "Delete (Del)";
pTxtOK        = "OK (Enter)";
pTxtAddRE     = "Добавление RegExp...";
pTxtRenRE     = "Переименование RegExp...";
pTxtNewName   = "Новое имя";
pTxtREExist   = "Регулярное выражение под данным именем уже существует: ";
pTxtNameExist = "Данное наименование уже существует: ";
pTxtREHelp    = "Справка RegExp...";
pTxtHelpText  = "\tМодификаторы, использующиеся для поиска\r\ni\t\tне различать строчные и заглавные буквы\r\ng\t\tглобальный поиск (обрабатываются все совпадения с шаблоном поиска)\r\nm\t\tмногострочный поиск\r\n\r\n\tНаборы символов, использующиеся для поиска\r\nВыражение\tОписание\r\n[abc]\t\tНайти любой, указанный в скобках, символ\r\n[^abc]\t\tНайти любой символ, исключая те, что в скобках\r\n[0-9]\t\tНайти любую цифру от 0 до 9\r\n[A-Z]\t\tНайти любой символ в верхнем регистре от A до Z\r\n[a-z]\t\tНайти любой символ в нижнем регистре от a до z\r\n[A-z]\t\tНайти любой символ от A в верхнем регистре до z в нижнем регистре\r\n[adgk]\t\tНайти любой символ из заданного набора\r\n[^adgk]\t\tНайти любой символ кроме данного набора\r\n(red|blue|green)\tНайти любое из перечисленных вхождений\r\n\r\n\tСпециальные метасимволы\r\n.\t\tНайдёт любой символ, кроме переводов строк: \\n, \\r, \\u2028 или \\u2029 (можно использовать [\\s\\S] для поиска любого символа, включая переводы строк)\r\n\\w\t\tНайдёт любой символ латинского алфавита, включая буквы, цифры и знак подчеркивания\r\n\\W\t\tНайдет любой не-(лат.)словесный символ\r\n\\d\t\tНайдёт цифру из любого алфавита (у нас же юникод); испльзуйте [0-9], чтобы найти только обычные цифры\r\n\\D\t\tНайдет нецифровой символ (все алфавиты)\r\n\\s\t\tНайдет любой пробельный символ, включая пробел, табуляцию, переводы строки и другие юникодные пробельные символы\r\n\\S\t\tНайдет любой символ, кроме пробельного\r\n\\b\t\tНаходит границу слов латинских алфавитов, например пробел; не путать с [\\b]!\r\n\\B\t\tНаходит совпадения не по границам слов\r\n\\0\t\tНайдет символ NUL; не добавляйте в конец другие цифры\r\n\\n\t\tНаходит символ новой строки\r\n\\f\t\tНаходит символ прогона (form-feed)\r\n\\r\t\tНаходит символ возврата каретки\r\n\\t\t\tНаходит символ обычной табуляции\r\n\\v\t\tНаходит символ вертикальной табуляции\r\n\\hhh\t\tНаходит символ, заданный восьмеричным числом hhh\r\n\\xhh\t\tНаходит символ, заданный шестнадцатиричным числом, с кодом hh (2 шестнадцатиричных цифры)\r\n\\uhhhh\t\tНаходит юникодный символ, заданный шестнадцатиричным числом, с кодом hhhh (4 шестнадцатиричных цифры)\r\n\r\n\tКвантификаторы\r\n^\t\tОбозначает начало входных данных; если установлен флаг многострочного поиска \"m\", то также сработает при начале новой строки\r\n$\t\tОбозначает конец входных данных; если установлен флаг многострочного поиска, то также сработает в конце строки\r\nx(?=y)\t\tНаходит x, только если за x следует y\r\nx(?!y)\t\tНаходит x, только если за x не следует y\r\n+\t\tОбозначает повторение предшествующего элемента 1 или более раз, эквивалентно {1,}\r\n*\t\tОбозначает повторение предшествующего элемента 0 или более раз\r\n?\t\tОбозначает, что предшествующий элемент может как присутствовать, так и отсутствовать\r\n{n}\t\tНаходит ровно n повторений предшествующего элемента\r\n{n,}\t\tНаходит n и более повторений предшествующего элемента\r\n{n,m}\t\tНаходит от n до m повторений предшествующего элемента\r\n\r\n\tСвойства объекта RegExp\r\nglobal\t\tПоказывает, был ли включен флаг поиска всех совпадений \"g\"\r\nignoreCase\tПоказывает, был ли включен флаг регистронезависимого поиска \"i\"\r\nmultiline\t\tПоказывает, был ли включен флаг многострочного поиска \"m\"\r\nlastIndex\t\tИндекс, с которого начинать следующий поиск\r\nsource\t\tТекст RegExp-паттерна\r\n\r\n\tМетоды объекта RegExp\r\ncompile()\t\tКомпилирует регулярное выражение\r\nexec()\t\tПри совпадении возвращает массив и обновляет свойства объекта RegExp, если совпадений нет, возвращает null\r\ntest()\t\tИспользуется, чтобы выяснить, есть ли совпадения регулярного выражения со строкой (аналогично String#search), возвращает true или false; чтобы получить сами совпадения, используйте exec или String#match\r\ntoString()\t\tВыводит строковое представление объекта RegExp, т.е. \"/паттерн/\"\r\n\t\t_______________________________\r\n\tИсточники: http://www.w3schools.com, http://javascript.ru";

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

Post by Instructor »

Infocatcher wrote:У меня задан псевдоним для неизвестного файла. И я ожидал его получить на новом несохраненном файле, но нет – пустую строку выдает.
В новой версии будет выдавать.

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

Post by Infocatcher »

Instructor wrote:В новой версии будет выдавать.
А в случае с сохраненным файлом и автоматическом определении по расширению?

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

Post by KDJ »

VladSh
Can you format the help text e.g.:

Code: Select all

pTxtHelpText  = "\tМодификаторы, использующиеся для поиска\r\ni\t\tне различать строчные и заглавные буквы\r\ng\t\tглобальный поиск (обрабатываются все совпадения\r\n\t\tс шаблоном поиска)\r\nm\t\tмногострочный поиск\r\n\r\n\tНаборы символов, использующиеся для поиска\r\nВыражение\tОписание\r\n[abc]\t\tНайти любой, указанный в скобках, символ\r\n[^abc]\t\tНайти любой символ, исключая те, что в скобках\r\n[0-9]\t\tНайти любую цифру от 0 до 9\r\n[A-Z]\t\tНайти любой символ в верхнем регистре от A до Z\r\n[a-z]\t\tНайти любой символ в нижнем регистре от a до z\r\n[A-z]\t\tНайти любой символ от A в верхнем регистре до z\r\n\t\tв нижнем регистре\r\n[adgk]\t\tНайти любой символ из заданного набора\r\n[^adgk]\t\tНайти любой символ кроме данного набора\r\n(red|blue|green)\tНайти любое из перечисленных вхождений\r\n\r\n\tСпециальные метасимволы\r\n.\t\tНайдёт любой символ, кроме переводов строк: \\n, \\r,\r\n\t\t\\u2028 или \\u2029 (можно использовать [\\s\\S] для\r\n\t\tпоиска любого символа, включая переводы строк)\r\n\\w\t\tНайдёт любой символ латинского алфавита, включая\r\n\t\tбуквы, цифры и знак подчеркивания\r\n\\W\t\tНайдет любой не-(лат.)словесный символ\r\n\\d\t\tНайдёт цифру из любого алфавита (у нас же юникод);\r\n\t\tиспльзуйте [0-9], чтобы найти только обычные цифры\r\n\\D\t\tНайдет нецифровой символ (все алфавиты)\r\n\\s\t\tНайдет любой пробельный символ, включая пробел,\r\n\t\tтабуляцию, переводы строки и другие юникодные\r\n\t\tпробельные символы\r\n\\S\t\tНайдет любой символ, кроме пробельного\r\n\\b\t\tНаходит границу слов латинских алфавитов, например\r\n\t\tпробел; не путать с [\\b]!\r\n\\B\t\tНаходит совпадения не по границам слов\r\n\\0\t\tНайдет символ NUL; не добавляйте в конец другие\r\n\t\tцифры\r\n\\n\t\tНаходит символ новой строки\r\n\\f\t\tНаходит символ прогона (form-feed)\r\n\\r\t\tНаходит символ возврата каретки\r\n\\t\t\tНаходит символ обычной табуляции\r\n\\v\t\tНаходит символ вертикальной табуляции\r\n\\hhh\t\tНаходит символ, заданный восьмеричным числом hhh\r\n\\xhh\t\tНаходит символ, заданный шестнадцатиричным\r\n\t\tчислом, с кодом hh (2 шестнадцатиричных цифры)\r\n\\uhhhh\t\tНаходит юникодный символ, заданный\r\n\t\tшестнадцатиричным числом, с кодом hhhh\r\n\t\t(4 шестнадцатиричных цифры)\r\n\r\n\tКвантификаторы\r\n^\t\tОбозначает начало входных данных; если установлен\r\n\t\tфлаг многострочного поиска \"m\", то также сработает\r\n\t\tпри начале новой строки\r\n$\t\tОбозначает конец входных данных; если установлен\r\n\t\tфлаг многострочного поиска, то также сработает\r\n\t\tв конце строки\r\nx(?=y)\t\tНаходит x, только если за x следует y\r\nx(?!y)\t\tНаходит x, только если за x не следует y\r\n+\t\tОбозначает повторение предшествующего элемента\r\n\t\t1 или более раз, эквивалентно {1,}\r\n*\t\tОбозначает повторение предшествующего элемента\r\n\t\t0 или более раз\r\n?\t\tОбозначает, что предшествующий элемент может\r\n\t\tкак присутствовать, так и отсутствовать\r\n{n}\t\tНаходит ровно n повторений предшествующего\r\n\t\tэлемента\r\n{n,}\t\tНаходит n и более повторений предшествующего\r\n\t\tэлемента\r\n{n,m}\t\tНаходит от n до m повторений предшествующего\r\n\t\tэлемента\r\n\r\n\tСвойства объекта RegExp\r\nglobal\t\tПоказывает, был ли включен флаг поиска всех\r\n\t\tсовпадений \"g\"\r\nignoreCase\tПоказывает, был ли включен флаг\r\n\t\tрегистронезависимого поиска \"i\"\r\nmultiline\t\tПоказывает, был ли включен флаг многострочного\r\n\t\tпоиска \"m\"\r\nlastIndex\t\tИндекс, с которого начинать следующий поиск\r\nsource\t\tТекст RegExp-паттерна\r\n\r\n\tМетоды объекта RegExp\r\ncompile()\t\tКомпилирует регулярное выражение\r\nexec()\t\tПри совпадении возвращает массив и обновляет\r\n\t\tсвойства объекта RegExp, если совпадений нет,\r\n\t\tвозвращает null\r\ntest()\t\tИспользуется, чтобы выяснить, есть ли совпадения\r\n\t\tрегулярного выражения со строкой (аналогично\r\n\t\tString#search), возвращает true или false; чтобы\r\n\t\tполучить сами совпадения, используйте exec или\r\n\t\tString#match\r\ntoString()\t\tВыводит строковое представление объекта RegExp,\r\n\t\tт.е. \"/паттерн/\"\r\n\t________________________________________________\r\n\tИсточники: http://www.w3schools.com,  http://javascript.ru";

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

Post by Instructor »

Infocatcher wrote:А в случае с сохраненным файлом и автоматическом определении по расширению?
Всё будет :)

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

KDJ
Thank you, and truth is better.

Instructor
Чувствуется, что релиз будет просто чумовой! 8)

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

VladSh, скрипт ConsoleRun.js ведёт себя странно, либо опрокидывает AkelPad, либо подвисает вся система - с чем это может быть связано? раньше всё работало

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

Post by KDJ »

RegExpTestJS.js
Added Russian translation.
Thanks to VladSh.

Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Andrey_A_A wrote:скрипт ConsoleRun.js ведёт себя странно, либо опрокидывает AkelPad, либо подвисает вся система - с чем это может быть связано? раньше всё работало
Проверил, действительно. Причём иногда почему-то работает.
Я не знаю, что это может быть. Ничего в коде, работающем с API, не менял. Думаю, что траблы в самой проге. У меня, к примеру, уже парочку версий прога часто стала падать при вызове ChmKeyword.js.

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

Post by Instructor »

VladSh
В ShowMenuCommon.js находится какая-то старая реализация функции ShowMenu. В новой версии плагина будет возвращен скрипт ShowMenu.js как подключаемая библиотека.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

как с помощью метода

Code: Select all

OpenFile(pFile[, nFlags][, nCodePage][, bBOM]);
сделать следующее:
1. если файл бинарный, то не открывать и не запрашивать
2. если файл бинарный, то открывать и так же без запроса

Code: Select all

  nFlags
    0x1  //OD_ADT_BINARY_ERROR     Проверить является ли файл бинарным.
вставлял, ничего не происходит...

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

Post by KDJ »

Andrey_A_A

Code: Select all

//var sFile = AkelPad.GetAkelDir() + "\\AkelPad.ini";
var sFile = AkelPad.GetAkelDir() + "\\AkelPad.exe";
var nChoice;
var nDetect;

nChoice = AkelPad.MessageBox(AkelPad.GetMainWnd(), sFile, "", 32 /*MB_ICONQUESTION*/, 0,
            8, "1. если файл бинарный, то не открывать и не запрашивать", 0x1 /*BMB_DEFAULT*/,
            9, "2. если файл бинарный, то открывать и так же без запроса", 0,
            2 /*IDCANCEL*/, "&Cancel", 0);

if (nChoice != 2)
{
  nDetect = DetectBinaryFile(sFile);

  if (nDetect == 0 /*EDT_SUCCESS*/)
    WScript.Echo("This is not a binary file.");
  else if (nDetect == -1 /*EDT_OPEN*/)
    WScript.Echo("Can't open file.");
  else if (nDetect == -2 /*EDT_ALLOC*/)
    WScript.Echo("Can't allocate buffer.");
  else if (nDetect == -3 /*EDT_READ*/)
    WScript.Echo("Read file error.");
  else if (nDetect == -4 /*EDT_BINARY*/)
  {
    if (nChoice == 9)
      AkelPad.OpenFile(sFile, 0);
  }
}

function DetectBinaryFile(sFile)
{
  var lpFile = AkelPad.MemStrPtr(sFile);
  var lpDF   = AkelPad.MemAlloc(20); //sizeof(DETECTFILEW)
  var nDetect;

  AkelPad.MemCopy(lpDF, lpFile, 3 /*DT_DWORD*/); //File to detect.
  AkelPad.MemCopy(lpDF + 4, 1024, 3 /*DT_DWORD*/); //How many bytes will be checked.
  AkelPad.MemCopy(lpDF + 8, 1 /*ADT_BINARY_ERROR*/, 3 /*DT_DWORD*/); //dwFlags

  nDetect = AkelPad.SendMessage(AkelPad.GetMainWnd(), 1177 /*AKD_DETECTFILEW*/, 0, lpDF);

  AkelPad.MemFree(lpFile);
  AkelPad.MemFree(lpDF);

  return nDetect;
}
Locked