AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

SmartSel plugin
Goto page 1, 2, 3, 4, 5  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5399

PostPosted: Sat Jun 19, 2010 7:46 am    Post subject: SmartSel plugin Reply with quote

- При нажатии на клавишу HOME курсор перемещается на первый не пробельный символ.
- Нажатие клавиши End перемещает курсор на последний символ в строке, который не является пробелом или табуляцией.
- Исключает последний символ перевода строки (EOL) из выделенного текста.
- При нажатии на клавишу Backspace, если слева от каретки находятся только пробельные символы, то происходит удаление пробельных символов слева до позиции ближайшего первого непробельного символа сверху.

- HOME key goes to first non-space character.
- When End key is pressed, cursor jumps to last non-space/non-tab character
- Excludes last end-of-line (EOL) symbol from selected text.
- When Backspace key is pressed, if from left of the caret only whitespaces, then whitespaces are removed from left to the position of the nearest first non-space character atop.

<< Download>>


Last edited by Instructor on Sun Apr 13, 2014 6:30 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
ccaid



Joined: 15 Jun 2009
Posts: 35

PostPosted: Wed Jul 14, 2010 3:07 pm    Post subject: Reply with quote

выход каретки за края строк разрешен, SmartEnd активен — если каретка находится за краем строки, то нажатие End не приводит к её переходу к концу строки. отключение SmartEnd решает проблему, но хотелось бы продолжать им пользоваться.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2615
Location: Киев, Русь

PostPosted: Thu Jul 22, 2010 10:31 am    Post subject: Reply with quote

Instructor
Есть некторые неприятные "мелочи" у NoSelEOL, хотел бы их фикса...

1. Тройной клик на предложении.
Иногда почему-то не выделяется всё предложение.
Поиск верхней части текста производится правильно, а поиск нижней иногда сбивается, т.е. оказывается в текущей позиции курсора.
Почему это происходит я так и не понял. Сначала думал, что делаю 3-й клик чуть быстрее, но и при быстром нажатии иногда текст выделяется правильно.
Никаких хитрых символов в файле нет...


2. Странное поведение выделения на последних 4-х строках файла.
Это можно посмотреть на примере ShiftVerticaly.js (ver. 1.2).

Как воспроизвести:
Code:
 последняя-4
      последняя-3
   последняя-2
     последняя-1
