protected override IEnumerable <string> GetSolutionCompletionResults(InvokeMSBuildParameters parameters) { try { var tempProjectFile = SolutionHelper.CreateTempMetaproj(parameters); var temProjectParameters = new InvokeMSBuildParameters { DetailedSummary = parameters.DetailedSummary, MaxCpuCount = parameters.MaxCpuCount, NodeReuse = parameters.NodeReuse, Project = tempProjectFile, Properties = parameters.Properties, Target = parameters.Target, ToolsVersion = parameters.ToolsVersion, Verbosity = parameters.Verbosity, WarningsAsErrors = parameters.WarningsAsErrors, WarningsAsMessages = parameters.WarningsAsMessages, }; return(GetProjectCompletionResults(temProjectParameters)); } catch { return(Enumerable.Empty <string>()); } }
protected override IEnumerable <string> GetProjectCompletionResults(InvokeMSBuildParameters parameters) { var msbuildHelper = Factory.InvokeInstance.CreateMSBuildHelper(); msbuildHelper.Parameters = parameters; return(msbuildHelper.GetTargets()); }
protected abstract IEnumerable <string> GetSolutionCompletionResults(InvokeMSBuildParameters parameters);
public IEnumerable <CompletionResult> CompleteArgument( string commandName, string parameterName, string wordToComplete, CommandAst commandAst, IDictionary fakeBoundParameters) { var property = GetParameter <Hashtable>(fakeBoundParameters, nameof(InvokeMSBuild.Property)); var toolsVersion = GetParameter <string>(fakeBoundParameters, nameof(InvokeMSBuild.ToolsVersion)); var projectPath = GetParameter <string>(fakeBoundParameters, nameof(InvokeMSBuild.Project)); var ignoreProjectExtensions = GetParameter <string[]>(fakeBoundParameters, nameof(InvokeMSBuild.IgnoreProjectExtensions)); var target = GetParameter <string[]>(fakeBoundParameters, nameof(InvokeMSBuild.Target)); var configuration = GetParameter <string>(fakeBoundParameters, nameof(InvokeMSBuild.Configuration)); var platform = GetParameter <string>(fakeBoundParameters, nameof(InvokeMSBuild.Platform)); var properties = property?.Cast <DictionaryEntry>().ToDictionary(x => x.Key.ToString(), x => x.Value.ToString(), StringComparer.OrdinalIgnoreCase); properties = properties ?? new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); if (!string.IsNullOrEmpty(configuration)) { properties[nameof(InvokeMSBuild.Configuration)] = configuration; } if (!string.IsNullOrEmpty(platform)) { properties[nameof(InvokeMSBuild.Platform)] = platform; } if (string.IsNullOrEmpty(toolsVersion)) { toolsVersion = InvokeMSBuildParameters.DefaultToolsVersion; } var sessionState = new SessionState(); var projects = string.IsNullOrEmpty(projectPath) ? new[] { sessionState.Path.CurrentFileSystemLocation.Path } : new[] { Path.Combine(sessionState.Path.CurrentFileSystemLocation.Path, projectPath) }; var projectFile = MSBuildApp.ProcessProjectSwitch(projects, ignoreProjectExtensions, Directory.GetFiles); var parameters = new InvokeMSBuildParameters { Properties = properties, ToolsVersion = toolsVersion, Project = projectFile, Target = target }; var completionResults = FileUtilities.IsSolutionFilename(projectFile) ? GetSolutionCompletionResults(parameters) : GetProjectCompletionResults(parameters); if (!string.IsNullOrEmpty(wordToComplete)) { completionResults = completionResults.Where(x => x.StartsWith(wordToComplete, StringComparison.InvariantCultureIgnoreCase)); } return(completionResults .OrderBy(x => x) .Select(x => new CompletionResult(EscapeIfRequired(x), x, CompletionResultType.ParameterValue, "tool tip")) .ToArray()); }
protected override IEnumerable <string> GetSolutionCompletionResults(InvokeMSBuildParameters parameters) { var solution = SolutionFile.Parse(parameters.Project); return(solution.SolutionConfigurations.Select(x => x.PlatformName).Distinct()); }
protected override IEnumerable <string> GetProjectCompletionResults(InvokeMSBuildParameters parameters) { return(DefaultProjectValues); }
public static string CreateTempMetaproj(InvokeMSBuildParameters parameters) { return(CreateTempMetaproj(parameters.Project, parameters.Properties, parameters.ToolsVersion)); }