Skip to content

Brainstorming Features #63

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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