cd path arg can be a symbol (shell ease)
Signed-off-by: Ava Affine <ava@sunnypup.io>
This commit is contained in:
parent
50ebfd2e37
commit
108e25e336
3 changed files with 9 additions and 3 deletions
|
|
@ -166,7 +166,6 @@ Note: this section only tracks the state of incomplete TODO items. Having everyt
|
||||||
- Can pass args to flesh scripts (via command line)
|
- Can pass args to flesh scripts (via command line)
|
||||||
- Can pass args to flesh scripts (via interpreter)
|
- Can pass args to flesh scripts (via interpreter)
|
||||||
- tab completion for symbols also attempts to complete binaries
|
- tab completion for symbols also attempts to complete binaries
|
||||||
- cd accepts symbols as well as strings (emulate shell)
|
|
||||||
- declare macros
|
- declare macros
|
||||||
- Release CI
|
- Release CI
|
||||||
- Make an icon if you feel like it
|
- Make an icon if you feel like it
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,10 @@ Flesh also provides a ~cd~ utility to change current working directory:
|
||||||
This ~cd~ routine will keep the ~PWD~ variable up to date.
|
This ~cd~ routine will keep the ~PWD~ variable up to date.
|
||||||
Every invokation of ~cd~ will call whatever lambda or function is stored in ~CFG_FLESH_CD_CB~ with no arguments. A function stored in this variable can then perform on the fly reconfiguration or set additional variables based on the directory that the user has entered.
|
Every invokation of ~cd~ will call whatever lambda or function is stored in ~CFG_FLESH_CD_CB~ with no arguments. A function stored in this variable can then perform on the fly reconfiguration or set additional variables based on the directory that the user has entered.
|
||||||
|
|
||||||
|
WARNING: Symbols will be taken as strings unless wrapped in a form.
|
||||||
|
> Example: cd HOME => cd 'HOME'
|
||||||
|
> Example: cd (eval HOME) => cd /path/to/home/dir
|
||||||
|
|
||||||
** Creating bindings for shell commands
|
** Creating bindings for shell commands
|
||||||
Daily Flesh users will long for first class shell commands that are accounted for in autocomplete.
|
Daily Flesh users will long for first class shell commands that are accounted for in autocomplete.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -715,9 +715,12 @@ fn fg_callback(
|
||||||
}
|
}
|
||||||
|
|
||||||
const CD_DOCSTRING: &str =
|
const CD_DOCSTRING: &str =
|
||||||
"Expects 1 argument (a string). Changes to a new directory.
|
"Expects 1 argument (a string, symbol, or form). Changes to a directory.
|
||||||
|
WARNING: Symbols will be taken as strings unless wrapped in a form.
|
||||||
|
> Example: cd HOME => cd 'HOME'
|
||||||
|
> Example: cd (eval HOME) => cd /path/to/home/dir
|
||||||
If CFG_RELISH_CD_CB is defined, cd will evaluate it.
|
If CFG_RELISH_CD_CB is defined, cd will evaluate it.
|
||||||
cd returns the result that CFG_RELISH_CD_CB returns.";
|
cd returns the result that CFG_RELISH_CD_CB returns, or None";
|
||||||
fn cd_callback(ast: &Seg, syms: &mut SymTable) -> Result<Ctr, Traceback> {
|
fn cd_callback(ast: &Seg, syms: &mut SymTable) -> Result<Ctr, Traceback> {
|
||||||
let dir: &String;
|
let dir: &String;
|
||||||
match *ast.car {
|
match *ast.car {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue