diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs index fe2c6e92b2..69869f6492 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultDirectiveSyntaxTreePass.cs @@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Razor.Language { if (_nestedLevel > 0) { - var directiveStart = block.Children.First(child => !child.IsBlock && ((Span)child).Kind == SpanKind.Transition).Start; + var directiveStart = block.Children.First(child => !child.IsBlock && ((Span)child).Kind == SpanKindInternal.Transition).Start; var errorLength = /* @ */ 1 + CSharpCodeParser.SectionDirectiveDescriptor.Name.Length; _errorSink.OnError( directiveStart, diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/AcceptedCharactersInternal.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/AcceptedCharactersInternal.cs new file mode 100644 index 0000000000..f6b658f769 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/AcceptedCharactersInternal.cs @@ -0,0 +1,22 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + [Flags] + internal enum AcceptedCharactersInternal + { + None = 0, + NewLine = 1, + WhiteSpace = 2, + + NonWhiteSpace = 4, + + AllWhiteSpace = NewLine | WhiteSpace, + Any = AllWhiteSpace | NonWhiteSpace, + + AnyExceptNewline = NonWhiteSpace | WhiteSpace + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/AutoCompleteEditHandler.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/AutoCompleteEditHandler.cs index 48bfa5dbc1..ae4291f987 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/AutoCompleteEditHandler.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/AutoCompleteEditHandler.cs @@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AutoCompleteAtEndOfSpan = autoCompleteAtEndOfSpan; } - public AutoCompleteEditHandler(Func> tokenizer, AcceptedCharacters accepted) + public AutoCompleteEditHandler(Func> tokenizer, AcceptedCharactersInternal accepted) : base(tokenizer, accepted) { } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/BackgroundParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/BackgroundParser.cs deleted file mode 100644 index bc9a97a43f..0000000000 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/BackgroundParser.cs +++ /dev/null @@ -1,447 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading; - -namespace Microsoft.AspNetCore.Razor.Language.Legacy -{ - internal class BackgroundParser : IDisposable - { - private MainThreadState _main; - private BackgroundThread _bg; - - public BackgroundParser(RazorTemplateEngine templateEngine, string fileName) - { - _main = new MainThreadState(fileName); - _bg = new BackgroundThread(_main, templateEngine, fileName); - - _main.ResultsReady += (sender, args) => OnResultsReady(args); - } - - /// - /// Fired on the main thread. - /// - public event EventHandler ResultsReady; - - public bool IsIdle - { - get { return _main.IsIdle; } - } - - public void Start() - { - _bg.Start(); - } - - public void Cancel() - { - _main.Cancel(); - } - -#pragma warning disable CS0612 // Type or member is obsolete - public void QueueChange(TextChange change) -#pragma warning restore CS0612 // Type or member is obsolete - { - _main.QueueChange(change); - } - - public void Dispose() - { - _main.Cancel(); - } - - public IDisposable SynchronizeMainThreadState() - { - return _main.Lock(); - } - - protected virtual void OnResultsReady(DocumentParseCompleteEventArgs args) - { - var handler = ResultsReady; - if (handler != null) - { - handler(this, args); - } - } - -#pragma warning disable CS0612 // Type or member is obsolete - internal static bool TreesAreDifferent(RazorSyntaxTree leftTree, RazorSyntaxTree rightTree, IEnumerable changes, CancellationToken cancelToken) -#pragma warning restore CS0612 // Type or member is obsolete - { - return TreesAreDifferent(leftTree.Root, rightTree.Root, changes, cancelToken); - } - -#pragma warning disable CS0612 // Type or member is obsolete - internal static bool TreesAreDifferent(Block leftTree, Block rightTree, IEnumerable changes) -#pragma warning restore CS0612 // Type or member is obsolete - { - return TreesAreDifferent(leftTree, rightTree, changes, CancellationToken.None); - } - -#pragma warning disable CS0612 // Type or member is obsolete - internal static bool TreesAreDifferent(Block leftTree, Block rightTree, IEnumerable changes, CancellationToken cancelToken) -#pragma warning restore CS0612 // Type or member is obsolete - { - // Apply all the pending changes to the original tree - // PERF: If this becomes a bottleneck, we can probably do it the other way around, - // i.e. visit the tree and find applicable changes for each node. -#pragma warning disable CS0612 // Type or member is obsolete - foreach (var change in changes) -#pragma warning restore CS0612 // Type or member is obsolete - { - cancelToken.ThrowIfCancellationRequested(); - - var sourceChange = change.AsSourceChange(); - var changeOwner = leftTree.LocateOwner(sourceChange); - - // Apply the change to the tree - if (changeOwner == null) - { - return true; - } - - var result = changeOwner.EditHandler.ApplyChange(changeOwner, sourceChange, force: true); - changeOwner.ReplaceWith(result.EditedSpan); - } - - // Now compare the trees - var treesDifferent = !leftTree.EquivalentTo(rightTree); - return treesDifferent; - } - - private abstract class ThreadStateBase - { -#if DEBUG - private int _id = -1; -#endif - protected ThreadStateBase() - { - } - - [Conditional("DEBUG")] - protected void SetThreadId(int id) - { -#if DEBUG - _id = id; -#endif - } - - [Conditional("DEBUG")] - protected void EnsureOnThread() - { -#if DEBUG - Debug.Assert(_id != -1, "SetThreadId was never called!"); - Debug.Assert(Thread.CurrentThread.ManagedThreadId == _id, "Called from an unexpected thread!"); -#endif - } - - [Conditional("DEBUG")] - protected void EnsureNotOnThread() - { -#if DEBUG - Debug.Assert(_id != -1, "SetThreadId was never called!"); - Debug.Assert(Thread.CurrentThread.ManagedThreadId != _id, "Called from an unexpected thread!"); -#endif - } - } - - private class MainThreadState : ThreadStateBase, IDisposable - { - private readonly CancellationTokenSource _cancelSource = new CancellationTokenSource(); - private readonly ManualResetEventSlim _hasParcel = new ManualResetEventSlim(false); - private CancellationTokenSource _currentParcelCancelSource; - - private string _fileName; - private readonly object _stateLock = new object(); -#pragma warning disable CS0612 // Type or member is obsolete - private IList _changes = new List(); -#pragma warning restore CS0612 // Type or member is obsolete - - public MainThreadState(string fileName) - { - _fileName = fileName; - - SetThreadId(Thread.CurrentThread.ManagedThreadId); - } - - public event EventHandler ResultsReady; - - public CancellationToken CancelToken - { - get { return _cancelSource.Token; } - } - - public bool IsIdle - { - get - { - lock (_stateLock) - { - return _currentParcelCancelSource == null; - } - } - } - - public void Cancel() - { - EnsureOnThread(); - _cancelSource.Cancel(); - } - - public IDisposable Lock() - { - Monitor.Enter(_stateLock); - return new DisposableAction(() => Monitor.Exit(_stateLock)); - } - -#pragma warning disable CS0612 // Type or member is obsolete - public void QueueChange(TextChange change) -#pragma warning restore CS0612 // Type or member is obsolete - { - EnsureOnThread(); - lock (_stateLock) - { - // CurrentParcel token source is not null ==> There's a parse underway - if (_currentParcelCancelSource != null) - { - _currentParcelCancelSource.Cancel(); - } - - _changes.Add(change); - _hasParcel.Set(); - } - } - - public WorkParcel GetParcel() - { - EnsureNotOnThread(); // Only the background thread can get a parcel - _hasParcel.Wait(_cancelSource.Token); - _hasParcel.Reset(); - lock (_stateLock) - { - // Create a cancellation source for this parcel - _currentParcelCancelSource = new CancellationTokenSource(); - - var changes = _changes; -#pragma warning disable CS0612 // Type or member is obsolete - _changes = new List(); -#pragma warning restore CS0612 // Type or member is obsolete - return new WorkParcel(changes, _currentParcelCancelSource.Token); - } - } - - public void ReturnParcel(DocumentParseCompleteEventArgs args) - { - lock (_stateLock) - { - // Clear the current parcel cancellation source - if (_currentParcelCancelSource != null) - { - _currentParcelCancelSource.Dispose(); - _currentParcelCancelSource = null; - } - - // If there are things waiting to be parsed, just don't fire the event because we're already out of date - if (_changes.Any()) - { - return; - } - } - var handler = ResultsReady; - if (handler != null) - { - handler(this, args); - } - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (disposing) - { - if (_currentParcelCancelSource != null) - { - _currentParcelCancelSource.Dispose(); - _currentParcelCancelSource = null; - } - _cancelSource.Dispose(); - _hasParcel.Dispose(); - } - } - } - - private class BackgroundThread : ThreadStateBase - { - private MainThreadState _main; - private Thread _backgroundThread; - private CancellationToken _shutdownToken; - private RazorTemplateEngine _templateEngine; - private string _fileName; - private RazorSyntaxTree _currentSyntaxTree; -#pragma warning disable CS0612 // Type or member is obsolete - private IList _previouslyDiscarded = new List(); -#pragma warning restore CS0612 // Type or member is obsolete - - public BackgroundThread(MainThreadState main, RazorTemplateEngine templateEngine, string fileName) - { - // Run on MAIN thread! - _main = main; - _shutdownToken = _main.CancelToken; - _templateEngine = templateEngine; - _fileName = fileName; - - _backgroundThread = new Thread(WorkerLoop); - SetThreadId(_backgroundThread.ManagedThreadId); - } - - // **** ANY THREAD **** - public void Start() - { - _backgroundThread.Start(); - } - - // **** BACKGROUND THREAD **** - private void WorkerLoop() - { - var fileNameOnly = Path.GetFileName(_fileName); - - try - { - EnsureOnThread(); - -#if NETSTANDARD1_3 - var spinWait = new SpinWait(); -#endif - - while (!_shutdownToken.IsCancellationRequested) - { - // Grab the parcel of work to do - var parcel = _main.GetParcel(); - if (parcel.Changes.Any()) - { - try - { - DocumentParseCompleteEventArgs args = null; - using (var linkedCancel = CancellationTokenSource.CreateLinkedTokenSource(_shutdownToken, parcel.CancelToken)) - { - if (!linkedCancel.IsCancellationRequested) - { - // Collect ALL changes -#pragma warning disable CS0612 // Type or member is obsolete - List allChanges; -#pragma warning restore CS0612 // Type or member is obsolete - - if (_previouslyDiscarded != null) - { - allChanges = Enumerable.Concat(_previouslyDiscarded, parcel.Changes).ToList(); - } - else - { - allChanges = parcel.Changes.ToList(); - } - - var finalChange = allChanges.Last(); - - var results = ParseChange(finalChange.NewBuffer, linkedCancel.Token); - - if (results != null && !linkedCancel.IsCancellationRequested) - { - // Clear discarded changes list - _previouslyDiscarded = null; - - var treeStructureChanged = _currentSyntaxTree == null || TreesAreDifferent(_currentSyntaxTree, results.GetSyntaxTree(), allChanges, parcel.CancelToken); - _currentSyntaxTree = results.GetSyntaxTree(); - - // Build Arguments - args = new DocumentParseCompleteEventArgs() - { - GeneratorResults = results, - SourceChange = finalChange, - TreeStructureChanged = treeStructureChanged - }; - } - else - { - // Parse completed but we were cancelled in the mean time. Add these to the discarded changes set - _previouslyDiscarded = allChanges; - } - } - } - if (args != null) - { - _main.ReturnParcel(args); - } - } - catch (OperationCanceledException) - { - } - } - else - { -#if NETSTANDARD1_3 - // This does the equivalent of thread.yield under the covers. - spinWait.SpinOnce(); -#else - // No Yield in CoreCLR - - Thread.Yield(); -#endif - } - } - } - catch (OperationCanceledException) - { - // Do nothing. Just shut down. - } - finally - { - // Clean up main thread resources - _main.Dispose(); - } - } - - private RazorCodeDocument ParseChange(ITextBuffer buffer, CancellationToken token) - { - EnsureOnThread(); - - // Seek the buffer to the beginning - buffer.Position = 0; - - var sourceDocument = LegacySourceDocument.Create(buffer, _fileName); - var imports = _templateEngine.GetImports(_fileName); - - var codeDocument = RazorCodeDocument.Create(sourceDocument, imports); - - _templateEngine.GenerateCode(codeDocument); - return codeDocument; - } - } - - private class WorkParcel - { -#pragma warning disable CS0612 // Type or member is obsolete - public WorkParcel(IList changes, CancellationToken cancelToken) -#pragma warning restore CS0612 // Type or member is obsolete - { - Changes = changes; - CancelToken = cancelToken; - } - - public CancellationToken CancelToken { get; private set; } -#pragma warning disable CS0612 // Type or member is obsolete - public IList Changes { get; private set; } -#pragma warning restore CS0612 // Type or member is obsolete - } - } -} -#pragma warning restore CS0618 diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/Block.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/Block.cs index 39fc09ea9e..781a6e0b5b 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/Block.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/Block.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy source.Reset(); } - protected Block(BlockKind? type, IReadOnlyList children, IParentChunkGenerator generator) + protected Block(BlockKindInternal? type, IReadOnlyList children, IParentChunkGenerator generator) { if (type == null) { @@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } public IParentChunkGenerator ChunkGenerator { get; } - public BlockKind Type { get; } + public BlockKindInternal Type { get; } public IReadOnlyList Children { get; } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockBuilder.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockBuilder.cs index 29046df7e0..3e3905c4a7 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockBuilder.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockBuilder.cs @@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public IParentChunkGenerator ChunkGenerator { get; set; } - public BlockKind? Type { get; set; } + public BlockKindInternal? Type { get; set; } public List Children { get; private set; } diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockKindInternal.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockKindInternal.cs new file mode 100644 index 0000000000..d5b384a956 --- /dev/null +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/BlockKindInternal.cs @@ -0,0 +1,24 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +namespace Microsoft.AspNetCore.Razor.Language.Legacy +{ + public enum BlockKindInternal + { + // Code + Statement, + Directive, + Functions, + Expression, + Helper, + + // Markup + Markup, + Section, + Template, + + // Special + Comment, + Tag + } +} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs index e48004e4e6..3d575bb71d 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/CSharpCodeParser.cs @@ -190,7 +190,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Span.Start = CurrentLocation; // Unless changed, the block is a statement block - using (Context.Builder.StartBlock(BlockKind.Statement)) + using (Context.Builder.StartBlock(BlockKindInternal.Statement)) { NextToken(); @@ -218,7 +218,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { if (Span.Symbols.Count > 0) { - Output(SpanKind.Code); + Output(SpanKindInternal.Code); } AtTransition(current); } @@ -228,7 +228,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AfterTransition(); } - Output(SpanKind.Code); + Output(SpanKindInternal.Code); } } } @@ -243,11 +243,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { Debug.Assert(current.Type == CSharpSymbolType.Transition); Accept(current); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; // Output the "@" span and continue here - Output(SpanKind.Transition); + Output(SpanKindInternal.Transition); AfterTransition(); } @@ -263,7 +263,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { if (CurrentSymbol.Type == CSharpSymbolType.LeftParenthesis) { - Context.Builder.CurrentBlock.Type = BlockKind.Expression; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Expression; Context.Builder.CurrentBlock.ChunkGenerator = new ExpressionChunkGenerator(); ExplicitExpression(); return; @@ -290,7 +290,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy CurrentSymbol.Content.Length); } - Context.Builder.CurrentBlock.Type = BlockKind.Expression; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Expression; Context.Builder.CurrentBlock.ChunkGenerator = new ExpressionChunkGenerator(); ImplicitExpression(); return; @@ -318,7 +318,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } // Invalid character - Context.Builder.CurrentBlock.Type = BlockKind.Expression; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Expression; Context.Builder.CurrentBlock.ChunkGenerator = new ExpressionChunkGenerator(); AddMarkerSymbolIfNecessary(); Span.ChunkGenerator = new ExpressionChunkGenerator(); @@ -327,7 +327,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy CurrentKeywords, acceptTrailingDot: IsNested) { - AcceptedCharacters = AcceptedCharacters.NonWhiteSpace + AcceptedCharacters = AcceptedCharactersInternal.NonWhiteSpace }; if (At(CSharpSymbolType.WhiteSpace) || At(CSharpSymbolType.NewLine)) { @@ -367,9 +367,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptAndMoveNext(); // Set up the "{" span and output - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); // Set up auto-complete and parse the code block var editHandler = new AutoCompleteEditHandler(Language.TokenizeString); @@ -382,12 +382,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { editHandler.AutoCompleteString = "}"; } - Output(SpanKind.Code); + Output(SpanKindInternal.Code); if (Optional(CSharpSymbolType.RightBrace)) { // Set up the "}" span - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; } @@ -401,24 +401,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } } - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); } private void ImplicitExpression() { - ImplicitExpression(AcceptedCharacters.NonWhiteSpace); + ImplicitExpression(AcceptedCharactersInternal.NonWhiteSpace); } // Async implicit expressions include the "await" keyword and therefore need to allow spaces to // separate the "await" and the following code. private void AsyncImplicitExpression() { - ImplicitExpression(AcceptedCharacters.AnyExceptNewline); + ImplicitExpression(AcceptedCharactersInternal.AnyExceptNewline); } - private void ImplicitExpression(AcceptedCharacters acceptedCharacters) + private void ImplicitExpression(AcceptedCharactersInternal acceptedCharacters) { - Context.Builder.CurrentBlock.Type = BlockKind.Expression; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Expression; Context.Builder.CurrentBlock.ChunkGenerator = new ExpressionChunkGenerator(); using (PushSpanConfig(span => @@ -441,11 +441,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy while (MethodCallOrArrayIndex(acceptedCharacters)); PutCurrentBack(); - Output(SpanKind.Code); + Output(SpanKindInternal.Code); } } - private bool MethodCallOrArrayIndex(AcceptedCharacters acceptedCharacters) + private bool MethodCallOrArrayIndex(AcceptedCharactersInternal acceptedCharacters) { if (!EndOfFile) { @@ -453,7 +453,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy CurrentSymbol.Type == CSharpSymbolType.LeftBracket) { // If we end within "(", whitespace is fine - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; CSharpSymbolType right; bool success; @@ -461,7 +461,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy using (PushSpanConfig((span, prev) => { prev(span); - span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; })) { right = Language.FlipBracket(CurrentSymbol.Type); @@ -555,7 +555,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy protected void CompleteBlock(bool insertMarkerIfNecessary, bool captureWhitespaceToEndOfLine) { - if (insertMarkerIfNecessary && Context.Builder.LastAcceptedCharacters != AcceptedCharacters.Any) + if (insertMarkerIfNecessary && Context.Builder.LastAcceptedCharacters != AcceptedCharactersInternal.Any) { AddMarkerSymbolIfNecessary(); } @@ -565,7 +565,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Read whitespace, but not newlines // If we're not inserting a marker span, we don't need to capture whitespace if (!Context.WhiteSpaceIsSignificantToAncestorBlock && - Context.Builder.CurrentBlock.Type != BlockKind.Expression && + Context.Builder.CurrentBlock.Type != BlockKindInternal.Expression && captureWhitespaceToEndOfLine && !Context.DesignTimeMode && !IsNested) @@ -605,9 +605,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var block = new Block(LegacyResources.BlockName_ExplicitExpression, CurrentStart); Assert(CSharpSymbolType.LeftParenthesis); AcceptAndMoveNext(); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); using (PushSpanConfig(ConfigureExplicitExpressionSpan)) { var success = Balance( @@ -634,30 +634,30 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } // Output the content span and then capture the ")" - Output(SpanKind.Code); + Output(SpanKindInternal.Code); } Optional(CSharpSymbolType.RightParenthesis); if (!EndOfFile) { PutCurrentBack(); } - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; CompleteBlock(insertMarkerIfNecessary: false); - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); } private void Template() { - if (Context.Builder.ActiveBlocks.Any(block => block.Type == BlockKind.Template)) + if (Context.Builder.ActiveBlocks.Any(block => block.Type == BlockKindInternal.Template)) { Context.ErrorSink.OnError( CurrentStart, LegacyResources.ParseError_InlineMarkup_Blocks_Cannot_Be_Nested, length: 1 /* @ */); } - Output(SpanKind.Code); - using (Context.Builder.StartBlock(BlockKind.Template)) + Output(SpanKindInternal.Code); + using (Context.Builder.StartBlock(BlockKindInternal.Template)) { Context.Builder.CurrentBlock.ChunkGenerator = new TemplateBlockChunkGenerator(); PutCurrentBack(); @@ -677,7 +677,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void NestedBlock() { - Output(SpanKind.Code); + Output(SpanKindInternal.Code); var wasNested = IsNested; IsNested = true; @@ -759,18 +759,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy LegacyResources.FormatParseError_ReservedWord(CurrentSymbol.Content), CurrentSymbol.Content.Length); AcceptAndMoveNext(); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; - Context.Builder.CurrentBlock.Type = BlockKind.Directive; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; CompleteBlock(); - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); } private void KeywordBlock(bool topLevel) { HandleKeyword(topLevel, () => { - Context.Builder.CurrentBlock.Type = BlockKind.Expression; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Expression; Context.Builder.CurrentBlock.ChunkGenerator = new ExpressionChunkGenerator(); ImplicitExpression(); }); @@ -799,7 +799,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void WhileClause() { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; var whitespace = SkipToNextImportantToken(); if (At(CSharpKeyword.While)) @@ -810,7 +810,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); if (AcceptCondition() && Optional(CSharpSymbolType.Semicolon)) { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } } else @@ -858,7 +858,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void UsingDeclaration() { // Set block type to directive - Context.Builder.CurrentBlock.Type = BlockKind.Directive; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; var start = CurrentStart; if (At(CSharpSymbolType.Identifier)) @@ -892,7 +892,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy NamespaceOrTypeName(); } - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.AnyExceptNewline; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline; Span.ChunkGenerator = new AddImportChunkGenerator(new LocationTagged( string.Concat(Span.Symbols.Skip(1).Select(s => s.Content)), start)); @@ -1028,7 +1028,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Return whitespace and end the block PutCurrentBack(); PutBack(whitespace); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; } } @@ -1049,7 +1049,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // No else, return whitespace PutCurrentBack(); PutBack(whitespace); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; } } @@ -1190,7 +1190,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void Statement(Block block) { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; // Accept whitespace but always keep the last whitespace node so we can put it back if necessary var lastWhitespace = AcceptWhiteSpaceInLines(); @@ -1249,7 +1249,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } // Markup block - Output(SpanKind.Code); + Output(SpanKindInternal.Code); if (Context.DesignTimeMode && CurrentSymbol != null && (CurrentSymbol.Type == CSharpSymbolType.LessThan || CurrentSymbol.Type == CSharpSymbolType.Transition)) { @@ -1269,7 +1269,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy switch (type) { case CSharpSymbolType.RazorCommentTransition: - Output(SpanKind.Code); + Output(SpanKindInternal.Code); RazorComment(); Statement(block); break; @@ -1310,12 +1310,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (At(CSharpSymbolType.Transition)) { // Escaped "@" - Output(SpanKind.Code); + Output(SpanKindInternal.Code); // Output "@" as hidden span Accept(transition); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Code); + Output(SpanKindInternal.Code); Assert(CSharpSymbolType.Transition); AcceptAndMoveNext(); @@ -1376,7 +1376,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy else if (At(CSharpSymbolType.Transition) && (NextIs(CSharpSymbolType.LessThan, CSharpSymbolType.Colon))) { Accept(read); - Output(SpanKind.Code); + Output(SpanKindInternal.Code); Template(); } else if (At(CSharpSymbolType.RazorCommentTransition)) @@ -1430,7 +1430,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy else if (acceptTerminatingBrace) { Assert(CSharpSymbolType.RightBrace); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; AcceptAndMoveNext(); } } @@ -1456,7 +1456,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (At(CSharpSymbolType.RazorCommentTransition)) { Accept(whitespace); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; RazorComment(); } else @@ -1471,7 +1471,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy protected override void OutputSpanBeforeRazorComment() { AddMarkerSymbolIfNecessary(); - Output(SpanKind.Code); + Output(SpanKindInternal.Code); } private void SetUpExpressions() @@ -1521,12 +1521,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void HandleDirective(DirectiveDescriptor descriptor) { - Context.Builder.CurrentBlock.Type = BlockKind.Directive; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; Context.Builder.CurrentBlock.ChunkGenerator = new DirectiveChunkGenerator(descriptor); AssertDirective(descriptor.Name); AcceptAndMoveNext(); - Output(SpanKind.MetaCode, AcceptedCharacters.None); + Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); for (var i = 0; i < descriptor.Tokens.Count; i++) { @@ -1538,12 +1538,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy tokenDescriptor.Kind == DirectiveTokenKind.Type) { Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Code, AcceptedCharacters.WhiteSpace); + Output(SpanKindInternal.Code, AcceptedCharactersInternal.WhiteSpace); } else { Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Markup, AcceptedCharacters.WhiteSpace); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.WhiteSpace); } if (tokenDescriptor.Optional && (EndOfFile || At(CSharpSymbolType.NewLine))) @@ -1559,7 +1559,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return; } - var outputKind = SpanKind.Markup; + var outputKind = SpanKindInternal.Markup; switch (tokenDescriptor.Kind) { case DirectiveTokenKind.Type: @@ -1573,7 +1573,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return; } - outputKind = SpanKind.Code; + outputKind = SpanKindInternal.Code; break; case DirectiveTokenKind.Namespace: @@ -1587,7 +1587,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return; } - outputKind = SpanKind.Code; + outputKind = SpanKindInternal.Code; break; case DirectiveTokenKind.Member: @@ -1604,7 +1604,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return; } - outputKind = SpanKind.Code; + outputKind = SpanKindInternal.Code; break; case DirectiveTokenKind.String: @@ -1624,7 +1624,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } Span.ChunkGenerator = new DirectiveTokenChunkGenerator(tokenDescriptor); - Output(outputKind, AcceptedCharacters.NonWhiteSpace); + Output(outputKind, AcceptedCharactersInternal.NonWhiteSpace); } AcceptWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); @@ -1648,11 +1648,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy CurrentSymbol.Content.Length); } - Output(SpanKind.Markup, AcceptedCharacters.WhiteSpace); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.WhiteSpace); break; case DirectiveKind.RazorBlock: AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); - Output(SpanKind.Markup, AcceptedCharacters.AllWhiteSpace); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.AllWhiteSpace); ParseDirectiveBlock(descriptor, parseChildren: (startingBraceLocation) => { @@ -1677,14 +1677,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy break; case DirectiveKind.CodeBlock: AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true)); - Output(SpanKind.Markup, AcceptedCharacters.AllWhiteSpace); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.AllWhiteSpace); ParseDirectiveBlock(descriptor, parseChildren: (startingBraceLocation) => { NextToken(); Balance(BalancingModes.NoErrorOnFailure, CSharpSymbolType.LeftBrace, CSharpSymbolType.RightBrace, startingBraceLocation); Span.ChunkGenerator = new StatementChunkGenerator(); - Output(SpanKind.Code); + Output(SpanKindInternal.Code); }); break; } @@ -1713,7 +1713,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var startingBraceLocation = CurrentStart; Accept(CurrentSymbol); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode, AcceptedCharacters.None); + Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); parseChildren(startingBraceLocation); @@ -1728,11 +1728,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } else { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } CompleteBlock(insertMarkerIfNecessary: false, captureWhitespaceToEndOfLine: true); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode, AcceptedCharacters.None); + Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); } } @@ -1769,7 +1769,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var keywordStartLocation = Span.Start; // Set the block type - Context.Builder.CurrentBlock.Type = BlockKind.Directive; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; var keywordLength = Span.End.AbsoluteIndex - Span.Start.AbsoluteIndex; @@ -1778,10 +1778,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (Span.Symbols.Count > 1) { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); if (remainingWhitespace != null) { @@ -1814,7 +1814,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Output the span and finish the block CompleteBlock(); - Output(SpanKind.Code, AcceptedCharacters.AnyExceptNewline); + Output(SpanKindInternal.Code, AcceptedCharactersInternal.AnyExceptNewline); } private void TagHelperDirective(string keyword, Func chunkGeneratorFactory) @@ -1826,7 +1826,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptAndMoveNext(); // Set the block type - Context.Builder.CurrentBlock.Type = BlockKind.Directive; + Context.Builder.CurrentBlock.Type = BlockKindInternal.Directive; var keywordLength = Span.End.AbsoluteIndex - Span.Start.AbsoluteIndex; @@ -1835,7 +1835,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // If we found whitespace then any content placed within the whitespace MAY cause a destructive change // to the document. We can't accept it. - Output(SpanKind.MetaCode, foundWhitespace ? AcceptedCharacters.None : AcceptedCharacters.AnyExceptNewline); + Output(SpanKindInternal.MetaCode, foundWhitespace ? AcceptedCharactersInternal.None : AcceptedCharactersInternal.AnyExceptNewline); ISpanChunkGenerator chunkGenerator; if (EndOfFile || At(CSharpSymbolType.NewLine)) @@ -1876,7 +1876,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Output the span and finish the block CompleteBlock(); - Output(SpanKind.Code, AcceptedCharacters.AnyExceptNewline); + Output(SpanKindInternal.Code, AcceptedCharactersInternal.AnyExceptNewline); } protected class Block diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/DocumentParseCompleteEventArgs.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/DocumentParseCompleteEventArgs.cs deleted file mode 100644 index 3a8d1e09fe..0000000000 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/DocumentParseCompleteEventArgs.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; - -namespace Microsoft.AspNetCore.Razor.Language.Legacy -{ - /// - /// Arguments for the DocumentParseComplete event in RazorEditorParser - /// - public class DocumentParseCompleteEventArgs : EventArgs - { - /// - /// Indicates if the tree structure has actually changed since the previous re-parse. - /// - public bool TreeStructureChanged { get; set; } - - /// - /// The result of the parsing and code generation. - /// - public RazorCodeDocument GeneratorResults { get; set; } - - - /// - /// The TextChange which triggered the re-parse - /// -#pragma warning disable CS0612 // Type or member is obsolete - public TextChange SourceChange { get; set; } -#pragma warning restore CS0612 // Type or member is obsolete - } -} diff --git a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs index 8b35853989..4ac8b37773 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/Legacy/HtmlMarkupParser.cs @@ -60,14 +60,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public override void BuildSpan(SpanBuilder span, SourceLocation start, string content) { - span.Kind = SpanKind.Markup; + span.Kind = SpanKindInternal.Markup; span.ChunkGenerator = new MarkupChunkGenerator(); base.BuildSpan(span, start, content); } protected override void OutputSpanBeforeRazorComment() { - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } protected void SkipToAndParseCode(HtmlSymbolType type) @@ -91,7 +91,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptAndMoveNext(); } - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } else if (At(HtmlSymbolType.NewLine)) { @@ -116,10 +116,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Accept(last); last = null; } - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); Accept(transition); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); AcceptAndMoveNext(); continue; // while } @@ -161,7 +161,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { AddMarkerSymbolIfNecessary(); // Output the symbols that may have been accepted prior to the whitespace. - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); Span.ChunkGenerator = SpanChunkGenerator.Null; } @@ -171,7 +171,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } AddMarkerSymbolIfNecessary(); - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); RazorComment(); @@ -183,7 +183,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy AcceptWhile(IsSpacingToken(includeNewLines: false)); AcceptAndMoveNext(); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } } else @@ -218,7 +218,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void OtherParserBlock() { AddMarkerSymbolIfNecessary(); - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); using (PushSpanConfig()) { @@ -251,7 +251,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { if (IsBangEscape(lookahead: 0)) { - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); // Accept the parser escape character '!'. Assert(HtmlSymbolType.Bang); @@ -259,7 +259,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Setup the metacode span that we will be outputing. Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode, AcceptedCharacters.None); + Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None); } } @@ -272,7 +272,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy using (PushSpanConfig(DefaultMarkupSpan)) { - using (Context.Builder.StartBlock(BlockKind.Markup)) + using (Context.Builder.StartBlock(BlockKindInternal.Markup)) { Span.Start = CurrentLocation; @@ -291,19 +291,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy else if (CurrentSymbol.Type == HtmlSymbolType.Transition) { // "@" => Explicit Tag/Single Line Block OR Template - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); // Definitely have a transition span Assert(HtmlSymbolType.Transition); AcceptAndMoveNext(); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Transition); + Output(SpanKindInternal.Transition); if (At(HtmlSymbolType.Transition)) { Span.ChunkGenerator = SpanChunkGenerator.Null; AcceptAndMoveNext(); - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); } AfterTransition(); } @@ -314,7 +314,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy LegacyResources.ParseError_MarkupBlock_Must_Start_With_Tag, CurrentSymbol.Content.Length); } - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } } } @@ -322,7 +322,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private void DefaultMarkupSpan(SpanBuilder span) { span.ChunkGenerator = new MarkupChunkGenerator(); - span.EditHandler = new SpanEditHandler(Language.TokenizeString, AcceptedCharacters.Any); + span.EditHandler = new SpanEditHandler(Language.TokenizeString, AcceptedCharactersInternal.Any); } private void AfterTransition() @@ -336,7 +336,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // The first part (left) is added to this span and we return a MetaCode span Accept(split.Item1); Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.MetaCode); + Output(SpanKindInternal.MetaCode); if (split.Item2 != null) { Accept(split.Item2); @@ -361,11 +361,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (!EndOfFile && CurrentSymbol.Type == HtmlSymbolType.NewLine) { AcceptAndMoveNext(); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } PutCurrentBack(); Context.WhiteSpaceIsSignificantToAncestorBlock = old; - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } private void TagBlock(Stack> tags) @@ -377,7 +377,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy SkipToAndParseCode(HtmlSymbolType.OpenAngle); // Output everything prior to the OpenAngle into a markup span - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); // Do not want to start a new tag block if we're at the end of the file. IDisposable tagBlockWrapper = null; @@ -388,7 +388,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (!EndOfFile && !atSpecialTag) { // Start a Block tag. This is used to wrap things like

or etc. - tagBlockWrapper = Context.Builder.StartBlock(BlockKind.Tag); + tagBlockWrapper = Context.Builder.StartBlock(BlockKindInternal.Tag); } if (EndOfFile) @@ -416,11 +416,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (complete) { // Completed tags have no accepted characters inside of blocks. - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } // Output the contents of the tag into its own markup span. - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } finally { @@ -498,7 +498,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { AcceptAndMoveNext(); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; while (!EndOfFile) { SkipToAndParseCode(HtmlSymbolType.DoubleHyphen); @@ -638,17 +638,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy LegacyResources.ParseError_TextTagCannotContainAttributes, length: 4 /* text */); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any; RecoverTextTag(); } else { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } Span.ChunkGenerator = SpanChunkGenerator.Null; - CompleteTagBlockWithSpan(tagBlockWrapper, Span.EditHandler.AcceptedCharacters, SpanKind.Transition); + CompleteTagBlockWithSpan(tagBlockWrapper, Span.EditHandler.AcceptedCharacters, SpanKindInternal.Transition); return seenCloseAngle; } @@ -765,13 +765,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Output anything prior to the attribute, in most cases this will be the tag name: // |. If in-between other attributes this will noop or output malformed attribute // content (if the previous attribute was malformed). - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); - using (Context.Builder.StartBlock(BlockKind.Markup)) + using (Context.Builder.StartBlock(BlockKindInternal.Markup)) { Accept(whitespace); Accept(name); - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } return; @@ -779,10 +779,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Not a minimized attribute, parse as if it were well-formed (if attribute turns out to be malformed we // will go into recovery). - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); // Start a new markup block for the attribute - using (Context.Builder.StartBlock(BlockKind.Markup)) + using (Context.Builder.StartBlock(BlockKindInternal.Markup)) { AttributePrefix(whitespace, name, whitespaceAfterAttributeName); } @@ -828,7 +828,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (attributeCanBeConditional) { Span.ChunkGenerator = SpanChunkGenerator.Null; // The block chunk generator will render the prefix - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); // Read the attribute value only if the value is quoted // or if there is no whitespace between '=' and the unquoted value. @@ -853,7 +853,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { // Again, block chunk generator will render the suffix Span.ChunkGenerator = SpanChunkGenerator.Null; - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } // Create the block chunk generator @@ -863,7 +863,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy else { // Output the attribute name, the equals and optional quote. Ex: foo=" - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); if (quote == HtmlSymbolType.Unknown && whitespaceAfterEquals.Any()) { @@ -874,13 +874,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy SkipToAndParseCode(sym => IsEndOfAttributeValue(quote, sym)); // Output the attribute value (will include everything in-between the attribute's quotes). - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); if (quote != HtmlSymbolType.Unknown) { Optional(quote); } - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } } @@ -894,7 +894,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (NextIs(HtmlSymbolType.Transition)) { // Wrapping this in a block so that the ConditionalAttributeCollapser doesn't rewrite it. - using (Context.Builder.StartBlock(BlockKind.Markup)) + using (Context.Builder.StartBlock(BlockKindInternal.Markup)) { Accept(prefix); @@ -903,11 +903,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LocationTagged(string.Concat(prefix.Select(s => s.Content)), prefixStart), new LocationTagged(CurrentSymbol.Content, CurrentStart)); AcceptAndMoveNext(); - Output(SpanKind.Markup, AcceptedCharacters.None); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.None); Span.ChunkGenerator = SpanChunkGenerator.Null; AcceptAndMoveNext(); - Output(SpanKind.Markup, AcceptedCharacters.None); + Output(SpanKindInternal.Markup, AcceptedCharactersInternal.None); } } else @@ -920,7 +920,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Span.ChunkGenerator = SpanChunkGenerator.Null; // Dynamic value, start a new block and set the chunk generator - using (Context.Builder.StartBlock(BlockKind.Markup)) + using (Context.Builder.StartBlock(BlockKindInternal.Markup)) { Context.Builder.CurrentBlock.ChunkGenerator = new DynamicAttributeBlockChunkGenerator( @@ -952,7 +952,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LocationTagged(string.Concat(prefix.Select(s => s.Content)), prefixStart), new LocationTagged(string.Concat(value.Select(s => s.Content)), valueStart)); } - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); } private bool IsEndOfAttributeValue(HtmlSymbolType quote, HtmlSymbol sym) @@ -1063,7 +1063,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // tags are treated like any other escaped HTML start tag. string.Equals(tag.Item1.Content, SyntaxConstants.TextTagName, StringComparison.OrdinalIgnoreCase)) { - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); Span.ChunkGenerator = SpanChunkGenerator.Null; Accept(_bufferedOpenAngle); @@ -1098,7 +1098,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy else { Accept(tokens); - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } if (!empty) @@ -1106,7 +1106,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy tags.Push(tag); } - CompleteTagBlockWithSpan(tagBlockWrapper, Span.EditHandler.AcceptedCharacters, SpanKind.Transition); + CompleteTagBlockWithSpan(tagBlockWrapper, Span.EditHandler.AcceptedCharacters, SpanKindInternal.Transition); return true; } @@ -1154,7 +1154,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var tagName = tag.Item1.Content.Trim(); if (VoidElements.Contains(tagName)) { - CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharacters.None, SpanKind.Markup); + CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharactersInternal.None, SpanKindInternal.Markup); // Technically, void elements like "meta" are not allowed to have end tags. Just in case they do, // we need to look ahead at the next set of tokens. If we see "<", "/", tag name, accept it and the ">" following it @@ -1176,9 +1176,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { // Accept up to here Accept(whiteSpace); - Output(SpanKind.Markup); // Output the whitespace + Output(SpanKindInternal.Markup); // Output the whitespace - using (Context.Builder.StartBlock(BlockKind.Tag)) + using (Context.Builder.StartBlock(BlockKindInternal.Tag)) { Accept(openAngle); Accept(solidus); @@ -1191,11 +1191,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy if (complete) { - Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None; + Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None; } // Output the closing void element - Output(SpanKind.Markup); + Output(SpanKindInternal.Markup); return complete; } @@ -1210,9 +1210,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { if (!CurrentScriptTagExpectsHtml()) { - CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharacters.None, SpanKind.Markup); + CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharactersInternal.None, SpanKindInternal.Markup); - SkipToEndScriptAndParseCode(endTagAcceptedCharacters: AcceptedCharacters.None); + SkipToEndScriptAndParseCode(endTagAcceptedCharacters: AcceptedCharactersInternal.None); } else { @@ -1230,7 +1230,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return seenClose; } - private void SkipToEndScriptAndParseCode(AcceptedCharacters endTagAcceptedCharacters = AcceptedCharacters.Any) + private void SkipToEndScriptAndParseCode(AcceptedCharactersInternal endTagAcceptedCharacters = AcceptedCharactersInternal.Any) { // Special case for ")), Factory.Markup(" ")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -433,22 +433,22 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(" I really want to render a close brace, so here I go: "), new ExpressionBlock( Factory.CodeTransition(), - Factory.MetaCode("(").Accepts(AcceptedCharacters.None), + Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None), Factory.Code("\"}\"").AsExpression(), - Factory.MetaCode(")").Accepts(AcceptedCharacters.None)), + Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" ")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -463,20 +463,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(Environment.NewLine), new StatementBlock( Factory.CodeTransition(), Factory.Code($"if(true) {{{Environment.NewLine}}}{Environment.NewLine}").AsStatement() )), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -490,20 +490,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(Environment.NewLine), new StatementBlock( Factory.CodeTransition(), Factory.Code($"if(true) {{{Environment.NewLine}}}").AsStatement() )), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -515,16 +515,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup("something")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -536,16 +536,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup("")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -559,16 +559,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup("")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -581,19 +581,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(Environment.NewLine), new MarkupTagBlock( Factory.Markup(" \" '-->")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -606,16 +606,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(" ")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -633,13 +633,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), factory.CodeTransition(), - factory.MetaCode("section").Accepts(AcceptedCharacters.None), - factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.Markup("(" foo='", 17, 0, 17), new LocationTagged("'", 25, 0, 25)), factory.Markup(" foo='").With(SpanChunkGenerator.Null), new MarkupBlock( - factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 23, 0, 23), new LocationTagged("@", 23, 0, 23))).Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 23, 0, 23), new LocationTagged("@", 23, 0, 23))).Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup("'").With(SpanChunkGenerator.Null)), factory.Markup(" />"))), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()) }, { @@ -660,13 +660,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), factory.CodeTransition(), - factory.MetaCode("section").Accepts(AcceptedCharacters.None), - factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - factory.Span(SpanKind.Code, "s", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + factory.Span(SpanKindInternal.Code, "s", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.Markup("(" ", 36, 0, 36), new LocationTagged("@", 37, 0, 37))).Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged(" ", 36, 0, 36), new LocationTagged("@", 37, 0, 37))).Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup("'").With(SpanChunkGenerator.Null)), factory.Markup(" />"))), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()) }, }; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpSpecialBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpSpecialBlockTest.cs index 1e157145d1..7e95b373f6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpSpecialBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpSpecialBlockTest.cs @@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("inherits", new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor), - Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None)), new RazorError( LegacyResources.FormatUnexpectedEOFAfterDirective(CSharpCodeParser.InheritsDirectiveDescriptor.Name, "type"), new SourceLocation(8, 0, 8), 1)); @@ -25,10 +25,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("inherits Foo.Bar, string, int>.Baz", new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor), - Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo.Bar, string, int>.Baz", markup: false) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo.Bar, string, int>.Baz", markup: false) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor.Tokens.First())))); } @@ -37,8 +37,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("inherits " + Environment.NewLine + "foo", new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor), - Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace)), + Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace)), new RazorError(LegacyResources.FormatDirectiveExpectsTypeName(CSharpCodeParser.InheritsDirectiveDescriptor.Name), 24, 0, 24, Environment.NewLine.Length)); } @@ -47,11 +47,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ using Foo.Bar.Baz; var foo = bar; }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" using Foo.Bar.Baz; var foo = bar; ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), new RazorError( LegacyResources.ParseError_NamespaceImportAndTypeAlias_Cannot_Exist_Within_CodeBlock, @@ -64,11 +64,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ using Foo = Bar.Baz; var foo = bar; }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" using Foo = Bar.Baz; var foo = bar; ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), new RazorError( LegacyResources.ParseError_NamespaceImportAndTypeAlias_Cannot_Exist_Within_CodeBlock, @@ -81,11 +81,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ functions Foo; }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" functions Foo; ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -96,11 +96,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + " List photos = gallery.Photo.ToList();" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code($"{Environment.NewLine} List photos = gallery.Photo.ToList();{Environment.NewLine}") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -113,11 +113,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Act/Assert ParseBlockTest("{" + code + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(code) .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -130,9 +130,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy // Act/Assert ParseBlockTest("(" + code + ")", new ExpressionBlock( - Factory.MetaCode("(").Accepts(AcceptedCharacters.None), + Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None), Factory.Code(code).AsExpression(), - Factory.MetaCode(")").Accepts(AcceptedCharacters.None) + Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None) )); } @@ -142,11 +142,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy const string code = " foo(); \"bar}baz\" "; ParseBlockTest("functions {" + code + "} zoop", new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor), - Factory.MetaCode("functions").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), Factory.Code(code).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -154,9 +154,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("functions { { { { { } zoop", new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor), - Factory.MetaCode("functions").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), Factory.Code(" { { { { } zoop").AsStatement()), new RazorError( LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF("functions", "}", "{"), @@ -171,7 +171,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new ExpressionBlock( Factory.Code("Functions") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))); } [Fact] @@ -182,7 +182,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.EmptyCSharp() .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new RazorError( LegacyResources.FormatParseError_Unexpected_Character_At_Start_Of_CodeBlock_CS("/"), new SourceLocation(1, 0, 1), @@ -201,11 +201,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup("\t"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("A real tag!"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), Factory.Code("}").AsStatement() )); } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs index 4bc87575eb..490d252688 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpStatementTest.cs @@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("for(int i = 0; i++; i < length) { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foreach(var foo in bar) { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("while(true) { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("switch(foo) { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("lock(baz) { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -107,7 +107,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("if(true) { foo(); } else { foo(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -157,7 +157,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory .Code("try { A(); } catch(Exception) when (true) { B(); } finally { C(); }") .AsStatement() - .Accepts(AcceptedCharacters.None)) + .Accepts(AcceptedCharactersInternal.None)) }, { "@try { A(); } catch(Exception) when (true) { B(); } catch(IOException) when (false) { C(); }", @@ -188,12 +188,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{try { someMethod(); } catch(Exception) when (true) { handleIO(); }}", new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), factory .Code("try { someMethod(); } catch(Exception) when (true) { handleIO(); }") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)) + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)) }, // Partial exception filter data @@ -308,7 +308,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("try { foo(); } finally { Dispose(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -322,7 +322,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code(code) .AsNamespaceImport(import) - .Accepts(AcceptedCharacters.AnyExceptNewline)); + .Accepts(AcceptedCharactersInternal.AnyExceptNewline)); // document, expectedResult return new TheoryData @@ -369,7 +369,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("using(var foo = new Foo()) { foo.Bar(); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -381,7 +381,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("using StringDictionary = System.Collections.Generic.Dictionary") .AsNamespaceImport(" StringDictionary = System.Collections.Generic.Dictionary") - .Accepts(AcceptedCharacters.AnyExceptNewline) + .Accepts(AcceptedCharactersInternal.AnyExceptNewline) )); } @@ -393,7 +393,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("using System.Text.Encoding.ASCIIEncoding") .AsNamespaceImport(" System.Text.Encoding.ASCIIEncoding") - .Accepts(AcceptedCharacters.AnyExceptNewline) + .Accepts(AcceptedCharactersInternal.AnyExceptNewline) )); } @@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("do { foo(); } while(true);") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -417,7 +417,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("is") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) )); } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs index 48b51260a4..775f2a3c4f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpTemplateTest.cs @@ -16,16 +16,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo #"), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("item") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ) ); } @@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo #"), new ExpressionBlock( Factory.CodeTransition(), @@ -48,24 +48,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml(), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("item") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ) ), Factory.Code(")") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ) ); } @@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("{ var foo = @: bar" + Environment.NewLine + "; }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" var foo = ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -86,11 +86,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup(" bar" + Environment.NewLine) .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)) - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) ) ), Factory.Code("; ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -100,7 +100,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("{i@: bar" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code("i") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -110,11 +110,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup(" bar" + Environment.NewLine) .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)) - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) ) ), Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -123,11 +123,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("(Html.Repeat(10," + TestTemplateCode + "))", new ExpressionBlock( - Factory.MetaCode("(").Accepts(AcceptedCharacters.None), + Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None), Factory.Code("Html.Repeat(10, ").AsExpression(), TestTemplate(), Factory.Code(")").AsExpression(), - Factory.MetaCode(")").Accepts(AcceptedCharacters.None) + Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None) )); } @@ -141,7 +141,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy TestTemplate(), Factory.Code(")") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) )); } @@ -157,7 +157,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy .AsImplicitExpression(CSharpCodeParser.DefaultKeywords), TestTemplate(), Factory.Code(")") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace) + .AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace) )); } @@ -171,7 +171,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy TestNestedTemplate(), Factory.Code(")") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), GetNestedTemplateError(42)); } @@ -185,7 +185,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy TestTemplate(), Factory.Code("); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -200,7 +200,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy TestTemplate(), Factory.Code("); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -214,7 +214,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy TestNestedTemplate(), Factory.Code("); }") .AsStatement() - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) ), GetNestedTemplateError(74)); } @@ -224,13 +224,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestTemplateCode + "); }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), TestTemplate(), Factory.Code("); ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -239,7 +239,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestTemplateCode + "," + TestTemplateCode + "); }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -247,7 +247,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Code(", ").AsStatement(), TestTemplate(), Factory.Code("); ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -256,13 +256,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + TestNestedTemplateCode + "); }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), TestNestedTemplate(), Factory.Code("); ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), GetNestedTemplateError(69)); } @@ -283,30 +283,30 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new AttributeBlockChunkGenerator("foo", new LocationTagged(" foo='", 46, 0, 46), new LocationTagged("'", 54, 0, 54)), Factory.Markup(" foo='").With(SpanChunkGenerator.Null), new MarkupBlock( - Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 52, 0, 52), new LocationTagged("@", 52, 0, 52))).Accepts(AcceptedCharacters.None), - Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 52, 0, 52), new LocationTagged("@", 52, 0, 52))).Accepts(AcceptedCharactersInternal.None), + Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo #"), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("item") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ) ); var expected = new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" var foo = bar; Html.ExecuteTemplate(foo, ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), testTemplateWithDoubleTransition, Factory.Code("); ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)); // Act & Assert ParseBlockTest("{ var foo = bar; Html.ExecuteTemplate(foo," + testTemplateWithDoubleTransitionCode + "); }", expected); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpToMarkupSwitchTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpToMarkupSwitchTest.cs index ec39c5faea..c1dbed5b11 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpToMarkupSwitchTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpToMarkupSwitchTest.cs @@ -13,11 +13,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ List< }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" List< ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -27,20 +27,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new ExpressionBlock( Factory.Code("Foo( ") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.Any), + .Accepts(AcceptedCharactersInternal.Any), new TemplateBlock( new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ) ), Factory.Code(" )") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), designTime: true); } @@ -57,12 +57,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("

Foo

" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ) ), Factory.Code(")") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), designTime: true); } @@ -73,19 +73,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + "

Foo

" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine + " ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ), Factory.Code(" " + Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), designTime: true); } @@ -96,20 +96,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + " @

Foo

" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine + " ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( Factory.MarkupTransition(), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)) ), Factory.Code(" " + Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), true, new RazorError( LegacyResources.ParseError_AtInCode_Must_Be_Followed_By_Colon_Paren_Or_Identifier_Start, @@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + " @:

Foo

" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine + " ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -132,10 +132,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("

Foo

" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), designTime: true); } @@ -156,19 +156,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString)), new StatementBlock( Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.EmptyCSharp() .AsStatement() .AutoCompleteWith(autoCompleteString: null), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) ), Factory.Markup(Environment.NewLine) - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) ) ), Factory.Code(")") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) )); } @@ -189,27 +189,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("Baz" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("
").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), new MarkupBlock( Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("Bar" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), - Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None) + Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None) )); } @@ -232,23 +232,23 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup($"{Environment.NewLine} Foo{Environment.NewLine}"), new ExpressionBlock( Factory.Code(" ").AsStatement(), Factory.CodeTransition(), - Factory.Code("bar").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.Code("bar").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), new MarkupBlock( Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Hello!" + Environment.NewLine).With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + Factory.Markup("Hello!" + Environment.NewLine).With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code($" var biz = boz;{Environment.NewLine}}}").AsStatement())); } @@ -262,33 +262,33 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Bar"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} else if(bar) {").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Baz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} else {").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Boz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), - Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None) + Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None) )); } @@ -297,41 +297,41 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ if(foo) {

Bar

} else if(bar) {

Baz

} else {

Boz

} }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" if(foo) {") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Bar"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} else if(bar) {").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Baz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} else {").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Boz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None) + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None) )); } @@ -359,21 +359,21 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code($" break;{Environment.NewLine} case 1:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Bar"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code( $" return;{Environment.NewLine} case 2:{Environment.NewLine}" + @@ -381,32 +381,32 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Baz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Boz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code($" }}{Environment.NewLine} default:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Biz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), - Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None))); + Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -429,28 +429,28 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + "

