public Shell(IContextVariable contextVariable) { contextVariable.AddVariable("IShell.SelectedPaths", async() => await SelectedPaths()); contextVariable.AddVariable("IShell.CurrentDirectory", async() => await CurrentDirectory()); contextVariable.AddVariable("IShell.SelectedPathsOrCurrentDirectory", async() => { var paths = await SelectedPaths(); return((paths != null && paths.Length != 0) ? paths : new string[] { await CurrentDirectory() }); }); }
public SoftwareTool(ICommandManager commandManager, IKeyboard keyboard, IConfig <Config> config, IShell shell, IVirtualDesktopManager virtualDesktopManager, IWindowManager windowManager, IContextVariable contextVariable) { _shell = shell; _virtualDesktopManager = virtualDesktopManager; _windowManager = windowManager; _contextVariable = contextVariable; var folders = config.CurrentValue.ConfigFolders; foreach (var folder in folders) { loadConfigInFolder(folder); } RegisterCommands(); }
public static IEnumerable <IContextVariable> GetPropertyDescriptions(this ITypeInfo type, IContextVariable parent) { if (parent == null) { throw new ArgumentNullException("parent"); } foreach (var item in type.GetAllMembers()) { yield return(new ContextVariable(parent.VariableName, item.MemberName) { Node = parent.Node, VariableType = item.MemberType, Repository = parent.Repository, }); } }