forked from nushell/nushell
-
Notifications
You must be signed in to change notification settings - Fork 1
/
default_context.rs
78 lines (69 loc) · 1.72 KB
/
default_context.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
use nu_protocol::engine::{EngineState, StateWorkingSet};
use crate::*;
pub fn create_default_context() -> EngineState {
let mut engine_state = EngineState::new();
let delta = {
let mut working_set = StateWorkingSet::new(&engine_state);
macro_rules! bind_command {
( $( $command:expr ),* $(,)? ) => {
$( working_set.add_decl(Box::new($command)); )*
};
}
// Core
bind_command! {
Alias,
Break,
Collect,
Const,
Continue,
Def,
Describe,
Do,
Echo,
ErrorMake,
ExportAlias,
ExportCommand,
ExportConst,
ExportDef,
ExportExtern,
ExportUse,
ExportModule,
Extern,
For,
Hide,
HideEnv,
If,
Ignore,
Overlay,
OverlayUse,
OverlayList,
OverlayNew,
OverlayHide,
LazyMake,
Let,
Loop,
Match,
Module,
Mut,
Return,
Scope,
ScopeAliases,
ScopeCommands,
ScopeEngineStats,
ScopeExterns,
ScopeModules,
ScopeVariables,
Try,
Use,
Version,
While,
};
//#[cfg(feature = "plugin")]
bind_command!(PluginCommand, PluginList, PluginStop, Register,);
working_set.render()
};
if let Err(err) = engine_state.merge_delta(delta) {
eprintln!("Error creating default context: {err:?}");
}
engine_state
}