Alexey, as mentioned in e-mail, am working on a review.
vhanla, thank you! That beta is excellent
!!
You have provided hotkeys for on/off/toggle, so the user can decide which he prefers, and that's great. I use a toggle, so only one hotkey is needed. It would be very helpful if the status bar had a panel which showed what selection mode is currently active; it could show a word, such as "Column" or "Stream" (or "Normal"), or it could show a small graphic. (ConTEXT and RJ TextEd show words; PSPad and SynWrite show a small graphic.)
One bothersome thing is that in column select mode, moving the cursor up/down actually creates multiple carets. This is a bit of a distraction, but once the selection is made, the user can press ESC to remove the extra cursors. A related problem is that after pasting the column text, you are again left with multiple carets. It would be nicer if the multiple carets didn't appear.
But a bigger problem is that when the cursor is moved
down, and ESC is pressed to remove the extra carets, the cursor does not end up in the right spot. (When moving the cursor
up and then pressing ESC, it
does end up in the right spot.) For example, if the cursor is on line 12, and you select right four characters and then down three lines (to create a 4x4 selection) and then press ESC, the cursor is left on line 12 (the topmost caret)--but it
should be left on line 15, where it would naturally be if there had been only one cursor (instead of multiple carets). From the same starting position, moving the cursor right four characters and then up three lines, and pressing ESC, leaves the cursor on line 9, just where it should be--where it would naturally be if there had been only one cursor.
Once the selection is made, and the contents copied to the clipboard, that content can then be pasted elsewhere in either insert mode or in overwrite mode, and that is super--even better than what I am used to
! In ConTEXT, for example, pasting is always in insert mode, so that if you
want to overwrite a block, you must first select the target block, and
then paste, and it will be overwritten. But what happens now in CudaText, if you select the target block and then paste, the clipboard contents are
not pasted over the selection, but rather are inserted or overwritten (depending on insert mode) at the position of the topmost caret. But try the same thing in stream/normal selection mode: select some text and copy to clipboard, then move the cursor somewhere else and select exactly the same amount of text, and paste--and the pasted text overwrites the selection--and that's the way it should work.
All-in-all, this is a really good addition, and just needs these few things addressed
.