public async Task<GetTestCommandResponse> GetTestCommand(TestCommandRequest request) { var quickFixes = new List<QuickFix>(); var document = _workspace.GetDocument(request.FileName); var response = new GetTestCommandResponse(); if (document != null) { var semanticModel = await document.GetSemanticModelAsync(); var syntaxTree = semanticModel.SyntaxTree; var sourceText = await document.GetTextAsync(); var position = sourceText.Lines.GetPosition(new LinePosition(request.Line - 1, request.Column - 1)); var node = syntaxTree.GetRoot().FindToken(position).Parent; SyntaxNode method = node.FirstAncestorOrSelf<MethodDeclarationSyntax>(); SyntaxNode type = GetTypeDeclaration(node); if (type == null) { return response; } var symbol = semanticModel.GetDeclaredSymbol(method ?? type); var context = new TestContext(document.Project.FilePath, request.Type, symbol); response.TestCommand = _testCommandProviders .Select(t => t.GetTestCommand(context)) .FirstOrDefault(c => c != null); var directory = Path.GetDirectoryName(document.Project.FilePath); response.Directory = directory; } return response; }
public ProjectInformationResponse CurrentProject(Request request) { var document = _workspace.GetDocument(request.FileName); var msBuildContextProject = _msbuildContext?.GetProject(document?.Project.FilePath); var aspNet5ContextProject = _aspnet5Context?.GetProject(document?.Project.FilePath); MSBuildProject msBuildProjectItem = null; AspNet5Project aspNet5ProjectItem = null; if (msBuildContextProject != null) { msBuildProjectItem = new MSBuildProject(msBuildContextProject); } if (aspNet5ContextProject != null) { aspNet5ProjectItem = new AspNet5Project(aspNet5ContextProject); } return(new ProjectInformationResponse { MsBuildProject = msBuildProjectItem, AspNet5Project = aspNet5ProjectItem }); }
public ProjectInformationResponse CurrentProject(Request request) { var document = _workspace.GetDocument(request.FileName); var msBuildContextProject = _msbuildContext?.GetProject(document?.Project.FilePath); var dnxContextProject = _dnxContext?.GetProject(document?.Project.FilePath); MSBuildProject msBuildProjectItem = null; DnxProject dnxProjectItem = null; if (msBuildContextProject != null) { msBuildProjectItem = new MSBuildProject(msBuildContextProject); } if (dnxContextProject != null) { dnxProjectItem = new DnxProject(dnxContextProject); } return(new ProjectInformationResponse { MsBuildProject = msBuildProjectItem, DnxProject = dnxProjectItem }); }
private async Task <ImmutableArray <Diagnostic> > GetPointDiagnostics(TextSpan location, List <string> diagnosticIds) { _document = _workspace.GetDocument(_document.FilePath); _semanticModel = await _document.GetSemanticModelAsync(); var diagnostics = _semanticModel.GetDiagnostics(); //Restrict diagnostics only to missing usings return(diagnostics.Where(d => d.Location.SourceSpan.Contains(location) && diagnosticIds.Contains(d.Id)).ToImmutableArray()); }
private async Task <CodeRefactoringContext?> GetContext(CodeActionRequest request, List <CodeAction> actionsDestination) { var document = _workspace.GetDocument(request.FileName); if (document != null) { var sourceText = await document.GetTextAsync(); var position = sourceText.Lines.GetPosition(new LinePosition(request.Line - 1, request.Column - 1)); var location = new TextSpan(position, 1); return(new CodeRefactoringContext(document, location, (a) => actionsDestination.Add(a), CancellationToken.None)); } //todo, handle context creation issues return(null); }