Biz

" + Environment.NewLine + "} }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code($" switch(foo) {{{Environment.NewLine} case 0:{Environment.NewLine}") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code($" break;{Environment.NewLine} case 1:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Bar"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code( $" return;{Environment.NewLine} case 2:{Environment.NewLine}" + @@ -458,33 +458,33 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Baz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Boz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code($" }}{Environment.NewLine} default:{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Biz"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -496,13 +496,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), - Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None) + Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None) )); } @@ -511,21 +511,21 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ for(int i = 0; i < 10; i++) {

Foo

} }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" for(int i = 0; i < 10; i++) {") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(" ").Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None) ), Factory.Code("} ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -541,7 +541,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("Bar" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code("}").AsStatement())); } @@ -559,7 +559,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup(":Sometext" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code("}").AsStatement())); } @@ -578,7 +578,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("::Sometext" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code("}").AsStatement())); } @@ -590,7 +590,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("{ if(foo) { @:Bar" + Environment.NewLine + "} } zoop", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" if(foo) {") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -598,11 +598,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup(" "), Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), - Factory.Markup("Bar" + Environment.NewLine).Accepts(AcceptedCharacters.None) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + Factory.Markup("Bar" + Environment.NewLine).Accepts(AcceptedCharactersInternal.None) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code("} ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact(Skip = "Fails due to https://github.com/aspnet/Razor/issues/897")] @@ -613,10 +613,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Code("if (i > 0) {").AsStatement(), new MarkupBlock( new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None)), - Factory.Markup(";").Accepts(AcceptedCharacters.None), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(";").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None))), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None))), Factory.Code(" }").AsStatement())); } @@ -625,18 +625,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{ if (i > 0) { ; } }", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(" if (i > 0) {") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new MarkupBlock( new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None)), - Factory.Markup(";").Accepts(AcceptedCharacters.None), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(";").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None))), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None))), Factory.Code(" } ").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact(Skip = "Fails due to https://github.com/aspnet/Razor/issues/897")] @@ -654,7 +654,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + " }" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code($"{Environment.NewLine} if(true) {{{Environment.NewLine}") .AsStatement() .AutoCompleteWith(autoCompleteString: null), @@ -663,31 +663,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("Single Line Markup" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) ), Factory.Code($" }}{Environment.NewLine} foreach (var p in Enumerable.Range(1, 10)) {{{Environment.NewLine}").AsStatement(), new MarkupBlock( new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None)), - Factory.Markup("The number is ").Accepts(AcceptedCharacters.None), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("The number is ").Accepts(AcceptedCharactersInternal.None), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("p").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.Code("p").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), new MarkupTagBlock( - Factory.MarkupTransition("").Accepts(AcceptedCharacters.None))), + Factory.MarkupTransition("").Accepts(AcceptedCharactersInternal.None))), Factory.Code($"{Environment.NewLine} }}{Environment.NewLine} if(!false) {{{Environment.NewLine}").AsStatement(), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("A real tag!"), new MarkupTagBlock( - Factory.Markup("

