Usability suggestions.
Posted: Sat Mar 01, 2014 9:15 am
:TOP /*reading is fun! */
I have been using CodeLite for a few months now and I have to say that overall it's very nicely done.
However; I have come across a design flaw that conflicts with common input conventions.
Namely, the shift key should not make you go to the declaration for an item.
Why?: Shift is consistently used across operating systems for selecting blocks of text, you click somewhere on one line and then hold the shift key down and click somewhere else and the text editor highlights all the text inbetween.
Assigning it a different function hinders users from performing a commonly used action, the function in question should not be reassigned to the Ctrl key either as that would present similar problems. I suggest the Alt key be used instead as it inherently implies an "alternate function". To be clear I don't recommend making the function in question trigger on some Shift+Alt or Ctrl+Alt combination, just by holding Alt and clicking a variable or function or class or whatever.
I also have a suggestion for an Improvement.
Fold collapsing support.
At the moment we have the option to toggle all folds, toggle the current fold, toggle the topmost folds in the selection, or toggle every fold in selection.
These are a LOT of options that could be combined into a single one for greater simplicity.
I propose we add a new option named "Code Collapse" or "Collapse fold" or "Collapse block".
How it works:
Let me first state that when I say "block" I am referring to a code fold eg: the block of text between two matching enclosed brackets.
When used, if you have text selected then all the blocks within that selected area will be collapsed.
If you do not have text selected then the block that your cursor is within will be collapsed. Then if there is an empty line above the collapsed block your cursor will move right above the collapsed block so that you could potentially write a comment or something there. If there is no blank line above the block then move the cursor to the beginning of the collapsed blocks line.
After you have collapsed one block using this method you can trigger it again to collapse the block containing the one you previously collapsed. In this way it will be easy to quickly "collapse up" through a nest of blocks.
There should also be a reverse version of this feature so you can use the same logic to uncollapse a block.
I am willing to put this feature in myself if another developer is not wanting.
New feature suggestions:
Feature: Pressing F12 while the caret is on an #include line should open said include file.
Why do it?: This converts what is now a 3 step process (right click line, move to "open file", left click option) to a one step process wherein you merely press F12.
At this time pressing F12 on an #include line does nothing so adding this in would not require removing or altering any other features.
Feature: Support for Ctrl+Shift+<Up/Down arrow> for moving an entire line of text up/down.
Why do it?: Notepad++ does this and its VERY useful. If my hands are already typing and I notice that the line i'm typing out would be better placed a few lines above or below its current location I can simply press Ctrl+Shift+ Up/Down arrow a few times much more quickly then it would take me to grab my mouse and select the entire line and copy it and then go to the line where I want it to be and then hit enter to move that line down and then paste again.
Okay that's all my suggestions, what do you think?
TLDR: goto TOP; /*goto is evil I know*/
I have been using CodeLite for a few months now and I have to say that overall it's very nicely done.
However; I have come across a design flaw that conflicts with common input conventions.
Namely, the shift key should not make you go to the declaration for an item.
Why?: Shift is consistently used across operating systems for selecting blocks of text, you click somewhere on one line and then hold the shift key down and click somewhere else and the text editor highlights all the text inbetween.
Assigning it a different function hinders users from performing a commonly used action, the function in question should not be reassigned to the Ctrl key either as that would present similar problems. I suggest the Alt key be used instead as it inherently implies an "alternate function". To be clear I don't recommend making the function in question trigger on some Shift+Alt or Ctrl+Alt combination, just by holding Alt and clicking a variable or function or class or whatever.
I also have a suggestion for an Improvement.
Fold collapsing support.
At the moment we have the option to toggle all folds, toggle the current fold, toggle the topmost folds in the selection, or toggle every fold in selection.
These are a LOT of options that could be combined into a single one for greater simplicity.
I propose we add a new option named "Code Collapse" or "Collapse fold" or "Collapse block".
How it works:
Let me first state that when I say "block" I am referring to a code fold eg: the block of text between two matching enclosed brackets.
When used, if you have text selected then all the blocks within that selected area will be collapsed.
If you do not have text selected then the block that your cursor is within will be collapsed. Then if there is an empty line above the collapsed block your cursor will move right above the collapsed block so that you could potentially write a comment or something there. If there is no blank line above the block then move the cursor to the beginning of the collapsed blocks line.
After you have collapsed one block using this method you can trigger it again to collapse the block containing the one you previously collapsed. In this way it will be easy to quickly "collapse up" through a nest of blocks.
There should also be a reverse version of this feature so you can use the same logic to uncollapse a block.
I am willing to put this feature in myself if another developer is not wanting.
New feature suggestions:
Feature: Pressing F12 while the caret is on an #include line should open said include file.
Why do it?: This converts what is now a 3 step process (right click line, move to "open file", left click option) to a one step process wherein you merely press F12.
At this time pressing F12 on an #include line does nothing so adding this in would not require removing or altering any other features.
Feature: Support for Ctrl+Shift+<Up/Down arrow> for moving an entire line of text up/down.
Why do it?: Notepad++ does this and its VERY useful. If my hands are already typing and I notice that the line i'm typing out would be better placed a few lines above or below its current location I can simply press Ctrl+Shift+ Up/Down arrow a few times much more quickly then it would take me to grab my mouse and select the entire line and copy it and then go to the line where I want it to be and then hit enter to move that line down and then paste again.
Okay that's all my suggestions, what do you think?
TLDR: goto TOP; /*goto is evil I know*/