public Get ( string args ) : |
||
args | string | |
return |
public void Build(bool updateDefinitions) { _cache = new DefinitionCache(); var profiles = new ProfileLocator(_token); mergeBuiltInCommands(updateDefinitions, profiles); // Reverse paths to handle global first then local var paths = profiles.GetPathsCurrentProfiles().Reverse().ToArray(); foreach (var path in paths) { mergeExternalCommands(updateDefinitions, path); } // Add default language if (_defaultLanguage != null) { var lang = _cache.Get(new[] { _defaultLanguage }); if (lang != null) { var parameters = lang.Parameters; foreach (var usage in parameters) { // Don't override existing commands with default language if (_cache.Get(new[] { usage.Name }) == null) { _cache.Add(usage); } } } } }
public void Can_find_added_command() { var type = DefinitionCacheItemType.Script; var time = DateTime.Now; var cache = new DefinitionCache(); cache .Add(type, "", time, false, true, "cmd1", "") .Append(type, "", time, false, true, "cmd2", "") .Append(type, "", time, false, true, "cmd3", ""); Assert.That(cache.Get(new[] {"cmd1","cmd2"}).Name, Is.EqualTo("cmd2")); }
public void Stops_at_first_user_defined_content_command() { var type = DefinitionCacheItemType.Script; var time = DateTime.Now; var cache = new DefinitionCache(); cache .Add(type, "", time, false, true, "cmd1", "") .Append(type, "", time, false, true, "USER_DEFINED_ARE_UPPER_CASE", "") .Append(type, "", time, false, true, "cmd3", ""); Assert.That(cache.Get(new[] {"cmd1","bleh","cmd3"}).Name, Is.EqualTo("cmd1")); }
public void Stops_at_first_optional_argument() { var type = DefinitionCacheItemType.Script; var time = DateTime.Now; var cache = new DefinitionCache(); cache .Add(type, "", time, false, true, "cmd1", "") .Append(type, "", time, false, true, "cmd2", "") .Append(type, "", time, false, true, "cmd3", "") .Append(type, "", time, false, false, "-g", ""); Assert.That(cache.Get(new[] {"cmd1", "-g","cmd2","cmd3"}).Name, Is.EqualTo("cmd1")); }
public void Can_override_existing_command() { var cache = new DefinitionCache(); cache .Add(DefinitionCacheItemType.BuiltIn, "l1", DateTime.Now, false, true, "cmd1", "") .Append(DefinitionCacheItemType.BuiltIn, "l1", DateTime.Now, false, true, "cmd1-1", ""); cache .Add(DefinitionCacheItemType.Script, "l2", DateTime.Now, false, true, "cmd1", "") .Append(DefinitionCacheItemType.Script, "l2", DateTime.Now, false, true, "override-1", ""); var item = cache.Get(new[] { "cmd1" }); Assert.That(item.Type, Is.EqualTo(DefinitionCacheItemType.Script)); Assert.That(item.Location, Is.EqualTo("l2")); Assert.That(item.Parameters[0].Name, Is.EqualTo("override-1")); }
public DefinitionCacheItem Get(string[] args) { return(_cache.Get(args)); }
private DefinitionCache buildDefinitions(string file) { var cache = new DefinitionCache(); var dir = Path.GetDirectoryName(file); // Add languages var languagePath = Path.Combine(dir, "languages"); LanguagePlugin defaultLanguage = null; foreach (var language in _languages(languagePath)) { var item = cache.Add( DefinitionCacheItemType.Language, language.FullPath, DateTime.Now, false, true, language.GetLanguage(), "Commands for the " + language.GetLanguage() + " plugin"); add(cache, item, language.GetUsages()); var languageScriptPath = Path.Combine( Path.Combine( languagePath, language.GetLanguage() + "-files"), "scripts"); Logger.Write("Adding scripts from " + languageScriptPath); var languageScripts = new ScriptFilter().GetScripts(languageScriptPath); foreach (var scriptFile in languageScripts) { Logger.Write("Script " + scriptFile); var script = new Script(_token, _workingDirectory, scriptFile); var usages = script.Usages; // Description is built when fetching usages var scriptItem = item.Append( DefinitionCacheItemType.LanguageScript, scriptFile, DateTime.Now, false, true, script.Name, script.Description); add(cache, scriptItem, usages); } if (language.GetLanguage() == _defaultLanguage) defaultLanguage = language; } // Add scripts var scriptPath = Path.Combine(dir, "scripts"); Logger.Write("Adding scripts from " + scriptPath); var scripts = new ScriptFilter().GetScripts(scriptPath); foreach (var scriptFile in scripts) { Logger.Write("Adding script " + scriptPath); var script = new Script(_token, _workingDirectory, scriptFile); var usages = script.Usages; // Description is built when fetching usages var item = cache.Add( DefinitionCacheItemType.Script, scriptFile, DateTime.Now, false, true, script.Name, script.Description); add(cache, item, usages); } // Add default language if (defaultLanguage != null) { var parameters = cache.Get(new[] { defaultLanguage.GetLanguage() }).Parameters; foreach (var usage in parameters) { // Don't override existing commands with default language if (cache.Get(new[] { usage.Name }) == null) { var item = cache.Add( usage.Type, usage.Location, DateTime.Now, false, true, usage.Name, usage.Description); add(cache, item, usage.Parameters); } } } writeCache(dir, cache); return cache; }
public void Build(bool updateDefinitions) { _cache = new DefinitionCache(); var profiles = new ProfileLocator(_token); mergeBuiltInCommands(updateDefinitions, profiles); // Reverse paths to handle global first then local var paths = profiles.GetPathsCurrentProfiles().Reverse().ToArray(); foreach (var path in paths) mergeExternalCommands(updateDefinitions, path); // Add default language if (_defaultLanguage != null) { var lang = _cache.Get(new[] { _defaultLanguage }); if (lang != null) { var parameters = lang.Parameters; foreach (var usage in parameters) { // Don't override existing commands with default language if (_cache.Get(new[] { usage.Name }) == null) { _cache.Add(usage); } } } } }