").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None) + Factory.Markup("

").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None) ), Factory.Code(" }" + Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs index b8d0863e94..dde4e6e58c 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpVerbatimBlockTest.cs @@ -17,12 +17,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new StatementBlock( Factory.CodeTransition(), Factory.MetaCode("{") - .Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.None), Factory.Code(" foo(); ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), Factory.MetaCode("}") - .Accepts(AcceptedCharacters.None) + .Accepts(AcceptedCharactersInternal.None) )); } @@ -31,16 +31,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{@}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.EmptyCSharp() .AsStatement() .AutoCompleteWith(autoCompleteString: null), new ExpressionBlock( Factory.CodeTransition(), - Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), designTime: true, expectedErrors: new[] { @@ -56,16 +56,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("{@.}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.EmptyCSharp() .AsStatement() .AutoCompleteWith(autoCompleteString: null), new ExpressionBlock( Factory.CodeTransition(), - Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), Factory.Code(".").AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), designTime: true, expectedErrors: new[] { @@ -83,16 +83,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + " @" + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine + " ") .AsStatement() .AutoCompleteWith(autoCompleteString: null), new ExpressionBlock( Factory.CodeTransition(), - Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.EmptyCSharp().AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharactersInternal.NonWhiteSpace) ), Factory.Code(Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), /* designTimeParser */ true, new RazorError( LegacyResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS, @@ -106,15 +106,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("{@foo." + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.EmptyCSharp() .AsStatement() .AutoCompleteWith(autoCompleteString: null), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace)), + Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Code(Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None))); + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -123,15 +123,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("{@foo." + Environment.NewLine + "}", new StatementBlock( - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.EmptyCSharp() .AsStatement() .AutoCompleteWith(autoCompleteString: null), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharacters.NonWhiteSpace)), + Factory.Code("foo.").AsImplicitExpression(KeywordSet, acceptTrailingDot: true).Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Code(Environment.NewLine).AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), designTime: true); } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpWhitespaceHandlingTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpWhitespaceHandlingTest.cs index f83c8b0e3f..d33ad7d8c7 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpWhitespaceHandlingTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CSharpWhitespaceHandlingTest.cs @@ -15,20 +15,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy + "}", new MarkupBlock( Factory.MarkupTransition() - .Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.None), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup(" ") .With(new SpanEditHandler( CSharpLanguageCharacteristics.Instance.TokenizeString, - AcceptedCharacters.Any)), + AcceptedCharactersInternal.Any)), new StatementBlock( Factory.CodeTransition() - .Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.None), Factory.Code("if (true) { }") .AsStatement() ), Factory.Markup(Environment.NewLine) - .Accepts(AcceptedCharacters.None))); + .Accepts(AcceptedCharactersInternal.None))); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs index d90cfe3574..8d04c156a0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/CodeParserTestBase.cs @@ -16,51 +16,51 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy internal void ImplicitExpressionTest(string input, params RazorError[] errors) { - ImplicitExpressionTest(input, AcceptedCharacters.NonWhiteSpace, errors); + ImplicitExpressionTest(input, AcceptedCharactersInternal.NonWhiteSpace, errors); } - internal void ImplicitExpressionTest(string input, AcceptedCharacters acceptedCharacters, params RazorError[] errors) + internal void ImplicitExpressionTest(string input, AcceptedCharactersInternal acceptedCharacters, params RazorError[] errors) { ImplicitExpressionTest(input, input, acceptedCharacters, errors); } internal void ImplicitExpressionTest(string input, string expected, params RazorError[] errors) { - ImplicitExpressionTest(input, expected, AcceptedCharacters.NonWhiteSpace, errors); + ImplicitExpressionTest(input, expected, AcceptedCharactersInternal.NonWhiteSpace, errors); } - internal override void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any) + internal override void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any) { SingleSpanBlockTest(document, blockKind, spanType, acceptedCharacters, expectedError: null); } - internal override void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any) + internal override void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any) { SingleSpanBlockTest(document, spanContent, blockKind, spanType, acceptedCharacters, expectedErrors: null); } - internal override void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, params RazorError[] expectedError) + internal override void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, params RazorError[] expectedError) { SingleSpanBlockTest(document, document, blockKind, spanType, expectedError); } - internal override void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, params RazorError[] expectedErrors) + internal override void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, params RazorError[] expectedErrors) { - SingleSpanBlockTest(document, spanContent, blockKind, spanType, AcceptedCharacters.Any, expectedErrors ?? new RazorError[0]); + SingleSpanBlockTest(document, spanContent, blockKind, spanType, AcceptedCharactersInternal.Any, expectedErrors ?? new RazorError[0]); } - internal override void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedError) + internal override void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters, params RazorError[] expectedError) { SingleSpanBlockTest(document, document, blockKind, spanType, acceptedCharacters, expectedError); } - internal override void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedErrors) + internal override void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters, params RazorError[] expectedErrors) { var b = CreateSimpleBlockAndSpan(spanContent, blockKind, spanType, acceptedCharacters); ParseBlockTest(document, b, expectedErrors ?? new RazorError[0]); } - internal void ImplicitExpressionTest(string input, string expected, AcceptedCharacters acceptedCharacters, params RazorError[] errors) + internal void ImplicitExpressionTest(string input, string expected, AcceptedCharactersInternal acceptedCharacters, params RazorError[] errors) { var factory = CreateSpanFactory(); ParseBlockTest(SyntaxConstants.TransitionString + input, diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs index 9558541edd..e074835fd1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlAttributeTest.cs @@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, valueLocation2), value: new LocationTagged("Bar", valueLocation2))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Theory] @@ -147,7 +147,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, valueLocation2), value: new LocationTagged("Bar", valueLocation2))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Theory] @@ -175,7 +175,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, valueLocation, 0, valueLocation), value: new LocationTagged("Foo", valueLocation, 0, valueLocation))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -193,7 +193,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LiteralAttributeChunkGenerator( prefix: new LocationTagged(string.Empty, 9, 0, 9), value: new LocationTagged("Foo", 9, 0, 9))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -213,7 +213,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LiteralAttributeChunkGenerator( prefix: new LocationTagged(string.Empty, 16, 2, 1), value: new LocationTagged("Foo", 16, 2, 1))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -234,9 +234,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("Foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -252,7 +252,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 12, 0, 12), value: new LocationTagged("Bar", 13, 0, 13))), Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 16, 0, 16), value: new LocationTagged("Baz", 17, 0, 17))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -268,7 +268,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup(" Bar").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 12, 0, 12), value: new LocationTagged("Bar", 13, 0, 13))), Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(" ", 16, 0, 16), value: new LocationTagged("Baz", 17, 0, 17))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -289,7 +289,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 10, 1, 6), value: new LocationTagged("Foo", 10, 1, 6))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -320,7 +320,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 21, 2, 6), value: new LocationTagged("Bar", 21, 2, 6))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -341,7 +341,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 12, 1, 6), value: new LocationTagged("Foo", 12, 1, 6))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -356,7 +356,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup("Foo").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged(string.Empty, 8, 0, 8), value: new LocationTagged("Foo", 8, 0, 8)))), new MarkupBlock(Factory.Markup(" Bar")), new MarkupBlock(Factory.Markup(" Baz")), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -373,9 +373,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -392,7 +392,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup(" bar").With(new LiteralAttributeChunkGenerator(new LocationTagged(" ", 13, 0, 13), new LocationTagged("bar", 14, 0, 14))), new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged(" ", 17, 0, 17), 18, 0, 18), Factory.Markup(" ").With(SpanChunkGenerator.Null), @@ -400,9 +400,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("baz") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -419,13 +419,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup(" ~/Foo/Bar") .With(new LiteralAttributeChunkGenerator( new LocationTagged(" ", 13, 0, 13), new LocationTagged("~/Foo/Bar", 14, 0, 14))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -442,8 +442,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -460,7 +460,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), Factory.Markup(" />")))); } @@ -481,8 +481,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new AttributeBlockChunkGenerator("foo", new LocationTagged(" foo='", 5, 0, 5), new LocationTagged("'", 13, 0, 13)), Factory.Markup(" foo='").With(SpanChunkGenerator.Null), new MarkupBlock( - Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 11, 0, 11), new LocationTagged("@", 11, 0, 11))).Accepts(AcceptedCharacters.None), - Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 11, 0, 11), new LocationTagged("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None), + Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), Factory.Markup("'").With(SpanChunkGenerator.Null)), Factory.Markup(" />")))); } @@ -572,11 +572,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup("'")), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -592,11 +592,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup("'")), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -612,7 +612,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup("'")), Factory.Markup(">")), new MarkupTagBlock( @@ -632,7 +632,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup(" >")), new MarkupTagBlock( Factory.Markup("")))); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs index e6ebf158b4..f0cf332e1f 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlBlockTest.cs @@ -19,14 +19,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new StatementBlock( Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine).AsStatement().AutoCompleteWith(null), new MarkupBlock( Factory.Markup(" "), - Factory.Markup("").Accepts(AcceptedCharacters.None), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml()), new RazorError[0]); } @@ -40,7 +40,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new StatementBlock( Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine) .AsStatement() .AutoCompleteWith("}"), @@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new StatementBlock( Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), Factory.Code(Environment.NewLine) .AsStatement() .AutoCompleteWith("}"), @@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) ), Factory.EmptyCSharp().AsStatement() ) @@ -114,14 +114,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("
  • Foo

  • ", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
  • ").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("

    ").Accepts(AcceptedCharacters.None)), + Factory.Markup("

    ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo"), new MarkupTagBlock( - Factory.Markup("

    ").Accepts(AcceptedCharacters.None)), + Factory.Markup("

    ").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -134,7 +134,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.MarkupTransition(), Factory.MetaMarkup(":", HtmlSymbolType.Colon), Factory.Markup("
  • Foo Bar Baz" + Environment.NewLine) - .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharacters.None)) + .With(new SpanEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString, AcceptedCharactersInternal.None)) )); } @@ -156,13 +156,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -172,17 +172,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -192,13 +192,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -208,7 +208,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -218,11 +218,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -237,19 +237,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup(" bar=\"").With(SpanChunkGenerator.Null), Factory.Markup("baz").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 10, 0, 10), new LocationTagged("baz", 10, 0, 10))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("(" zoop=", 24, 0, 24), new LocationTagged(string.Empty, 34, 0, 34)), Factory.Markup(" zoop=").With(SpanChunkGenerator.Null), Factory.Markup("zork").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 30, 0, 30), new LocationTagged("zork", 30, 0, 30)))), - Factory.Markup("/>").Accepts(AcceptedCharacters.None)), + Factory.Markup("/>").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -258,16 +258,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("\" />", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("(" baz=\"", 9, 0, 9), new LocationTagged("\"", 16, 0, 16)), Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null), Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged(">", 15, 0, 15))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)), + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -276,16 +276,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("\' />", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("(" baz='", 9, 0, 9), new LocationTagged("'", 16, 0, 16)), Factory.Markup(" baz='").With(SpanChunkGenerator.Null), Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged(">", 15, 0, 15))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)), + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -294,18 +294,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("(" baz=\"", 9, 0, 9), new LocationTagged("\"", 16, 0, 16)), Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null), Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged("/", 15, 0, 15))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -314,18 +314,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.Markup("(" baz='", 9, 0, 9), new LocationTagged("'", 16, 0, 16)), Factory.Markup(" baz='").With(SpanChunkGenerator.Null), Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 15, 0, 15), new LocationTagged("/", 15, 0, 15))), Factory.Markup("'").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -334,7 +334,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None))), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), new RazorError( LegacyResources.FormatParseError_MissingEndTag("foo"), new SourceLocation(1, 0, 1), @@ -344,7 +344,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockSupportsCommentAsBlock() { - SingleSpanBlockTest("", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None); + SingleSpanBlockTest("", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None); } [Fact] @@ -353,12 +353,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("barbaz", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("bar"), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), Factory.Markup("baz"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } public static TheoryData HtmlCommentSupportsMultipleDashesData @@ -373,37 +373,37 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "
    ", new MarkupBlock( new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None)), - factory.Markup("").Accepts(AcceptedCharacters.None), + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), + factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None))) + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) }, { "
    ", new MarkupBlock( new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None)), - factory.Markup("").Accepts(AcceptedCharacters.None), + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), + factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None))) + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) }, { "
    ", new MarkupBlock( new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None)), - factory.Markup("").Accepts(AcceptedCharacters.None), + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), + factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None))) + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) }, { "
    ", new MarkupBlock( new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None)), - factory.Markup("").Accepts(AcceptedCharacters.None), + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), + factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - factory.Markup("
    ").Accepts(AcceptedCharacters.None))) + factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))) }, }; } @@ -421,19 +421,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseBlockProperlyBalancesCommentStartAndEndTags() { - SingleSpanBlockTest("", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None); + SingleSpanBlockTest("", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None); } [Fact] public void ParseBlockTerminatesAtEOFWhenParsingComment() { - SingleSpanBlockTest("", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None); + SingleSpanBlockTest("", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None); } [Fact] @@ -442,11 +442,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("-->", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), Factory.Markup("-->"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -455,9 +455,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None))), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), new RazorError( LegacyResources.FormatParseError_MissingEndTag("foo"), new SourceLocation(1, 0, 1), @@ -471,10 +471,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -483,11 +483,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(" baz>", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), Factory.Markup(" baz>"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -496,10 +496,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -508,11 +508,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(" baz", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup("").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), Factory.Markup(" baz"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -521,10 +521,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(" baz?>", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), - Factory.Markup(" baz?>").Accepts(AcceptedCharacters.None), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(" baz?>").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -533,10 +533,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(@"", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -545,10 +545,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(@"", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -568,9 +568,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( new MarkupTagBlock( Factory.MarkupTransition("")), - Factory.Markup("Foo Bar ").Accepts(AcceptedCharacters.None), + Factory.Markup("Foo Bar ").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" Baz"), new MarkupTagBlock( Factory.MarkupTransition("")))); @@ -584,13 +584,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupTagBlock( Factory.MarkupTransition("")), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo Bar "), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" Baz"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( Factory.MarkupTransition("")))); } @@ -601,15 +601,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)) + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)) )); } @@ -632,14 +632,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("
    Foo @if(true) {} Bar
    ", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
    ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Foo "), new StatementBlock( Factory.CodeTransition(), Factory.Code("if(true) {}").AsStatement()), Factory.Markup(" Bar"), new MarkupTagBlock( - Factory.Markup("
    ").Accepts(AcceptedCharacters.None)))); + Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -648,16 +648,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest(@"", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs index 00fe7ca003..d5d0df8678 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/HtmlDocumentTest.cs @@ -25,16 +25,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Code("if(false) {").AsStatement(), new MarkupBlock( Factory.Markup(" "), - BlockFactory.MarkupTagBlock("
    ", AcceptedCharacters.None), + BlockFactory.MarkupTagBlock("
    ", AcceptedCharactersInternal.None), Factory.EmptyHtml(), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("something") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup("."), - BlockFactory.MarkupTagBlock("
    ", AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None)), + BlockFactory.MarkupTagBlock("
    ", AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)), Factory.Code("}").AsStatement()), Factory.Code(" }").AsStatement()))); } @@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseDocumentOutputsWhitespaceOnlyContentAsSingleWhitespaceMarkupSpan() { - SingleSpanDocumentTest(" ", BlockKind.Markup, SpanKind.Markup); + SingleSpanDocumentTest(" ", BlockKindInternal.Markup, SpanKindInternal.Markup); } [Fact] @@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.EmptyCSharp() .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.EmptyHtml()), new RazorError( LegacyResources.ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock, @@ -111,26 +111,26 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(Environment.NewLine + " "), BlockFactory.MarkupTagBlock(""), BlockFactory.MarkupTagBlock(""), Factory.Markup(Environment.NewLine)), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } [Fact] public void ParseDocumentParsesWholeContentAsOneSpanIfNoSwapCharacterEncountered() { - SingleSpanDocumentTest("foo baz", BlockKind.Markup, SpanKind.Markup); + SingleSpanDocumentTest("foo baz", BlockKindInternal.Markup, SpanKindInternal.Markup); } [Fact] @@ -143,7 +143,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup(" baz"))); } @@ -157,7 +157,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.EmptyCSharp() .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.EmptyHtml()), new RazorError( LegacyResources.ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock, @@ -175,14 +175,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.EmptyHtml())); } [Fact] public void ParseDocumentDoesNotSwitchToCodeOnEmailAddressInText() { - SingleSpanDocumentTest("anurse@microsoft.com", BlockKind.Markup, SpanKind.Markup); + SingleSpanDocumentTest("anurse@microsoft.com", BlockKindInternal.Markup, SpanKindInternal.Markup); } [Fact] @@ -218,7 +218,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseDocumentReturnsOneMarkupSegmentIfNoCodeBlocksEncountered() { - SingleSpanDocumentTest("Foo BazBarBar Bar", new MarkupBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -71,8 +71,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest(" foo", new MarkupBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -80,8 +80,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest(" foo", new MarkupBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -89,10 +89,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("

    Foo

    Bar", new MarkupBlock( - BlockFactory.MarkupTagBlock("

    ", AcceptedCharacters.None), + BlockFactory.MarkupTagBlock("

    ", AcceptedCharactersInternal.None), Factory.Markup("Foo"), - BlockFactory.MarkupTagBlock("

    ", AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None))); + BlockFactory.MarkupTagBlock("

    ", AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -102,7 +102,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( new MarkupTagBlock( Factory.MarkupTransition("")), - Factory.Markup("Foo").Accepts(AcceptedCharacters.None), + Factory.Markup("Foo").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( Factory.MarkupTransition("")))); } @@ -112,8 +112,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest(" Bar", new MarkupBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None), - Factory.Markup(" ").Accepts(AcceptedCharacters.None))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None), + Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -172,7 +172,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("<" + tagName + ">foo", new MarkupBlock( - BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharacters.None))); + BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None))); } [Theory] @@ -181,7 +181,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("<" + tagName + ">foo", new MarkupBlock( - BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharacters.None))); + BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None))); } [Theory] @@ -190,9 +190,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("<" + tagName + "> foo", new MarkupBlock( - BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharacters.None), + BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None), Factory.Markup(" "), - BlockFactory.MarkupTagBlock("", AcceptedCharacters.None))); + BlockFactory.MarkupTagBlock("", AcceptedCharactersInternal.None))); } [Theory] @@ -201,7 +201,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { ParseBlockTest("<" + tagName + ">", AcceptedCharacters.None), + BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None), BlockFactory.MarkupTagBlock("foo#@i

    ", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("

    ").Accepts(AcceptedCharacters.None)), + Factory.Markup("

    ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("foo#"), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("i").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), + Factory.Code("i").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("

    ").Accepts(AcceptedCharacters.None)))); + Factory.Markup("

    ").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -35,8 +35,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -53,9 +53,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("baz") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(" />").Accepts(AcceptedCharacters.None)))); + Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -64,25 +64,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("@bar@boz", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml(), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml(), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("boz") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -99,9 +99,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("Bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), Factory.Markup(" Baz" + Environment.NewLine) - .Accepts(AcceptedCharacters.None))); + .Accepts(AcceptedCharactersInternal.None))); } [Fact] @@ -110,16 +110,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("").Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), + Factory.Markup(" -->").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -128,16 +128,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("").Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), + Factory.Markup(" baz>").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -146,16 +146,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("").Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), + Factory.Markup(" baz]]>").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -164,16 +164,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("").Accepts(AcceptedCharacters.None), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), + Factory.Markup(" baz?>").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -182,10 +182,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy ParseBlockTest("anurse@microsoft.com", new MarkupBlock( new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("anurse@microsoft.com"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -200,10 +200,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup("mailto:anurse@microsoft.com") .With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 9, 0, 9), new LocationTagged("mailto:anurse@microsoft.com", 9, 0, 9))), Factory.Markup("\"").With(SpanChunkGenerator.Null)), - Factory.Markup(">").Accepts(AcceptedCharacters.None)), + Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Email me"), new MarkupTagBlock( - Factory.Markup("").Accepts(AcceptedCharacters.None)))); + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
      ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
        ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup(Environment.NewLine), new StatementBlock( Factory.Code(" ").AsStatement(), @@ -226,20 +226,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
      • ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
      • ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Product: "), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("p.Name") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("
      • ").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), - Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
      ").Accepts(AcceptedCharacters.None)))); + Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None)))); } [Fact] @@ -262,17 +262,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
  • ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Product: "), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("p.Name") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), - Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("")))); @@ -293,13 +293,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( @@ -312,22 +312,22 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
  • ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Product: "), new ExpressionBlock( Factory.CodeTransition(), Factory.Code("p.Name") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("
  • ").Accepts(AcceptedCharacters.None)), - Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)), - Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None)), + Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)), + Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)), Factory.Markup(" "), new MarkupTagBlock( Factory.Markup("")), Factory.Markup(Environment.NewLine)), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -342,24 +342,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( - Factory.Markup("
      ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
        ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup(Environment.NewLine + " "), new StatementBlock( Factory.CodeTransition(), Factory.Code($"foreach(var p in Products) {{{Environment.NewLine} ").AsStatement(), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
      • ").Accepts(AcceptedCharacters.None)), + Factory.Markup("
      • ").Accepts(AcceptedCharactersInternal.None)), Factory.Markup("Product: "), new ExpressionBlock( Factory.CodeTransition(), - Factory.Code("p.Name").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), + Factory.Code("p.Name").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( - Factory.Markup("
      • ").Accepts(AcceptedCharacters.None))), - Factory.Code(Environment.NewLine + " }").AsStatement().Accepts(AcceptedCharacters.None)), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), + Factory.Code(Environment.NewLine + " }").AsStatement().Accepts(AcceptedCharactersInternal.None)), Factory.Markup(Environment.NewLine + " "), new MarkupTagBlock( - Factory.Markup("
      ").Accepts(AcceptedCharacters.None))), + Factory.Markup("
    ").Accepts(AcceptedCharactersInternal.None))), designTime: true); } @@ -379,13 +379,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy [Fact] public void ParseDocumentTreatsTwoAtSignsAsEscapeSequence() { - HtmlParserTestUtils.RunSingleAtEscapeTest(ParseDocumentTest, lastSpanAcceptedCharacters: AcceptedCharacters.Any); + HtmlParserTestUtils.RunSingleAtEscapeTest(ParseDocumentTest, lastSpanAcceptedCharacters: AcceptedCharactersInternal.Any); } [Fact] public void ParseDocumentTreatsPairsOfAtSignsAsEscapeSequence() { - HtmlParserTestUtils.RunMultiAtEscapeTest(ParseDocumentTest, lastSpanAcceptedCharacters: AcceptedCharacters.Any); + HtmlParserTestUtils.RunMultiAtEscapeTest(ParseDocumentTest, lastSpanAcceptedCharacters: AcceptedCharactersInternal.Any); } [Fact] @@ -396,13 +396,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -412,7 +412,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupTagBlock( Factory.Markup("")), Factory.Markup(" ")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } @@ -424,13 +424,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.EmptyHtml(), new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor), Factory.CodeTransition(), - Factory.MetaCode("section").Accepts(AcceptedCharacters.None), - Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace), - Factory.Span(SpanKind.Code, "Foo", CSharpSymbolType.Identifier) - .Accepts(AcceptedCharacters.NonWhiteSpace) + Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None), + Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace), + Factory.Span(SpanKindInternal.Code, "Foo", CSharpSymbolType.Identifier) + .Accepts(AcceptedCharactersInternal.NonWhiteSpace) .With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())), - Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace), - Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None), + Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace), + Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None), new MarkupBlock( Factory.Markup(" "), new MarkupTagBlock( @@ -443,11 +443,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.CodeTransition(), Factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), new MarkupTagBlock( Factory.Markup("")), Factory.Markup(" ")), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml())); } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupParserTestBase.cs index 6296911831..b4a0d1c00b 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/MarkupParserTestBase.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return ParseHtmlBlock(document, designTime); } - internal virtual void SingleSpanDocumentTest(string document, BlockKind blockKind, SpanKind spanType) + internal virtual void SingleSpanDocumentTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType) { var b = CreateSimpleBlockAndSpan(document, blockKind, spanType); ParseDocumentTest(document, b); diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/ParserTestBase.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/ParserTestBase.cs index 0fcc36b259..92b29759a8 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/ParserTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/ParserTestBase.cs @@ -190,38 +190,38 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy } } - internal virtual void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any) + internal virtual void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any) { SingleSpanBlockTest(document, blockKind, spanType, acceptedCharacters, expectedError: null); } - internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any) + internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any) { SingleSpanBlockTest(document, spanContent, blockKind, spanType, acceptedCharacters, expectedErrors: null); } - internal virtual void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, params RazorError[] expectedError) + internal virtual void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, params RazorError[] expectedError) { SingleSpanBlockTest(document, document, blockKind, spanType, expectedError); } - internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, params RazorError[] expectedErrors) + internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, params RazorError[] expectedErrors) { - SingleSpanBlockTest(document, spanContent, blockKind, spanType, AcceptedCharacters.Any, expectedErrors ?? new RazorError[0]); + SingleSpanBlockTest(document, spanContent, blockKind, spanType, AcceptedCharactersInternal.Any, expectedErrors ?? new RazorError[0]); } - internal virtual void SingleSpanBlockTest(string document, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedError) + internal virtual void SingleSpanBlockTest(string document, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters, params RazorError[] expectedError) { SingleSpanBlockTest(document, document, blockKind, spanType, acceptedCharacters, expectedError); } - internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedErrors) + internal virtual void SingleSpanBlockTest(string document, string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters, params RazorError[] expectedErrors) { var result = ParseBlock(document, designTime: false); var builder = new BlockBuilder(); builder.Type = blockKind; - var expected = ConfigureAndAddSpanToBlock(builder, Factory.Span(spanType, spanContent, spanType == SpanKind.Markup).Accepts(acceptedCharacters)); + var expected = ConfigureAndAddSpanToBlock(builder, Factory.Span(spanType, spanContent, spanType == SpanKindInternal.Markup).Accepts(acceptedCharacters)); if (FixupSpans) { @@ -552,9 +552,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Trace.WriteLine(string.Format(format, args)); } - internal virtual Block CreateSimpleBlockAndSpan(string spanContent, BlockKind blockKind, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any) + internal virtual Block CreateSimpleBlockAndSpan(string spanContent, BlockKindInternal blockKind, SpanKindInternal spanType, AcceptedCharactersInternal acceptedCharacters = AcceptedCharactersInternal.Any) { - var span = Factory.Span(spanType, spanContent, spanType == SpanKind.Markup).Accepts(acceptedCharacters); + var span = Factory.Span(spanType, spanContent, spanType == SpanKindInternal.Markup).Accepts(acceptedCharacters); var b = new BlockBuilder() { Type = blockKind @@ -566,13 +566,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { switch (block.Type) { - case BlockKind.Markup: + case BlockKindInternal.Markup: span.With(new MarkupChunkGenerator()); break; - case BlockKind.Statement: + case BlockKindInternal.Statement: span.With(new StatementChunkGenerator()); break; - case BlockKind.Expression: + case BlockKindInternal.Expression: block.ChunkGenerator = new ExpressionChunkGenerator(); span.With(new ExpressionChunkGenerator()); break; @@ -583,7 +583,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy private class IgnoreOutputBlock : Block { - public IgnoreOutputBlock() : base(BlockKind.Template, new SyntaxTreeNode[0], null) { } + public IgnoreOutputBlock() : base(BlockKindInternal.Template, new SyntaxTreeNode[0], null) { } } // Corrects the parents and previous/next information for spans diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorEditorParserTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorEditorParserTest.cs deleted file mode 100644 index 75fd55b0eb..0000000000 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorEditorParserTest.cs +++ /dev/null @@ -1,1452 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Collections.Generic; -using System.Threading; -using Microsoft.AspNetCore.Testing; -using Xunit; - -#pragma warning disable CS0612 // Type or member is obsolete -namespace Microsoft.AspNetCore.Razor.Language.Legacy -{ - public class RazorEditorParserTest - { - private static readonly TestFile SimpleCSHTMLDocument = TestFile.Create("TestFiles/DesignTime/Simple.cshtml", typeof(RazorEditorParserTest)); - private static readonly TestFile SimpleCSHTMLDocumentGenerated = TestFile.Create("TestFiles/DesignTime/Simple.txt", typeof(RazorEditorParserTest)); - private const string TestLinePragmaFileName = "C:\\This\\Path\\Is\\Just\\For\\Line\\Pragmas.cshtml"; - - public static TheoryData TagHelperPartialParseRejectData - { - get - { - // change, (Block)expectedDocument - return new TheoryData - { - { - CreateInsertionChange("

    ", 2, " "), - new MarkupBlock( - new MarkupTagHelperBlock("p")) - }, - { - CreateInsertionChange("

    ", 6, " "), - new MarkupBlock( - new MarkupTagHelperBlock("p")) - }, - { - CreateInsertionChange("

    ", 12, " "), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "some-attr", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized) - })) - }, - { - CreateInsertionChange("

    ", 12, "ibute"), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "some-attribute", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized) - })) - }, - { - CreateInsertionChange("

    ", 2, " before"), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "before", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized), - new TagHelperAttributeNode( - "some-attr", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized) - })) - }, - }; - } - } - - [Theory] - [MemberData(nameof(TagHelperPartialParseRejectData))] - public void TagHelperTagBodiesRejectPartialChanges(TextChange change, object expectedDocument) - { - // Arrange - var descriptors = new[] - { - TagHelperDescriptorBuilder.Create("PTagHelper", "TestAssembly") - .TagMatchingRule(rule => rule.RequireTagName("p")) - .Build() - }; - - var parser = new RazorEditorParser(CreateTemplateEngine(@"C:\This\Is\A\Test\Path"), @"C:\This\Is\A\Test\Path"); - - using (var manager = new TestParserManager(parser)) - { - manager.InitializeWithDocument(change.OldBuffer); - - // Act - var result = manager.CheckForStructureChangesAndWait(change); - - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - Assert.Equal(2, manager.ParseCount); - } - } - - public static TheoryData TagHelperAttributeAcceptData - { - get - { - var factory = new SpanFactory(); - - // change, (Block)expectedDocument, partialParseResult - return new TheoryData - { - { - CreateInsertionChange("

    ", 22, "."), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "str-attr", - new MarkupBlock( - new MarkupBlock( - new ExpressionBlock( - factory.CodeTransition(), - factory - .Code("DateTime.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), - HtmlAttributeValueStyle.SingleQuotes) - })), - PartialParseResult.Accepted | PartialParseResult.Provisional - }, - { - CreateInsertionChange("

    ", 21, "."), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "obj-attr", - factory.CodeMarkup("DateTime."), - HtmlAttributeValueStyle.SingleQuotes) - })), - PartialParseResult.Accepted - }, - { - CreateInsertionChange("

    ", 25, "."), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "obj-attr", - factory.CodeMarkup("1 + DateTime."), - HtmlAttributeValueStyle.SingleQuotes) - })), - PartialParseResult.Accepted - }, - { - CreateInsertionChange("

    ", 34, "."), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "before-attr", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized), - new TagHelperAttributeNode( - "str-attr", - new MarkupBlock( - new MarkupBlock( - new ExpressionBlock( - factory.CodeTransition(), - factory - .Code("DateTime.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), - HtmlAttributeValueStyle.SingleQuotes), - new TagHelperAttributeNode( - "after-attr", - value: null, - valueStyle: HtmlAttributeValueStyle.Minimized), - })), - PartialParseResult.Accepted | PartialParseResult.Provisional - }, - { - CreateInsertionChange("

    ", 29, "."), - new MarkupBlock( - new MarkupTagHelperBlock( - "p", - attributes: new List - { - new TagHelperAttributeNode( - "str-attr", - new MarkupBlock( - factory.Markup("before"), - new MarkupBlock( - factory.Markup(" "), - new ExpressionBlock( - factory.CodeTransition(), - factory - .Code("DateTime.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), - factory.Markup(" after")), - HtmlAttributeValueStyle.SingleQuotes) - })), - PartialParseResult.Accepted | PartialParseResult.Provisional - }, - }; - } - } - - [Theory] - [MemberData(nameof(TagHelperAttributeAcceptData))] - public void TagHelperAttributesAreLocatedAndAcceptChangesCorrectly( - TextChange change, - object expectedDocument, - PartialParseResult partialParseResult) - { - // Arrange - var descriptors = new[] - { - TagHelperDescriptorBuilder.Create("PTagHelper", "Test") - .TagMatchingRule(rule => rule.RequireTagName("p")) - .BindAttribute(attribute => attribute - .Name("obj-attr") - .TypeName(typeof(object).FullName) - .PropertyName("ObjectAttribute")) - .BindAttribute(attribute => attribute - .Name("str-attr") - .TypeName(typeof(string).FullName) - .PropertyName("StringAttribute")) - .Build() - }; - - var parser = new RazorEditorParser(CreateTemplateEngine(@"C:\This\Is\A\Test\Path", descriptors), @"C:\This\Is\A\Test\Path"); - - using (var manager = new TestParserManager(parser)) - { - manager.InitializeWithDocument(change.OldBuffer); - - // Act - var result = manager.CheckForStructureChangesAndWait(change); - - // Assert - Assert.Equal(partialParseResult, result); - Assert.Equal(1, manager.ParseCount); - } - } - - [Fact] - public void ConstructorRequiresNonNullPhysicalPath() - { - Assert.Throws("sourceFileName", () => new RazorEditorParser(CreateTemplateEngine(), null)); - } - - [Fact] - public void ConstructorRequiresNonEmptyPhysicalPath() - { - Assert.Throws("sourceFileName", () => new RazorEditorParser(CreateTemplateEngine(), string.Empty)); - } - - [Theory] - [InlineData(" ")] - [InlineData("\r\n")] - [InlineData("abcdefg")] - [InlineData("\f\r\n abcd \t")] - public void TreesAreDifferentReturnsFalseForAddedContent(string content) - { - // Arrange - var factory = new SpanFactory(); - var blockFactory = new BlockFactory(factory); - var original = new MarkupBlock( - blockFactory.MarkupTagBlock("

    "), - blockFactory.TagHelperBlock( - tagName: "div", - tagMode: TagMode.StartTagAndEndTag, - start: new SourceLocation(3, 0, 3), - startTag: blockFactory.MarkupTagBlock("

    "), - children: new SyntaxTreeNode[] - { - factory.Markup($"{Environment.NewLine}{Environment.NewLine}") - }, - endTag: blockFactory.MarkupTagBlock("
    ")), - blockFactory.MarkupTagBlock("

    ")); - - factory.Reset(); - - var modified = new MarkupBlock( - blockFactory.MarkupTagBlock("

    "), - blockFactory.TagHelperBlock( - tagName: "div", - tagMode: TagMode.StartTagAndEndTag, - start: new SourceLocation(3, 0, 3), - startTag: blockFactory.MarkupTagBlock("

    "), - children: new SyntaxTreeNode[] - { - factory.Markup($"{Environment.NewLine}{content}{Environment.NewLine}") - }, - endTag: blockFactory.MarkupTagBlock("
    ")), - blockFactory.MarkupTagBlock("

    ")); - original.LinkNodes(); - modified.LinkNodes(); - - var oldBuffer = new StringTextBuffer($"

    {Environment.NewLine}{Environment.NewLine}

    "); - var newBuffer = new StringTextBuffer( - $"

    {Environment.NewLine}{content}{Environment.NewLine}

    "); - - // Act - var treesAreDifferent = BackgroundParser.TreesAreDifferent( - original, - modified, - new[] - { - new TextChange( - position: 8 + Environment.NewLine.Length, - oldLength: 0, - oldBuffer: oldBuffer, - newLength: content.Length, - newBuffer: newBuffer) - }); - - // Assert - Assert.False(treesAreDifferent); - } - - [Fact] - public void TreesAreDifferentReturnsTrueIfTreeStructureIsDifferent() - { - var factory = new SpanFactory(); - var original = new MarkupBlock( - factory.Markup("

    "), - new ExpressionBlock( - factory.CodeTransition()), - factory.Markup("

    ")); - var modified = new MarkupBlock( - factory.Markup("

    "), - new ExpressionBlock( - factory.CodeTransition("@"), - factory.Code("f") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)), - factory.Markup("

    ")); - var oldBuffer = new StringTextBuffer("

    @

    "); - var newBuffer = new StringTextBuffer("

    @f

    "); - Assert.True(BackgroundParser.TreesAreDifferent( - original, - modified, - new[] - { - new TextChange(position: 4, oldLength: 0, oldBuffer: oldBuffer, newLength: 1, newBuffer: newBuffer) - })); - } - - [Fact] - public void TreesAreDifferentReturnsFalseIfTreeStructureIsSame() - { - var factory = new SpanFactory(); - var original = new MarkupBlock( - factory.Markup("

    "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("f") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)), - factory.Markup("

    ")); - factory.Reset(); - var modified = new MarkupBlock( - factory.Markup("

    "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)), - factory.Markup("

    ")); - original.LinkNodes(); - modified.LinkNodes(); - var oldBuffer = new StringTextBuffer("

    @f

    "); - var newBuffer = new StringTextBuffer("

    @foo

    "); - Assert.False(BackgroundParser.TreesAreDifferent( - original, - modified, - new[] - { - new TextChange(position: 5, oldLength: 0, oldBuffer: oldBuffer, newLength: 2, newBuffer: newBuffer) - })); - } - - [Fact] - [ReplaceCulture] - public void CheckForStructureChangesStartsReparseAndFiresDocumentParseCompletedEventIfNoAdditionalChangesQueued() - { - // Arrange - using (var parser = new RazorEditorParser(CreateTemplateEngine(), TestLinePragmaFileName)) - { - var input = new StringTextBuffer(SimpleCSHTMLDocument.ReadAllText()); - - DocumentParseCompleteEventArgs capturedArgs = null; - var parseComplete = new ManualResetEventSlim(false); - - parser.DocumentParseComplete += (sender, args) => - { - capturedArgs = args; - parseComplete.Set(); - }; - - // Act - parser.CheckForStructureChanges(new TextChange(0, 0, new StringTextBuffer(string.Empty), input.Length, input)); - - // Assert - MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); - - Assert.Equal( - SimpleCSHTMLDocumentGenerated.ReadAllText().Replace("\r\n", "\n"), - capturedArgs.GeneratorResults.GetCSharpDocument().GeneratedCode.Replace("\r\n", "\n")); - } - } - - [Fact] - public void CheckForStructureChangesStartsFullReparseIfChangeOverlapsMultipleSpans() - { - // Arrange - using (var parser = new RazorEditorParser(CreateTemplateEngine(), TestLinePragmaFileName)) - { - var original = new StringTextBuffer("Foo @bar Baz"); - var changed = new StringTextBuffer("Foo @bap Daz"); - var change = new TextChange(7, 3, original, 3, changed); - - var parseComplete = new ManualResetEventSlim(); - var parseCount = 0; - parser.DocumentParseComplete += (sender, args) => - { - Interlocked.Increment(ref parseCount); - parseComplete.Set(); - }; - - Assert.Equal(PartialParseResult.Rejected, parser.CheckForStructureChanges(new TextChange(0, 0, new StringTextBuffer(string.Empty), 12, original))); - MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); // Wait for the parse to finish - parseComplete.Reset(); - - // Act - var result = parser.CheckForStructureChanges(change); - - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - MiscUtils.DoWithTimeoutIfNotDebugging(parseComplete.Wait); - Assert.Equal(2, parseCount); - } - } - - [Fact] - public void AwaitPeriodInsertionAcceptedProvisionally() - { - // Arrange - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @await Html. baz"); - var old = new StringTextBuffer("foo @await Html baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(15, 0, old, 1, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("await Html.").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.WhiteSpace | AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz")), additionalFlags: PartialParseResult.Provisional); - } - - [Fact] - public void ImplicitExpressionAcceptsInnerInsertionsInStatementBlock() - { - // Arrange - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime..Now" + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime.Now" + Environment.NewLine - + "}"); - - // Act and Assert - RunPartialParseTest(new TextChange(17, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime..Now") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionAcceptsInnerInsertions() - { - // Arrange - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @DateTime..Now baz"); - var old = new StringTextBuffer("foo @DateTime.Now baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(13, 0, old, 1, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime..Now").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz")), additionalFlags: PartialParseResult.Provisional); - } - - [Fact] - public void ImplicitExpressionAcceptsWholeIdentifierReplacement() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @date baz"); - var changed = new StringTextBuffer("foo @DateTime baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(5, 4, old, 8, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionRejectsWholeIdentifierReplacementToKeyword() - { - // Arrange - var parser = new RazorEditorParser(CreateTemplateEngine(@"C:\This\Is\A\Test\Path"), @"C:\This\Is\A\Test\Path"); - - using (var manager = new TestParserManager(parser)) - { - var old = new StringTextBuffer("foo @date baz"); - var changed = new StringTextBuffer("foo @if baz"); - var textChange = new TextChange(5, 4, old, 2, changed); - manager.InitializeWithDocument(old); - - // Act - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - Assert.Equal(2, manager.ParseCount); - } - } - - [Fact] - public void ImplicitExpressionRejectsWholeIdentifierReplacementToDirective() - { - // Arrange - var parser = new RazorEditorParser(CreateTemplateEngine(@"C:\This\Is\A\Test\Path"), @"C:\This\Is\A\Test\Path"); - - using (var manager = new TestParserManager(parser)) - { - var old = new StringTextBuffer("foo @date baz"); - var changed = new StringTextBuffer("foo @inherits baz"); - var textChange = new TextChange(5, 4, old, 8, changed); - manager.InitializeWithDocument(old); - - // Act - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(PartialParseResult.Rejected | PartialParseResult.SpanContextChanged, result); - Assert.Equal(2, manager.ParseCount); - } - } - - [Fact] - public void ImplicitExpressionAcceptsPrefixIdentifierReplacements_SingleSymbol() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @dTime baz"); - var changed = new StringTextBuffer("foo @DateTime baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(5, 1, old, 4, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsPrefixIdentifierReplacements_MultipleSymbols() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @dTime.Now baz"); - var changed = new StringTextBuffer("foo @DateTime.Now baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(5, 1, old, 4, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime.Now").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsSuffixIdentifierReplacements_SingleSymbol() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @Datet baz"); - var changed = new StringTextBuffer("foo @DateTime baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(9, 1, old, 4, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsSuffixIdentifierReplacements_MultipleSymbols() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @DateTime.n baz"); - var changed = new StringTextBuffer("foo @DateTime.Now baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(14, 1, old, 3, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime.Now").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsSurroundedIdentifierReplacements() - { - // Arrange - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @DateTime.n.ToString() baz"); - var changed = new StringTextBuffer("foo @DateTime.Now.ToString() baz"); - - // Act and Assert - RunPartialParseTest(new TextChange(14, 1, old, 3, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("DateTime.Now.ToString()").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsDotlessCommitInsertionsInStatementBlockAfterIdentifiers() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime." + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime" + Environment.NewLine - + "}"); - - var textChange = new TextChange(15 + Environment.NewLine.Length, 0, old, 1, changed); - using (var manager = CreateParserManager()) - { - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => - { - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode) - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - }; - - manager.InitializeWithDocument(textChange.OldBuffer); - - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); - - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime.." + Environment.NewLine - + "}"); - textChange = new TextChange(16 + Environment.NewLine.Length, 0, old, 1, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.."); - - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime.Now." + Environment.NewLine - + "}"); - textChange = new TextChange(16 + Environment.NewLine.Length, 0, old, 3, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.Now."); - } - } - - [Fact] - public void ImplicitExpressionAcceptsDotlessCommitInsertionsInStatementBlock() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateT." + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @DateT" + Environment.NewLine - + "}"); - - var textChange = new TextChange(12 + Environment.NewLine.Length, 0, old, 1, changed); - using (var manager = CreateParserManager()) - { - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => - { - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode) - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - }; - - manager.InitializeWithDocument(textChange.OldBuffer); - - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateT."); - - old = changed; - changed = new StringTextBuffer("@{" + Environment.NewLine - + " @DateTime." + Environment.NewLine - + "}"); - textChange = new TextChange(12 + Environment.NewLine.Length, 0, old, 3, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime."); - } - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsDotlessCommitInsertions() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @DateT. baz"); - var old = new StringTextBuffer("foo @DateT baz"); - var textChange = new TextChange(10, 0, old, 1, changed); - using (var manager = CreateParserManager()) - { - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => - { - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - }; - - manager.InitializeWithDocument(textChange.OldBuffer); - - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateT."); - - old = changed; - changed = new StringTextBuffer("foo @DateTime. baz"); - textChange = new TextChange(10, 0, old, 3, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); - } - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsDotlessCommitInsertionsAfterIdentifiers() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @DateTime. baz"); - var old = new StringTextBuffer("foo @DateTime baz"); - var textChange = new TextChange(13, 0, old, 1, changed); - using (var manager = CreateParserManager()) - { - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => - { - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - }; - - manager.InitializeWithDocument(textChange.OldBuffer); - - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); - - old = changed; - changed = new StringTextBuffer("foo @DateTime.. baz"); - textChange = new TextChange(14, 0, old, 1, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.."); - - old = changed; - changed = new StringTextBuffer("foo @DateTime.Now. baz"); - textChange = new TextChange(14, 0, old, 3, changed); - - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime.Now."); - } - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsCaseInsensitiveDotlessCommitInsertions_NewRoslynIntegration() - { - var factory = new SpanFactory(); - var old = new StringTextBuffer("foo @date baz"); - var changed = new StringTextBuffer("foo @date. baz"); - var textChange = new TextChange(9, 0, old, 1, changed); - using (var manager = CreateParserManager()) - { - Action applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) => - { - var result = manager.CheckForStructureChangesAndWait(textChange); - - // Assert - Assert.Equal(expectedResult, result); - Assert.Equal(1, manager.ParseCount); - - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(expectedCode).AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - }; - - manager.InitializeWithDocument(textChange.OldBuffer); - - // This is the process of a dotless commit when doing "." insertions to commit intellisense changes. - - // @date => @date. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "date."); - - old = changed; - changed = new StringTextBuffer("foo @date baz"); - textChange = new TextChange(9, 1, old, 0, changed); - - // @date. => @date - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "date"); - - old = changed; - changed = new StringTextBuffer("foo @DateTime baz"); - textChange = new TextChange(5, 4, old, 8, changed); - - // @date => @DateTime - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime"); - - old = changed; - changed = new StringTextBuffer("foo @DateTime. baz"); - textChange = new TextChange(13, 0, old, 1, changed); - - // @DateTime => @DateTime. - applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted | PartialParseResult.Provisional, "DateTime."); - } - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsDeleteOfIdentifierPartsIfDotRemains() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @User. baz"); - var old = new StringTextBuffer("foo @User.Name baz"); - RunPartialParseTest(new TextChange(10, 4, old, 0, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("User.").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz")), - additionalFlags: PartialParseResult.Provisional); - } - - [Fact] - public void ImplicitExpressionAcceptsDeleteOfIdentifierPartsIfSomeOfIdentifierRemains() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @Us baz"); - var old = new StringTextBuffer("foo @User baz"); - RunPartialParseTest(new TextChange(7, 2, old, 0, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("Us").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsMultipleInsertionIfItCausesIdentifierExpansionAndTrailingDot() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @User. baz"); - var old = new StringTextBuffer("foo @U baz"); - RunPartialParseTest(new TextChange(6, 0, old, 4, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("User.").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz")), - additionalFlags: PartialParseResult.Provisional); - } - - [Fact] - public void ImplicitExpressionAcceptsMultipleInsertionIfItOnlyCausesIdentifierExpansion() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @barbiz baz"); - var old = new StringTextBuffer("foo @bar baz"); - RunPartialParseTest(new TextChange(8, 0, old, 3, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("barbiz").AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" baz"))); - } - - [Fact] - public void ImplicitExpressionAcceptsIdentifierExpansionAtEndOfNonWhitespaceCharacters() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @food" + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @foo" + Environment.NewLine - + "}"); - RunPartialParseTest(new TextChange(10 + Environment.NewLine.Length, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("food") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionAcceptsIdentifierAfterDotAtEndOfNonWhitespaceCharacters() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @foo.d" + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @foo." + Environment.NewLine - + "}"); - RunPartialParseTest(new TextChange(11 + Environment.NewLine.Length, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.d") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionAcceptsDotAtEndOfNonWhitespaceCharacters() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{" + Environment.NewLine - + " @foo." + Environment.NewLine - + "}"); - var old = new StringTextBuffer("@{" + Environment.NewLine - + " @foo" + Environment.NewLine - + "}"); - RunPartialParseTest(new TextChange(10 + Environment.NewLine.Length, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.Code(Environment.NewLine + " ") - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code(@"foo.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Code(Environment.NewLine).AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionRejectsChangeWhichWouldHaveBeenAcceptedIfLastChangeWasProvisionallyAcceptedOnDifferentSpan() - { - var factory = new SpanFactory(); - - // Arrange - var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo @bar"), 1, new StringTextBuffer("foo @foo. @bar")); - var charTyped = new TextChange(14, 0, new StringTextBuffer("foo @foo. @bar"), 1, new StringTextBuffer("foo @foo. @barb")); - using (var manager = CreateParserManager()) - { - manager.InitializeWithDocument(dotTyped.OldBuffer); - - // Apply the dot change - Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); - - // Act (apply the identifier start char change) - var result = manager.CheckForStructureChangesAndWait(charTyped); - - // Assert - Assert.Equal(PartialParseResult.Rejected, result); - Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(". "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("barb") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.EmptyHtml())); - } - } - - [Fact] - public void ImplicitExpressionAcceptsIdentifierTypedAfterDotIfLastChangeWasProvisionalAcceptanceOfDot() - { - var factory = new SpanFactory(); - - // Arrange - var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo bar"), 1, new StringTextBuffer("foo @foo. bar")); - var charTyped = new TextChange(9, 0, new StringTextBuffer("foo @foo. bar"), 1, new StringTextBuffer("foo @foo.b bar")); - using (var manager = CreateParserManager()) - { - manager.InitializeWithDocument(dotTyped.OldBuffer); - - // Apply the dot change - Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped)); - - // Act (apply the identifier start char change) - var result = manager.CheckForStructureChangesAndWait(charTyped); - - // Assert - Assert.Equal(PartialParseResult.Accepted, result); - Assert.False(manager.Parser.LastResultProvisional, "LastResultProvisional flag should have been cleared but it was not"); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.b") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" bar"))); - } - } - - [Fact] - public void ImplicitExpressionProvisionallyAcceptsDotAfterIdentifierInMarkup() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @foo. bar"); - var old = new StringTextBuffer("foo @foo bar"); - RunPartialParseTest(new TextChange(8, 0, old, 1, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" bar")), - additionalFlags: PartialParseResult.Provisional); - } - - [Fact] - public void ImplicitExpressionAcceptsAdditionalIdentifierCharactersIfEndOfSpanIsIdentifier() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("foo @foob bar"); - var old = new StringTextBuffer("foo @foo bar"); - RunPartialParseTest(new TextChange(8, 0, old, 1, changed), - new MarkupBlock( - factory.Markup("foo "), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foob") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.Markup(" bar"))); - } - - [Fact] - public void ImplicitExpressionAcceptsAdditionalIdentifierStartCharactersIfEndOfSpanIsDot() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{@foo.b}"); - var old = new StringTextBuffer("@{@foo.}"); - RunPartialParseTest(new TextChange(7, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.EmptyCSharp() - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.b") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionAcceptsDotIfTrailingDotsAreAllowed() - { - var factory = new SpanFactory(); - var changed = new StringTextBuffer("@{@foo.}"); - var old = new StringTextBuffer("@{@foo}"); - RunPartialParseTest(new TextChange(6, 0, old, 1, changed), - new MarkupBlock( - factory.EmptyHtml(), - new StatementBlock( - factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), - factory.EmptyCSharp() - .AsStatement() - .AutoCompleteWith(autoCompleteString: null), - new ExpressionBlock( - factory.CodeTransition(), - factory.Code("foo.") - .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.NonWhiteSpace)), - factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), - factory.EmptyHtml())); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfIfKeywordTyped() - { - RunTypeKeywordTest("if"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfDoKeywordTyped() - { - RunTypeKeywordTest("do"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfTryKeywordTyped() - { - RunTypeKeywordTest("try"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfForKeywordTyped() - { - RunTypeKeywordTest("for"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfForEachKeywordTyped() - { - RunTypeKeywordTest("foreach"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfWhileKeywordTyped() - { - RunTypeKeywordTest("while"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfSwitchKeywordTyped() - { - RunTypeKeywordTest("switch"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfLockKeywordTyped() - { - RunTypeKeywordTest("lock"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfUsingKeywordTyped() - { - RunTypeKeywordTest("using"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfSectionKeywordTyped() - { - RunTypeKeywordTest("section"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfInheritsKeywordTyped() - { - RunTypeKeywordTest("inherits"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfFunctionsKeywordTyped() - { - RunTypeKeywordTest("functions"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfNamespaceKeywordTyped() - { - RunTypeKeywordTest("namespace"); - } - - [Fact] - public void ImplicitExpressionCorrectlyTriggersReparseIfClassKeywordTyped() - { - RunTypeKeywordTest("class"); - } - - private static TextChange CreateInsertionChange(string initialText, int insertionLocation, string insertionText) - { - var changedText = initialText.Insert(insertionLocation, insertionText); - - var original = new StringTextBuffer(initialText); - var changed = new StringTextBuffer(changedText); - return new TextChange(insertionLocation, 0, original, insertionText.Length, changed); - } - - private static void RunFullReparseTest(TextChange change, PartialParseResult additionalFlags = (PartialParseResult)0) - { - // Arrange - using (var manager = CreateParserManager()) - { - manager.InitializeWithDocument(change.OldBuffer); - - // Act - var result = manager.CheckForStructureChangesAndWait(change); - - // Assert - Assert.Equal(PartialParseResult.Rejected | additionalFlags, result); - Assert.Equal(2, manager.ParseCount); - } - } - - private static void RunPartialParseTest(TextChange change, Block newTreeRoot, PartialParseResult additionalFlags = (PartialParseResult)0) - { - // Arrange - using (var manager = CreateParserManager()) - { - manager.InitializeWithDocument(change.OldBuffer); - - // Act - var result = manager.CheckForStructureChangesAndWait(change); - - // Assert - Assert.Equal(PartialParseResult.Accepted | additionalFlags, result); - Assert.Equal(1, manager.ParseCount); - ParserTestBase.EvaluateParseTree(manager.Parser.CurrentSyntaxTree.Root, newTreeRoot); - } - } - - private static TestParserManager CreateParserManager() - { - var parser = new RazorEditorParser(CreateTemplateEngine(), TestLinePragmaFileName); - return new TestParserManager(parser); - } - - private static RazorTemplateEngine CreateTemplateEngine( - string path = TestLinePragmaFileName, - IEnumerable tagHelpers = null) - { - var engine = RazorEngine.CreateDesignTime(b => - { - if (tagHelpers != null) - { - b.AddTagHelpers(tagHelpers); - } - }); - - // GetImports on RazorTemplateEngine will at least check that the item exists, so we need to pretend - // that it does. - var items = new List(); - items.Add(new TestRazorProjectItem(path)); - - var project = new TestRazorProject(items); - - var templateEngine = new RazorTemplateEngine(engine, project); - templateEngine.Options.DefaultImports = RazorSourceDocument.Create("@addTagHelper *, Test", "_TestImports.cshtml"); - return templateEngine; - } - - private static void RunTypeKeywordTest(string keyword) - { - var before = "@" + keyword.Substring(0, keyword.Length - 1); - var after = "@" + keyword; - var changed = new StringTextBuffer(after); - var old = new StringTextBuffer(before); - RunFullReparseTest(new TextChange(keyword.Length, 0, old, 1, changed), additionalFlags: PartialParseResult.SpanContextChanged); - } - - private class TestParserManager : IDisposable - { - public int ParseCount; - - private readonly ManualResetEventSlim _parserComplete; - - public TestParserManager(RazorEditorParser parser) - { - _parserComplete = new ManualResetEventSlim(); - ParseCount = 0; - Parser = parser; - parser.DocumentParseComplete += (sender, args) => - { - Interlocked.Increment(ref ParseCount); - _parserComplete.Set(); - }; - } - - public RazorEditorParser Parser { get; } - - public void InitializeWithDocument(ITextBuffer startDocument) - { - CheckForStructureChangesAndWait(new TextChange(0, 0, new StringTextBuffer(string.Empty), startDocument.Length, startDocument)); - } - - public PartialParseResult CheckForStructureChangesAndWait(TextChange change) - { - var result = Parser.CheckForStructureChanges(change); - if (result.HasFlag(PartialParseResult.Rejected)) - { - WaitForParse(); - } - return result; - } - - public void WaitForParse() - { - MiscUtils.DoWithTimeoutIfNotDebugging(_parserComplete.Wait); // Wait for the parse to finish - _parserComplete.Reset(); - } - - public void Dispose() - { - Parser.Dispose(); - } - } - } -} -#pragma warning restore CS0612 // Type or member is obsolete diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs index 9351779a28..186937a9ad 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/RazorParserTest.cs @@ -34,7 +34,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" baz"))); } @@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("bar") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" baz"))); } } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs index 1edf21fdb5..f63b14f6d1 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperBlockRewriterTest.cs @@ -664,7 +664,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), HtmlAttributeValueStyle.DoubleQuotes) })), new [] @@ -956,7 +956,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))); return new TheoryData { @@ -1074,9 +1074,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeMarkup(" ?").With(new ExpressionChunkGenerator()), new MarkupBlock( factory.CodeMarkup(" @").With(new ExpressionChunkGenerator()) - .As(SpanKind.Code), + .As(SpanKindInternal.Code), factory.CodeMarkup("@").With(SpanChunkGenerator.Null) - .As(SpanKind.Code)), + .As(SpanKindInternal.Code)), factory.CodeMarkup("DateTime").With(new ExpressionChunkGenerator()), factory.CodeMarkup(" :").With(new ExpressionChunkGenerator()), new MarkupBlock( @@ -1121,10 +1121,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( factory.Markup("Time:"), new MarkupBlock( - factory.Markup(" @").Accepts(AcceptedCharacters.None), + factory.Markup(" @").Accepts(AcceptedCharactersInternal.None), factory.Markup("@") .With(SpanChunkGenerator.Null) - .Accepts(AcceptedCharacters.None)), + .Accepts(AcceptedCharactersInternal.None)), dateTimeNow)) })) }, @@ -1143,10 +1143,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "name", new MarkupBlock( new MarkupBlock( - factory.Markup("@").Accepts(AcceptedCharacters.None), + factory.Markup("@").Accepts(AcceptedCharactersInternal.None), factory.Markup("@") .With(SpanChunkGenerator.Null) - .Accepts(AcceptedCharacters.None)), + .Accepts(AcceptedCharactersInternal.None)), factory.Markup("BoundStringAttribute"))) })) }, @@ -1166,7 +1166,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( factory.EmptyHtml() .AsCodeMarkup().With(new ExpressionChunkGenerator()) - .As(SpanKind.Code), + .As(SpanKindInternal.Code), new ExpressionBlock( factory.CSharpCodeMarkup("@").With(new ExpressionChunkGenerator()), factory.CSharpCodeMarkup("(").With(new ExpressionChunkGenerator()), @@ -1252,7 +1252,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))), HtmlAttributeValueStyle.DoubleQuotes), new TagHelperAttributeNode("style", factory.Markup("color:red;")) }, @@ -1439,7 +1439,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))))); var doWhileString = "@do { var foo = bar; Foo foo++; } while (foo);"; var doWhile = new Func(index => new MarkupBlock( @@ -1455,13 +1455,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( new MarkupTagBlock( factory.MarkupTransition("")), - factory.Markup("Foo").Accepts(AcceptedCharacters.None), + factory.Markup("Foo").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( factory.MarkupTransition(""))), factory .Code(" foo++; } while (foo);") .AsStatement() - .Accepts(AcceptedCharacters.None))))); + .Accepts(AcceptedCharactersInternal.None))))); var currentFormattedString = "

    "; yield return new object[] @@ -1579,7 +1579,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), factory.Markup("\"").With(SpanChunkGenerator.Null)), factory.Markup(">")), factory.Markup("inside of strong tag"), @@ -1608,7 +1608,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)); var doWhileString = "@do { var foo = bar;

    Foo

    foo++; } while (foo);"; var doWhile = new StatementBlock( factory.CodeTransition(), @@ -1617,10 +1617,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.Markup(" "), new MarkupTagHelperBlock("p", factory.Markup("Foo")), - factory.Markup(" ").Accepts(AcceptedCharacters.None)), + factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)), factory.Code("foo++; } while (foo);") .AsStatement() - .Accepts(AcceptedCharacters.None)); + .Accepts(AcceptedCharactersInternal.None)); var currentFormattedString = "

    {0}

    "; yield return new object[] @@ -1722,7 +1722,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)); return new TheoryData { @@ -2348,8 +2348,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "class", new MarkupBlock( new MarkupBlock( - factory.Markup("@").Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup("@").Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup("foo@bar.com"))), new TagHelperAttributeNode("style", factory.Markup("color:red;")) }), @@ -2458,7 +2458,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))))); yield return new object[] { @@ -2499,8 +2499,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupBlock( factory.Markup("color"), new MarkupBlock( - factory.Markup("@").Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup("@").Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup(":red;")), HtmlAttributeValueStyle.DoubleQuotes) }, @@ -2709,7 +2709,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)); // documentContent, expectedOutput return new TheoryData @@ -2836,10 +2836,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; @@ -2889,7 +2889,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), factory.Markup(" +") .With(new LiteralAttributeChunkGenerator( prefix: new LocationTagged(" ", index + 13, 0, index + 13), @@ -3524,10 +3524,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; Action updateDynamicChunkGenerators = (block) => diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs index 4ee7811163..d453b957e6 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs @@ -58,7 +58,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy var rootBlock = Assert.IsType(document); var child = Assert.Single(rootBlock.Children); var tagBlock = Assert.IsType(child); - Assert.Equal(BlockKind.Tag, tagBlock.Type); + Assert.Equal(BlockKindInternal.Tag, tagBlock.Type); Assert.Empty(errorSink.Errors); // Act @@ -1210,7 +1210,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))))); // documentContent, expectedOutput return new TheoryData @@ -1543,8 +1543,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new TagHelperAttributeNode("catchAll", new MarkupBlock( new MarkupBlock( - factory.Markup("@").Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup("@").Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup("hi"))), }, children: factory.Markup("words and spaces"))) @@ -1633,7 +1633,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)))); + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)))); // documentContent, expectedOutput return new TheoryData @@ -2219,7 +2219,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true) - .Accepts(AcceptedCharacters.AnyExceptNewline))))) + .Accepts(AcceptedCharactersInternal.AnyExceptNewline))))) } })), availableDescriptorsColon @@ -2264,10 +2264,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; @@ -2280,7 +2280,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.Markup("<"), @@ -2297,7 +2297,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 16, 0, 16), value: new LocationTagged("btn", 16, 0, 16))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), factory.Markup("}")))), new [] { @@ -2328,8 +2328,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 16, 0, 16), value: new LocationTagged("btn", 16, 0, 16))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -2351,9 +2351,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 16, 0, 16), value: new LocationTagged("btn", 16, 0, 16))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), factory.Markup("words with spaces"), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -2389,8 +2389,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LiteralAttributeChunkGenerator( prefix: new LocationTagged(string.Empty, 34, 0, 34), value: new LocationTagged("btn", 34, 0, 34)))), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -2419,14 +2419,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), factory.Markup(" btn2").With( new LiteralAttributeChunkGenerator( prefix: new LocationTagged(" ", 34, 0, 34), value: new LocationTagged("btn2", 35, 0, 35))), factory.Markup("'").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, }; @@ -2459,10 +2459,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; @@ -2475,9 +2475,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), factory.Markup("}")))), new [] { @@ -2493,7 +2493,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new [] { new RazorError( @@ -2505,25 +2505,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { "@{words and spaces}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), factory.Markup("words and spaces"), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), - blockFactory.MarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), + blockFactory.MarkupTagBlock("", AcceptedCharactersInternal.None))), new [] { new RazorError( @@ -2540,9 +2540,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy () => new MarkupBlock( new MarkupTagBlock(factory.MarkupTransition("")), new MarkupTagBlock( - factory.Markup("").Accepts(AcceptedCharacters.None)))), + factory.Markup("text>").Accepts(AcceptedCharactersInternal.None)))), new [] { new RazorError( @@ -2554,9 +2554,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), new MarkupTagHelperBlock("text"), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -2565,14 +2565,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock(factory.MarkupTransition("")), new MarkupTagBlock( - factory.Markup("<").Accepts(AcceptedCharacters.None), + factory.Markup("<").Accepts(AcceptedCharactersInternal.None), factory.BangEscape(), - factory.Markup("text>").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None), + factory.Markup("text>").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None), factory.Markup("}")))), new [] { @@ -2590,14 +2590,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)), new MarkupBlock( - blockFactory.MarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.MarkupTagBlock("", AcceptedCharactersInternal.None)), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()), new [] { @@ -2646,7 +2646,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder())); }; @@ -2840,7 +2840,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder())); }; @@ -2965,8 +2965,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 13, 0, 13), value: new LocationTagged("btn", 13, 0, 13))), new MarkupBlock( - factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 16, 0, 16), new LocationTagged("@", 16, 0, 16))).Accepts(AcceptedCharacters.None), - factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)), + factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged(string.Empty, 16, 0, 16), new LocationTagged("@", 16, 0, 16))).Accepts(AcceptedCharactersInternal.None), + factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)), factory.Markup("}").With( new LiteralAttributeChunkGenerator( prefix: new LocationTagged(string.Empty, 18, 0, 18), @@ -3192,10 +3192,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; @@ -3208,9 +3208,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), factory.Markup("}")))), new [] { @@ -3226,7 +3226,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new [] { new RazorError( @@ -3238,25 +3238,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy "@{}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { "@{words and spaces}", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), factory.Markup("words and spaces"), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { "@{

    }", buildStatementBlock( () => new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.MarkupTagBlock("

    ", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.MarkupTagBlock("

    ", AcceptedCharactersInternal.None))), new [] { new RazorError( @@ -3272,7 +3272,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy buildStatementBlock( () => new MarkupBlock( new MarkupTagHelperBlock("p", - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)))), new [] { new RazorError( @@ -3288,8 +3288,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy buildStatementBlock( () => new MarkupBlock( new MarkupTagHelperBlock("p", - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)))), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)))), new RazorError[0] }, { @@ -3298,11 +3298,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagHelperBlock("p", - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None), factory.Markup("}"))))), new [] { @@ -3323,14 +3323,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)), new MarkupBlock( - blockFactory.MarkupTagBlock("

    ", AcceptedCharacters.None)), + blockFactory.MarkupTagBlock("

    ", AcceptedCharactersInternal.None)), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()), new [] { @@ -3348,14 +3348,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagHelperBlock("strong", - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new MarkupBlock( - blockFactory.MarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.MarkupTagBlock("", AcceptedCharactersInternal.None)), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()), new [] { @@ -3379,14 +3379,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagHelperBlock("strong")), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()), new RazorError[0] }, @@ -3396,18 +3396,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagHelperBlock("p", new MarkupTagHelperBlock("strong", - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)))), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None), - blockFactory.MarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None), + blockFactory.MarkupTagBlock("", AcceptedCharactersInternal.None)), new MarkupBlock( - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None)), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()), new [] { @@ -3455,10 +3455,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), insideBuilder(), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()); }; @@ -3471,7 +3471,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.Markup("<"), @@ -3488,7 +3488,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 13, 0, 13), value: new LocationTagged("btn", 13, 0, 13))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), factory.Markup("}")))), new [] { @@ -3519,8 +3519,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 13, 0, 13), value: new LocationTagged("btn", 13, 0, 13))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -3542,9 +3542,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy prefix: new LocationTagged(string.Empty, 13, 0, 13), value: new LocationTagged("btn", 13, 0, 13))), factory.Markup("\"").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), factory.Markup("words with spaces"), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -3580,8 +3580,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new LiteralAttributeChunkGenerator( prefix: new LocationTagged(string.Empty, 31, 0, 31), value: new LocationTagged("btn", 31, 0, 31)))), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, { @@ -3610,14 +3610,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), factory.Markup(" btn2").With( new LiteralAttributeChunkGenerator( prefix: new LocationTagged(" ", 31, 0, 31), value: new LocationTagged("btn2", 32, 0, 32))), factory.Markup("'").With(SpanChunkGenerator.Null)), - factory.Markup(">").Accepts(AcceptedCharacters.None)), - blockFactory.EscapedMarkupTagBlock("", AcceptedCharacters.None))), + factory.Markup(">").Accepts(AcceptedCharactersInternal.None)), + blockFactory.EscapedMarkupTagBlock("", AcceptedCharactersInternal.None))), new RazorError[0] }, }; @@ -3906,7 +3906,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("DateTime.Now") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace))), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace))), factory.Markup(" btn2").With( new LiteralAttributeChunkGenerator( prefix: new LocationTagged(" ", 29, 0, 29), @@ -3952,15 +3952,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.MarkupTransition("")), - factory.Markup("Hello World").Accepts(AcceptedCharacters.None), + factory.Markup("Hello World").Accepts(AcceptedCharactersInternal.None), new MarkupTagBlock( factory.MarkupTransition(""))), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()) }; yield return new object[] @@ -3970,7 +3970,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( factory.MarkupTransition("")), @@ -3979,7 +3979,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy new MarkupTagBlock( factory.MarkupTransition(""))), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()) }; yield return new object[] @@ -3989,13 +3989,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.EmptyHtml(), new StatementBlock( factory.CodeTransition(), - factory.MetaCode("{").Accepts(AcceptedCharacters.None), + factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagHelperBlock("p", new MarkupTagHelperBlock("text", factory.Markup("Hello World")))), factory.EmptyCSharp().AsStatement(), - factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), factory.EmptyHtml()) }; } @@ -4037,7 +4037,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" -->"), new MarkupTagBlock( factory.Markup(""))) @@ -4063,7 +4063,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" ?>"), new MarkupTagBlock( factory.Markup(""))) @@ -4079,7 +4079,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" >"), new MarkupTagBlock( factory.Markup(""))) @@ -4115,7 +4115,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy factory.CodeTransition(), factory.Code("foo") .AsImplicitExpression(CSharpCodeParser.DefaultKeywords) - .Accepts(AcceptedCharacters.NonWhiteSpace)), + .Accepts(AcceptedCharactersInternal.NonWhiteSpace)), factory.Markup(" ]]>"), new MarkupTagBlock( factory.Markup(""))) @@ -4203,12 +4203,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy Factory.Markup("
    ")), new StatementBlock( Factory.CodeTransition(), - Factory.MetaCode("{").Accepts(AcceptedCharacters.None), + Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None), new MarkupBlock( new MarkupTagBlock( - Factory.Markup("
    ").Accepts(AcceptedCharacters.None))), + Factory.Markup("").Accepts(AcceptedCharactersInternal.None))), Factory.EmptyCSharp().AsStatement(), - Factory.MetaCode("}").Accepts(AcceptedCharacters.None)), + Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)), Factory.EmptyHtml()); var expectedErrors = new[] { diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TestSpanBuilder.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TestSpanBuilder.cs index 38419d279d..4ac533e007 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TestSpanBuilder.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TestSpanBuilder.cs @@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { return new UnclassifiedCodeSpanConstructor( self.Span( - SpanKind.Code, + SpanKindInternal.Code, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))); } @@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { return self .Span( - SpanKind.Markup, + SpanKindInternal.Markup, new HtmlSymbol(string.Empty, HtmlSymbolType.Unknown)) .With(new MarkupChunkGenerator()); } @@ -29,109 +29,109 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public static UnclassifiedCodeSpanConstructor Code(this SpanFactory self, string content) { return new UnclassifiedCodeSpanConstructor( - self.Span(SpanKind.Code, content, markup: false)); + self.Span(SpanKindInternal.Code, content, markup: false)); } public static SpanConstructor CodeTransition(this SpanFactory self) { return self - .Span(SpanKind.Transition, SyntaxConstants.TransitionString, markup: false) - .Accepts(AcceptedCharacters.None); + .Span(SpanKindInternal.Transition, SyntaxConstants.TransitionString, markup: false) + .Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor CodeTransition(this SpanFactory self, string content) { - return self.Span(SpanKind.Transition, content, markup: false).Accepts(AcceptedCharacters.None); + return self.Span(SpanKindInternal.Transition, content, markup: false).Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor CodeTransition(this SpanFactory self, CSharpSymbolType type) { return self - .Span(SpanKind.Transition, SyntaxConstants.TransitionString, type) - .Accepts(AcceptedCharacters.None); + .Span(SpanKindInternal.Transition, SyntaxConstants.TransitionString, type) + .Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor CodeTransition(this SpanFactory self, string content, CSharpSymbolType type) { - return self.Span(SpanKind.Transition, content, type).Accepts(AcceptedCharacters.None); + return self.Span(SpanKindInternal.Transition, content, type).Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor MarkupTransition(this SpanFactory self) { return self - .Span(SpanKind.Transition, SyntaxConstants.TransitionString, markup: true) - .Accepts(AcceptedCharacters.None); + .Span(SpanKindInternal.Transition, SyntaxConstants.TransitionString, markup: true) + .Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor MarkupTransition(this SpanFactory self, string content) { - return self.Span(SpanKind.Transition, content, markup: true).Accepts(AcceptedCharacters.None); + return self.Span(SpanKindInternal.Transition, content, markup: true).Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor MarkupTransition(this SpanFactory self, HtmlSymbolType type) { return self - .Span(SpanKind.Transition, SyntaxConstants.TransitionString, type) - .Accepts(AcceptedCharacters.None); + .Span(SpanKindInternal.Transition, SyntaxConstants.TransitionString, type) + .Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor MarkupTransition(this SpanFactory self, string content, HtmlSymbolType type) { - return self.Span(SpanKind.Transition, content, type).Accepts(AcceptedCharacters.None); + return self.Span(SpanKindInternal.Transition, content, type).Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor MetaCode(this SpanFactory self, string content) { - return self.Span(SpanKind.MetaCode, content, markup: false); + return self.Span(SpanKindInternal.MetaCode, content, markup: false); } public static SpanConstructor MetaCode(this SpanFactory self, string content, CSharpSymbolType type) { - return self.Span(SpanKind.MetaCode, content, type); + return self.Span(SpanKindInternal.MetaCode, content, type); } public static SpanConstructor MetaMarkup(this SpanFactory self, string content) { - return self.Span(SpanKind.MetaCode, content, markup: true); + return self.Span(SpanKindInternal.MetaCode, content, markup: true); } public static SpanConstructor MetaMarkup(this SpanFactory self, string content, HtmlSymbolType type) { - return self.Span(SpanKind.MetaCode, content, type); + return self.Span(SpanKindInternal.MetaCode, content, type); } public static SpanConstructor Comment(this SpanFactory self, string content, CSharpSymbolType type) { - return self.Span(SpanKind.Comment, content, type); + return self.Span(SpanKindInternal.Comment, content, type); } public static SpanConstructor Comment(this SpanFactory self, string content, HtmlSymbolType type) { - return self.Span(SpanKind.Comment, content, type); + return self.Span(SpanKindInternal.Comment, content, type); } public static SpanConstructor BangEscape(this SpanFactory self) { return self - .Span(SpanKind.MetaCode, "!", markup: true) + .Span(SpanKindInternal.MetaCode, "!", markup: true) .With(SpanChunkGenerator.Null) - .Accepts(AcceptedCharacters.None); + .Accepts(AcceptedCharactersInternal.None); } public static SpanConstructor Markup(this SpanFactory self, string content) { - return self.Span(SpanKind.Markup, content, markup: true).With(new MarkupChunkGenerator()); + return self.Span(SpanKindInternal.Markup, content, markup: true).With(new MarkupChunkGenerator()); } public static SpanConstructor Markup(this SpanFactory self, params string[] content) { - return self.Span(SpanKind.Markup, content, markup: true).With(new MarkupChunkGenerator()); + return self.Span(SpanKindInternal.Markup, content, markup: true).With(new MarkupChunkGenerator()); } public static SpanConstructor CodeMarkup(this SpanFactory self, params string[] content) { return self - .Span(SpanKind.Code, content, markup: true) + .Span(SpanKindInternal.Code, content, markup: true) .AsCodeMarkup(); } @@ -150,7 +150,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)) .With(new MarkupChunkGenerator()) - .Accepts(AcceptedCharacters.AnyExceptNewline); + .Accepts(AcceptedCharactersInternal.AnyExceptNewline); } public static SourceLocation GetLocationAndAdvance(this SourceLocationTracker self, string content) @@ -176,27 +176,27 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public SourceLocationTracker LocationTracker { get; } - public SpanConstructor Span(SpanKind kind, string content, CSharpSymbolType type) + public SpanConstructor Span(SpanKindInternal kind, string content, CSharpSymbolType type) { return CreateSymbolSpan(kind, content, () => new CSharpSymbol(content, type)); } - public SpanConstructor Span(SpanKind kind, string content, HtmlSymbolType type) + public SpanConstructor Span(SpanKindInternal kind, string content, HtmlSymbolType type) { return CreateSymbolSpan(kind, content, () => new HtmlSymbol(content, type)); } - public SpanConstructor Span(SpanKind kind, string content, bool markup) + public SpanConstructor Span(SpanKindInternal kind, string content, bool markup) { return new SpanConstructor(kind, LocationTracker.CurrentLocation, Tokenize(new[] { content }, markup)); } - public SpanConstructor Span(SpanKind kind, string[] content, bool markup) + public SpanConstructor Span(SpanKindInternal kind, string[] content, bool markup) { return new SpanConstructor(kind, LocationTracker.CurrentLocation, Tokenize(content, markup)); } - public SpanConstructor Span(SpanKind kind, params ISymbol[] symbols) + public SpanConstructor Span(SpanKindInternal kind, params ISymbol[] symbols) { var start = LocationTracker.CurrentLocation; foreach (var symbol in symbols) @@ -207,7 +207,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return new SpanConstructor(kind, start, symbols); } - private SpanConstructor CreateSymbolSpan(SpanKind kind, string content, Func ctor) + private SpanConstructor CreateSymbolSpan(SpanKindInternal kind, string content, Func ctor) { var start = LocationTracker.CurrentLocation; LocationTracker.UpdateLocation(content); @@ -255,7 +255,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy internal static class SpanConstructorExtensions { - public static SpanConstructor Accepts(this SpanConstructor self, AcceptedCharacters accepted) + public static SpanConstructor Accepts(this SpanConstructor self, AcceptedCharactersInternal accepted) { return self.With(eh => eh.AcceptedCharacters = accepted); } @@ -290,7 +290,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy public SpanConstructor AsMetaCode() { - _self.Builder.Kind = SpanKind.MetaCode; + _self.Builder.Kind = SpanKindInternal.MetaCode; return _self; } @@ -330,21 +330,21 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy { return _self .With(new AddTagHelperChunkGenerator(lookupText)) - .Accepts(AcceptedCharacters.AnyExceptNewline); + .Accepts(AcceptedCharactersInternal.AnyExceptNewline); } public SpanConstructor AsRemoveTagHelper(string lookupText) { return _self .With(new RemoveTagHelperChunkGenerator(lookupText)) - .Accepts(AcceptedCharacters.AnyExceptNewline); + .Accepts(AcceptedCharactersInternal.AnyExceptNewline); } public SpanConstructor AsTagHelperPrefixDirective(string prefix) { return _self .With(new TagHelperPrefixDirectiveChunkGenerator(prefix)) - .Accepts(AcceptedCharacters.AnyExceptNewline); + .Accepts(AcceptedCharactersInternal.AnyExceptNewline); } public SpanConstructor As(ISpanChunkGenerator chunkGenerator) @@ -362,7 +362,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy yield return new RawTextSymbol(SourceLocation.Zero, str); } - public SpanConstructor(SpanKind kind, SourceLocation location, IEnumerable symbols) + public SpanConstructor(SpanKindInternal kind, SourceLocation location, IEnumerable symbols) { Builder = new SpanBuilder(location); Builder.Kind = kind; @@ -378,7 +378,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy return Builder.Build(); } - public SpanConstructor As(SpanKind spanKind) + public SpanConstructor As(SpanKindInternal spanKind) { Builder.Kind = spanKind; return this; diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TextChangeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TextChangeTest.cs deleted file mode 100644 index 1328b9bf9f..0000000000 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TextChangeTest.cs +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using Moq; -using Xunit; - -#pragma warning disable CS0612 // Type or member is obsolete -namespace Microsoft.AspNetCore.Razor.Language.Legacy -{ - public class TextChangeTest - { - [Fact] - public void ConstructorRequiresNonNegativeOldPosition() - { - var parameterName = "oldPosition"; - var exception = Assert.Throws(parameterName, () => new TextChange(-1, 0, new Mock().Object, 0, 0, new Mock().Object)); - ExceptionHelpers.ValidateArgumentException(parameterName, "Value must be greater than or equal to 0.", exception); - } - - [Fact] - public void ConstructorRequiresNonNegativeNewPosition() - { - var parameterName = "newPosition"; - var exception = Assert.Throws(parameterName, () => new TextChange(0, 0, new Mock().Object, -1, 0, new Mock().Object)); - ExceptionHelpers.ValidateArgumentException(parameterName, "Value must be greater than or equal to 0.", exception); - } - - [Fact] - public void ConstructorRequiresNonNegativeOldLength() - { - var parameterName = "oldLength"; - var exception = Assert.Throws(parameterName, () => new TextChange(0, -1, new Mock().Object, 0, 0, new Mock().Object)); - ExceptionHelpers.ValidateArgumentException(parameterName, "Value must be greater than or equal to 0.", exception); - } - - [Fact] - public void ConstructorRequiresNonNegativeNewLength() - { - var parameterName = "newLength"; - var exception = Assert.Throws(parameterName, () => new TextChange(0, 0, new Mock().Object, 0, -1, new Mock().Object)); - ExceptionHelpers.ValidateArgumentException(parameterName, "Value must be greater than or equal to 0.", exception); - } - - [Fact] - public void ConstructorInitializesProperties() - { - // Act - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(42, 24, oldBuffer, 1337, newBuffer); - - // Assert - Assert.Equal(42, change.OldPosition); - Assert.Equal(24, change.OldLength); - Assert.Equal(1337, change.NewLength); - Assert.Same(newBuffer, change.NewBuffer); - Assert.Same(oldBuffer, change.OldBuffer); - } - - [Fact] - public void TestIsDelete() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 1, oldBuffer, 0, newBuffer); - - // Assert - Assert.True(change.IsDelete); - } - - [Fact] - public void TestDeleteCreatesTheRightSizeChange() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 1, oldBuffer, 0, newBuffer); - - // Assert - Assert.Equal(0, change.NewText.Length); - Assert.Equal(1, change.OldText.Length); - } - - [Fact] - public void TestIsInsert() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 0, oldBuffer, 35, newBuffer); - - // Assert - Assert.True(change.IsInsert); - } - - [Fact] - public void TestInsertCreateTheRightSizeChange() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 0, oldBuffer, 1, newBuffer); - - // Assert - Assert.Equal(1, change.NewText.Length); - Assert.Equal(0, change.OldText.Length); - } - - [Fact] - public void TestIsReplace() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 5, oldBuffer, 10, newBuffer); - - // Assert - Assert.True(change.IsReplace); - } - - [Fact] - public void ReplaceCreatesTheRightSizeChange() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 5, oldBuffer, 10, newBuffer); - - // Assert - Assert.Equal(10, change.NewText.Length); - Assert.Equal(5, change.OldText.Length); - } - - [Fact] - public void ReplaceCreatesTheRightSizeChange1() - { - // Arrange - var oldBuffer = new Mock().Object; - var newBuffer = new Mock().Object; - var change = new TextChange(0, 5, oldBuffer, 1, newBuffer); - - // Assert - Assert.Equal(1, change.NewText.Length); - Assert.Equal(5, change.OldText.Length); - } - - [Fact] - public void OldTextReturnsOldSpanFromOldBuffer() - { - // Arrange - var newBuffer = new StringTextBuffer("test"); - var oldBuffer = new StringTextBuffer("text"); - var textChange = new TextChange(2, 1, oldBuffer, 1, newBuffer); - - // Act - var text = textChange.OldText; - - // Assert - Assert.Equal("x", text); - } - - [Fact] - public void OldTextReturnsOldSpanFromOldBuffer2() - { - // Arrange - var newBuffer = new StringTextBuffer("test"); - var oldBuffer = new StringTextBuffer("text"); - var textChange = new TextChange(2, 2, oldBuffer, 1, newBuffer); - - // Act - var text = textChange.OldText; - - // Assert - Assert.Equal("xt", text); - } - - [Fact] - public void NewTextWithInsertReturnsChangedTextFromBuffer() - { - // Arrange - var newBuffer = new StringTextBuffer("test"); - var oldBuffer = new StringTextBuffer(""); - var textChange = new TextChange(0, 0, oldBuffer, 3, newBuffer); - - // Act - var text = textChange.NewText; - var oldText = textChange.OldText; - - // Assert - Assert.Equal("tes", text); - Assert.Equal("", oldText); - } - - [Fact] - public void NewTextWithDeleteReturnsEmptyString() - { - // Arrange - var newBuffer = new StringTextBuffer("test"); - var oldBuffer = new StringTextBuffer(""); - var textChange = new TextChange(1, 1, oldBuffer, 0, newBuffer); - - // Act - var text = textChange.NewText; - - // Assert - Assert.Equal(string.Empty, text); - } - - [Fact] - public void NewTextWithReplaceReturnsChangedTextFromBuffer() - { - // Arrange - var newBuffer = new StringTextBuffer("test"); - var oldBuffer = new StringTextBuffer("tebb"); - var textChange = new TextChange(2, 2, oldBuffer, 1, newBuffer); - - // Act - var newText = textChange.NewText; - var oldText = textChange.OldText; - - // Assert - Assert.Equal("s", newText); - Assert.Equal("bb", oldText); - } - - [Fact] - public void NormalizeFixesUpIntelliSenseStyleReplacements() - { - // Arrange - var newBuffer = new StringTextBuffer("Date."); - var oldBuffer = new StringTextBuffer("Date"); - var original = new TextChange(0, 4, oldBuffer, 5, newBuffer); - - // Act - var normalized = original.Normalize(); - - // Assert - Assert.Equal(new TextChange(4, 0, oldBuffer, 1, newBuffer), normalized); - } - - [Fact] - public void NormalizeDoesntAffectChangesWithoutCommonPrefixes() - { - // Arrange - var newBuffer = new StringTextBuffer("DateTime."); - var oldBuffer = new StringTextBuffer("Date."); - var original = new TextChange(0, 5, oldBuffer, 9, newBuffer); - - // Act - var normalized = original.Normalize(); - - // Assert - Assert.Equal(original, normalized); - } - - [Fact] - public void NormalizeDoesntAffectShrinkingReplacements() - { - // Arrange - var newBuffer = new StringTextBuffer("D"); - var oldBuffer = new StringTextBuffer("DateTime"); - var original = new TextChange(0, 8, oldBuffer, 1, newBuffer); - - // Act - var normalized = original.Normalize(); - - // Assert - Assert.Equal(original, normalized); - } - } -} -#pragma warning restore CS0612 // Type or member is obsolete \ No newline at end of file diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs index f34b761db9..55480e00e0 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/RazorSyntaxTreeTest.cs @@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Test Assert.NotNull(syntaxTree); Assert.Equal(6, syntaxTree.Root.Children.Count); var block = Assert.IsType(syntaxTree.Root.Children[4]); - Assert.Equal(BlockKind.Directive, block.Type); + Assert.Equal(BlockKindInternal.Directive, block.Type); Assert.Empty(syntaxTree.Diagnostics); } }