From 8582630d52cbac45dbf915dc65401d3257a0abde Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 16 Mar 2018 13:01:05 -0700 Subject: [PATCH] Update features --- .../ValidateRegexStringTests.cs | 2 +- .../BraceMatching/CommonRegexBraceMatcher.cs | 4 ++-- .../ValidateRegexStringTests.vb | 6 +----- ...SharpValidateRegexStringDiagnosticAnalyzer.cs | 2 +- .../AbstractDocumentHighlightsService_Regex.cs | 12 ++++++++---- ...tractValidateRegexStringDiagnosticAnalyzer.cs | 4 ++-- ...BasicValidateRegexStringDiagnosticAnalyzer.vb | 2 +- .../Options/AdvancedOptionPageControl.xaml.cs | 3 +-- .../Options/AdvancedOptionPageControl.xaml.vb | 2 +- .../RegexPatternTokenClassifier.cs | 2 +- .../CommonRegexPatternTokenClassifier.cs | 16 +++++++++++----- .../RegularExpressions/RegexPatternDetector.cs | 4 ++-- src/Workspaces/Core/Portable/Workspaces.csproj | 3 +++ .../RegexPatternTokenClassifier.vb | 2 +- 14 files changed, 36 insertions(+), 28 deletions(-) rename src/Workspaces/Core/Portable/{ => EmbeddedLanguages}/RegularExpressions/RegexPatternDetector.cs (99%) diff --git a/src/EditorFeatures/CSharpTest/ValidateRegexString/ValidateRegexStringTests.cs b/src/EditorFeatures/CSharpTest/ValidateRegexString/ValidateRegexStringTests.cs index 76c7e37f4aa..017c78f4f32 100644 --- a/src/EditorFeatures/CSharpTest/ValidateRegexString/ValidateRegexStringTests.cs +++ b/src/EditorFeatures/CSharpTest/ValidateRegexString/ValidateRegexStringTests.cs @@ -6,8 +6,8 @@ using Microsoft.CodeAnalysis.CSharp.ValidateRegexString; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Diagnostics; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; using Microsoft.CodeAnalysis.Options; -using Microsoft.CodeAnalysis.RegularExpressions; using Roslyn.Test.Utilities; using Xunit; diff --git a/src/EditorFeatures/Core/Implementation/BraceMatching/CommonRegexBraceMatcher.cs b/src/EditorFeatures/Core/Implementation/BraceMatching/CommonRegexBraceMatcher.cs index cc3a7aee78f..b873f511fe7 100644 --- a/src/EditorFeatures/Core/Implementation/BraceMatching/CommonRegexBraceMatcher.cs +++ b/src/EditorFeatures/Core/Implementation/BraceMatching/CommonRegexBraceMatcher.cs @@ -2,10 +2,10 @@ using System.Threading; using System.Threading.Tasks; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; +using Microsoft.CodeAnalysis.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.LanguageServices; -using Microsoft.CodeAnalysis.RegularExpressions; using Microsoft.CodeAnalysis.Shared.Extensions; -using Microsoft.CodeAnalysis.VirtualChars; using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.Editor.Implementation.BraceMatching diff --git a/src/EditorFeatures/VisualBasicTest/ValidateRegexString/ValidateRegexStringTests.vb b/src/EditorFeatures/VisualBasicTest/ValidateRegexString/ValidateRegexStringTests.vb index a8e83edd9f9..534b1e30216 100644 --- a/src/EditorFeatures/VisualBasicTest/ValidateRegexString/ValidateRegexStringTests.vb +++ b/src/EditorFeatures/VisualBasicTest/ValidateRegexString/ValidateRegexStringTests.vb @@ -1,15 +1,11 @@ ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -Imports System.Collections.Generic -Imports System.Threading.Tasks Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Diagnostics +Imports Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions Imports Microsoft.CodeAnalysis.Options -Imports Microsoft.CodeAnalysis.RegularExpressions Imports Microsoft.CodeAnalysis.VisualBasic.ValidateRegexString -Imports Roslyn.Test.Utilities -Imports Xunit Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ValidateRegexString Public Class ValidateRegexStringTests diff --git a/src/Features/CSharp/Portable/ValidateRegexString/CSharpValidateRegexStringDiagnosticAnalyzer.cs b/src/Features/CSharp/Portable/ValidateRegexString/CSharpValidateRegexStringDiagnosticAnalyzer.cs index 2620ce3e5f2..297c61a0660 100644 --- a/src/Features/CSharp/Portable/ValidateRegexString/CSharpValidateRegexStringDiagnosticAnalyzer.cs +++ b/src/Features/CSharp/Portable/ValidateRegexString/CSharpValidateRegexStringDiagnosticAnalyzer.cs @@ -1,6 +1,6 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using Microsoft.CodeAnalysis.CSharp.VirtualChars; +using Microsoft.CodeAnalysis.CSharp.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.ValidateRegexString; diff --git a/src/Features/Core/Portable/DocumentHighlighting/AbstractDocumentHighlightsService_Regex.cs b/src/Features/Core/Portable/DocumentHighlighting/AbstractDocumentHighlightsService_Regex.cs index 53dac6bdc19..b7c66a9a5d2 100644 --- a/src/Features/Core/Portable/DocumentHighlighting/AbstractDocumentHighlightsService_Regex.cs +++ b/src/Features/Core/Portable/DocumentHighlighting/AbstractDocumentHighlightsService_Regex.cs @@ -4,15 +4,19 @@ using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; +using Microsoft.CodeAnalysis.EmbeddedLanguages.Common; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; +using Microsoft.CodeAnalysis.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.LanguageServices; -using Microsoft.CodeAnalysis.RegularExpressions; using Microsoft.CodeAnalysis.Shared.Extensions; using Microsoft.CodeAnalysis.Text; -using Microsoft.CodeAnalysis.VirtualChars; using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.DocumentHighlighting { + using static EmbeddedSyntaxHelpers; + using RegexToken = EmbeddedSyntaxToken; + internal abstract partial class AbstractDocumentHighlightsService : IDocumentHighlightsService { private async Task> TryGetRegexPatternHighlightsAsync( @@ -108,7 +112,7 @@ internal abstract partial class AbstractDocumentHighlightsService : IDocumentHig { return ImmutableArray.Create(new DocumentHighlights(document, ImmutableArray.Create( - new HighlightSpan(RegexHelpers.GetSpan(node), HighlightSpanKind.None), + new HighlightSpan(GetSpan(node), HighlightSpanKind.None), new HighlightSpan(captureSpan, HighlightSpanKind.None)))); } @@ -133,7 +137,7 @@ private RegexEscapeNode FindReferenceNode(RegexNode node, VirtualChar virtualCha node.Kind == RegexKind.CaptureEscape || node.Kind == RegexKind.KCaptureEscape) { - if (RegexHelpers.Contains(node, virtualChar)) + if (Contains(node, virtualChar)) { return (RegexEscapeNode)node; } diff --git a/src/Features/Core/Portable/ValidateRegexString/AbstractValidateRegexStringDiagnosticAnalyzer.cs b/src/Features/Core/Portable/ValidateRegexString/AbstractValidateRegexStringDiagnosticAnalyzer.cs index 6dc1989bdff..9ba91dca489 100644 --- a/src/Features/Core/Portable/ValidateRegexString/AbstractValidateRegexStringDiagnosticAnalyzer.cs +++ b/src/Features/Core/Portable/ValidateRegexString/AbstractValidateRegexStringDiagnosticAnalyzer.cs @@ -4,8 +4,8 @@ using Microsoft.CodeAnalysis.CodeStyle; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.LanguageServices; -using Microsoft.CodeAnalysis.RegularExpressions; -using Microsoft.CodeAnalysis.VirtualChars; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; +using Microsoft.CodeAnalysis.EmbeddedLanguages.VirtualChars; namespace Microsoft.CodeAnalysis.ValidateRegexString { diff --git a/src/Features/VisualBasic/Portable/ValidateRegexString/VisualBasicValidateRegexStringDiagnosticAnalyzer.vb b/src/Features/VisualBasic/Portable/ValidateRegexString/VisualBasicValidateRegexStringDiagnosticAnalyzer.vb index a456b845d65..934c41cc39f 100644 --- a/src/Features/VisualBasic/Portable/ValidateRegexString/VisualBasicValidateRegexStringDiagnosticAnalyzer.vb +++ b/src/Features/VisualBasic/Portable/ValidateRegexString/VisualBasicValidateRegexStringDiagnosticAnalyzer.vb @@ -2,7 +2,7 @@ Imports Microsoft.CodeAnalysis.Diagnostics Imports Microsoft.CodeAnalysis.ValidateRegexString -Imports Microsoft.CodeAnalysis.VisualBasic.VirtualChars +Imports Microsoft.CodeAnalysis.VisualBasic.EmbeddedLanguages.VirtualChars Namespace Microsoft.CodeAnalysis.VisualBasic.ValidateRegexString diff --git a/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml.cs b/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml.cs index 398648392b2..871e46ea77b 100644 --- a/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml.cs +++ b/src/VisualStudio/CSharp/Impl/Options/AdvancedOptionPageControl.xaml.cs @@ -5,15 +5,14 @@ using Microsoft.CodeAnalysis.Editing; using Microsoft.CodeAnalysis.Editor.CSharp.SplitStringLiteral; using Microsoft.CodeAnalysis.Editor.Shared.Options; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; using Microsoft.CodeAnalysis.ExtractMethod; using Microsoft.CodeAnalysis.Fading; using Microsoft.CodeAnalysis.ImplementType; -using Microsoft.CodeAnalysis.RegularExpressions; using Microsoft.CodeAnalysis.Remote; using Microsoft.CodeAnalysis.Structure; using Microsoft.CodeAnalysis.SymbolSearch; using Microsoft.CodeAnalysis.ValidateFormatString; -using Microsoft.CodeAnalysis.ValidateRegexString; using Microsoft.VisualStudio.LanguageServices.Implementation.Options; namespace Microsoft.VisualStudio.LanguageServices.CSharp.Options diff --git a/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml.vb b/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml.vb index f716028e9c5..5696d82b477 100644 --- a/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml.vb +++ b/src/VisualStudio/VisualBasic/Impl/Options/AdvancedOptionPageControl.xaml.vb @@ -3,10 +3,10 @@ Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis.Editing Imports Microsoft.CodeAnalysis.Editor.Shared.Options +Imports Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions Imports Microsoft.CodeAnalysis.ExtractMethod Imports Microsoft.CodeAnalysis.Fading Imports Microsoft.CodeAnalysis.ImplementType -Imports Microsoft.CodeAnalysis.RegularExpressions Imports Microsoft.CodeAnalysis.Remote Imports Microsoft.CodeAnalysis.Structure Imports Microsoft.CodeAnalysis.SymbolSearch diff --git a/src/Workspaces/CSharp/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.cs b/src/Workspaces/CSharp/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.cs index 7360afb8436..dbabcad3204 100644 --- a/src/Workspaces/CSharp/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.cs +++ b/src/Workspaces/CSharp/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.cs @@ -4,7 +4,7 @@ using System.Diagnostics; using System.Threading; using Microsoft.CodeAnalysis.Classification; -using Microsoft.CodeAnalysis.CSharp.VirtualChars; +using Microsoft.CodeAnalysis.CSharp.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.PooledObjects; namespace Microsoft.CodeAnalysis.CSharp.Classification.Classifiers diff --git a/src/Workspaces/Core/Portable/Classification/SyntaxClassification/CommonRegexPatternTokenClassifier.cs b/src/Workspaces/Core/Portable/Classification/SyntaxClassification/CommonRegexPatternTokenClassifier.cs index 08dd8e47109..5178cc92a7a 100644 --- a/src/Workspaces/Core/Portable/Classification/SyntaxClassification/CommonRegexPatternTokenClassifier.cs +++ b/src/Workspaces/Core/Portable/Classification/SyntaxClassification/CommonRegexPatternTokenClassifier.cs @@ -2,13 +2,19 @@ using System.Linq; using System.Threading; +using Microsoft.CodeAnalysis.EmbeddedLanguages.Common; +using Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions; +using Microsoft.CodeAnalysis.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.LanguageServices; using Microsoft.CodeAnalysis.PooledObjects; -using Microsoft.CodeAnalysis.RegularExpressions; -using Microsoft.CodeAnalysis.VirtualChars; namespace Microsoft.CodeAnalysis.Classification { + using static EmbeddedSyntaxHelpers; + + using RegexToken = EmbeddedSyntaxToken; + using RegexTrivia = EmbeddedSyntaxTrivia; + internal static class CommonRegexPatternTokenClassifier { private static ObjectPool _visitorPool = new ObjectPool(() => new Visitor()); @@ -80,7 +86,7 @@ private static void AddTriviaClassifications(RegexTrivia trivia, ArrayBuilder 0) { result.Add(new ClassifiedSpan( - ClassificationTypeNames.RegexComment, RegexHelpers.GetSpan(trivia.VirtualChars))); + ClassificationTypeNames.RegexComment, GetSpan(trivia.VirtualChars))); } } @@ -92,7 +98,7 @@ private void AddClassification(RegexToken token, string typeName) { if (!token.IsMissing) { - Result.Add(new ClassifiedSpan(typeName, RegexHelpers.GetSpan(token))); + Result.Add(new ClassifiedSpan(typeName, GetSpan(token))); } } @@ -298,7 +304,7 @@ public void Visit(RegexPosixPropertyNode node) // classify the end part as a comment. Result.Add(new ClassifiedSpan(node.TextToken.VirtualChars[0].Span, ClassificationTypeNames.RegexText)); Result.Add(new ClassifiedSpan( - RegexHelpers.GetSpan(node.TextToken.VirtualChars[1], node.TextToken.VirtualChars.Last()), + GetSpan(node.TextToken.VirtualChars[1], node.TextToken.VirtualChars.Last()), ClassificationTypeNames.RegexComment)); } diff --git a/src/Workspaces/Core/Portable/RegularExpressions/RegexPatternDetector.cs b/src/Workspaces/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexPatternDetector.cs similarity index 99% rename from src/Workspaces/Core/Portable/RegularExpressions/RegexPatternDetector.cs rename to src/Workspaces/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexPatternDetector.cs index c3252503604..0e6405b0c26 100644 --- a/src/Workspaces/Core/Portable/RegularExpressions/RegexPatternDetector.cs +++ b/src/Workspaces/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexPatternDetector.cs @@ -8,12 +8,12 @@ using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using System.Threading; +using Microsoft.CodeAnalysis.EmbeddedLanguages.VirtualChars; using Microsoft.CodeAnalysis.LanguageServices; using Microsoft.CodeAnalysis.Shared.Extensions; -using Microsoft.CodeAnalysis.VirtualChars; using Roslyn.Utilities; -namespace Microsoft.CodeAnalysis.RegularExpressions +namespace Microsoft.CodeAnalysis.EmbeddedLanguages.RegularExpressions { /// /// Helper class to detect regex pattern tokens in a document efficiently. diff --git a/src/Workspaces/Core/Portable/Workspaces.csproj b/src/Workspaces/Core/Portable/Workspaces.csproj index 9d3059195c1..caf6fd3059e 100644 --- a/src/Workspaces/Core/Portable/Workspaces.csproj +++ b/src/Workspaces/Core/Portable/Workspaces.csproj @@ -328,5 +328,8 @@ + + + diff --git a/src/Workspaces/VisualBasic/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.vb b/src/Workspaces/VisualBasic/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.vb index ac362196e78..d7a4c70a683 100644 --- a/src/Workspaces/VisualBasic/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.vb +++ b/src/Workspaces/VisualBasic/Portable/Classification/SyntaxClassification/RegexPatternTokenClassifier.vb @@ -4,7 +4,7 @@ Imports System.Collections.Immutable Imports System.Threading Imports Microsoft.CodeAnalysis.Classification Imports Microsoft.CodeAnalysis.PooledObjects -Imports Microsoft.CodeAnalysis.VisualBasic.VirtualChars +Imports Microsoft.CodeAnalysis.VisualBasic.EmbeddedLanguages.VirtualChars Namespace Microsoft.CodeAnalysis.VisualBasic.Classification.Classifiers Friend Class RegexPatternTokenClassifier -- GitLab