Page 50 of 99

Posted: Sun Apr 05, 2015 8:43 am
by Kley
LonerD
В этом скрипте или Акелпаде есть визуальный баг...
После строки 236:
AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/);
Вставте:
SendMessage(hEditWnd, 3377 /*AEM_UPDATECARET*/, 0, 0);

Posted: Sun Apr 05, 2015 8:43 am
by Skif_off
LonerD
SmartSel::NoSelEOL не вариант?

Posted: Sun Apr 05, 2015 10:24 am
by KDJ
LinesSelectCopyMoveDuplicate.js
Fixed: after script execution, caret is not visible if word wrap is on.

Kley
Thanks for localization of this bug.

Posted: Sun Apr 05, 2015 12:15 pm
by LonerD
Skif_off wrote:SmartSel::NoSelEOL не вариант?
Не совсем. То есть это вариант, но для меня неудобный.
Часто тыкаю левой кнопкой мыши левее строк (в столбце нумерации строк), выделяется целая строка, я её вырезаю (Ctrl+X) и вставляю в другом месте. При включённом NoSelEOL после вырезания остаётся пустая строка, которую нужно вручную удалять...

В то же время для скрипта дублирования строк было бы удобней не учитывать этот самый последний символ перевода строки. То есть я опять же кликаю левой кнопкой мыши в столбце с номерами строк (выделяю нужные строки) и нажимаю хоткей для дублирования строк.

Алгоритмически я понимаю, что нужно вставить две проверки - 1) есть ли выделение, 2) и если есть, то находится ли курсор в начале строки (и если находится - то исключить эту строку из обработки). Вот только как этот фрагмент проверки оформить на js - не знаю.

Posted: Sun Apr 05, 2015 12:39 pm
by Skif_off
LonerD
Зачем выделять строку? Достаточно поставить на неё курсор и вызвать команду.
Несколько же строк дублировать почти так же: не выделять от начала первой до конца крайней, достаточно


1 | строка
2 | строка
3 | с|трока

DuplicateLines.js не сработает).
Я не отговариваю :), привык так делать, хочу понять, чем ваш вариант удобнее.

Posted: Sun Apr 05, 2015 1:00 pm
by Kley
Подскажите, пожалуйста, как правильно (это только пример):

Баг(?) в скрипт: InsertUnicodeChar.js

1. Сказать, что в скрипте есть баг, и как он проявляется.

2. Подсказать, ВОЗМОЖНО ОШИБОЧНО, где он:

oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWNDE, 0xB1 /*EM_SETSEL*/, nGetTextLength, nGetTextLength);
(конец функции Templates)

3. Можно ли подсказать, возможно ошибочно и НЕ ЛУЧШИМ ОБРАЗОМ, как сам поправил скрипт:

Удалил строку 102: aDlg[IDTEXTCB].HWNDE = GetComboBoxEditWnd(aDlg[IDTEXTCB].HWND);
Удалил функцию GetComboBoxEditWnd;
В конце функции Templates заменил:
else
{
var nGetTextLength = oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWNDE, 14 /*WM_GETTEXTLENGTH*/, 0, 0);
oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWNDE, 0xB1 /*EM_SETSEL*/, nGetTextLength, nGetTextLength);
oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWNDE, 194 /*EM_REPLACESEL*/, 1, aMenu[nCmd][1]);
}
На:
else
oSys.Call("user32::SetWindowTextW", aDlg[IDTEXTCB].HWND, aMenu[nCmd][1]);

p.s. В данном случаи не знаю к кому и обратиться. Первое сообщение видел, но:
// Authors:
// - idea & first version: Skif_off;
// - development: KDJ, VladSh, Instructor.

Posted: Sun Apr 05, 2015 1:37 pm
by Skif_off
Kley
1/2. Так и сделать: назвать скрипт, проблему, как воспроизвести :) Обращаться можно сразу к автору.
3. Можно, только лучше в теге code, если можно.

Обычно автор - тот, кто добавил скрипт в коллекцию.
Упомянутый мой, но это первый мой скрипт, поэтому пожелал упомянуть всех, кто помогал :) В чём, собственно, баг? Посмотреть смогу немного позже, когда доберусь до компа.

Posted: Sun Apr 05, 2015 2:06 pm
by Kley
Skif_off wrote:В чём, собственно, баг?
По умолчанию в ComboBox добавляется строка-код символа "002F".
При выборе символа из меню, он (символ) не заменяет "002F", а дописывается к нему: "002F00AB".

Posted: Sun Apr 05, 2015 2:16 pm
by Skif_off
Kley
Это не ошибка, так и задумано, чтобы можно было ввести в поле ввода ComboBox сразу несколько символов из InsertUnicodeChar_templates.csv. Для очистки добавлен соответствующий пункт и

Code: Select all

    if (aMenu[nCmd][1] == sTxtEmpty)
      oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWND, 12 /*WM_SETTEXT*/, 0, "");
Долго думал и решил, что один раз нажать Очистить быстрее, чем вызывать скрипт несколько раз. В любом случае, скрипт выложен публично и я не имею ничего против того, чтобы кто-то менял его так, как считает удобным для себя :)

Posted: Sun Apr 05, 2015 2:43 pm
by Kley
Skif_off
Спасибо.
Чужая Логика потемки :)

Posted: Sun Apr 05, 2015 8:46 pm
by VladSh
Skif_off, Kley
А что, нельзя скрипт унифицировать (добавить параметр, отвечающий за разное поведение)? Зачем плодить скрипты, если обе логики работы обоснованы?

Posted: Sun Apr 05, 2015 10:25 pm
by Skif_off
- InsertUnicodeChar.js
Добавлен аргумент -add=0/1. По умолчанию вставка шаблона идёт с заменой содержимого поля ввода ComboBox, иначе - дописывается.

Posted: Tue Apr 07, 2015 10:28 am
by VladSh
Instructor
Кажется, что в EvalCmd.js уже ненужна проверка и весь блок обработки /%f|%d|%a/, т.к. в скрипт поступают уже нормальные значения.

Posted: Tue Apr 07, 2015 5:51 pm
by Instructor
VladSh
Это для вызова EvalCmd.js из командной строки.

Posted: Tue Apr 07, 2015 5:54 pm
by VladSh
Instructor (Сб Фев 05, 2011 9:14 am) wrote:Благодарность за код функции getArg Infocatcher'у.
Люди, у кого-то остался самый первый вариант функции Infocatcher'a getArg? Она была без "значения по умолчанию", анализа на количество аргументов и работала просто со строкой аргументов.