Brainstorming Features
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 818
- Forks
- 249
- Avg merge
- 4d 14h
- Merged PRs (30d)
- 30
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 #64
- 1.3. Completions Features #65
- 1.4. History Features #66
- 1.5. Hinting Features #65
- 1.6. Syntax Highlighting Features #67
- 1.7. PopUps/PopUnders Features #68
- 1.8. Keybinding #69
- 1.9. 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
starshiporoh-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
richdata 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
plugabletechnologies 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
plugablehints 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This issue is a broad brainstorming list and names no source files, tests, entry points, or acceptance criteria. Review the linked issues #64–#70 to determine whether any specific feature remains actionable; a suitable outcome would need a decided scope and a concrete definition of done.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100