Scripts discussion (3)
- Author
- Message
-
Offline
- Posts: 202
- Joined: Sat Mar 28, 2015 2:36 pm
- Location: Russia
LonerD
В этом скрипте или Акелпаде есть визуальный баг...
После строки 236:
AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/);
Вставте:
SendMessage(hEditWnd, 3377 /*AEM_UPDATECARET*/, 0, 0);
В этом скрипте или Акелпаде есть визуальный баг...
После строки 236:
AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/);
Вставте:
SendMessage(hEditWnd, 3377 /*AEM_UPDATECARET*/, 0, 0);
Last edited by Kley on Sun Apr 05, 2015 8:54 am, edited 1 time in total.
-
Offline
- Posts: 1949
- Joined: Sat Mar 06, 2010 7:40 pm
- Location: Poland
LinesSelectCopyMoveDuplicate.js
Fixed: after script execution, caret is not visible if word wrap is on.
Kley
Thanks for localization of this bug.
Fixed: after script execution, caret is not visible if word wrap is on.
Kley
Thanks for localization of this bug.
-
Offline
- Posts: 171
- Joined: Thu Dec 01, 2011 11:15 pm
- Location: Россия
Не совсем. То есть это вариант, но для меня неудобный.Skif_off wrote:SmartSel::NoSelEOL не вариант?
Часто тыкаю левой кнопкой мыши левее строк (в столбце нумерации строк), выделяется целая строка, я её вырезаю (Ctrl+X) и вставляю в другом месте. При включённом NoSelEOL после вырезания остаётся пустая строка, которую нужно вручную удалять...
В то же время для скрипта дублирования строк было бы удобней не учитывать этот самый последний символ перевода строки. То есть я опять же кликаю левой кнопкой мыши в столбце с номерами строк (выделяю нужные строки) и нажимаю хоткей для дублирования строк.
Алгоритмически я понимаю, что нужно вставить две проверки - 1) есть ли выделение, 2) и если есть, то находится ли курсор в начале строки (и если находится - то исключить эту строку из обработки). Вот только как этот фрагмент проверки оформить на js - не знаю.
-
Offline
- Posts: 1162
- Joined: Sun Oct 20, 2013 11:44 am
LonerD
Зачем выделять строку? Достаточно поставить на неё курсор и вызвать команду.
Несколько же строк дублировать почти так же: не выделять от начала первой до конца крайней, достаточно
(с DuplicateLines.js не сработает).
Я не отговариваю
, привык так делать, хочу понять, чем ваш вариант удобнее.
Зачем выделять строку? Достаточно поставить на неё курсор и вызвать команду.
Несколько же строк дублировать почти так же: не выделять от начала первой до конца крайней, достаточно
(с DuplicateLines.js не сработает).
Я не отговариваю

-
Offline
- Posts: 202
- Joined: Sat Mar 28, 2015 2:36 pm
- Location: Russia
Подскажите, пожалуйста, как правильно (это только пример):
Баг(?) в скрипт: 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.
Баг(?) в скрипт: 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.
-
Offline
- Posts: 1162
- Joined: Sun Oct 20, 2013 11:44 am
Kley
1/2. Так и сделать: назвать скрипт, проблему, как воспроизвести
Обращаться можно сразу к автору.
3. Можно, только лучше в теге code, если можно.
Обычно автор - тот, кто добавил скрипт в коллекцию.
Упомянутый мой, но это первый мой скрипт, поэтому пожелал упомянуть всех, кто помогал
В чём, собственно, баг? Посмотреть смогу немного позже, когда доберусь до компа.
1/2. Так и сделать: назвать скрипт, проблему, как воспроизвести

3. Можно, только лучше в теге code, если можно.
Обычно автор - тот, кто добавил скрипт в коллекцию.
Упомянутый мой, но это первый мой скрипт, поэтому пожелал упомянуть всех, кто помогал

-
Offline
- Posts: 1162
- Joined: Sun Oct 20, 2013 11:44 am
Kley
Это не ошибка, так и задумано, чтобы можно было ввести в поле ввода ComboBox сразу несколько символов из InsertUnicodeChar_templates.csv. Для очистки добавлен соответствующий пункт и
Долго думал и решил, что один раз нажать Очистить быстрее, чем вызывать скрипт несколько раз. В любом случае, скрипт выложен публично и я не имею ничего против того, чтобы кто-то менял его так, как считает удобным для себя 
Это не ошибка, так и задумано, чтобы можно было ввести в поле ввода ComboBox сразу несколько символов из InsertUnicodeChar_templates.csv. Для очистки добавлен соответствующий пункт и
Code: Select all
if (aMenu[nCmd][1] == sTxtEmpty)
oSys.Call("User32::SendMessageW", aDlg[IDTEXTCB].HWND, 12 /*WM_SETTEXT*/, 0, "");

-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 1162
- Joined: Sun Oct 20, 2013 11:44 am
- InsertUnicodeChar.js
Добавлен аргумент -add=0/1. По умолчанию вставка шаблона идёт с заменой содержимого поля ввода ComboBox, иначе - дописывается.
Добавлен аргумент -add=0/1. По умолчанию вставка шаблона идёт с заменой содержимого поля ввода ComboBox, иначе - дописывается.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact: