protected AbstractEmbeddedLanguageFeaturesProvider(EmbeddedLanguageInfo info)
 {
     Languages = ImmutableArray.Create <IEmbeddedLanguage>(
         new DateAndTimeEmbeddedLanguageFeatures(info),
         new RegexEmbeddedLanguage(this, info),
         new JsonEmbeddedLanguage());
 }
 protected AbstractLanguageDetector(
     EmbeddedLanguageInfo info,
     ImmutableArray <string> languageIdentifiers)
 {
     Info      = info;
     _detector = new EmbeddedLanguageDetector(info, languageIdentifiers);
 }
 public RegexDiagnosticAnalyzer(EmbeddedLanguageInfo info)
     : base(DiagnosticId,
            new LocalizableResourceString(nameof(WorkspacesResources.Regex_issue_0), WorkspacesResources.ResourceManager, typeof(WorkspacesResources)),
            new LocalizableResourceString(nameof(WorkspacesResources.Regex_issue_0), WorkspacesResources.ResourceManager, typeof(WorkspacesResources)))
 {
     _info = info;
 }
Beispiel #4
0
 public RegexEmbeddedLanguageEditorFeatures(
     AbstractEmbeddedLanguageFeaturesProvider provider,
     EmbeddedLanguageInfo info
     ) : base(provider, info)
 {
     BraceMatcher = new RegexBraceMatcher(this);
 }
 protected AbstractEmbeddedLanguageEditorFeaturesProvider(EmbeddedLanguageInfo info) : base(info)
 {
     Languages = ImmutableArray.Create <IEmbeddedLanguage>(
         new DateAndTimeEmbeddedLanguageEditorFeatures(info),
         new RegexEmbeddedLanguageEditorFeatures(this, info),
         new FallbackEmbeddedLanguage(info));
 }
 protected AbstractEmbeddedLanguageFeaturesProvider(EmbeddedLanguageInfo info) : base(info)
 {
     // No 'Fallback' language added here.  That's because the Fallback language doesn't
     // support any of the IEmbeddedLanguageFeatures or IEmbeddedLanguageEditorFeatures
     // capabilities.
     Languages = ImmutableArray.Create <IEmbeddedLanguageFeatures>(
         new RegexEmbeddedLanguageFeatures(info));
 }
 protected AbstractDocumentHighlightsService(
     string languageName,
     EmbeddedLanguageInfo info,
     ISyntaxKinds syntaxKinds,
     IEnumerable <Lazy <IEmbeddedLanguageDocumentHighlighter, EmbeddedLanguageMetadata> > allServices)
     : base(languageName, info, syntaxKinds, allServices)
 {
 }
Beispiel #8
0
 protected AbstractFallbackEmbeddedLanguageClassifier(EmbeddedLanguageInfo info)
 {
     _info           = info;
     _supportedKinds = ImmutableArray.Create(
         info.SyntaxKinds.CharacterLiteralToken,
         info.SyntaxKinds.StringLiteralToken,
         info.SyntaxKinds.InterpolatedStringTextToken);
 }
 protected AbstractEmbeddedLanguageBraceMatcher(
     string languageName,
     EmbeddedLanguageInfo info,
     ISyntaxKinds syntaxKinds,
     IEnumerable <Lazy <IEmbeddedLanguageBraceMatcher, EmbeddedLanguageMetadata> > allServices)
     : base(languageName, info, syntaxKinds, allServices)
 {
 }
Beispiel #10
0
 protected AbstractRegexDiagnosticAnalyzer(EmbeddedLanguageInfo info)
     : base(DiagnosticId,
            RegularExpressionsOptions.ReportInvalidRegexPatterns,
            new LocalizableResourceString(nameof(WorkspacesResources.Regex_issue_0), WorkspacesResources.ResourceManager, typeof(WorkspacesResources)),
            new LocalizableResourceString(nameof(WorkspacesResources.Regex_issue_0), WorkspacesResources.ResourceManager, typeof(WorkspacesResources)))
 {
     _info = info;
 }
