We don't want internal functions in the mode specific extention modules becoming
shared code. To avoid this, mark the functions as private and publish only through
a structure marked clearly as for testing only.
If these functions are useful as shared code they can be moved to the editor module
or else where.
Review of devlogs to use internal functions to also:
* select next and prev word
* select to start en of doc
* delete to end of line
* Add Cursor to next line
* Show diagnostics
* Show references
## Added Behaviour for buffers
:n create a new buffer - Uses language selection from flow <3
:bc close current buffer
:bn next buffer
:bp previous buffer
:rl reload current buffer
:qa! abandon without saving any buffer
* Helix mode: move_next_word_end
* fix: don't match against legacy unshifted keys when we have extended input text
closes#205
* refactor: remove duplicate implementation of command.get_id
* feat: re-add support for integer command arguments
closes#182
* feat: display pending integer argument in keybind widget
* fix: call configured init_commands for all mode types
* feat: add flow mode keybindings for setting integer argument
* feat: add support for repeat integer arguments to many commands
* feat: add emacs mode keybindings for setting integer argument
* feat: add vim mode keybindings for setting integer argument
* resolving conflit
* disable_selection
---------
Co-authored-by: CJ van den Berg <cj@vdbonline.com>