Better command line
Opened this issue · 1 comments
The Problem
Current implementation have some issues:
- The command line blocks Qt Creator search bar functionality.
- The command line is too small. It is unsuitable for displaying long messages.
It would be desirable to have a better command line.
Here are some examples of how command line is implemented in different editors:
Neovim
In Neovim command line is one for each split and is used for both commands and messages. Some plugins transform the command line and messages into popup and notification.
VSCode (VsCodeVim)
In this plugin command line is in the status bar and is used both for commands and messages. I was unable to test multiline messages, since echo command is not implemented.
VSCode (Neovim plugin)
In this plugin, the command line is opened in the popup, messages are displayed in the status line or in "Output" pane, if they are long.
JetBrains IDEs (IdeaVim)
In IdeaVim command line is in local to the splits, and used both for messages and commands.
Qt Creator (FakeVim)
In FakeVim plugin, the status line is used for displaying short messages and for receiving commands, but I was unable to let it print the multiline message.
Solution
I currently have a prototype for the new command line implementation, that is similar to the one from IdeaVim plugin, but just as it was done 😁 I realized, that original Neovim has only one command line, and it makes no sense to keep it local to each split.
Furthermore, it complicates the code quite a lot and increases probability of bugs occurrence. However, I am not sure what design is the best for a single command line. Should it be just a single line above the status line? Should it respect Neovim cmdheight setting? Should it autohide?
Hm, I tried to make a single status bar prototype, but it is actually harder to make, because there is no reliable way to add a bar on top of a status line in Qt Creator. I will try to implement a cmd in the IdeaVim way: it will be local to each split, but it will be hidden by default, and it will hide in other splits, when something appears in the one, that belongs to the current editor.