Beispiel #11
0
        public RegexEmbeddedLanguageFeatures(
            AbstractEmbeddedLanguageFeaturesProvider provider,
            EmbeddedLanguageInfo info) : base(info)
        {
            _provider = provider;

            DocumentHighlightsService = new RegexDocumentHighlightsService(this);
            CompletionProvider        = new RegexEmbeddedCompletionProvider(this);
        }
Beispiel #12
0
 protected AbstractLanguageDetector(
     string stringSyntaxAttributeName,
     EmbeddedLanguageInfo info,
     LanguageCommentDetector <TOptions> commentDetector)
 {
     _stringSyntaxAttributeName = stringSyntaxAttributeName;
     Info             = info;
     _commentDetector = commentDetector;
 }
Beispiel #13
0
 protected AbstractJsonDiagnosticAnalyzer(EmbeddedLanguageInfo info)
     : base(DiagnosticId,
            EnforceOnBuildValues.Json,
            JsonFeatureOptions.ReportInvalidJsonPatterns,
            new LocalizableResourceString(nameof(FeaturesResources.Invalid_JSON_pattern), FeaturesResources.ResourceManager, typeof(FeaturesResources)),
            new LocalizableResourceString(nameof(FeaturesResources.JSON_issue_0), FeaturesResources.ResourceManager, typeof(FeaturesResources)))
 {
     _info = info;
 }
 protected AbstractRegexDiagnosticAnalyzer(EmbeddedLanguageInfo info)
     : base(DiagnosticId,
            EnforceOnBuildValues.Regex,
            option: null,
            new LocalizableResourceString(nameof(FeaturesResources.Invalid_regex_pattern), FeaturesResources.ResourceManager, typeof(FeaturesResources)),
            new LocalizableResourceString(nameof(FeaturesResources.Regex_issue_0), FeaturesResources.ResourceManager, typeof(FeaturesResources)))
 {
     _info = info;
 }
Beispiel #15
0
 protected AbstractJsonDetectionAnalyzer(EmbeddedLanguageInfo info)
     : base(DiagnosticId,
            EnforceOnBuildValues.DetectProbableJsonStrings,
            option: null,
            new LocalizableResourceString(nameof(FeaturesResources.Probable_JSON_string_detected), FeaturesResources.ResourceManager, typeof(FeaturesResources)),
            new LocalizableResourceString(nameof(FeaturesResources.Probable_JSON_string_detected), FeaturesResources.ResourceManager, typeof(FeaturesResources)))
 {
     _info = info;
 }
Beispiel #16
0
        public RegexEmbeddedLanguage(
            AbstractEmbeddedLanguagesProvider provider,
            EmbeddedLanguageInfo info)
        {
            Info = info;

            _provider = provider;

            CompletionProvider = new RegexEmbeddedCompletionProvider(this);
        }
 protected AbstractEmbeddedLanguageClassificationService(
     string languageName,
     EmbeddedLanguageInfo info,
     ISyntaxKinds syntaxKinds,
     IEmbeddedLanguageClassifier fallbackClassifier,
     IEnumerable <Lazy <IEmbeddedLanguageClassifier, EmbeddedLanguageMetadata> > allClassifiers)
     : base(languageName, info, syntaxKinds, allClassifiers)
 {
     _fallbackClassifier = fallbackClassifier;
 }
Beispiel #18
0
 public RegexPatternDetector(
     SemanticModel semanticModel,
     EmbeddedLanguageInfo info,
     INamedTypeSymbol regexType,
     HashSet <string> methodNamesOfInterest)
 {
     _info                  = info;
     _semanticModel         = semanticModel;
     _regexType             = regexType;
     _methodNamesOfInterest = methodNamesOfInterest;
 }