Последняя строка ФАЙЛА
двигать последнюю вверх, и при перемещении предпоследней на место последней-2 у предпоследней "съедается" последний символ.
То же самое происходит, если двигать строку сверху вниз.
Т.е. есть на строках последняя-1, последняя-2 и последняя-3 у редактора (возможно у AkleEdit'а, а может быть у функции NoSelEOL) явные проблемы.

На самом деле то, что мы видим на примере выше - это мой обход ещё большего трабла с расползанием выделения, который можно увидеть если закоментировать строки
Code:
if (!bSelEOL)
{
   //код
}
в обоих направлениях, т.е. и когда nMoveDirection < 0 и когда else.

Для того, чтобы увидеть трабл выделения подготовьте файл, чтобы в нём была только последняя строка, а перед ней 4 строки пустые:
Code:




Последняя строка ФАЙЛА
подвигать 4-5 строк вверх, а потом вниз, и посмотреть что происходит с выделением.
Причём, если протестить предыдущий файл (где все эти строки заполнены), то такого трабла не будет.
Суть бага - выделение разъезжается только тогда, когда в строке, перед выделением, нет содержимого, т.е. просто идёт перевод строки.

Я с чем-то подобным встречался уже давно, ещё при написании CtrlDown.js, но там не дошло до подробного воспроизведения, т.к. выделять строки, на котором уже установлено выделение, проще и не так видны эти траблы.

Хотелось бы чтобы на всех строках редактор вёл себя одинаково.


Last edited by VladSh on Thu Jul 22, 2010 4:30 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5399

PostPosted: Thu Jul 22, 2010 11:14 am    Post subject: Reply with quote

VladSh
Почему вопрос адресован мне? Smile
Back to top
View user's profile Send private message Send e-mail
VladSh



Joined: 29 Nov 2006
Posts: 2615
Location: Киев, Русь

PostPosted: Thu Jul 22, 2010 11:29 am    Post subject: Reply with quote

Instructor
Я просто не знаю кому Smile
Сначала эти функции писал DV, но потом Вы их объединили со SmartHome, вот я и подумал, что "все права, включая права на баги" принадлежат теперь Вам Very Happy

Если вопрос не по адресу, скажите, в чём проблема? Это проблема реализации функции?
И кто тогда её поддерживает?
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1396
Location: Poland

PostPosted: Thu Jul 22, 2010 11:39 am    Post subject: Reply with quote

VladSh wrote:

1. Тройной клик на предложении.
Иногда почему-то не выделяется всё предложение.

When turned on "SmartSel:NoSelEOL", you need to click three times very quickly.
Back to top
View user's profile Send private message
KDJ



Joined: 06 Mar 2010
Posts: 1396
Location: Poland

PostPosted: Thu Jul 22, 2010 12:00 pm    Post subject: Reply with quote

Function "SmartSel:NoSelEOL" work like that:
When the cursor is in the first column, and press Shift+Down, then selects current row without EOL.
If you press Shift+Up, then selects the previous line with EOL.
Perhaps in the latter case, the function should not select EOL.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2615
Location: Киев, Русь

PostPosted: Thu Jul 22, 2010 12:14 pm    Post subject: Reply with quote

KDJ
Thank you! Wink
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1396
Location: Poland

PostPosted: Thu Jul 22, 2010 12:17 pm    Post subject: Reply with quote

VladSh
In the script ShiftVerticaly.js, you may unnecessarily check, whether the function SmartSel:NoSelEOL" is enabled.
It probably does not matter.
How do you write "var bSelEOL = true", the script works well.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2615
Location: Киев, Русь

PostPosted: Thu Jul 22, 2010 12:38 pm    Post subject: Reply with quote

KDJ
And what about those users, where this feature is enabled?
The script even with the "var bSelEOL = true" does not work very well, as I wrote above.


Last edited by VladSh on Thu Jul 22, 2010 2:35 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1396
Location: Poland

PostPosted: Thu Jul 22, 2010 12:53 pm    Post subject: Reply with quote

VladSh wrote:
KDJ
The script even with the "var bSelEOL = true" does not work very well, as I wrote above.

I entered
"var bSelEOL = true;"
instead of
"bSelEOL var = (! AkelPad.IsPluginRunning ("SmartSel:NoSelEOL"));"
And for me it works well.
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2615
Location: Киев, Русь

PostPosted: Thu Jul 22, 2010 1:09 pm    Post subject: Reply with quote

KDJ
Both variants work the same when NoSelEOL is NOT enabled.
If NoSelEOL is off the script works correctly.

The condition is correct, I will not remove it.
Back to top
View user's profile Send private message Visit poster's website
KDJ



Joined: 06 Mar 2010
Posts: 1396
Location: Poland

PostPosted: Thu Jul 22, 2010 1:58 pm    Post subject: Reply with quote

VladSh
Well, actually, now I see it.
LinesMoveUpDown.js script also has a similar problem.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2054
Location: Vinnitsa, Ukraine

PostPosted: Tue Sep 28, 2010 7:18 pm    Post subject: Reply with quote

С включеным SmartSel::noSelEol не выполняется замена на текст, заканчивающийся переносом.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
DV



Joined: 16 Nov 2006
Posts: 851
Location: Kyiv, Ukraine

PostPosted: Thu Sep 30, 2010 7:16 am    Post subject: Reply with quote

FeyFre wrote:
С включеным SmartSel::noSelEol не выполняется замена на текст, заканчивающийся переносом.

Замена на текст, заканчивающийся переносом, работает (пример: заменить "()" на "[]\n").
А замена текста, который заканчивается переносом, на что-то другое не работает, да (пример: заменить "()\n" на "[]"). В данном случае название функции оправдывает себя: для подобной замены AkelPad сначала выделяет текст, который он хочет заменить, и noSelEol при этом не даёт выделить последний символ переноса.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page 1, 2, 3, 4, 5  Next
Page 1 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group