public EmbeddedLanguagesClassifier(IEmbeddedLanguagesProvider languagesProvider) { _languagesProvider = languagesProvider; SyntaxTokenKinds = languagesProvider.Languages .Where(p => p.Classifier != null) .SelectMany(p => p.Classifier.SyntaxTokenKinds) .Distinct() .ToImmutableArray(); }
protected AbstractEmbeddedLanguageDiagnosticAnalyzer( IEmbeddedLanguagesProvider languagesProvider) { var supportedDiagnostics = ArrayBuilder <DiagnosticDescriptor> .GetInstance(); var analyzers = ArrayBuilder <IEmbeddedDiagnosticAnalyzer> .GetInstance(); if (languagesProvider != null) { foreach (var language in languagesProvider.GetEmbeddedLanguages()) { var analyzer = language.DiagnosticAnalyzer; if (analyzer != null) { analyzers.Add(analyzer); supportedDiagnostics.AddRange(analyzer.SupportedDiagnostics); } } } _analyzers = analyzers.ToImmutableAndFree(); this.SupportedDiagnostics = supportedDiagnostics.ToImmutableAndFree(); }
protected AbstractEmbeddedLanguageCodeFixProvider( IEmbeddedLanguagesProvider embeddedLanguagesProvider) { _diagnosticIdToCodeFixProvider = new Dictionary <string, IEmbeddedCodeFixProvider>(); // Create a mapping from each IEmbeddedCodeFixProvider.FixableDiagnosticIds back to the // IEmbeddedCodeFixProvider itself. That way, when we hear about diagnostics, we know // which provider to actually do the fixing. foreach (var language in embeddedLanguagesProvider.GetEmbeddedLanguages()) { var codeFixProvider = language.CodeFixProvider; if (codeFixProvider != null) { foreach (var diagnosticId in codeFixProvider.FixableDiagnosticIds) { // 'Add' is intentional. We want to throw if multiple fix providers // register for the say diagnostic ID. _diagnosticIdToCodeFixProvider.Add(diagnosticId, codeFixProvider); } } } this.FixableDiagnosticIds = _diagnosticIdToCodeFixProvider.Keys.ToImmutableArray(); }
protected AbstractEmbeddedLanguagesClassifier(IEmbeddedLanguagesProvider languagesProvider) { _languagesProvider = languagesProvider; SyntaxTokenKinds = languagesProvider.Languages.SelectMany(p => p.Classifier.SyntaxTokenKinds).Distinct().ToImmutableArray(); }
public EmbeddedLanguageCompletionProvider(IEmbeddedLanguagesProvider languagesProvider) { _languageProviders = languagesProvider?.Languages ?? ImmutableArray <IEmbeddedLanguage> .Empty; }
protected AbstractEmbeddedLanguagesTokenClassifier(IEmbeddedLanguagesProvider languagesProvider) { _languagesProvider = languagesProvider; }