Beispiel #19
0
 public DateAndTimePatternDetector(
     SemanticModel semanticModel,
     EmbeddedLanguageInfo info,
     INamedTypeSymbol dateTimeType,
     INamedTypeSymbol dateTimeOffsetType)
 {
     _info               = info;
     _semanticModel      = semanticModel;
     _dateTimeType       = dateTimeType;
     _dateTimeOffsetType = dateTimeOffsetType;
 }
Beispiel #20
0
        public static RegexPatternDetector TryGetOrCreate(
            SemanticModel semanticModel, EmbeddedLanguageInfo info)
        {
            // Do a quick non-allocating check first.
            if (_modelToDetector.TryGetValue(semanticModel, out var detector))
            {
                return(detector);
            }

            return(_modelToDetector.GetValue(
                       semanticModel, _ => TryCreate(semanticModel, info)));
        }
        public RegexEmbeddedLanguage(
            AbstractEmbeddedLanguageFeaturesProvider provider,
            EmbeddedLanguageInfo info)
        {
            Info       = info;
            Classifier = new RegexSyntaxClassifier(info);

            _provider = provider;

            DocumentHighlightsService = new RegexDocumentHighlightsService(this);
            CompletionProvider        = new RegexEmbeddedCompletionProvider(this);
        }
Beispiel #22
0
        private static DateAndTimePatternDetector?TryCreate(
            SemanticModel semanticModel, EmbeddedLanguageInfo info)
        {
            var dateTimeType       = semanticModel.Compilation.GetTypeByMetadataName(typeof(System.DateTime).FullName !);
            var dateTimeOffsetType = semanticModel.Compilation.GetTypeByMetadataName(typeof(System.DateTimeOffset).FullName !);

            if (dateTimeType == null || dateTimeOffsetType == null)
            {
                return(null);
            }

            return(new DateAndTimePatternDetector(semanticModel, info, dateTimeType, dateTimeOffsetType));
        }
        protected AbstractFallbackEmbeddedLanguageClassifier(EmbeddedLanguageInfo info)
        {
            _info = info;

            using var array = TemporaryArray <int> .Empty;

            array.Add(info.SyntaxKinds.CharacterLiteralToken);
            array.Add(info.SyntaxKinds.StringLiteralToken);
            array.Add(info.SyntaxKinds.InterpolatedStringTextToken);

            array.AsRef().AddIfNotNull(info.SyntaxKinds.Utf8StringLiteralToken);

            _supportedKinds = array.ToImmutableAndClear();
        }
Beispiel #24
0
        private static RegexPatternDetector TryCreate(
            SemanticModel semanticModel, EmbeddedLanguageInfo info)
        {
            var regexType = semanticModel.Compilation.GetTypeByMetadataName(typeof(Regex).FullName);

            if (regexType == null)
            {
                return(null);
            }

            var methodNamesOfInterest = GetMethodNamesOfInterest(regexType, info.SyntaxFacts);

            return(new RegexPatternDetector(
                       semanticModel, info, regexType, methodNamesOfInterest));
        }
 public JsonEmbeddedBraceMatcher(EmbeddedLanguageInfo info)
 {
     _info = info;
 }
 public JsonEmbeddedLanguageEditorFeatures(EmbeddedLanguageInfo info)
 {
     BraceMatcher = new JsonEmbeddedBraceMatcher(info);
 }
Beispiel #27
0
 public DateAndTimeEmbeddedLanguageEditorFeatures(EmbeddedLanguageInfo info)
     : base(info)
 {
 }
Beispiel #28
0
 public DateAndTimeEmbeddedLanguage(EmbeddedLanguageInfo info)
 {
     Info       = info;
     Classifier = new FallbackSyntaxClassifier(info);
 }
Beispiel #29
0
 public RegexSyntaxClassifier(EmbeddedLanguageInfo info)
 {
     _info            = info;
     SyntaxTokenKinds = ImmutableArray.Create(info.StringLiteralTokenKind);
 }
 public DateAndTimeEmbeddedLanguage(EmbeddedLanguageInfo info)
 {
     Info = info;
 }