Input element, fixed or not?
Considering that vim's command bar is fixed, I was thinking that ex-mode input element should be fixed, instead of only appearing when activated.
I think that if it is fixed, it should also go under status-bar.
It could also be a setting, instead of a default behavior.
Valid point, but there are a number of differences between vim and atom that must be taken into consideration.
First, we have no control over vim-mode's /, which has this behaviour. Whether we like it or not, consistency within the application matters a lot.
Also, it'll certainly cause visual issues with themes, and possibly the status bar itself, since it is expected to be at the bottom. This is too much a burden for now.
In terms of UX, the current design makes the input element surrender its real estate when it's not in use (i.e when its mode is not active), being modal in a way even vim isn't. Also, vim, being a terminal app (even in its GUI incarnations), has to make-do with merging the input and output UI in the same area, and needs to have a particular behaviour when a newline is present in the output (clearing the whole screen) which is undesirable for a GUI app. We are freed of this constraint in a way that will definitely improve UX. The input and output elements will be separate, and the output will appear above the input.
Given this, it is undesirable to have the status bar move along depending on the output. It is also undesirable to have the output and the input untethered by a intertwined status bar. Therefore, the status bar is best laid out at the bottom, and the output+input right above.
Additional scenarios relating to the input area being fixed need to be evaluated when:
- the input area is invoked after output of a previous command has been shown
- output is shown after a command has been inputted
Those scenarios, when evaluated carefully, lead to the following behaviour:
- if fixed, invoking a new input has no effect on the previous output, but previous output is replaced on command return.
- if not, invoking a new input makes the previous output disappear, and command evaluation makes the input hide, then output shown in its place
The goal is to bridge the best of Atom and the best of vim, yet we cannot ignore that this is first and foremost Atom and that we're extending it.
So, to conclude:
- having the input element appear below the status bar is not an option
- "fixed input" is an option: the input element is either fixed and the output appears above, or is automatically shown and the output appears in its place.