Skip to content

Brainstorming Features #63

@fdncred

Description

@fdncred

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.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 or oh-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
  • 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
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions