public RazorFormattingPass( RazorDocumentMappingService documentMappingService, FilePathNormalizer filePathNormalizer, ClientNotifierServiceBase server, ILoggerFactory loggerFactory) : base(documentMappingService, filePathNormalizer, server) { if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _logger = loggerFactory.CreateLogger <RazorFormattingPass>(); }
public FoldingRangeEndpoint( RazorDocumentMappingService documentMappingService, ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, ClientNotifierServiceBase languageServer, DocumentVersionCache documentVersionCache, IEnumerable <RazorFoldingRangeProvider> foldingRangeProviders, ILoggerFactory loggerFactory) { _documentMappingService = documentMappingService ?? throw new ArgumentNullException(nameof(documentMappingService)); _languageServer = languageServer ?? throw new ArgumentNullException(nameof(languageServer)); _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher ?? throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _documentVersionCache = documentVersionCache ?? throw new ArgumentNullException(nameof(documentVersionCache)); _foldingRangeProviders = foldingRangeProviders ?? throw new ArgumentNullException(nameof(foldingRangeProviders)); _logger = loggerFactory.CreateLogger <FoldingRangeEndpoint>(); }
public CodeActionEndpoint( RazorDocumentMappingService documentMappingService, IEnumerable <RazorCodeActionProvider> razorCodeActionProviders, IEnumerable <CSharpCodeActionProvider> csharpCodeActionProviders, ForegroundDispatcher foregroundDispatcher, DocumentResolver documentResolver, IClientLanguageServer languageServer, LanguageServerFeatureOptions languageServerFeatureOptions) { _documentMappingService = documentMappingService ?? throw new ArgumentNullException(nameof(documentMappingService)); _razorCodeActionProviders = razorCodeActionProviders ?? throw new ArgumentNullException(nameof(razorCodeActionProviders)); _csharpCodeActionProviders = csharpCodeActionProviders ?? throw new ArgumentNullException(nameof(csharpCodeActionProviders)); _foregroundDispatcher = foregroundDispatcher ?? throw new ArgumentNullException(nameof(foregroundDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _languageServer = languageServer ?? throw new ArgumentNullException(nameof(languageServer)); _languageServerFeatureOptions = languageServerFeatureOptions ?? throw new ArgumentNullException(nameof(languageServerFeatureOptions)); }
public TextDocumentTextPresentationEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorDocumentMappingService razorDocumentMappingService, ClientNotifierServiceBase languageServer, DocumentVersionCache documentVersionCache, LanguageServerFeatureOptions languageServerFeatureOptions, ILoggerFactory loggerFactory) : base(projectSnapshotManagerDispatcher, documentResolver, razorDocumentMappingService, languageServer, documentVersionCache, languageServerFeatureOptions, loggerFactory.CreateLogger <TextDocumentTextPresentationEndpoint>()) { }
public InlineCompletionEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorDocumentMappingService documentMappingService, ClientNotifierServiceBase languageServer, AdhocWorkspaceFactory adhocWorkspaceFactory, ILoggerFactory loggerFactory) { if (projectSnapshotManagerDispatcher is null) { throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); } if (documentResolver is null) { throw new ArgumentNullException(nameof(documentResolver)); } if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (languageServer is null) { throw new ArgumentNullException(nameof(languageServer)); } if (adhocWorkspaceFactory is null) { throw new ArgumentNullException(nameof(adhocWorkspaceFactory)); } if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _documentResolver = documentResolver; _documentMappingService = documentMappingService; _languageServer = languageServer; _adhocWorkspaceFactory = adhocWorkspaceFactory; _logger = loggerFactory.CreateLogger <InlineCompletionEndpoint>(); }
public RazorFormattingEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorFormattingService razorFormattingService, RazorDocumentMappingService razorDocumentMappingService, IOptionsMonitor <RazorLSPOptions> optionsMonitor, ILoggerFactory loggerFactory) { if (projectSnapshotManagerDispatcher is null) { throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); } if (documentResolver is null) { throw new ArgumentNullException(nameof(documentResolver)); } if (razorFormattingService is null) { throw new ArgumentNullException(nameof(razorFormattingService)); } if (razorDocumentMappingService is null) { throw new ArgumentNullException(nameof(razorDocumentMappingService)); } if (optionsMonitor is null) { throw new ArgumentNullException(nameof(optionsMonitor)); } if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _documentResolver = documentResolver; _razorFormattingService = razorFormattingService; _razorDocumentMappingService = razorDocumentMappingService; _optionsMonitor = optionsMonitor; _logger = loggerFactory.CreateLogger <RazorFormattingEndpoint>(); }
public RazorDefinitionEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorComponentSearchEngine componentSearchEngine, RazorDocumentMappingService documentMappingService, ILoggerFactory loggerFactory) { if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher ?? throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _componentSearchEngine = componentSearchEngine ?? throw new ArgumentNullException(nameof(componentSearchEngine)); _documentMappingService = documentMappingService ?? throw new ArgumentNullException(nameof(documentMappingService)); _logger = loggerFactory.CreateLogger <RazorDefinitionEndpoint>(); }
public CodeActionEndpoint( RazorDocumentMappingService documentMappingService, IEnumerable <RazorCodeActionProvider> razorCodeActionProviders, IEnumerable <CSharpCodeActionProvider> csharpCodeActionProviders, ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, ClientNotifierServiceBase languageServer, LanguageServerFeatureOptions languageServerFeatureOptions) { _documentMappingService = documentMappingService ?? throw new ArgumentNullException(nameof(documentMappingService)); _razorCodeActionProviders = razorCodeActionProviders ?? throw new ArgumentNullException(nameof(razorCodeActionProviders)); _csharpCodeActionProviders = csharpCodeActionProviders ?? throw new ArgumentNullException(nameof(csharpCodeActionProviders)); _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher ?? throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _languageServer = languageServer ?? throw new ArgumentNullException(nameof(languageServer)); _languageServerFeatureOptions = languageServerFeatureOptions ?? throw new ArgumentNullException(nameof(languageServerFeatureOptions)); _allAvailableCodeActionNames = GetAllAvailableCodeActionNames(); }
public DefaultRazorSemanticTokensInfoService( ClientNotifierServiceBase languageServer, RazorDocumentMappingService documentMappingService, ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, DocumentVersionCache documentVersionCache, ILoggerFactory loggerFactory) { _languageServer = languageServer ?? throw new ArgumentNullException(nameof(languageServer)); _documentMappingService = documentMappingService ?? throw new ArgumentNullException(nameof(documentMappingService)); _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher ?? throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _documentVersionCache = documentVersionCache ?? throw new ArgumentNullException(nameof(documentVersionCache)); if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _logger = loggerFactory.CreateLogger <DefaultRazorSemanticTokensInfoService>(); }
public FormattingPassBase( RazorDocumentMappingService documentMappingService, FilePathNormalizer filePathNormalizer, ClientNotifierServiceBase server) { if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } if (server is null) { throw new ArgumentNullException(nameof(server)); } DocumentMappingService = documentMappingService; }
public RazorDiagnosticsEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, DocumentVersionCache documentVersionCache, RazorDocumentMappingService documentMappingService, ILoggerFactory loggerFactory) { if (projectSnapshotManagerDispatcher == null) { throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); } if (documentResolver == null) { throw new ArgumentNullException(nameof(documentResolver)); } if (documentVersionCache == null) { throw new ArgumentNullException(nameof(documentVersionCache)); } if (documentMappingService == null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _documentResolver = documentResolver; _documentVersionCache = documentVersionCache; _documentMappingService = documentMappingService; _logger = loggerFactory.CreateLogger <RazorDiagnosticsEndpoint>(); }
public WrapWithTagEndpoint( ClientNotifierServiceBase languageServer, ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorDocumentMappingService razorDocumentMappingService, ILoggerFactory loggerFactory) { if (languageServer is null) { throw new ArgumentNullException(nameof(languageServer)); } if (projectSnapshotManagerDispatcher is null) { throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); } if (documentResolver is null) { throw new ArgumentNullException(nameof(documentResolver)); } if (razorDocumentMappingService is null) { throw new ArgumentNullException(nameof(razorDocumentMappingService)); } if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _languageServer = languageServer; _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _documentResolver = documentResolver; _razorDocumentMappingService = razorDocumentMappingService; _logger = loggerFactory.CreateLogger <WrapWithTagEndpoint>(); }
public DefaultRazorFormattingService( RazorDocumentMappingService documentMappingService, FilePathNormalizer filePathNormalizer, ILanguageServer server, IOptionsMonitor <RazorLSPOptions> optionsMonitor, ILoggerFactory loggerFactory) { if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } if (server is null) { throw new ArgumentNullException(nameof(server)); } if (optionsMonitor is null) { throw new ArgumentNullException(nameof(optionsMonitor)); } if (loggerFactory is null) { throw new ArgumentNullException(nameof(loggerFactory)); } _server = server; _csharpFormatter = new CSharpFormatter(documentMappingService, server, filePathNormalizer); _htmlFormatter = new HtmlFormatter(server, filePathNormalizer); _optionsMonitor = optionsMonitor; _logger = loggerFactory.CreateLogger <DefaultRazorFormattingService>(); }
public CSharpFormatter( RazorDocumentMappingService documentMappingService, IClientLanguageServer languageServer, FilePathNormalizer filePathNormalizer) { if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (languageServer is null) { throw new ArgumentNullException(nameof(languageServer)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } _documentMappingService = documentMappingService; _server = languageServer; _filePathNormalizer = filePathNormalizer; try { var type = typeof(CSharpFormattingOptions).Assembly.GetType("Microsoft.CodeAnalysis.CSharp.Indentation.CSharpIndentationService", throwOnError: true); _indentationService = Activator.CreateInstance(type); var indentationService = type.GetInterface("IIndentationService"); _getIndentationMethod = indentationService.GetMethod("GetIndentation"); } catch (Exception ex) { throw new InvalidOperationException( "Error occured when creating an instance of Roslyn's IIndentationService. Roslyn may have changed in an unexpected way.", ex); } }
public TextDocumentUriPresentationEndpoint( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorDocumentMappingService razorDocumentMappingService, RazorComponentSearchEngine razorComponentSearchEngine, ClientNotifierServiceBase languageServer, DocumentVersionCache documentVersionCache, LanguageServerFeatureOptions languageServerFeatureOptions, ILoggerFactory loggerFactory) : base(projectSnapshotManagerDispatcher, documentResolver, razorDocumentMappingService, languageServer, documentVersionCache, languageServerFeatureOptions, loggerFactory.CreateLogger <TextDocumentUriPresentationEndpoint>()) { if (razorComponentSearchEngine is null) { throw new ArgumentNullException(nameof(razorComponentSearchEngine)); } _razorComponentSearchEngine = razorComponentSearchEngine; }
public CSharpFormatter( RazorDocumentMappingService documentMappingService, ClientNotifierServiceBase languageServer, FilePathNormalizer filePathNormalizer) { if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (languageServer is null) { throw new ArgumentNullException(nameof(languageServer)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } _documentMappingService = documentMappingService; _server = languageServer; _filePathNormalizer = filePathNormalizer; }
public FormattingPassBase( RazorDocumentMappingService documentMappingService, FilePathNormalizer filePathNormalizer, ILanguageServer server) { if (documentMappingService is null) { throw new ArgumentNullException(nameof(documentMappingService)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } if (server is null) { throw new ArgumentNullException(nameof(server)); } _documentMappingService = documentMappingService; CSharpFormatter = new CSharpFormatter(documentMappingService, server, filePathNormalizer); HtmlFormatter = new HtmlFormatter(server, filePathNormalizer); }
internal static async Task <Range?> TryGetPropertyRangeAsync(RazorCodeDocument codeDocument, string propertyName, RazorDocumentMappingService documentMappingService, ILogger logger, CancellationToken cancellationToken) { // Parse the C# file and find the property that matches the name. // We don't worry about parameter attributes here for two main reasons: // 1. We don't have symbolic information, so the best we could do would be checking for any // attribute named Parameter, regardless of which namespace. It also means we would have // to do more checks for all of the various ways that the attribute could be specified // (eg fully qualified, aliased, etc.) // 2. Since C# doesn't allow multiple properties with the same name, and we're doing a case // sensitive search, we know the property we find is the one the user is trying to encode in a // tag helper attribute. If they don't have the [Parameter] attribute then the Razor compiler // will error, but allowing them to Go To Def on that property regardless, actually helps // them fix the error. var csharpText = codeDocument.GetCSharpSourceText(); var syntaxTree = CSharpSyntaxTree.ParseText(csharpText, cancellationToken: cancellationToken); var root = await syntaxTree.GetRootAsync(cancellationToken).ConfigureAwait(false); // Since we know how the compiler generates the C# source we can be a little specific here, and avoid // long tree walks. If the compiler ever changes how they generate their code, the tests for this will break // so we'll know about it. if (root is CompilationUnitSyntax compilationUnit && compilationUnit.Members[0] is NamespaceDeclarationSyntax namespaceDeclaration && namespaceDeclaration.Members[0] is ClassDeclarationSyntax classDeclaration) { var property = classDeclaration .Members .OfType <PropertyDeclarationSyntax>() .Where(p => p.Identifier.ValueText.Equals(propertyName, StringComparison.Ordinal)) .FirstOrDefault(); if (property is null) { // The property probably exists in a partial class logger.LogInformation("Could not find property in the generated source. Comes from partial?"); return(null); } var range = property.Identifier.Span.AsRange(csharpText); if (documentMappingService.TryMapFromProjectedDocumentRange(codeDocument, range, out var originalRange)) { return(originalRange); } logger.LogInformation("Property found but couldn't map its location."); } logger.LogInformation("Generated C# was not in expected shape (CompilationUnit -> Namespace -> Class)"); return(null); }
protected CSharpFormattingPassBase(RazorDocumentMappingService documentMappingService, FilePathNormalizer filePathNormalizer, ClientNotifierServiceBase server) : base(documentMappingService, filePathNormalizer, server) { CSharpFormatter = new CSharpFormatter(documentMappingService, server, filePathNormalizer); }