Nushell core team meeting 2022-07-20

Attendees

  • Andres
  • Darren
  • Reilly
  • JT
  • Michael
  • Stefan
  • Fernando
  • Jason

Agenda

  • Survey
  • Error messages
  • 20k star celebrations!!!

Discussed topics

Planned: Nushell Survey

JT and Storm worked on draft questions. Goal keep it below/around 5 min max.

https://hackmd.io/@nucore/rJCYJvf25

Darrens comment: Questions should be actionable! get something we can base a decision on! (don't waste respondents time)

  • Gather data from the issue tracker and discord as well to get a broader overview
  • Compare it to the old survey(s): great number of respondents already in 2020

Bash script integration (JT currently playing around with)

Usecase examples: pyenv, nvm, etc.
Currently a blocker for users coming from posix shells.
Those tools work by sourcing a bunch of environment variables (and {tricky} bash functions)

Goal: Capturing the environment changes for bash

Shell integration (fdncred)

Daniel Imms (@Tyriar) from the VS code team reached out about shell integration.
Darren adjusted the current shell integration to support the functionality for VS Code shell integration.

i.e. add additional ansi escape sequences that mark the prompts and their output.

enables jumping around or loading the output in an editor.

Already works on several terminal emulators but now should supports a richer feature set.

JT also reaching out to fig folks to check how the integrations there can be improved

wild source idea

JT:

  1. maybe allow nushell source to work with bash

  2. source only allowing for loading (environment) variables

> force people to use module imports for functions and overlays

  1. allows to make source runtime as no definitions for the parse stage has to be changed

Snag: variables have types and the potentially changing type could affect the parse/typecheck phase

Fernando: ? adopt the bashy export environment variable way

Error messages

All current errors are shell errors (on the rust side) + error make command

How can we add specific error types for plugins/nu impls (Storm implementing the iox integration)

Use .map_err for conversion

JT there should be a way to turn a rust error .into_shell_error() -> make that a trait?

Reedline

Working correctly accross all terminal emulators will always be hard (resize + fancy prompts will be hard)

JT simplified: removed animations (i.e. periodic repaint), don't redraw on resize automatically

Still nasty: prompt moves to somewhere in the middle when it resizes after opening in standard size

Darren talking - since gedge volunteered I'd vote we see if he can twiddle with the "prompt at the top of the screen then jumping to the middle of the screen when you maximize" issue.

20k star celebrations

Ideas:

All hands discord

AMA

Looking at inspiration:

Pluto.jl

Could this be a direction to learn for nana

https://github.com/fonsp/Pluto.jl

Interactive notebook environment (like jupyter) but automatically responsive (changing the code/values will auto update output)

Responsiveness would require more flexibility in our current engine, we stack deltas and try to assume static definitions (but this would also be a challenge for the LSP if changes come in in random order)

Emacs help

big browsable internal documentation

can this be combined with literate programming (with interaction)

Select a repo