-
Notifications
You must be signed in to change notification settings - Fork 190
Open
Milestone
Description
1. Line Editor UI/UX Features
Brainstorming of ideas about what features would make a line editor and programs that use it best-in-class
. I'm interested to see which of these people agree with. These aren't necessarily MVP
type ideas and perhaps even greater than 1.0
ideas.
- 1. Line Editor UI/UX Features
- 1.2. Prompt Features Feature Vision Discussion: Prompt #64
- 1.3. Completions Features Feature Vision Discussion: Completions/Hints #65
- 1.4. History Features Feature Vision Discussion: History #66
- 1.5. Hinting Features Feature Vision Discussion: Completions/Hints #65
- 1.6. Syntax Highlighting Features Feature Vision Discussion: Syntax Highlighting #67
- 1.7. PopUps/PopUnders Features Feature Vision Discussion: Pop-ups/Annotations #68
- 1.8. Keybinding Feature Vision Discussion: Keybindings #69
- 1.9. Miscellaneous Feature Vision Discussion: Miscellaneous #70
1.2. Prompt Features #64
- Ability to have Colors/Styles/Themes
- Ability to have Left Side Prompt
- Ability to have Right Side Prompt
- Ability to have Animated Prompt - Clock, Ansi Spinners like -|/
- Ability to use external prompts like
starship
oroh-my-posh
- Ability to make prompt extensible
1.3. Completions Features #65
- Ability to works as expected or better
- File and folder completion
- zsh-style partial path expansion
- Environment variable completion
$nu.env.A<tab>
- Table column completion
(ls).n<tab>
- Sub-Command completion
str <tab>
- Other
- File and folder completion
- Ability to add external completions for things like
git
- Ability to make completions extensible
1.4. History Features #66
- Ability to save commands in history
- Ability to save multi-line commands in history
- Ability to traverse backward and forward within history via keybindings
- Ability to search history
- Ability to search history and travese backward and forward within the search criteria
- Ability to have
rich
data within the history, such as:- run time in
ms
- date/time command was ran
- sessionid of who ran the command assuming multiple sessions
- run time in
- Ability to have multiple sessions successfull write to history file(s)
- Ability for each session to have it's own history or the appearance of it's own history so within history searching in a single session you only see the commands you created in that session
- Ability to send all commands from all sessions into a global history which search interfaces can use
- Ability to have
plugable
technologies to make history searching and recall extensible - Ability to reset history
1.5. Hinting Features #65
- Ability to change the color of the hints
- Ability to create hints from history
- Ability to have
plugable
hints specific to a vertical- Nushell
- Azure
- Dataframe/Polars/DataScience
- Maths
- Other
- Ability to complete hints with keybinding
- Ability to change location of hints
- On prompt line
- Under prompt line
- On status bar at the top
- On staus bar at the bottom
1.6. Syntax Highlighting Features #67
- Ability to define word-types to highlight as you type and continue coloring even in failure modes
- Keywords
- Commands
- External Commands
- Bareword
- Punctuation
- Sub-Commands
- Braces
{}
, Brackets[]
, Parentheses()
- Error modes
- Operators
- Paths
- Pipe
- Arguments/Flags
- Variables
- Comments
- DataTypes (strings, int, datetime, duration, bool, units, etc)
- Other
- Ability to have add things you want syntax highlighted through extensibility
1.7. PopUps/PopUnders Features #68
- Ability to have popups for things like progress bars
- Ability to have popunders, think of this as row(s) under your prompt, to display things like statuses, documentation, or hints
- Ability to have extensibility
1.8. Keybinding #69
- All major functionality should be exposed via keybindings
- Ability to have multiple keybindings
- VI Mode
- Emacs Mode
- JT Mode (the ability to code like JT)
- Other
- Ability to load keybindings from file
- Ability to execute previously defined code or externals via keybindings
- Ability to have keybinding chords (multiple keyboard shortcuts in succession execute a particular internal or external command)
1.9. Miscellaneous #70
- Validation to trigger multiline on incomplete lines
- Tested behaviour under various environments
- OSes
- Terminal emulators:
gnome-terminal
,iTerm
,alacritty
- Multiplexers:
screen
,tmux
- As ssh session
- possible plugins to use file searches and terminal browsers:
fzf
,skim
,broot
,zoxide
,ranger
, etc - Responsive resizing
sholderbach, elferherrera and ClementNerma
Metadata
Metadata
Assignees
Labels
No labels