public ProjectConfigurationFileChangeDetector( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, FilePathNormalizer filePathNormalizer, IEnumerable <IProjectConfigurationFileChangeListener> listeners, LanguageServerFeatureOptions languageServerFeatureOptions, ILoggerFactory loggerFactory = null) { if (projectSnapshotManagerDispatcher is null) { throw new ArgumentNullException(nameof(projectSnapshotManagerDispatcher)); } if (filePathNormalizer is null) { throw new ArgumentNullException(nameof(filePathNormalizer)); } if (listeners is null) { throw new ArgumentNullException(nameof(listeners)); } if (languageServerFeatureOptions is null) { throw new ArgumentNullException(nameof(languageServerFeatureOptions)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _filePathNormalizer = filePathNormalizer; _listeners = listeners; _languageServerFeatureOptions = languageServerFeatureOptions; _logger = loggerFactory?.CreateLogger <ProjectConfigurationFileChangeDetector>(); }
protected AbstractTextDocumentPresentationEndpointBase( ProjectSnapshotManagerDispatcher projectSnapshotManagerDispatcher, DocumentResolver documentResolver, RazorDocumentMappingService razorDocumentMappingService, ClientNotifierServiceBase languageServer, DocumentVersionCache documentVersionCache, LanguageServerFeatureOptions languageServerFeatureOptions, ILogger logger) { 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 (languageServer is null) { throw new ArgumentNullException(nameof(languageServer)); } if (documentVersionCache is null) { throw new ArgumentNullException(nameof(documentVersionCache)); } if (languageServerFeatureOptions is null) { throw new ArgumentNullException(nameof(languageServerFeatureOptions)); } if (logger is null) { throw new ArgumentNullException(nameof(logger)); } _projectSnapshotManagerDispatcher = projectSnapshotManagerDispatcher; _documentResolver = documentResolver; _razorDocumentMappingService = razorDocumentMappingService; _languageServer = languageServer; _documentVersionCache = documentVersionCache; _languageServerFeatureOptions = languageServerFeatureOptions; _logger = logger; }
public RazorComponentRenameEndpoint( ForegroundDispatcher foregroundDispatcher, DocumentResolver documentResolver, RazorComponentSearchEngine componentSearchEngine, ProjectSnapshotManagerAccessor projectSnapshotManagerAccessor, LanguageServerFeatureOptions languageServerFeatureOptions) { _foregroundDispatcher = foregroundDispatcher ?? throw new ArgumentNullException(nameof(foregroundDispatcher)); _documentResolver = documentResolver ?? throw new ArgumentNullException(nameof(documentResolver)); _componentSearchEngine = componentSearchEngine ?? throw new ArgumentNullException(nameof(componentSearchEngine)); _projectSnapshotManager = projectSnapshotManagerAccessor?.Instance ?? throw new ArgumentNullException(nameof(projectSnapshotManagerAccessor)); _languageServerFeatureOptions = languageServerFeatureOptions ?? throw new ArgumentNullException(nameof(languageServerFeatureOptions)); }
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 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 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; }
private RazorComponentRenameEndpoint CreateEndpoint(LanguageServerFeatureOptions languageServerFeatureOptions = null) { var tagHelperDescriptors = new List <TagHelperDescriptor>(); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("First", "First.Components", "Component1")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("First", "Test", "Component2")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("Second", "Second.Components", "Component3")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("Second", "Second.Components", "Component4")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("First", "Test", "Component1337")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("First", "Test.Components", "Directory1")); tagHelperDescriptors.AddRange(CreateRazorComponentTagHelperDescriptors("First", "Test.Components", "Directory2")); var item1 = CreateProjectItem("@namespace First.Components\n@using Test\n<Component2></Component2>", "c:/First/Component1.razor"); var item2 = CreateProjectItem("@namespace Test", "c:/First/Component2.razor"); var item3 = CreateProjectItem("@namespace Second.Components\n<Component3></Component3>", "c:/Second/Component3.razor"); var item4 = CreateProjectItem("@namespace Second.Components\n<Component3></Component3>\n<Component3></Component3>", "c:/Second/Component4.razor"); var itemComponentParam = CreateProjectItem("@namespace Second.Components\n<Component3 Title=\"Something\"></Component3>", "c:/Second/Component5.razor"); var item1337 = CreateProjectItem(string.Empty, "c:/First/Component1337.razor"); var indexItem = CreateProjectItem("@namespace First.Components\n@using Test\n<Component1337></Component1337>\n<Test.Component1337></Test.Component1337>", "c:/First/Index.razor"); var itemDirectory1 = CreateProjectItem("@namespace Test.Components\n<Directory2></Directory2>", "c:/Dir1/Directory1.razor"); var itemDirectory2 = CreateProjectItem("@namespace Test.Components\n<Directory1></Directory1>", "c:/Dir2/Directory2.razor"); var fileSystem = new TestRazorProjectFileSystem(new[] { item1, item2, item3, item4, itemComponentParam, indexItem, itemDirectory1, itemDirectory2 }); var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, fileSystem, builder => { builder.AddDirective(NamespaceDirective.Directive); builder.AddTagHelpers(tagHelperDescriptors); }); var component1 = CreateRazorDocumentSnapshot(projectEngine, item1, "First.Components", tagHelperDescriptors); var component2 = CreateRazorDocumentSnapshot(projectEngine, item2, "Test", tagHelperDescriptors); var component3 = CreateRazorDocumentSnapshot(projectEngine, item3, "Second.Components", tagHelperDescriptors); var component4 = CreateRazorDocumentSnapshot(projectEngine, item4, "Second.Components", tagHelperDescriptors); var componentWithParam = CreateRazorDocumentSnapshot(projectEngine, itemComponentParam, "Second.Components", tagHelperDescriptors); var component1337 = CreateRazorDocumentSnapshot(projectEngine, item1337, "Test", tagHelperDescriptors); var index = CreateRazorDocumentSnapshot(projectEngine, indexItem, "First.Components", tagHelperDescriptors); var directory1Component = CreateRazorDocumentSnapshot(projectEngine, itemDirectory1, "Test.Components", tagHelperDescriptors); var directory2Component = CreateRazorDocumentSnapshot(projectEngine, itemDirectory2, "Test.Components", tagHelperDescriptors); var firstProject = Mock.Of <ProjectSnapshot>(p => p.FilePath == "c:/First/First.csproj" && p.DocumentFilePaths == new[] { "c:/First/Component1.razor", "c:/First/Component2.razor", itemDirectory1.FilePath, itemDirectory2.FilePath, component1337.FilePath } && p.GetDocument("c:/First/Component1.razor") == component1 && p.GetDocument("c:/First/Component2.razor") == component2 && p.GetDocument(itemDirectory1.FilePath) == directory1Component && p.GetDocument(itemDirectory2.FilePath) == directory2Component && p.GetDocument(component1337.FilePath) == component1337, MockBehavior.Strict); var secondProject = Mock.Of <ProjectSnapshot>(p => p.FilePath == "c:/Second/Second.csproj" && p.DocumentFilePaths == new[] { "c:/Second/Component3.razor", "c:/Second/Component4.razor", index.FilePath } && p.GetDocument("c:/Second/Component3.razor") == component3 && p.GetDocument("c:/Second/Component4.razor") == component4 && p.GetDocument("c:/Second/ComponentWithParam.razor") == componentWithParam && p.GetDocument(index.FilePath) == index, MockBehavior.Strict); var projectSnapshotManager = Mock.Of <ProjectSnapshotManagerBase>(p => p.Projects == new[] { firstProject, secondProject }, MockBehavior.Strict); var projectSnapshotManagerAccessor = new TestProjectSnapshotManagerAccessor(projectSnapshotManager); var documentResolver = Mock.Of <DocumentResolver>(d => d.TryResolveDocument("c:/First/Component1.razor", out component1) == true && d.TryResolveDocument("c:/First/Component2.razor", out component2) == true && d.TryResolveDocument("c:/Second/Component3.razor", out component3) == true && d.TryResolveDocument("c:/Second/Component4.razor", out component4) == true && d.TryResolveDocument("c:/Second/ComponentWithParam.razor", out componentWithParam) == true && d.TryResolveDocument(index.FilePath, out index) == true && d.TryResolveDocument(component1337.FilePath, out component1337) == true && d.TryResolveDocument(itemDirectory1.FilePath, out directory1Component) == true && d.TryResolveDocument(itemDirectory2.FilePath, out directory2Component) == true, MockBehavior.Strict); var searchEngine = new DefaultRazorComponentSearchEngine(Dispatcher, projectSnapshotManagerAccessor); languageServerFeatureOptions = languageServerFeatureOptions ?? Mock.Of <LanguageServerFeatureOptions>(options => options.SupportsFileManipulation == true, MockBehavior.Strict); var endpoint = new RazorComponentRenameEndpoint(Dispatcher, documentResolver, searchEngine, projectSnapshotManagerAccessor, languageServerFeatureOptions); return(endpoint); }