Skip to content

Possibly erroneous code example in overlays.md #1947

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions