elves / elvish

Powerful scripting language & versatile interactive shell
https://elv.sh/
BSD 2-Clause "Simplified" License
5.73k stars 303 forks source link

pragma unknown-command = disallow and edit module don't play well together #1845

Open mschuwalow opened 1 month ago

mschuwalow commented 1 month ago

What happened, and what did you expect to happen?

When using pragma unknown-command = disallow in a script and checking it via elvish --compileonly $script, elvish warns that everything in the edit: namespace is not defined. The natural fix for that seems to be to add a use edit to the script, but that causes the script to fail at runtime.

It would be nice to either make elvish --compileonly aware of the edit module or allow use edit.

Output of "elvish -version"

0.21.0

Code of Conduct

xiaq commented 1 month ago

Hmm yes the edit: module is weird for historical reasons, it's not an importable module, but a special module directed put in the global namespace in interactive mode.

Allowing use edit is perhaps the best approach; it would also make it possible to start the TUI from a script, with a hypothetical API like:

use edit
edit:start-app

I'm rewriting the Elvish TUI and will take this into account.