Skip to content

Possibly erroneous code example in overlays.md #1947

Open
@axelcool1234

Description

@axelcool1234

The following excerpt is from overlays.md:

Removing an Overlay

If you don't need the overlay definitions anymore, call overlay hide:

(spam)> overlay hide spam

(zero)> foo
Error: Can't run executable...

(zero)> overlay list
───┬──────
 0 │ zero
───┴──────

The overlays are also scoped.
Any added overlays are removed at the end of the scope:

(zero)> do { overlay use spam; foo }  # overlay is active only inside the block
foo

(zero)> overlay list
───┬──────
 0 │ zero
───┴──────

In the second code block, running the scoped code example leads to this:

❯ do { overlay use spam; foo }
Error: nu::shell::external_command

  × External command failed
   ╭─[entry #33:1:24]
 1 │ do { overlay use spam; foo }
   ·                        ─┬─
   ·                         ╰── Command `foo` not found
   ╰────
  help: A command with that name exists in module `spam`. Try importing it with `use`

I imagine this is due to the parsing stage not recognizing the foo command since it currently isn't in scope. I assume this is by design and it's the docs that fail to mention this. Perhaps we should modify the example to prevent confusion? Or perhaps I may have missed something. Please let me know. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions