My way may is strange, but simple, fast and efficient.Infocatcher wrote:Strange to check edit window without main window.
Scripts discussion (1)
- Author
- Message
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Бывает, когда набираю текст, работаю только с клавиатурой, и часто не хватает функции копирования текущего слова, т.е. того, на котором установлена каретка.
У самому писать не хочется функцию определения текущего слова, а в AkelPad'е она есть, поэтому хотелось бы её использовать.
Идея проста: написать скрипт и посадить на комбинацию клавиш (я бы посадил на Ctrl+Alt+C или Ctrl+Alt+Up), в котором примерно такой алгоритм:
- проверка, если позиция курсора и позиция каретки не совпадает, то переместить курсор в позицию каретки;
- инициировать даблклик;
- скопировать в буфер то, что выделилось;
- восстановить позицию курсора.
Не понятно, как сделать первые два пункта... подскажете?
Не возражал бы, если эту функцию включить в Clipboard-плагин, и не пришлось её писать
У самому писать не хочется функцию определения текущего слова, а в AkelPad'е она есть, поэтому хотелось бы её использовать.
Идея проста: написать скрипт и посадить на комбинацию клавиш (я бы посадил на Ctrl+Alt+C или Ctrl+Alt+Up), в котором примерно такой алгоритм:
- проверка, если позиция курсора и позиция каретки не совпадает, то переместить курсор в позицию каретки;
- инициировать даблклик;
- скопировать в буфер то, что выделилось;
- восстановить позицию курсора.
Не понятно, как сделать первые два пункта... подскажете?
Не возражал бы, если эту функцию включить в Clipboard-плагин, и не пришлось её писать
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
FeyFre "Вот фикс"
А в чём соль? Чего-то не догоняю
Upd: догнал! )))
Думаю, что если курсор стоит не на слове, то ничего выделяться/копироваться не должно.
Fr0sT
O base64.js.
Отличный стиль! Но поддерживает ли он русские буковки? Просто в инете куча вариантов base64, но очень мало корректных, т.е. чтобы и с кирилицей работало.
А в чём соль? Чего-то не догоняю
Upd: догнал! )))
Думаю, что если курсор стоит не на слове, то ничего выделяться/копироваться не должно.
Fr0sT
O base64.js.
Отличный стиль! Но поддерживает ли он русские буковки? Просто в инете куча вариантов base64, но очень мало корректных, т.е. чтобы и с кирилицей работало.
-
Offline
- Posts: 2247
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Ну дык фикс это и исправляет:Думаю, что если курсор стоит не на слове, то ничего выделяться/копироваться не должно.
1. Если курсор на слове, то выделит и запомнит.
2. Если курсор на первой букве слова, то без фикса выделяло предыдущее слово а не это. Фикс это исправил.
3. Если курсор вне слова то с фиксом ничего выделять не будет(без фикса - выделит предыдущее)
Там ещё пара краевых эффектов есть(курсор в начале текста, курсор в конце текста), но их я вспомню после того как посмотрю как я их исправил в коде SpellCheck-а(я сутки убил что-бы их выловить ).
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Хм... а у меня выделяет! Если курсор перед первой буквой, то естессно, - не выделяет. Но если слово хотя бы из 2-х букв и каретка после первой, то выделяет.FeyFre wrote:Не выделяет слово если курсор стоит на первой букве. А должен.
А если слово из одной буквы, то смысла так выделять нет, проще как обычно: Ctrl+Shift+Left либо Ctrl+Shift+Right.
Last edited by VladSh on Mon Jul 12, 2010 7:59 am, edited 1 time in total.
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
Вот, из-за этого пришлось делать две функции юникод <-> анси. Слава богу, Акель предоставляет текст только в одной кодировке (так ведь, хм?). Остаётся только перегнать из строки двухбайтовых символов в строку однобайтовых. В принципе, можно заморочиться и без промежуточной строки, но это уже потомVladSh wrote:Но поддерживает ли он русские буковки? Просто в инете куча вариантов base64, но очень мало корректных, т.е. чтобы и с кирилицей работало.
В планах поддержка других инет-кодировок, если запал не пройдёт
Last edited by Fr0sT on Fri Jul 09, 2010 7:27 pm, edited 1 time in total.
-
Offline
- Posts: 876
- Joined: Tue Jul 24, 2007 8:54 am
Уф... намучался с этой конвертацией... я знал, что с кодировками будет задница, но чтобы настолько! В общем, оптимизировал код (обработка стала быстрее в среднем на 30%), добавил проверку на длинный текст (при длине в 100к символов шуршит около 10 секунд...), добавил параметр для перекодировки из ANSI в UTF16.
Если текст был закодирован из однобайтовой кодировки или utf8, надо пользоваться параметром dec. К сожалению, не получилось всегда выдавать текст как ANSI, чтобы потом перегнать его штатными средствами Акеля - ReplaceSel обрывает строку на нулевом символе
Если текст был закодирован из однобайтовой кодировки или utf8, надо пользоваться параметром dec. К сожалению, не получилось всегда выдавать текст как ANSI, чтобы потом перегнать его штатными средствами Акеля - ReplaceSel обрывает строку на нулевом символе
-
Offline
- Posts: 3217
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact: