Api Cleanup for language services
Created internal + public versions of - BlockKind - SpanKind - AcceptedCharacters That way these types are only exposed through the VS apis and not through the runtime API surface. Also deleted RazorEditorParser. Yep. It's going to take significant work to just port it to the language services assembly. Let's reevaluate this when we get closer to the next foundational update.
This commit is contained in:
parent
94aaa3db9e
commit
5a1090f324
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
AutoCompleteAtEndOfSpan = autoCompleteAtEndOfSpan;
|
||||
}
|
||||
|
||||
public AutoCompleteEditHandler(Func<string, IEnumerable<ISymbol>> tokenizer, AcceptedCharacters accepted)
|
||||
public AutoCompleteEditHandler(Func<string, IEnumerable<ISymbol>> tokenizer, AcceptedCharactersInternal accepted)
|
||||
: base(tokenizer, accepted)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Fired on the main thread.
|
||||
/// </summary>
|
||||
public event EventHandler<DocumentParseCompleteEventArgs> 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<TextChange> 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<TextChange> 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<TextChange> 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<TextChange> _changes = new List<TextChange>();
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
|
||||
public MainThreadState(string fileName)
|
||||
{
|
||||
_fileName = fileName;
|
||||
|
||||
SetThreadId(Thread.CurrentThread.ManagedThreadId);
|
||||
}
|
||||
|
||||
public event EventHandler<DocumentParseCompleteEventArgs> 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<TextChange>();
|
||||
#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<TextChange> _previouslyDiscarded = new List<TextChange>();
|
||||
#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<TextChange> 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<TextChange> 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<TextChange> Changes { get; private set; }
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore CS0618
|
||||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
source.Reset();
|
||||
}
|
||||
|
||||
protected Block(BlockKind? type, IReadOnlyList<SyntaxTreeNode> children, IParentChunkGenerator generator)
|
||||
protected Block(BlockKindInternal? type, IReadOnlyList<SyntaxTreeNode> 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<SyntaxTreeNode> Children { get; }
|
||||
|
||||
|
|
|
|||
|
|
@ -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<SyntaxTreeNode> Children { get; private set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
@ -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>(
|
||||
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<string, ISpanChunkGenerator> 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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Arguments for the DocumentParseComplete event in RazorEditorParser
|
||||
/// </summary>
|
||||
public class DocumentParseCompleteEventArgs : EventArgs
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates if the tree structure has actually changed since the previous re-parse.
|
||||
/// </summary>
|
||||
public bool TreeStructureChanged { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The result of the parsing and code generation.
|
||||
/// </summary>
|
||||
public RazorCodeDocument GeneratorResults { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// The TextChange which triggered the re-parse
|
||||
/// </summary>
|
||||
#pragma warning disable CS0612 // Type or member is obsolete
|
||||
public TextChange SourceChange { get; set; }
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
}
|
||||
}
|
||||
|
|
@ -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<Tuple<HtmlSymbol, SourceLocation>> 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 <p> or <a class="btn"> 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:
|
||||
// |<input| checked />. 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>(string.Concat(prefix.Select(s => s.Content)), prefixStart),
|
||||
new LocationTagged<string>(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>(string.Concat(prefix.Select(s => s.Content)), prefixStart),
|
||||
new LocationTagged<string>(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
|
|||
// <!text> 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 <script>: Skip to end of script tag and parse code
|
||||
var seenEndScript = false;
|
||||
|
|
@ -1265,9 +1265,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
if (seenEndScript)
|
||||
{
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
|
||||
using (Context.Builder.StartBlock(BlockKind.Tag))
|
||||
using (Context.Builder.StartBlock(BlockKindInternal.Tag))
|
||||
{
|
||||
Span.EditHandler.AcceptedCharacters = endTagAcceptedCharacters;
|
||||
|
||||
|
|
@ -1281,7 +1281,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
LegacyResources.FormatParseError_UnfinishedTag(ScriptTagName),
|
||||
ScriptTagName.Length);
|
||||
}
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -1292,8 +1292,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
|
||||
private void CompleteTagBlockWithSpan(IDisposable tagBlockWrapper,
|
||||
AcceptedCharacters acceptedCharacters,
|
||||
SpanKind spanKind)
|
||||
AcceptedCharactersInternal acceptedCharacters,
|
||||
SpanKindInternal spanKind)
|
||||
{
|
||||
Debug.Assert(tagBlockWrapper != null,
|
||||
"Tag block wrapper should not be null when attempting to complete a block");
|
||||
|
|
@ -1316,7 +1316,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
}
|
||||
Debug.Assert(EndOfFile);
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any;
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.Any;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -1366,14 +1366,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
else if (complete)
|
||||
{
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None;
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None;
|
||||
}
|
||||
tags.Clear();
|
||||
if (!Context.DesignTimeMode)
|
||||
{
|
||||
var shouldAcceptWhitespaceAndNewLine = true;
|
||||
|
||||
if (Context.Builder.LastSpan.Kind == SpanKind.Transition)
|
||||
if (Context.Builder.LastSpan.Kind == SpanKindInternal.Transition)
|
||||
{
|
||||
var symbols = ReadWhile(
|
||||
f => (f.Type == HtmlSymbolType.WhiteSpace) || (f.Type == HtmlSymbolType.NewLine));
|
||||
|
|
@ -1398,7 +1398,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Optional(HtmlSymbolType.NewLine);
|
||||
}
|
||||
}
|
||||
else if (Span.EditHandler.AcceptedCharacters == AcceptedCharacters.Any)
|
||||
else if (Span.EditHandler.AcceptedCharacters == AcceptedCharactersInternal.Any)
|
||||
{
|
||||
AcceptWhile(HtmlSymbolType.WhiteSpace);
|
||||
Optional(HtmlSymbolType.NewLine);
|
||||
|
|
@ -1409,7 +1409,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
AddMarkerSymbolIfNecessary();
|
||||
}
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
}
|
||||
|
||||
internal static bool IsValidAttributeNameSymbol(HtmlSymbol symbol)
|
||||
|
|
@ -1444,7 +1444,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;
|
||||
|
||||
|
|
@ -1455,7 +1455,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ScanTagInDocumentContext();
|
||||
}
|
||||
AddMarkerSymbolIfNecessary();
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1488,10 +1488,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
return;
|
||||
}
|
||||
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
|
||||
// Start tag block
|
||||
var tagBlock = Context.Builder.StartBlock(BlockKind.Tag);
|
||||
var tagBlock = Context.Builder.StartBlock(BlockKindInternal.Tag);
|
||||
|
||||
AcceptAndMoveNext(); // Accept '<'
|
||||
|
||||
|
|
@ -1511,7 +1511,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
// the end script tag. Don't want to incorrectly parse a "var tag = '<input />';" as an HTML tag.
|
||||
if (scriptTag && !CurrentScriptTagExpectsHtml())
|
||||
{
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
tagBlock.Dispose();
|
||||
|
||||
SkipToEndScriptAndParseCode();
|
||||
|
|
@ -1531,7 +1531,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Optional(HtmlSymbolType.CloseAngle);
|
||||
}
|
||||
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
|
||||
// End tag block
|
||||
tagBlock.Dispose();
|
||||
|
|
@ -1598,7 +1598,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
Span.Start = CurrentLocation;
|
||||
|
||||
using (Context.Builder.StartBlock(BlockKind.Markup))
|
||||
using (Context.Builder.StartBlock(BlockKindInternal.Markup))
|
||||
{
|
||||
NextToken();
|
||||
CaseSensitive = caseSensitive;
|
||||
|
|
@ -1611,7 +1611,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
NestingSection(nestingSequences);
|
||||
}
|
||||
AddMarkerSymbolIfNecessary();
|
||||
Output(SpanKind.Markup);
|
||||
Output(SpanKindInternal.Markup);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
public interface ITextBuffer
|
||||
internal interface ITextBuffer
|
||||
{
|
||||
int Length { get; }
|
||||
int Position { get; set; }
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
protected override PartialParseResult CanAcceptChange(Span target, SourceChange change)
|
||||
{
|
||||
if (AcceptedCharacters == AcceptedCharacters.Any)
|
||||
if (AcceptedCharacters == AcceptedCharactersInternal.Any)
|
||||
{
|
||||
return PartialParseResult.Rejected;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
protected void FillSpan(SpanBuilder builder, SourceLocation start, string content)
|
||||
{
|
||||
builder.Kind = SpanKind.Markup;
|
||||
builder.Kind = SpanKindInternal.Markup;
|
||||
builder.ChunkGenerator = new MarkupChunkGenerator();
|
||||
|
||||
foreach (ISymbol sym in HtmlLanguageCharacteristics.Instance.TokenizeString(start, content))
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
/// Provisional may NOT be set with Rejected and SpanContextChanged may NOT be set with Accepted.
|
||||
/// </remarks>
|
||||
[Flags]
|
||||
public enum PartialParseResult
|
||||
internal enum PartialParseResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates that the edit could not be accepted and that a reparse is underway.
|
||||
|
|
|
|||
|
|
@ -1,268 +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.Diagnostics;
|
||||
|
||||
#pragma warning disable CS0618 // TextChange is Obsolete
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
/// <summary>
|
||||
/// Parser used by editors to avoid reparsing the entire document on each text change.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// This parser is designed to allow editors to avoid having to worry about incremental parsing.
|
||||
/// The <see cref="CheckForStructureChanges"/> method can be called with every change made by a user in an editor
|
||||
/// and the parser will provide a result indicating if it was able to incrementally apply the change.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// The general workflow for editors with this parser is:
|
||||
/// <list type="number">
|
||||
/// <item><description>User edits document.</description></item>
|
||||
/// <item><description>Editor builds a <see cref="TextChange"/> structure describing the edit and providing a
|
||||
/// reference to the <em>updated</em> text buffer.</description></item>
|
||||
/// <item><description>Editor calls <see cref="CheckForStructureChanges"/> passing in that change.
|
||||
/// </description></item>
|
||||
/// <item><description>Parser determines if the change can be simply applied to an existing parse tree node.
|
||||
/// </description></item>
|
||||
/// <list type="number">
|
||||
/// <item><description>If it can, the Parser updates its parse tree and returns
|
||||
/// <see cref="PartialParseResult.Accepted"/>.</description></item>
|
||||
/// <item><description>If it cannot, the Parser starts a background parse task and returns
|
||||
/// <see cref="PartialParseResult.Rejected"/>.</description></item>
|
||||
/// </list>
|
||||
/// </list>
|
||||
/// NOTE: Additional flags can be applied to the <see cref="PartialParseResult"/>, see that <c>enum</c> for more
|
||||
/// details. However, the <see cref="PartialParseResult.Accepted"/> or <see cref="PartialParseResult.Rejected"/>
|
||||
/// flags will ALWAYS be present.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// A change can only be incrementally parsed if a single, unique, span (seein the syntax tree can be identified
|
||||
/// as owning the entire change. For example, if a change overlaps with multiple <see cref="Span"/>s, the change
|
||||
/// cannot be parsed incrementally and a full reparse is necessary. A <see cref="Span"/> "owns" a change if the
|
||||
/// change occurs either a) entirely within it's boundaries or b) it is a pure insertion
|
||||
/// (see <see cref="TextChange"/>) at the end of a <see cref="Span"/> whose <see cref="Span.EditHandler"/> can
|
||||
/// accept the change (see <see cref="SpanEditHandler.CanAcceptChange"/>).
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// When the <see cref="RazorEditorParser"/> returns <see cref="PartialParseResult.Accepted"/>, it updates
|
||||
/// <see cref="CurrentSyntaxTree"/> immediately. However, the editor is expected to update it's own data structures
|
||||
/// independently. It can use <see cref="CurrentSyntaxTree"/> to do this, as soon as the editor returns from
|
||||
/// <see cref="CheckForStructureChanges"/>, but it should (ideally) have logic for doing so without needing the new
|
||||
/// tree.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// When <see cref="PartialParseResult.Rejected"/> is returned by <see cref="CheckForStructureChanges"/>, a
|
||||
/// background parse task has <em>already</em> been started. When that task finishes, the
|
||||
/// <see cref="DocumentParseComplete"/> event will be fired containing the new generated code, parse tree and a
|
||||
/// reference to the original <see cref="TextChange"/> that caused the reparse, to allow the editor to resolve the
|
||||
/// new tree against any changes made since calling <see cref="CheckForStructureChanges"/>.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// If a call to <see cref="CheckForStructureChanges"/> occurs while a reparse is already in-progress, the reparse
|
||||
/// is canceled IMMEDIATELY and <see cref="PartialParseResult.Rejected"/> is returned without attempting to
|
||||
/// reparse. This means that if a consumer calls <see cref="CheckForStructureChanges"/>, which returns
|
||||
/// <see cref="PartialParseResult.Rejected"/>, then calls it again before <see cref="DocumentParseComplete"/> is
|
||||
/// fired, it will only receive one <see cref="DocumentParseComplete"/> event, for the second change.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
public class RazorEditorParser : IDisposable
|
||||
{
|
||||
// Lock for this document
|
||||
private Span _lastChangeOwner;
|
||||
private Span _lastAutoCompleteSpan;
|
||||
private BackgroundParser _parser;
|
||||
private RazorSyntaxTree _currentSyntaxTree;
|
||||
|
||||
public RazorEditorParser(RazorTemplateEngine templateEngine, string sourceFileName)
|
||||
{
|
||||
if (templateEngine == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(templateEngine));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(sourceFileName))
|
||||
{
|
||||
throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpty, nameof(sourceFileName));
|
||||
}
|
||||
|
||||
TemplateEngine = templateEngine;
|
||||
FileName = sourceFileName;
|
||||
_parser = new BackgroundParser(templateEngine, sourceFileName);
|
||||
_parser.ResultsReady += (sender, args) => OnDocumentParseComplete(args);
|
||||
_parser.Start();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Event fired when a full reparse of the document completes.
|
||||
/// </summary>
|
||||
public event EventHandler<DocumentParseCompleteEventArgs> DocumentParseComplete;
|
||||
|
||||
public RazorTemplateEngine TemplateEngine { get; private set; }
|
||||
public string FileName { get; private set; }
|
||||
public bool LastResultProvisional { get; private set; }
|
||||
|
||||
public RazorSyntaxTree CurrentSyntaxTree => _currentSyntaxTree;
|
||||
|
||||
public virtual string GetAutoCompleteString()
|
||||
{
|
||||
if (_lastAutoCompleteSpan != null)
|
||||
{
|
||||
var editHandler = _lastAutoCompleteSpan.EditHandler as AutoCompleteEditHandler;
|
||||
if (editHandler != null)
|
||||
{
|
||||
return editHandler.AutoCompleteString;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Type or member is obsolete
|
||||
/// <summary>
|
||||
/// Determines if a change will cause a structural change to the document and if not, applies it to the
|
||||
/// existing tree. If a structural change would occur, automatically starts a reparse.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// NOTE: The initial incremental parsing check and actual incremental parsing (if possible) occurs
|
||||
/// on the caller's thread. However, if a full reparse is needed, this occurs on a background thread.
|
||||
/// </remarks>
|
||||
/// <param name="change">The change to apply to the parse tree.</param>
|
||||
/// <returns>A <see cref="PartialParseResult"/> value indicating the result of the incremental parse.</returns>
|
||||
#pragma warning disable CS0612
|
||||
public virtual PartialParseResult CheckForStructureChanges(TextChange change)
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
{
|
||||
var result = PartialParseResult.Rejected;
|
||||
|
||||
using (_parser.SynchronizeMainThreadState())
|
||||
{
|
||||
// Check if we can partial-parse
|
||||
if (CurrentSyntaxTree != null && _parser.IsIdle)
|
||||
{
|
||||
result = TryPartialParse(change);
|
||||
}
|
||||
}
|
||||
|
||||
// If partial parsing failed or there were outstanding parser tasks, start a full reparse
|
||||
if ((result & PartialParseResult.Rejected) == PartialParseResult.Rejected)
|
||||
{
|
||||
_parser.QueueChange(change);
|
||||
}
|
||||
|
||||
// Otherwise, remember if this was provisionally accepted for next partial parse
|
||||
LastResultProvisional = (result & PartialParseResult.Provisional) == PartialParseResult.Provisional;
|
||||
VerifyFlagsAreValid(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disposes of this parser. Should be called when the editor window is closed and the document is unloaded.
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_parser.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS0612 // Type or member is obsolete
|
||||
private PartialParseResult TryPartialParse(TextChange change)
|
||||
#pragma warning restore CS0612 // Type or member is obsolete
|
||||
{
|
||||
var sourceChange = change.AsSourceChange();
|
||||
|
||||
var result = PartialParseResult.Rejected;
|
||||
|
||||
// Try the last change owner
|
||||
if (_lastChangeOwner != null && _lastChangeOwner.EditHandler.OwnsChange(_lastChangeOwner, sourceChange))
|
||||
{
|
||||
var editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, sourceChange);
|
||||
result = editResult.Result;
|
||||
if ((editResult.Result & PartialParseResult.Rejected) != PartialParseResult.Rejected)
|
||||
{
|
||||
_lastChangeOwner.ReplaceWith(editResult.EditedSpan);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// Locate the span responsible for this change
|
||||
_lastChangeOwner = CurrentSyntaxTree.Root.LocateOwner(sourceChange);
|
||||
|
||||
if (LastResultProvisional)
|
||||
{
|
||||
// Last change owner couldn't accept this, so we must do a full reparse
|
||||
result = PartialParseResult.Rejected;
|
||||
}
|
||||
else if (_lastChangeOwner != null)
|
||||
{
|
||||
var editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, sourceChange);
|
||||
result = editResult.Result;
|
||||
if ((editResult.Result & PartialParseResult.Rejected) != PartialParseResult.Rejected)
|
||||
{
|
||||
_lastChangeOwner.ReplaceWith(editResult.EditedSpan);
|
||||
}
|
||||
if ((result & PartialParseResult.AutoCompleteBlock) == PartialParseResult.AutoCompleteBlock)
|
||||
{
|
||||
_lastAutoCompleteSpan = _lastChangeOwner;
|
||||
}
|
||||
else
|
||||
{
|
||||
_lastAutoCompleteSpan = null;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void OnDocumentParseComplete(DocumentParseCompleteEventArgs args)
|
||||
{
|
||||
using (_parser.SynchronizeMainThreadState())
|
||||
{
|
||||
_currentSyntaxTree = args.GeneratorResults.GetSyntaxTree();
|
||||
_lastChangeOwner = null;
|
||||
}
|
||||
|
||||
Debug.Assert(args != null, "Event arguments cannot be null");
|
||||
EventHandler<DocumentParseCompleteEventArgs> handler = DocumentParseComplete;
|
||||
if (handler != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
handler(this, args);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.WriteLine("[RzEd] Document Parse Complete Handler Threw: " + ex.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Conditional("DEBUG")]
|
||||
private static void VerifyFlagsAreValid(PartialParseResult result)
|
||||
{
|
||||
Debug.Assert(((result & PartialParseResult.Accepted) == PartialParseResult.Accepted) ||
|
||||
((result & PartialParseResult.Rejected) == PartialParseResult.Rejected),
|
||||
"Partial Parse result does not have either of Accepted or Rejected flags set");
|
||||
Debug.Assert(((result & PartialParseResult.Rejected) == PartialParseResult.Rejected) ||
|
||||
((result & PartialParseResult.SpanContextChanged) != PartialParseResult.SpanContextChanged),
|
||||
"Partial Parse result was Accepted AND had SpanContextChanged flag set");
|
||||
Debug.Assert(((result & PartialParseResult.Rejected) == PartialParseResult.Rejected) ||
|
||||
((result & PartialParseResult.AutoCompleteBlock) != PartialParseResult.AutoCompleteBlock),
|
||||
"Partial Parse result was Accepted AND had AutoCompleteBlock flag set");
|
||||
Debug.Assert(((result & PartialParseResult.Accepted) == PartialParseResult.Accepted) ||
|
||||
((result & PartialParseResult.Provisional) != PartialParseResult.Provisional),
|
||||
"Partial Parse result was Rejected AND had Provisional flag set");
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma warning restore CS0618
|
||||
|
|
@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public ISpanChunkGenerator ChunkGenerator { get; private set; }
|
||||
|
||||
public SpanKind Kind { get; private set; }
|
||||
public SpanKindInternal Kind { get; private set; }
|
||||
public IReadOnlyList<ISymbol> Symbols { get; private set; }
|
||||
|
||||
// Allow test code to re-link spans
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public SourceLocation End => _tracker.CurrentLocation;
|
||||
|
||||
public SpanKind Kind { get; set; }
|
||||
public SpanKindInternal Kind { get; set; }
|
||||
|
||||
public IReadOnlyList<ISymbol> Symbols
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,17 +12,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
private static readonly int TypeHashCode = typeof(SpanEditHandler).GetHashCode();
|
||||
|
||||
public SpanEditHandler(Func<string, IEnumerable<ISymbol>> tokenizer)
|
||||
: this(tokenizer, AcceptedCharacters.Any)
|
||||
: this(tokenizer, AcceptedCharactersInternal.Any)
|
||||
{
|
||||
}
|
||||
|
||||
public SpanEditHandler(Func<string, IEnumerable<ISymbol>> tokenizer, AcceptedCharacters accepted)
|
||||
public SpanEditHandler(Func<string, IEnumerable<ISymbol>> tokenizer, AcceptedCharactersInternal accepted)
|
||||
{
|
||||
AcceptedCharacters = accepted;
|
||||
Tokenizer = tokenizer;
|
||||
}
|
||||
|
||||
public AcceptedCharacters AcceptedCharacters { get; set; }
|
||||
public AcceptedCharactersInternal AcceptedCharacters { get; set; }
|
||||
|
||||
public Func<string, IEnumerable<ISymbol>> Tokenizer { get; set; }
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var end = target.Start.AbsoluteIndex + target.Length;
|
||||
var changeOldEnd = change.Span.AbsoluteIndex + change.Span.Length;
|
||||
return change.Span.AbsoluteIndex >= target.Start.AbsoluteIndex &&
|
||||
(changeOldEnd < end || (changeOldEnd == end && AcceptedCharacters != AcceptedCharacters.None));
|
||||
(changeOldEnd < end || (changeOldEnd == end && AcceptedCharacters != AcceptedCharactersInternal.None));
|
||||
}
|
||||
|
||||
protected virtual PartialParseResult CanAcceptChange(Span target, SourceChange change)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
// 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 SpanKindInternal
|
||||
{
|
||||
Transition,
|
||||
MetaCode,
|
||||
Comment,
|
||||
Code,
|
||||
Markup
|
||||
}
|
||||
}
|
||||
|
|
@ -23,13 +23,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public Span LastSpan { get; private set; }
|
||||
|
||||
public AcceptedCharacters LastAcceptedCharacters
|
||||
public AcceptedCharactersInternal LastAcceptedCharacters
|
||||
{
|
||||
get
|
||||
{
|
||||
if (LastSpan == null)
|
||||
{
|
||||
return AcceptedCharacters.None;
|
||||
return AcceptedCharactersInternal.None;
|
||||
}
|
||||
return LastSpan.EditHandler.AcceptedCharacters;
|
||||
}
|
||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
/// Starts a block of the specified type
|
||||
/// </summary>
|
||||
/// <param name="blockType">The type of the block to start</param>
|
||||
public IDisposable StartBlock(BlockKind blockType)
|
||||
public IDisposable StartBlock(BlockKindInternal blockType)
|
||||
{
|
||||
var builder = new BlockBuilder() { Type = blockType };
|
||||
_blockStack.Push(builder);
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Start = start;
|
||||
BindingResult = bindingResult;
|
||||
Attributes = new List<TagHelperAttributeNode>(attributes);
|
||||
Type = BlockKind.Tag;
|
||||
Type = BlockKindInternal.Tag;
|
||||
ChunkGenerator = new TagHelperChunkGenerator();
|
||||
}
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
TagName = tagName;
|
||||
TagMode = tagMode;
|
||||
Attributes = attributes;
|
||||
Type = BlockKind.Tag;
|
||||
Type = BlockKindInternal.Tag;
|
||||
ChunkGenerator = new TagHelperChunkGenerator();
|
||||
|
||||
// Children is IList, no AddRange
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
var childSpan = block.Children.First() as Span;
|
||||
|
||||
if (childSpan == null || childSpan.Kind != SpanKind.Markup)
|
||||
if (childSpan == null || childSpan.Kind != SpanKindInternal.Markup)
|
||||
{
|
||||
errorSink.OnError(
|
||||
block.Start,
|
||||
|
|
@ -458,7 +458,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
// key="@int + @case" -> MyTagHelper.key = int + @case
|
||||
// key="@(a + b) -> MyTagHelper.key = a + b
|
||||
// key="4 + @(a + b)" -> MyTagHelper.key = 4 + @(a + b)
|
||||
if (isFirstSpan && span.Kind == SpanKind.Transition)
|
||||
if (isFirstSpan && span.Kind == SpanKindInternal.Transition)
|
||||
{
|
||||
// do nothing.
|
||||
}
|
||||
|
|
@ -466,9 +466,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
var spanBuilder = new SpanBuilder(span);
|
||||
|
||||
if (parentBlock.Type == BlockKind.Expression &&
|
||||
(spanBuilder.Kind == SpanKind.Transition ||
|
||||
spanBuilder.Kind == SpanKind.MetaCode))
|
||||
if (parentBlock.Type == BlockKindInternal.Expression &&
|
||||
(spanBuilder.Kind == SpanKindInternal.Transition ||
|
||||
spanBuilder.Kind == SpanKindInternal.MetaCode))
|
||||
{
|
||||
// Change to a MarkupChunkGenerator so that the '@' \ parenthesis is generated as part of the output.
|
||||
spanBuilder.ChunkGenerator = new MarkupChunkGenerator();
|
||||
|
|
@ -722,13 +722,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
private static void ConfigureNonStringAttribute(SpanBuilder builder, bool isDuplicateAttribute)
|
||||
{
|
||||
builder.Kind = SpanKind.Code;
|
||||
builder.Kind = SpanKindInternal.Code;
|
||||
builder.EditHandler = new ImplicitExpressionEditHandler(
|
||||
builder.EditHandler.Tokenizer,
|
||||
CSharpCodeParser.DefaultKeywords,
|
||||
acceptTrailingDot: true)
|
||||
{
|
||||
AcceptedCharacters = AcceptedCharacters.AnyExceptNewline
|
||||
AcceptedCharacters = AcceptedCharactersInternal.AnyExceptNewline
|
||||
};
|
||||
|
||||
if (!isDuplicateAttribute && builder.ChunkGenerator != SpanChunkGenerator.Null)
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
var childBlock = (Block)child;
|
||||
|
||||
if (childBlock.Type == BlockKind.Tag)
|
||||
if (childBlock.Type == BlockKindInternal.Tag)
|
||||
{
|
||||
if (TryRewriteTagHelper(childBlock, errorSink))
|
||||
{
|
||||
|
|
@ -340,7 +340,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
var childBlock = (Block)child;
|
||||
|
||||
if (childBlock.Type != BlockKind.Markup)
|
||||
if (childBlock.Type != BlockKindInternal.Markup)
|
||||
{
|
||||
// Anything other than markup blocks in the attribute area of tags mangles following attributes.
|
||||
// It's also not supported by TagHelpers, bail early to avoid creating bad attribute value pairs.
|
||||
|
|
@ -614,7 +614,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var tagEnd = tagBlock.Children[tagBlock.Children.Count - 1] as Span;
|
||||
|
||||
// If our tag end is not a markup span it means it's some sort of code SyntaxTreeNode (not a valid format)
|
||||
if (tagEnd != null && tagEnd.Kind == SpanKind.Markup)
|
||||
if (tagEnd != null && tagEnd.Kind == SpanKindInternal.Markup)
|
||||
{
|
||||
var endSymbol = tagEnd.Symbols.Count > 0 ?
|
||||
tagEnd.Symbols[tagEnd.Symbols.Count - 1] as HtmlSymbol :
|
||||
|
|
@ -684,7 +684,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
// text tags that are labeled as transitions should be ignored aka they're not tag helpers.
|
||||
return !string.Equals(tagName, SyntaxConstants.TextTagName, StringComparison.OrdinalIgnoreCase) ||
|
||||
childSpan.Kind != SpanKind.Transition;
|
||||
childSpan.Kind != SpanKindInternal.Transition;
|
||||
}
|
||||
|
||||
private void TrackBlock(BlockBuilder builder)
|
||||
|
|
@ -762,7 +762,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
var child = tagBlock.Children[0];
|
||||
|
||||
if (tagBlock.Type != BlockKind.Tag || tagBlock.Children.Count == 0 || !(child is Span))
|
||||
if (tagBlock.Type != BlockKindInternal.Tag || tagBlock.Children.Count == 0 || !(child is Span))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
|
@ -803,7 +803,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
private static void EnsureTagBlock(Block tagBlock)
|
||||
{
|
||||
Debug.Assert(tagBlock.Type == BlockKind.Tag);
|
||||
Debug.Assert(tagBlock.Type == BlockKindInternal.Tag);
|
||||
Debug.Assert(tagBlock.Children.First() is Span);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,248 +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.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
||||
{
|
||||
[Obsolete] // Superseded by SourceChange
|
||||
public struct TextChange
|
||||
{
|
||||
private string _newText;
|
||||
private string _oldText;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor for changes where the position hasn't moved (primarily for tests)
|
||||
/// </summary>
|
||||
internal TextChange(int position, int oldLength, ITextBuffer oldBuffer, int newLength, ITextBuffer newBuffer)
|
||||
: this(position, oldLength, oldBuffer, position, newLength, newBuffer)
|
||||
{
|
||||
}
|
||||
|
||||
public TextChange(
|
||||
int oldPosition,
|
||||
int oldLength,
|
||||
ITextBuffer oldBuffer,
|
||||
int newPosition,
|
||||
int newLength,
|
||||
ITextBuffer newBuffer)
|
||||
: this()
|
||||
{
|
||||
if (oldBuffer == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(oldBuffer));
|
||||
}
|
||||
|
||||
if (newBuffer == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(newBuffer));
|
||||
}
|
||||
|
||||
if (oldPosition < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(oldPosition), LegacyResources.FormatArgument_Must_Be_GreaterThanOrEqualTo(0));
|
||||
}
|
||||
if (newPosition < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(newPosition), LegacyResources.FormatArgument_Must_Be_GreaterThanOrEqualTo(0));
|
||||
}
|
||||
if (oldLength < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(oldLength), LegacyResources.FormatArgument_Must_Be_GreaterThanOrEqualTo(0));
|
||||
}
|
||||
if (newLength < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(newLength), LegacyResources.FormatArgument_Must_Be_GreaterThanOrEqualTo(0));
|
||||
}
|
||||
|
||||
OldPosition = oldPosition;
|
||||
NewPosition = newPosition;
|
||||
OldLength = oldLength;
|
||||
NewLength = newLength;
|
||||
NewBuffer = newBuffer;
|
||||
OldBuffer = oldBuffer;
|
||||
}
|
||||
|
||||
public int OldPosition { get; }
|
||||
|
||||
public int NewPosition { get; }
|
||||
|
||||
public int OldLength { get; }
|
||||
|
||||
public int NewLength { get; }
|
||||
|
||||
public ITextBuffer NewBuffer { get; }
|
||||
|
||||
public ITextBuffer OldBuffer { get; }
|
||||
|
||||
/// <remark>
|
||||
/// Note: This property is not thread safe, and will move position on the textbuffer while being read.
|
||||
/// https://aspnetwebstack.codeplex.com/workitem/1317, tracks making this immutable and improving the access
|
||||
/// to ITextBuffer to be thread safe.
|
||||
/// </remark>
|
||||
public string OldText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_oldText == null && OldBuffer != null)
|
||||
{
|
||||
_oldText = GetText(OldBuffer, OldPosition, OldLength);
|
||||
}
|
||||
return _oldText;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remark>
|
||||
/// Note: This property is not thread safe, and will move position on the textbuffer while being read.
|
||||
/// https://aspnetwebstack.codeplex.com/workitem/1317, tracks making this immutable and improving the access
|
||||
/// to ITextBuffer to be thread safe.
|
||||
/// </remark>
|
||||
public string NewText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_newText == null)
|
||||
{
|
||||
_newText = GetText(NewBuffer, NewPosition, NewLength);
|
||||
}
|
||||
return _newText;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsInsert
|
||||
{
|
||||
get { return OldLength == 0 && NewLength > 0; }
|
||||
}
|
||||
|
||||
public bool IsDelete
|
||||
{
|
||||
get { return OldLength > 0 && NewLength == 0; }
|
||||
}
|
||||
|
||||
public bool IsReplace
|
||||
{
|
||||
get { return OldLength > 0 && NewLength > 0; }
|
||||
}
|
||||
|
||||
public SourceChange AsSourceChange()
|
||||
{
|
||||
var normalized = Normalize();
|
||||
return new SourceChange(
|
||||
new SourceSpan(
|
||||
filePath: null,
|
||||
absoluteIndex: normalized.OldPosition,
|
||||
lineIndex: -1,
|
||||
characterIndex: -1,
|
||||
length: normalized.OldLength),
|
||||
normalized.NewText);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (!(obj is TextChange))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var change = (TextChange)obj;
|
||||
return change.OldPosition == OldPosition &&
|
||||
change.NewPosition == NewPosition &&
|
||||
change.OldLength == OldLength &&
|
||||
change.NewLength == NewLength &&
|
||||
OldBuffer.Equals(change.OldBuffer) &&
|
||||
NewBuffer.Equals(change.NewBuffer);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
var hashCodeCombiner = HashCodeCombiner.Start();
|
||||
hashCodeCombiner.Add(OldPosition);
|
||||
hashCodeCombiner.Add(NewPosition);
|
||||
hashCodeCombiner.Add(OldLength);
|
||||
hashCodeCombiner.Add(NewLength);
|
||||
hashCodeCombiner.Add(OldBuffer);
|
||||
hashCodeCombiner.Add(NewBuffer);
|
||||
|
||||
return hashCodeCombiner;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format(CultureInfo.CurrentCulture, "({0}:{1}) \"{3}\" -> ({0}:{2}) \"{4}\"", OldPosition, OldLength, NewLength, OldText, NewText);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a common prefix from the edit to turn IntelliSense replacements into insertions where possible
|
||||
/// </summary>
|
||||
/// <returns>A normalized text change</returns>
|
||||
public TextChange Normalize()
|
||||
{
|
||||
if (OldBuffer != null && IsReplace && NewLength > OldLength && NewText.StartsWith(OldText, StringComparison.Ordinal) && NewPosition == OldPosition)
|
||||
{
|
||||
// Normalize the change into an insertion of the uncommon suffix (i.e. strip out the common prefix)
|
||||
return new TextChange(oldPosition: OldPosition + OldLength,
|
||||
oldLength: 0,
|
||||
oldBuffer: OldBuffer,
|
||||
newPosition: OldPosition + OldLength,
|
||||
newLength: NewLength - OldLength,
|
||||
newBuffer: NewBuffer);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
private static string GetText(ITextBuffer buffer, int position, int length)
|
||||
{
|
||||
// Optimization for the common case of one char inserts, in this case we don't even need to seek the buffer.
|
||||
if (length == 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var oldPosition = buffer.Position;
|
||||
try
|
||||
{
|
||||
buffer.Position = position;
|
||||
|
||||
// Optimization for the common case of one char inserts, in this case we seek the buffer.
|
||||
if (length == 1)
|
||||
{
|
||||
return ((char)buffer.Read()).ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
var builder = new StringBuilder();
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
var c = (char)buffer.Read();
|
||||
builder.Append(c);
|
||||
|
||||
// This check is probably not necessary, will revisit when fixing https://aspnetwebstack.codeplex.com/workitem/1317
|
||||
if (Char.IsHighSurrogate(c))
|
||||
{
|
||||
builder.Append((char)buffer.Read());
|
||||
}
|
||||
}
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
buffer.Position = oldPosition;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool operator ==(TextChange left, TextChange right)
|
||||
{
|
||||
return left.Equals(right);
|
||||
}
|
||||
|
||||
public static bool operator !=(TextChange left, TextChange right)
|
||||
{
|
||||
return !left.Equals(right);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -286,7 +286,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
Tuple<TSymbol, TSymbol> pair = Language.SplitSymbol(CurrentSymbol, 1, Language.GetKnownSymbolType(KnownSymbolType.WhiteSpace));
|
||||
Accept(pair.Item1);
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None;
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharactersInternal.None;
|
||||
NextToken();
|
||||
return pair.Item2;
|
||||
}
|
||||
|
|
@ -329,25 +329,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
protected internal void AddMarkerSymbolIfNecessary()
|
||||
{
|
||||
if (Span.Symbols.Count == 0 && Context.Builder.LastAcceptedCharacters != AcceptedCharacters.Any)
|
||||
if (Span.Symbols.Count == 0 && Context.Builder.LastAcceptedCharacters != AcceptedCharactersInternal.Any)
|
||||
{
|
||||
Accept(Language.CreateMarkerSymbol());
|
||||
}
|
||||
}
|
||||
|
||||
protected internal void Output(SpanKind kind)
|
||||
protected internal void Output(SpanKindInternal kind)
|
||||
{
|
||||
Configure(kind, null);
|
||||
Output();
|
||||
}
|
||||
|
||||
protected internal void Output(SpanKind kind, AcceptedCharacters accepts)
|
||||
protected internal void Output(SpanKindInternal kind, AcceptedCharactersInternal accepts)
|
||||
{
|
||||
Configure(kind, accepts);
|
||||
Output();
|
||||
}
|
||||
|
||||
protected internal void Output(AcceptedCharacters accepts)
|
||||
protected internal void Output(AcceptedCharactersInternal accepts)
|
||||
{
|
||||
Configure(null, accepts);
|
||||
Output();
|
||||
|
|
@ -580,7 +580,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
}
|
||||
|
||||
private void Configure(SpanKind? kind, AcceptedCharacters? accepts)
|
||||
private void Configure(SpanKindInternal? kind, AcceptedCharactersInternal? accepts)
|
||||
{
|
||||
if (kind != null)
|
||||
{
|
||||
|
|
@ -614,20 +614,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
OutputSpanBeforeRazorComment();
|
||||
using (PushSpanConfig(CommentSpanConfig))
|
||||
{
|
||||
using (Context.Builder.StartBlock(BlockKind.Comment))
|
||||
using (Context.Builder.StartBlock(BlockKindInternal.Comment))
|
||||
{
|
||||
Context.Builder.CurrentBlock.ChunkGenerator = new RazorCommentChunkGenerator();
|
||||
var start = CurrentStart;
|
||||
|
||||
Expected(KnownSymbolType.CommentStart);
|
||||
Output(SpanKind.Transition, AcceptedCharacters.None);
|
||||
Output(SpanKindInternal.Transition, AcceptedCharactersInternal.None);
|
||||
|
||||
Expected(KnownSymbolType.CommentStar);
|
||||
Output(SpanKind.MetaCode, AcceptedCharacters.None);
|
||||
Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None);
|
||||
|
||||
Optional(KnownSymbolType.CommentBody);
|
||||
AddMarkerSymbolIfNecessary();
|
||||
Output(SpanKind.Comment);
|
||||
Output(SpanKindInternal.Comment);
|
||||
|
||||
var errorReported = false;
|
||||
if (!Optional(KnownSymbolType.CommentStar))
|
||||
|
|
@ -640,7 +640,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
else
|
||||
{
|
||||
Output(SpanKind.MetaCode, AcceptedCharacters.None);
|
||||
Output(SpanKindInternal.MetaCode, AcceptedCharactersInternal.None);
|
||||
}
|
||||
|
||||
if (!Optional(KnownSymbolType.CommentStart))
|
||||
|
|
@ -656,7 +656,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
}
|
||||
else
|
||||
{
|
||||
Output(SpanKind.Transition, AcceptedCharacters.None);
|
||||
Output(SpanKindInternal.Transition, AcceptedCharactersInternal.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
protected override bool CanRewrite(Block block)
|
||||
{
|
||||
return block.Type == BlockKind.Expression && Parent != null;
|
||||
return block.Type == BlockKindInternal.Expression && Parent != null;
|
||||
}
|
||||
|
||||
protected override SyntaxTreeNode RewriteBlock(BlockBuilder parent, Block block)
|
||||
|
|
|
|||
|
|
@ -9,10 +9,10 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
{
|
||||
public sealed class LineMapping : IEquatable<LineMapping>
|
||||
{
|
||||
public LineMapping(SourceSpan originalSourceSpan, SourceSpan generatedSourceSpan)
|
||||
public LineMapping(SourceSpan originalSpan, SourceSpan generatedSpan)
|
||||
{
|
||||
OriginalSpan = originalSourceSpan;
|
||||
GeneratedSpan = generatedSourceSpan;
|
||||
OriginalSpan = originalSpan;
|
||||
GeneratedSpan = generatedSpan;
|
||||
}
|
||||
|
||||
public SourceSpan OriginalSpan { get; }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
using System;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language
|
||||
namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||
{
|
||||
[Flags]
|
||||
public enum AcceptedCharacters
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
// 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
|
||||
namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||
{
|
||||
public enum BlockKind
|
||||
{
|
||||
|
|
@ -42,9 +42,9 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
span.Parent.Start.LineIndex,
|
||||
span.Parent.Start.CharacterIndex,
|
||||
span.Parent.Length),
|
||||
span.Kind,
|
||||
span.Parent.Type,
|
||||
span.EditHandler.AcceptedCharacters);
|
||||
(SpanKind)span.Kind,
|
||||
(BlockKind)span.Parent.Type,
|
||||
(AcceptedCharacters)span.EditHandler.AcceptedCharacters);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
@ -176,7 +176,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
|
||||
int? desiredIndentation = null;
|
||||
|
||||
if (owningSpan.Kind != SpanKind.Code)
|
||||
if (owningSpan.Kind != SpanKindInternal.Code)
|
||||
{
|
||||
SyntaxTreeNode owningChild = owningSpan;
|
||||
while ((owningChild.Parent != null) && !desiredIndentation.HasValue)
|
||||
|
|
@ -189,7 +189,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
if (!curChild.IsBlock)
|
||||
{
|
||||
Span curSpan = curChild as Span;
|
||||
if (curSpan.Kind == SpanKind.MetaCode)
|
||||
if (curSpan.Kind == SpanKindInternal.MetaCode)
|
||||
{
|
||||
// yay! We want to use the start of this span to determine the indent level.
|
||||
var startLine = line.Snapshot.GetLineFromLineNumber(curSpan.Start.LineIndex);
|
||||
|
|
@ -199,7 +199,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Razor
|
|||
if (i < children.Count - 1)
|
||||
{
|
||||
SyntaxTreeNode nextChild = children[i + 1];
|
||||
if (nextChild.IsBlock && ((nextChild as Block).Type == BlockKind.Markup))
|
||||
if (nextChild.IsBlock && ((nextChild as Block).Type == BlockKindInternal.Markup))
|
||||
{
|
||||
extraIndent = indentSize;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// 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
|
||||
namespace Microsoft.VisualStudio.LanguageServices.Razor
|
||||
{
|
||||
public enum SpanKind
|
||||
{
|
||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
// Assert
|
||||
var tag = Assert.Single(outputTree.Root.Children);
|
||||
var tagBlock = Assert.IsType<Block>(tag);
|
||||
Assert.Equal(BlockKind.Tag, tagBlock.Type);
|
||||
Assert.Equal(BlockKindInternal.Tag, tagBlock.Type);
|
||||
Assert.Equal(3, tagBlock.Children.Count);
|
||||
Assert.IsType<Span>(tagBlock.Children[1]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,18 +16,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public Block EscapedMarkupTagBlock(string prefix, string suffix)
|
||||
{
|
||||
return EscapedMarkupTagBlock(prefix, suffix, AcceptedCharacters.Any);
|
||||
return EscapedMarkupTagBlock(prefix, suffix, AcceptedCharactersInternal.Any);
|
||||
}
|
||||
|
||||
public Block EscapedMarkupTagBlock(string prefix, string suffix, params SyntaxTreeNode[] children)
|
||||
{
|
||||
return EscapedMarkupTagBlock(prefix, suffix, AcceptedCharacters.Any, children);
|
||||
return EscapedMarkupTagBlock(prefix, suffix, AcceptedCharactersInternal.Any, children);
|
||||
}
|
||||
|
||||
public Block EscapedMarkupTagBlock(
|
||||
string prefix,
|
||||
string suffix,
|
||||
AcceptedCharacters acceptedCharacters,
|
||||
AcceptedCharactersInternal acceptedCharacters,
|
||||
params SyntaxTreeNode[] children)
|
||||
{
|
||||
var newChildren = new List<SyntaxTreeNode>(
|
||||
|
|
@ -45,10 +45,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
public Block MarkupTagBlock(string content)
|
||||
{
|
||||
return MarkupTagBlock(content, AcceptedCharacters.Any);
|
||||
return MarkupTagBlock(content, AcceptedCharactersInternal.Any);
|
||||
}
|
||||
|
||||
public Block MarkupTagBlock(string content, AcceptedCharacters acceptedCharacters)
|
||||
public Block MarkupTagBlock(string content, AcceptedCharactersInternal acceptedCharacters)
|
||||
{
|
||||
return new MarkupTagBlock(
|
||||
_factory.Markup(content).Accepts(acceptedCharacters)
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public void ConstructorWithBlockBuilderSetsParent()
|
||||
{
|
||||
// Arrange
|
||||
var builder = new BlockBuilder() { Type = BlockKind.Comment };
|
||||
var span = new SpanBuilder(SourceLocation.Undefined) { Kind = SpanKind.Code }.Build();
|
||||
var builder = new BlockBuilder() { Type = BlockKindInternal.Comment };
|
||||
var span = new SpanBuilder(SourceLocation.Undefined) { Kind = SpanKindInternal.Code }.Build();
|
||||
builder.Children.Add(span);
|
||||
|
||||
// Act
|
||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var expected = new ExpressionChunkGenerator();
|
||||
var builder = new BlockBuilder()
|
||||
{
|
||||
Type = BlockKind.Helper,
|
||||
Type = BlockKindInternal.Helper,
|
||||
ChunkGenerator = expected
|
||||
};
|
||||
|
||||
|
|
@ -45,10 +45,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
public void ConstructorTransfersChildrenFromBlockBuilder()
|
||||
{
|
||||
// Arrange
|
||||
var expected = new SpanBuilder(SourceLocation.Undefined) { Kind = SpanKind.Code }.Build();
|
||||
var expected = new SpanBuilder(SourceLocation.Undefined) { Kind = SpanKindInternal.Code }.Build();
|
||||
var builder = new BlockBuilder()
|
||||
{
|
||||
Type = BlockKind.Functions
|
||||
Type = BlockKindInternal.Functions
|
||||
};
|
||||
builder.Children.Add(expected);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class StatementBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Statement;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Statement;
|
||||
|
||||
public StatementBlock(IParentChunkGenerator chunkGenerator, IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(ThisBlockKind, children, chunkGenerator)
|
||||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class DirectiveBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Directive;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Directive;
|
||||
|
||||
public DirectiveBlock(IParentChunkGenerator chunkGenerator, IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(ThisBlockKind, children, chunkGenerator)
|
||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class ExpressionBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Expression;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Expression;
|
||||
|
||||
public ExpressionBlock(IParentChunkGenerator chunkGenerator, IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(ThisBlockKind, children, chunkGenerator)
|
||||
|
|
@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class MarkupTagBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Tag;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Tag;
|
||||
|
||||
public MarkupTagBlock(params SyntaxTreeNode[] children)
|
||||
: base(ThisBlockKind, children, ParentChunkGenerator.Null)
|
||||
|
|
@ -79,10 +79,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class MarkupBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Markup;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Markup;
|
||||
|
||||
public MarkupBlock(
|
||||
BlockKind BlockKind,
|
||||
BlockKindInternal BlockKind,
|
||||
IParentChunkGenerator chunkGenerator,
|
||||
IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(BlockKind, children, chunkGenerator)
|
||||
|
|
@ -170,7 +170,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class TemplateBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Template;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Template;
|
||||
|
||||
public TemplateBlock(IParentChunkGenerator chunkGenerator, IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(ThisBlockKind, children, chunkGenerator)
|
||||
|
|
@ -195,7 +195,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
|
||||
internal class CommentBlock : Block
|
||||
{
|
||||
private const BlockKind ThisBlockKind = BlockKind.Comment;
|
||||
private const BlockKindInternal ThisBlockKind = BlockKindInternal.Comment;
|
||||
|
||||
public CommentBlock(IParentChunkGenerator chunkGenerator, IReadOnlyList<SyntaxTreeNode> children)
|
||||
: base(ThisBlockKind, children, chunkGenerator)
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@functions{",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF(CSharpCodeParser.FunctionsDirectiveDescriptor.Name, "}", "{"),
|
||||
new SourceLocation(10, 0, 10),
|
||||
|
|
@ -30,13 +30,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@section Header {",
|
||||
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, "Header", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Header", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())),
|
||||
Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml())),
|
||||
new RazorError(
|
||||
|
|
@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@{",
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsStatement()
|
||||
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" })
|
||||
|
|
@ -69,8 +69,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@functions{" + Environment.NewLine + "foo",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("functions").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(Environment.NewLine + "foo").AsStatement()),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF("functions", "}", "{"),
|
||||
|
|
@ -85,13 +85,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ "<p>Foo</p>",
|
||||
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, "Header", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Header", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())),
|
||||
Factory.Span(SpanKind.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(Environment.NewLine),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -112,16 +112,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ "<p></p>",
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(Environment.NewLine)
|
||||
.AsStatement()
|
||||
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" }),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Span(SpanKind.Code, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.Span(SpanKindInternal.Code, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))
|
||||
.With(new StatementChunkGenerator())
|
||||
),
|
||||
new RazorError(
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -26,11 +26,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -49,11 +49,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "Some_Member", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Some_Member", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -72,11 +72,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "BaseNamespace", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "BaseNamespace", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -95,11 +95,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "BaseNamespace.Foo.Bar", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "BaseNamespace.Foo.Bar", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -118,11 +118,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"AString\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"AString\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -146,8 +146,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)), expectedError);
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), expectedError);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -171,8 +171,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)), expectedError);
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), expectedError);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -196,8 +196,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)), expectedError);
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)), expectedError);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -221,8 +221,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
|
||||
expectedError);
|
||||
}
|
||||
|
||||
|
|
@ -242,22 +242,22 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "Some_Member", markup: false)
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Some_Member", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[1]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"AString\"", markup: false)
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"AString\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[2]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -276,15 +276,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"Header\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"Header\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{")
|
||||
.AutoCompleteWith(null, atEndOfSpan: true)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -293,7 +293,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -312,17 +312,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"Name\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"Name\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{")
|
||||
.AutoCompleteWith(null, atEndOfSpan: true)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(" foo(); bar(); ").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -341,20 +341,20 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.Text.Encoding.ASCIIEncoding", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "Some_Member", markup: false)
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Some_Member", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[1]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false)
|
||||
.Accepts(AcceptedCharacters.WhiteSpace)));
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.WhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -378,8 +378,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
|
||||
expectedErorr);
|
||||
}
|
||||
|
||||
|
|
@ -399,12 +399,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"hello\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"hello\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, " ; ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)));
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, " ; ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -428,13 +428,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"hello\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"hello\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)),
|
||||
expectedErorr);
|
||||
}
|
||||
|
||||
|
|
@ -459,13 +459,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"Hello\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"Hello\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.AllWhiteSpace)),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace)),
|
||||
expectedErorr);
|
||||
}
|
||||
|
||||
|
|
@ -490,11 +490,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"Hello\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"Hello\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
expectedErorr);
|
||||
}
|
||||
|
||||
|
|
@ -519,15 +519,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"Hello\"", markup: false)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"Hello\"", markup: false)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens[0]))
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{")
|
||||
.AutoCompleteWith("}", atEndOfSpan: true)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
expectedErorr);
|
||||
}
|
||||
|
||||
|
|
@ -539,7 +539,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\"")
|
||||
.AsTagHelperPrefixDirective("\"\"")));
|
||||
}
|
||||
|
|
@ -552,7 +552,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo")
|
||||
.AsTagHelperPrefixDirective("Foo")));
|
||||
}
|
||||
|
|
@ -565,7 +565,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo\"")
|
||||
.AsTagHelperPrefixDirective("\"Foo\"")));
|
||||
}
|
||||
|
|
@ -578,10 +578,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsTagHelperPrefixDirective(string.Empty)
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)),
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_DirectiveMustHaveValue(
|
||||
SyntaxConstants.CSharp.TagHelperPrefixKeyword),
|
||||
|
|
@ -596,7 +596,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo")
|
||||
.AsTagHelperPrefixDirective("\"Foo")),
|
||||
new RazorError(
|
||||
|
|
@ -616,7 +616,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory
|
||||
.MetaCode(SyntaxConstants.CSharp.TagHelperPrefixKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo \"")
|
||||
.AsTagHelperPrefixDirective("Foo \"")),
|
||||
new RazorError(
|
||||
|
|
@ -635,7 +635,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\"")
|
||||
.AsRemoveTagHelper("\"\"")));
|
||||
}
|
||||
|
|
@ -647,7 +647,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo")
|
||||
.AsRemoveTagHelper("Foo")));
|
||||
}
|
||||
|
|
@ -659,7 +659,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo\"")
|
||||
.AsRemoveTagHelper("\"Foo\"")));
|
||||
}
|
||||
|
|
@ -671,10 +671,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo, Bar ")
|
||||
.AsRemoveTagHelper("Foo, Bar")
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)));
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -684,10 +684,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsRemoveTagHelper(string.Empty)
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)),
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_DirectiveMustHaveValue(
|
||||
SyntaxConstants.CSharp.RemoveTagHelperKeyword),
|
||||
|
|
@ -701,7 +701,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo")
|
||||
.AsRemoveTagHelper("\"Foo")),
|
||||
new RazorError(
|
||||
|
|
@ -720,10 +720,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.RemoveTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo\"")
|
||||
.AsRemoveTagHelper("Foo\"")
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)),
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unterminated_String_Literal,
|
||||
absoluteIndex: 20, lineIndex: 0, columnIndex: 20, length: 1),
|
||||
|
|
@ -740,7 +740,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\"")
|
||||
.AsAddTagHelper("\"\"")));
|
||||
}
|
||||
|
|
@ -752,7 +752,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo")
|
||||
.AsAddTagHelper("Foo")));
|
||||
}
|
||||
|
|
@ -764,7 +764,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo\"")
|
||||
.AsAddTagHelper("\"Foo\"")));
|
||||
}
|
||||
|
|
@ -776,7 +776,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo, Bar ")
|
||||
.AsAddTagHelper("Foo, Bar")));
|
||||
}
|
||||
|
|
@ -788,10 +788,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsAddTagHelper(string.Empty)
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)),
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_DirectiveMustHaveValue(SyntaxConstants.CSharp.AddTagHelperKeyword),
|
||||
absoluteIndex: 1, lineIndex: 0, columnIndex: 1, length: 12));
|
||||
|
|
@ -804,7 +804,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"Foo")
|
||||
.AsAddTagHelper("\"Foo")),
|
||||
new RazorError(
|
||||
|
|
@ -823,10 +823,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode(SyntaxConstants.CSharp.AddTagHelperKeyword + " ")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Foo\"")
|
||||
.AsAddTagHelper("Foo\"")
|
||||
.Accepts(AcceptedCharacters.AnyExceptNewline)),
|
||||
.Accepts(AcceptedCharactersInternal.AnyExceptNewline)),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unterminated_String_Literal,
|
||||
absoluteIndex: 17, lineIndex: 0, columnIndex: 17, length: 1),
|
||||
|
|
@ -842,10 +842,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@inherits System.Web.WebPages.WebPage",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.Web.WebPages.WebPage", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.Web.WebPages.WebPage", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor.Tokens.First()))));
|
||||
}
|
||||
|
||||
|
|
@ -855,10 +855,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@inherits string[[]][]",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "string[[]][]", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "string[[]][]", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor.Tokens.First()))));
|
||||
}
|
||||
|
||||
|
|
@ -868,10 +868,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@inherits System.Web.Mvc.WebViewPage<IEnumerable<MvcApplication2.Models.RegisterModel>>",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.Web.Mvc.WebViewPage<IEnumerable<MvcApplication2.Models.RegisterModel>>", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.Web.Mvc.WebViewPage<IEnumerable<MvcApplication2.Models.RegisterModel>>", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor.Tokens.First()))));
|
||||
}
|
||||
|
||||
|
|
@ -881,10 +881,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@inherits string",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "string", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("inherits").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "string", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.InheritsDirectiveDescriptor.Tokens.First()))));
|
||||
}
|
||||
|
||||
|
|
@ -894,11 +894,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@functions { foo(); bar(); }",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
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(" foo(); bar(); ").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -907,11 +907,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@functions { }",
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.FunctionsDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
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(" ").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -920,13 +920,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@section Header { <p>F{o}o</p> }",
|
||||
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, "Header", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Header", 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(
|
||||
|
|
@ -936,7 +936,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup("</p>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}")
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -955,8 +955,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)));
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -977,10 +977,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"simple-value\"", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"simple-value\"", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(chunkGenerator)));
|
||||
}
|
||||
|
||||
|
|
@ -1002,10 +1002,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"{formaction}?/{id}?\"", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"{formaction}?/{id}?\"", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(chunkGenerator)));
|
||||
}
|
||||
|
||||
|
|
@ -1025,14 +1025,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Markup, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Markup, "\"{formaction}?/{id}?\"", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("custom").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Markup, "\"{formaction}?/{id}?\"", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens.First())),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "System.String", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "System.String", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens.Last()))));
|
||||
}
|
||||
|
||||
|
|
@ -1052,8 +1052,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("TestDirective").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace)));
|
||||
Factory.MetaCode("TestDirective").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -1072,10 +1072,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("TestDirective").Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Code, " ", markup: false).Accepts(AcceptedCharacters.WhiteSpace),
|
||||
Factory.Span(SpanKind.Code, "PropertyName", markup: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("TestDirective").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", markup: false).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "PropertyName", markup: false)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(descriptor.Tokens.First()))));
|
||||
}
|
||||
|
||||
|
|
@ -1094,7 +1094,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("class").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("class").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -1112,7 +1112,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DirectiveBlock(
|
||||
new DirectiveChunkGenerator(descriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("namespace").Accepts(AcceptedCharacters.None)));
|
||||
Factory.MetaCode("namespace").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(KeywordSet)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Unexpected_Character_At_Start_Of_CodeBlock_CS('"'),
|
||||
|
|
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("helper")
|
||||
.AsImplicitExpression(KeywordSet)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_HelperDirectiveNotAvailable(SyntaxConstants.CSharp.HelperKeyword),
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("{",
|
||||
new StatementBlock(
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsStatement()
|
||||
.With(new AutoCompleteEditHandler(CSharpLanguageCharacteristics.Instance.TokenizeString) { AutoCompleteString = "}" })
|
||||
|
|
@ -70,11 +70,11 @@ 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),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS,
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -100,7 +100,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 + " ")
|
||||
.AsStatement()
|
||||
.AutoCompleteWith(autoCompleteString: null),
|
||||
|
|
@ -108,9 +108,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Code(" {}" + Environment.NewLine).AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unexpected_WhiteSpace_At_Start_Of_CodeBlock_CS,
|
||||
|
|
@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("{" + Environment.NewLine
|
||||
+ " @",
|
||||
new StatementBlock(
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(Environment.NewLine + " ")
|
||||
.AsStatement()
|
||||
.AutoCompleteWith("}"),
|
||||
|
|
@ -132,7 +132,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.EmptyCSharp().AsStatement()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -152,7 +152,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),
|
||||
|
|
@ -165,7 +165,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("(foo bar" + Environment.NewLine
|
||||
+ "baz",
|
||||
new ExpressionBlock(
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code($"foo bar{Environment.NewLine}baz").AsExpression()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -182,7 +182,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ "baz" + Environment.NewLine
|
||||
+ "</html",
|
||||
new ExpressionBlock(
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code($"foo bar{Environment.NewLine}").AsExpression()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -284,7 +284,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("{ var foo = bar; if(foo != null) { bar(); } ",
|
||||
new StatementBlock(
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code(" var foo = bar; if(foo != null) { bar(); } ")
|
||||
.AsStatement()
|
||||
.AutoCompleteWith("}")),
|
||||
|
|
@ -300,9 +300,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("functions { var foo = bar; if(foo != null) { bar(); } ",
|
||||
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(" var foo = bar; if(foo != null) { bar(); } ").AsStatement()),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF("functions", '}', '{'),
|
||||
|
|
@ -438,21 +438,21 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new StatementBlock(
|
||||
Factory.Code("if(foo) ").AsStatement(),
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Bar"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("else if(bar) ").AsStatement(),
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Baz"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("else ").AsStatement(),
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Boz"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement()
|
||||
),
|
||||
new RazorError(expectedMessage, 8, 0, 8, 1),
|
||||
|
|
@ -482,10 +482,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
Factory.MarkupTransition(),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Bar"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("}").AsStatement()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -559,11 +559,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Code($"if({Environment.NewLine}else {{").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Foo"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Code("}").AsStatement().Accepts(AcceptedCharacters.None)
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("}").AsStatement().Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"),
|
||||
|
|
@ -578,7 +578,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ " var p = \"foo bar baz" + Environment.NewLine
|
||||
+ ";" + Environment.NewLine
|
||||
+ "}",
|
||||
BlockKind.Statement, SpanKind.Code,
|
||||
BlockKindInternal.Statement, SpanKindInternal.Code,
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unterminated_String_Literal,
|
||||
new SourceLocation(21 + Environment.NewLine.Length, 1, 12),
|
||||
|
|
@ -588,7 +588,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
[Fact]
|
||||
public void ParseBlockTerminatesNormalStringAtEndOfFile()
|
||||
{
|
||||
SingleSpanBlockTest("if(foo) { var foo = \"blah blah blah blah blah", BlockKind.Statement, SpanKind.Code,
|
||||
SingleSpanBlockTest("if(foo) { var foo = \"blah blah blah blah blah", BlockKindInternal.Statement, SpanKindInternal.Code,
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unterminated_String_Literal,
|
||||
new SourceLocation(20, 0, 20),
|
||||
|
|
@ -607,7 +607,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ "<p>Foo</p>" + Environment.NewLine
|
||||
+ "blah " + Environment.NewLine
|
||||
+ "blah",
|
||||
BlockKind.Statement, SpanKind.Code,
|
||||
BlockKindInternal.Statement, SpanKindInternal.Code,
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unterminated_String_Literal,
|
||||
new SourceLocation(20, 0, 20),
|
||||
|
|
@ -628,15 +628,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new StatementBlock(
|
||||
Factory.Code($"if(foo) {{{Environment.NewLine} var foo = \"foo bar baz{Environment.NewLine} ").AsStatement(),
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Foo is "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("}").AsStatement()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -650,9 +650,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("(Request[\"description\"] ?? @photo.Description)",
|
||||
new ExpressionBlock(
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("Request[\"description\"] ?? @photo.Description").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -661,15 +661,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest(@"{string.Format(<html></html>}",
|
||||
new StatementBlock(
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("string.Format(")
|
||||
.AsStatement()
|
||||
.AutoCompleteWith(autoCompleteString: null),
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<html>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("</html>", AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>", AcceptedCharactersInternal.None),
|
||||
BlockFactory.MarkupTagBlock("</html>", AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
expectedErrors: new[]
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -684,8 +684,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
SingleSpanBlockTest(
|
||||
keyword + " (foo) { var foo = bar; if(foo != null) { bar(); } ",
|
||||
BlockKind.Statement,
|
||||
SpanKind.Code,
|
||||
BlockKindInternal.Statement,
|
||||
SpanKindInternal.Code,
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF(keyword, '}', '{'),
|
||||
SourceLocation.Zero,
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@()",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp().AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp().AsExpression()
|
||||
),
|
||||
new RazorError(
|
||||
|
|
@ -42,9 +42,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(\"\\\"\")",
|
||||
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)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -54,9 +54,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(@\"\"\"\")",
|
||||
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)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -66,9 +66,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
||||
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)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -82,9 +82,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
+ @""")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code($"@\"{Environment.NewLine}Foo{Environment.NewLine}Bar{Environment.NewLine}Baz{Environment.NewLine}\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -94,9 +94,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(\"\\\"hello, world\\\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\"\\\"hello, world\\\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -106,9 +106,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(@\"\"\"hello, world\"\"\")",
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("(").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("@\"\"\"hello, world\"\"\"").AsExpression(),
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(")").Accepts(AcceptedCharactersInternal.None)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -118,9 +118,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(\"\\\"\\\"\")",
|
||||
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)
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -130,9 +130,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("@(@\"\"\"\"\"\")",
|
||||
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)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,24 +33,24 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
};
|
||||
|
||||
// implicitExpression, expectedImplicitExpression, acceptedCharacters, expectedErrors
|
||||
return new TheoryData<string, string, AcceptedCharacters, RazorError[]>
|
||||
return new TheoryData<string, string, AcceptedCharactersInternal, RazorError[]>
|
||||
{
|
||||
{ "val??[", "val", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val??[0", "val", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[", "val?[", AcceptedCharacters.Any, missingEndBracketError(5) },
|
||||
{ "val?(", "val", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[more", "val?[more", AcceptedCharacters.Any, missingEndBracketError(5) },
|
||||
{ "val?[0]", "val?[0]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[<p>", "val?[", AcceptedCharacters.Any, missingEndBracketError(5) },
|
||||
{ "val?[more.<p>", "val?[more.", AcceptedCharacters.Any, missingEndBracketError(5) },
|
||||
{ "val??[more<p>", "val", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[-1]?", "val?[-1]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?[def", "val?[abc]?[def", AcceptedCharacters.Any, missingEndBracketError(11) },
|
||||
{ "val?[abc]?[2]", "val?[abc]?[2]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?.more?[def]", "val?[abc]?.more?[def]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?.more?.abc", "val?[abc]?.more?.abc", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[null ?? true]", "val?[null ?? true]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc?.gef?[-1]]", "val?[abc?.gef?[-1]]", AcceptedCharacters.NonWhiteSpace, noErrors },
|
||||
{ "val??[", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val??[0", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[", "val?[", AcceptedCharactersInternal.Any, missingEndBracketError(5) },
|
||||
{ "val?(", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[more", "val?[more", AcceptedCharactersInternal.Any, missingEndBracketError(5) },
|
||||
{ "val?[0]", "val?[0]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[<p>", "val?[", AcceptedCharactersInternal.Any, missingEndBracketError(5) },
|
||||
{ "val?[more.<p>", "val?[more.", AcceptedCharactersInternal.Any, missingEndBracketError(5) },
|
||||
{ "val??[more<p>", "val", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[-1]?", "val?[-1]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?[def", "val?[abc]?[def", AcceptedCharactersInternal.Any, missingEndBracketError(11) },
|
||||
{ "val?[abc]?[2]", "val?[abc]?[2]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?.more?[def]", "val?[abc]?.more?[def]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc]?.more?.abc", "val?[abc]?.more?.abc", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[null ?? true]", "val?[null ?? true]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
{ "val?[abc?.gef?[-1]]", "val?[abc?.gef?[-1]]", AcceptedCharactersInternal.NonWhiteSpace, noErrors },
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -67,7 +67,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ImplicitExpressionTest(
|
||||
implicitExpresison,
|
||||
expectedImplicitExpression,
|
||||
(AcceptedCharacters)acceptedCharacters,
|
||||
(AcceptedCharactersInternal)acceptedCharacters,
|
||||
(RazorError[])expectedErrors);
|
||||
}
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Code(" }").AsStatement()));
|
||||
}
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(KeywordSet)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Unexpected_Character_At_Start_Of_CodeBlock_CS("/"),
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -149,7 +149,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp()
|
||||
.AsImplicitExpression(KeywordSet)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_Unexpected_EndOfFile_At_Start_Of_CodeBlock,
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -252,7 +252,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ImplicitExpressionTest(
|
||||
"foo(()", "foo(()",
|
||||
acceptedCharacters: AcceptedCharacters.Any,
|
||||
acceptedCharacters: AcceptedCharactersInternal.Any,
|
||||
errors: new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_CloseBracket_Before_EOF("(", ")"),
|
||||
new SourceLocation(4, 0, 4),
|
||||
|
|
@ -290,7 +290,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code(expr)
|
||||
.AsImplicitExpression(KeywordSet)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("while(true) { foo(); }")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("while(true) { for(int i = 0; i < 10; i++) { foo(); } }")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("while(true) { { { { foo(); } } } }")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -52,10 +52,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: true)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Code(" }")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -69,14 +69,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("(")
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("foo")
|
||||
.AsExpression(),
|
||||
Factory.MetaCode(")")
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code(" }")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -90,15 +90,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Hello"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
Factory.Code("}")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)));
|
||||
.Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(
|
||||
SpanKind.Comment,
|
||||
SpanKindInternal.Comment,
|
||||
new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any))),
|
||||
.Accepts(AcceptedCharactersInternal.Any))),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_RazorComment_Not_Terminated,
|
||||
SourceLocation.Zero,
|
||||
|
|
@ -39,17 +39,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -66,17 +66,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
|
||||
new CommentBlock(
|
||||
Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("*", CSharpSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new CSharpSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new CSharpSymbol(
|
||||
string.Empty,
|
||||
CSharpSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaCode("*", CSharpSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code(Environment.NewLine)
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords))),
|
||||
new RazorError(
|
||||
|
|
@ -97,13 +97,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords),
|
||||
new CommentBlock(
|
||||
Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("*", CSharpSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new CSharpSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new CSharpSymbol(
|
||||
string.Empty,
|
||||
CSharpSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any)))),
|
||||
.Accepts(AcceptedCharactersInternal.Any)))),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_RazorComment_Not_Terminated,
|
||||
new SourceLocation(5, 0, 5),
|
||||
|
|
@ -125,28 +125,28 @@ 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("}"),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text").Accepts(AcceptedCharacters.Any)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None),
|
||||
Factory.MarkupTransition("<text").Accepts(AcceptedCharactersInternal.Any)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("}")))),
|
||||
new RazorError(
|
||||
|
|
@ -171,17 +171,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.EmptyCSharp()
|
||||
.AsStatement()
|
||||
.AutoCompleteWith("}"),
|
||||
new CommentBlock(
|
||||
Factory.CodeTransition(CSharpSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaCode("*", CSharpSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any)))),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new CSharpSymbol(string.Empty, CSharpSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharactersInternal.Any)))),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_RazorComment_Not_Terminated,
|
||||
new SourceLocation(2, 0, 2),
|
||||
|
|
@ -206,17 +206,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup(Environment.NewLine),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>"))
|
||||
|
|
@ -238,31 +238,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" " + Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>"))
|
||||
|
|
@ -282,32 +282,32 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup(Environment.NewLine),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml(),
|
||||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
string.Empty,
|
||||
HtmlSymbolType.Unknown))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>"))
|
||||
|
|
@ -327,31 +327,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup(Environment.NewLine),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
" hello ",
|
||||
HtmlSymbolType.RazorComment))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" content "),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
" world ",
|
||||
HtmlSymbolType.RazorComment))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>"))
|
||||
|
|
@ -374,31 +374,31 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup(Environment.NewLine + Environment.NewLine),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
" content ",
|
||||
HtmlSymbolType.RazorComment))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
new CommentBlock(
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKind.Comment, new HtmlSymbol(
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Comment, new HtmlSymbol(
|
||||
Environment.NewLine + "content" + Environment.NewLine,
|
||||
HtmlSymbolType.RazorComment))
|
||||
.Accepts(AcceptedCharacters.Any),
|
||||
.Accepts(AcceptedCharactersInternal.Any),
|
||||
Factory.MetaMarkup("*", HtmlSymbolType.RazorCommentStar)
|
||||
.Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.MarkupTransition(HtmlSymbolType.RazorCommentTransition)
|
||||
.Accepts(AcceptedCharacters.None)),
|
||||
.Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).With(SpanChunkGenerator.Null),
|
||||
Factory.Markup(Environment.NewLine),
|
||||
new MarkupTagBlock(
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest(word,
|
||||
new DirectiveBlock(
|
||||
Factory.MetaCode(word).Accepts(AcceptedCharacters.None)
|
||||
Factory.MetaCode(word).Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_ReservedWord(word),
|
||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new ExpressionBlock(
|
||||
Factory.Code(word)
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new DirectiveBlock(new DirectiveChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor),
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatDirectiveExpectsIdentifier(CSharpCodeParser.SectionDirectiveDescriptor.Name),
|
||||
|
|
@ -33,12 +33,12 @@ 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, " " + Environment.NewLine + " ", markup: false).Accepts(AcceptedCharacters.AllWhiteSpace)),
|
||||
Factory.Span(SpanKindInternal.Markup, " " + Environment.NewLine + " ", markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace)),
|
||||
Factory.EmptyHtml()),
|
||||
new RazorError(
|
||||
LegacyResources.FormatUnexpectedEOFAfterDirective(CSharpCodeParser.SectionDirectiveDescriptor.Name, "{"),
|
||||
|
|
@ -54,8 +54,8 @@ 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.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace)),
|
||||
Factory.Markup(Environment.NewLine + " ")),
|
||||
new RazorError(
|
||||
LegacyResources.FormatDirectiveExpectsIdentifier(CSharpCodeParser.SectionDirectiveDescriptor.Name),
|
||||
|
|
@ -73,7 +73,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("Section")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" foo")));
|
||||
}
|
||||
|
||||
|
|
@ -85,8 +85,8 @@ 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.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace)),
|
||||
Factory.Markup("9 { "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>")),
|
||||
|
|
@ -108,10 +108,10 @@ 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.Markup("-bar { "),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -134,24 +134,24 @@ 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 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, "bar", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "bar", 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(
|
||||
|
|
@ -160,9 +160,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Sections_Cannot_Be_Nested(LegacyResources.SectionExample_CS),
|
||||
|
|
@ -178,13 +178,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("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.EmptyHtml()))),
|
||||
new RazorError(
|
||||
|
|
@ -205,13 +205,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("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(postStartBrace)))),
|
||||
new RazorError(
|
||||
|
|
@ -228,13 +228,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("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -263,13 +263,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, "Test", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
Factory.MetaCode("section").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Span(SpanKindInternal.Code, " ", CSharpSymbolType.WhiteSpace).Accepts(AcceptedCharactersInternal.WhiteSpace),
|
||||
Factory.Span(SpanKindInternal.Code, "Test", CSharpSymbolType.Identifier)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
.With(new DirectiveTokenChunkGenerator(CSharpCodeParser.SectionDirectiveDescriptor.Tokens.First())),
|
||||
Factory.Span(SpanKind.Markup, Environment.NewLine, CSharpSymbolType.NewLine).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, Environment.NewLine, CSharpSymbolType.NewLine).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith("}", atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(newLine),
|
||||
new StatementBlock(
|
||||
|
|
@ -278,10 +278,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Code($"if(true){newLine}{spaces}{{{newLine}").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup($"{spaces}{spaces}"),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Hello World"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(newLine).Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(newLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code($"{spaces}}}").AsStatement())))),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_Expected_EndOfBlock_Before_EOF("section", "}", "{"),
|
||||
|
|
@ -297,12 +297,12 @@ 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, " " + Environment.NewLine, markup: false).Accepts(AcceptedCharacters.AllWhiteSpace)),
|
||||
Factory.Span(SpanKindInternal.Markup, " " + Environment.NewLine, markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace)),
|
||||
Factory.EmptyHtml()),
|
||||
new RazorError(
|
||||
LegacyResources.FormatUnexpectedEOFAfterDirective(CSharpCodeParser.SectionDirectiveDescriptor.Name, "{"),
|
||||
|
|
@ -326,13 +326,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, " " + string.Format("{0}{0}{0}{0}{0}{0}", Environment.NewLine), markup: false).Accepts(AcceptedCharacters.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.Span(SpanKindInternal.Markup, " " + string.Format("{0}{0}{0}{0}{0}{0}", Environment.NewLine), markup: false).Accepts(AcceptedCharactersInternal.AllWhiteSpace),
|
||||
Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(Environment.NewLine),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -341,7 +341,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")),
|
||||
Factory.Markup(Environment.NewLine)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -353,13 +353,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(
|
||||
|
|
@ -368,7 +368,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -380,12 +380,12 @@ 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.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").AutoCompleteWith(null, atEndOfSpan: true).Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
|
|
@ -394,7 +394,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -406,13 +406,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(
|
||||
|
|
@ -421,7 +421,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.Markup("</script>")),
|
||||
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("<a" + Environment.NewLine)),
|
||||
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(" <? xml bleh ?>")),
|
||||
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("<span"),
|
||||
|
|
@ -647,11 +647,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 17, 0, 17), new LocationTagged<string>("'", 25, 0, 25)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 23, 0, 23), new LocationTagged<string>("@", 23, 0, 23))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 23, 0, 23), new LocationTagged<string>("@", 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("<span"),
|
||||
|
|
@ -679,13 +679,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.CodeTransition(),
|
||||
factory.Code("DateTime.Now")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace))),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 36, 0, 36), new LocationTagged<string>("@", 37, 0, 37))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 36, 0, 36), new LocationTagged<string>("@", 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())
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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<Biz<Qux>, 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<Biz<Qux>, 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<Biz<Qux>, 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<dynamic> photos = gallery.Photo.ToList();" + Environment.NewLine
|
||||
+ "}",
|
||||
new StatementBlock(
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code($"{Environment.NewLine} List<dynamic> 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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("A real tag!"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code("}").AsStatement()
|
||||
));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<string, DirectiveBlock>
|
||||
|
|
@ -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<string, string>")
|
||||
.AsNamespaceImport(" StringDictionary = System.Collections.Generic.Dictionary<string, string>")
|
||||
.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)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,16 +16,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.MarkupTransition(),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").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("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.MarkupTransition(),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").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("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None))
|
||||
)
|
||||
),
|
||||
Factory.Code(")")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)
|
||||
),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").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<string>(" foo='", 46, 0, 46), new LocationTagged<string>("'", 54, 0, 54)),
|
||||
Factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 52, 0, 52), new LocationTagged<string>("@", 52, 0, 52))).Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 52, 0, 52), new LocationTagged<string>("@", 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("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").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);
|
||||
|
|
|
|||
|
|
@ -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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").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("<p>Foo</p> " + 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
|
|||
+ " <p>Foo</p> " + 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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").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
|
|||
+ " @<p>Foo</p> " + 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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</p>").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
|
|||
+ " @:<p>Foo</p> " + 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("<p>Foo</p> " + 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("<br/>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("<br/>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<a>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</a>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</a>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").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("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Bar"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
Factory.Code("} else if(bar) {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
Factory.Code("} else {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Boz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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) { <p>Bar</p> } else if(bar) { <p>Baz</p> } else { <p>Boz</p> } }",
|
||||
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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Bar"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
Factory.Code("} else if(bar) {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
Factory.Code("} else {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Boz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Bar"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Boz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Biz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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
|
|||
+ " <p>Biz</p>" + 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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Bar"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)
|
||||
),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Boz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Biz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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++) { <p>Foo</p> } }",
|
||||
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("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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("<text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(";").Accepts(AcceptedCharacters.None),
|
||||
Factory.MarkupTransition("<text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(";").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.MarkupTransition("</text>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.Code(" }").AsStatement()));
|
||||
}
|
||||
|
||||
|
|
@ -625,18 +625,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("{ if (i > 0) { <text>;</text> } }",
|
||||
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("<text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(";").Accepts(AcceptedCharacters.None),
|
||||
Factory.MarkupTransition("<text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(";").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.MarkupTransition("</text>").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("<text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("The number is ").Accepts(AcceptedCharacters.None),
|
||||
Factory.MarkupTransition("<text>").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("</text>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.MarkupTransition("</text>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.Code($"{Environment.NewLine} }}{Environment.NewLine} if(!false) {{{Environment.NewLine}").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("A real tag!"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)
|
||||
Factory.Markup("</p>").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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
prefix: new LocationTagged<string>(string.Empty, valueLocation2),
|
||||
value: new LocationTagged<string>("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>(string.Empty, valueLocation2),
|
||||
value: new LocationTagged<string>("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>(string.Empty, valueLocation, 0, valueLocation),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 9, 0, 9), value: new LocationTagged<string>("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>(string.Empty, 16, 2, 1), value: new LocationTagged<string>("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<string>(" ", 12, 0, 12), value: new LocationTagged<string>("Bar", 13, 0, 13))),
|
||||
Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 16, 0, 16), value: new LocationTagged<string>("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<string>(" ", 12, 0, 12), value: new LocationTagged<string>("Bar", 13, 0, 13))),
|
||||
Factory.Markup(" Baz").With(new LiteralAttributeChunkGenerator(prefix: new LocationTagged<string>(" ", 16, 0, 16), value: new LocationTagged<string>("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>(string.Empty, 10, 1, 6),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 21, 2, 6),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 12, 1, 6),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 8, 0, 8), value: new LocationTagged<string>("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<string>(" ", 13, 0, 13), new LocationTagged<string>("bar", 14, 0, 14))),
|
||||
new MarkupBlock(new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(" ", 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<string>(" ", 13, 0, 13),
|
||||
new LocationTagged<string>("~/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<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 13, 0, 13)),
|
||||
Factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 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("</span>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</span>").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("</span>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</span>").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("</span>"))));
|
||||
|
|
|
|||
|
|
@ -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("<!-- Hello, I'm a comment that shouldn't break razor --->").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<!-- Hello, I'm a comment that shouldn't break razor --->").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("</html>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</html>").Accepts(AcceptedCharactersInternal.None))
|
||||
),
|
||||
Factory.EmptyCSharp().AsStatement()
|
||||
)
|
||||
|
|
@ -114,14 +114,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<li><p>Foo</P></lI>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<li>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</P>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</P>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</lI>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</lI>").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.MarkupTransition(),
|
||||
Factory.MetaMarkup(":", HtmlSymbolType.Colon),
|
||||
Factory.Markup("<li>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("<a><b></b></a><c></c>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<a>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<a>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<b>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<b>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</b>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</b>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</a>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</a>").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -172,17 +172,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<baz><boz><biz></biz></boz></baz>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<baz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<baz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<boz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<boz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<biz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<biz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</biz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</biz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</boz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</boz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</baz>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</baz>").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -192,13 +192,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar><baz></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<baz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<baz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo />",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo />").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("<foo />").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -218,11 +218,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar /></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar />").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<bar />").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</foo>").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>(string.Empty, 10, 0, 10), new LocationTagged<string>("baz", 10, 0, 10))),
|
||||
Factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<biz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<biz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<boz"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("zoop", new LocationTagged<string>(" zoop=", 24, 0, 24), new LocationTagged<string>(string.Empty, 34, 0, 34)),
|
||||
Factory.Markup(" zoop=").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("zork").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 30, 0, 30), new LocationTagged<string>("zork", 30, 0, 30)))),
|
||||
Factory.Markup("/>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("/>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</biz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</biz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -258,16 +258,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar baz=\">\" /></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("baz", new LocationTagged<string>(" baz=\"", 9, 0, 9), new LocationTagged<string>("\"", 16, 0, 16)),
|
||||
Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 15, 0, 15), new LocationTagged<string>(">", 15, 0, 15))),
|
||||
Factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -276,16 +276,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar baz=\'>\' /></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("baz", new LocationTagged<string>(" baz='", 9, 0, 9), new LocationTagged<string>("'", 16, 0, 16)),
|
||||
Factory.Markup(" baz='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup(">").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 15, 0, 15), new LocationTagged<string>(">", 15, 0, 15))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" />").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -294,18 +294,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar baz=\"/\"></bar></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("baz", new LocationTagged<string>(" baz=\"", 9, 0, 9), new LocationTagged<string>("\"", 16, 0, 16)),
|
||||
Factory.Markup(" baz=\"").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 15, 0, 15), new LocationTagged<string>("/", 15, 0, 15))),
|
||||
Factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -314,18 +314,18 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><bar baz=\'/\'></bar></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar"),
|
||||
new MarkupBlock(new AttributeBlockChunkGenerator("baz", new LocationTagged<string>(" baz='", 9, 0, 9), new LocationTagged<string>("'", 16, 0, 16)),
|
||||
Factory.Markup(" baz='").With(SpanChunkGenerator.Null),
|
||||
Factory.Markup("/").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 15, 0, 15), new LocationTagged<string>("/", 15, 0, 15))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -334,7 +334,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Markup("<foo>").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("<!-- foo -->", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None);
|
||||
SingleSpanBlockTest("<!-- foo -->", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -353,12 +353,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo>bar<!-- zoop -->baz</foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("bar"),
|
||||
Factory.Markup("<!-- zoop -->").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<!-- zoop -->").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup("baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
public static TheoryData HtmlCommentSupportsMultipleDashesData
|
||||
|
|
@ -373,37 +373,37 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"<div><!--- Hello World ---></div>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<div>").Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("<!--- Hello World --->").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("<div>").Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("<!--- Hello World --->").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</div>").Accepts(AcceptedCharacters.None)))
|
||||
factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None)))
|
||||
},
|
||||
{
|
||||
"<div><!---- Hello World ----></div>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<div>").Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("<!---- Hello World ---->").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("<div>").Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("<!---- Hello World ---->").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</div>").Accepts(AcceptedCharacters.None)))
|
||||
factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None)))
|
||||
},
|
||||
{
|
||||
"<div><!----- Hello World -----></div>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<div>").Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("<!----- Hello World ----->").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("<div>").Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("<!----- Hello World ----->").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</div>").Accepts(AcceptedCharacters.None)))
|
||||
factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None)))
|
||||
},
|
||||
{
|
||||
"<div><!----- Hello < --- > World </div> -----></div>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<div>").Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("<!----- Hello < --- > World </div> ----->").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("<div>").Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("<!----- Hello < --- > World </div> ----->").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</div>").Accepts(AcceptedCharacters.None)))
|
||||
factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None)))
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
@ -421,19 +421,19 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
[Fact]
|
||||
public void ParseBlockProperlyBalancesCommentStartAndEndTags()
|
||||
{
|
||||
SingleSpanBlockTest("<!--<foo></bar>-->", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None);
|
||||
SingleSpanBlockTest("<!--<foo></bar>-->", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockTerminatesAtEOFWhenParsingComment()
|
||||
{
|
||||
SingleSpanBlockTest("<!--<foo>", "<!--<foo>", BlockKind.Markup, SpanKind.Markup);
|
||||
SingleSpanBlockTest("<!--<foo>", "<!--<foo>", BlockKindInternal.Markup, SpanKindInternal.Markup);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockOnlyTerminatesCommentOnFullEndSequence()
|
||||
{
|
||||
SingleSpanBlockTest("<!--<foo>--</bar>-->", BlockKind.Markup, SpanKind.Markup, acceptedCharacters: AcceptedCharacters.None);
|
||||
SingleSpanBlockTest("<!--<foo>--</bar>-->", BlockKindInternal.Markup, SpanKindInternal.Markup, acceptedCharacters: AcceptedCharactersInternal.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -442,11 +442,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><!--<foo></bar-->--></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<!--<foo></bar-->").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<!--<foo></bar-->").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup("-->"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -455,9 +455,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo></!-- bar --></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</!-- bar -->").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Markup("</!-- bar -->").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("<foo><!DOCTYPE foo bar baz></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<!DOCTYPE foo bar baz>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<!DOCTYPE foo bar baz>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -483,11 +483,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><!DOCTYPE foo bar> baz></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<!DOCTYPE foo bar>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<!DOCTYPE foo bar>").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" baz>"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -496,10 +496,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><?xml foo bar baz?></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<?xml foo bar baz?>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<?xml foo bar baz?>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -508,11 +508,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><?xml foo bar baz?> baz</foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<?xml foo bar baz?>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<?xml foo bar baz?>").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -521,10 +521,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><?xml foo bar> baz?></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<?xml foo bar> baz?>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<?xml foo bar> baz?>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -533,10 +533,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest(@"<script>if(foo<bar) { alert(""baz"");)</script>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(@"if(foo<bar) { alert(""baz"");)"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -545,10 +545,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest(@"<script>if(foo < bar) { alert(""baz"");)</script>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(@"if(foo < bar) { alert(""baz"");)"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -568,9 +568,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
Factory.Markup("Foo Bar ").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("Foo Bar ").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))));
|
||||
|
|
@ -584,13 +584,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo Bar "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" Baz"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))));
|
||||
}
|
||||
|
|
@ -601,15 +601,15 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><text><bar></bar></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<text>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -632,14 +632,14 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<div>Foo @if(true) {} Bar</div>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<div>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<div>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("Foo "),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true) {}").AsStatement()),
|
||||
Factory.Markup(" Bar"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</div>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -648,16 +648,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest(@"<script>foo<bar baz='@boz'></script>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<script>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("foo<bar baz='"),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("boz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'>"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</script>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,16 +25,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Code("if(false) {").AsStatement(),
|
||||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
BlockFactory.MarkupTagBlock("<div>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<div>", 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("</div>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("</div>", 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("<html>"),
|
||||
BlockFactory.MarkupTagBlock("</html>"),
|
||||
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 Baz<!--Foo-->Bar<!--F> Qux", BlockKind.Markup, SpanKind.Markup);
|
||||
SingleSpanDocumentTest("Foo Baz<!--Foo-->Bar<!--F> Qux", BlockKindInternal.Markup, SpanKindInternal.Markup);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -263,7 +263,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("boz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'>"),
|
||||
BlockFactory.MarkupTagBlock("</script>")));
|
||||
}
|
||||
|
|
@ -276,9 +276,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
|
@ -291,9 +291,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \t\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
|
@ -306,15 +306,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("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))),
|
||||
Factory.Code("\r\n\r\n").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
||||
|
|
@ -326,20 +326,20 @@ 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("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>")),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input/>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<input/>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
||||
|
|
@ -351,22 +351,22 @@ 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("<text>")),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("Blah").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>")),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("\r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
Factory.MarkupTransition(),
|
||||
Factory.MetaMarkup(":", HtmlSymbolType.Colon),
|
||||
Factory.Markup(" Bleh\r\n")
|
||||
.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)),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
||||
|
|
@ -378,9 +378,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>"),
|
||||
Factory.Markup("\r\n")));
|
||||
|
|
@ -394,9 +394,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \t"),
|
||||
BlockFactory.MarkupTagBlock("<html>"),
|
||||
Factory.Markup("\r\n")));
|
||||
|
|
@ -410,13 +410,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.EmptyHtml(),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Code("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("if(true){\r\n}").AsStatement()),
|
||||
Factory.Code(" \r\n").AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("\r\n").With(SpanChunkGenerator.Null),
|
||||
BlockFactory.MarkupTagBlock("<html>")));
|
||||
}
|
||||
|
|
@ -429,7 +429,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("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
|
|
@ -437,10 +437,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -452,7 +452,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("\r\n").AsStatement().AutoCompleteWith(null, false),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
|
|
@ -460,10 +460,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Code(" \r\n").AsStatement(),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" \r\n").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<input>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" \r\n").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<html>"))));
|
||||
}
|
||||
|
|
@ -476,13 +476,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(" "),
|
||||
BlockFactory.MarkupTagBlock("<script>"),
|
||||
|
|
@ -491,11 +491,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.CodeTransition(),
|
||||
Factory.Code("boz")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup("'>"),
|
||||
BlockFactory.MarkupTagBlock("</script>"),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
|
||||
|
|
@ -515,7 +515,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<string, Block>
|
||||
{
|
||||
|
|
@ -529,8 +529,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 13, 0, 13)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -545,8 +545,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -560,8 +560,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 16, 0, 16)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("def").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), new LocationTagged<string>("def", 13, 0, 13))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
|
|
@ -577,8 +577,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 14, 0, 14), new LocationTagged<string>("@", 15, 0, 15))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 14, 0, 14), new LocationTagged<string>("@", 15, 0, 15))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup(" def").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 17, 0, 17), new LocationTagged<string>("def", 18, 0, 18))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
|
|
@ -593,8 +593,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 26, 0, 26)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
|
|
@ -614,8 +614,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
datetimeBlock),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 24, 0, 24), new LocationTagged<string>("@", 25, 0, 25))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 24, 0, 24), new LocationTagged<string>("@", 25, 0, 25))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -631,12 +631,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Code("2+3").AsExpression(),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None))),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 17, 0, 17), new LocationTagged<string>("@", 17, 0, 17))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 17, 0, 17), new LocationTagged<string>("@", 17, 0, 17))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 19, 0, 19), 19, 0, 19),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
|
|
@ -653,16 +653,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>("'", 19, 0, 19)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 13, 0, 13), 13, 0, 13),
|
||||
factory.EmptyHtml().With(SpanChunkGenerator.Null),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None),
|
||||
factory.MetaCode("(").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Code("2+3").AsExpression(),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None))),
|
||||
factory.MetaCode(")").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -678,8 +678,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
datetimeBlock),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 24, 0, 24), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 24, 0, 24), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -694,8 +694,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc@def.com").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc@def.com", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 22, 0, 22), new LocationTagged<string>("@", 23, 0, 23))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 22, 0, 22), new LocationTagged<string>("@", 23, 0, 23))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -709,12 +709,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
factory.Markup("abc").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("abc", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 14, 0, 14), new LocationTagged<string>("@", 14, 0, 14))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("def.com").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 16, 0, 16), new LocationTagged<string>("def.com", 16, 0, 16))),
|
||||
new MarkupBlock(
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 23, 0, 23), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup(" @").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(" ", 23, 0, 23), new LocationTagged<string>("@", 24, 0, 24))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
},
|
||||
|
|
@ -728,8 +728,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new AttributeBlockChunkGenerator("foo", new LocationTagged<string>(" foo='", 5, 0, 5), new LocationTagged<string>(string.Empty, 13, 0, 13)),
|
||||
factory.Markup(" foo='").With(SpanChunkGenerator.Null),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)))),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>("@", 11, 0, 11))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)))),
|
||||
factory.EmptyHtml())
|
||||
},
|
||||
{
|
||||
|
|
@ -743,8 +743,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup(" foo=\"").With(SpanChunkGenerator.Null),
|
||||
factory.Markup(@"/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), new LocationTagged<string>(@"/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+", 11, 0, 11))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 43, 0, 43), new LocationTagged<string>("@", 43, 0, 43))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 43, 0, 43), new LocationTagged<string>("@", 43, 0, 43))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup(@"[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 45, 0, 45), new LocationTagged<string>(@"[a-z0-9]([a-z0-9-]*[a-z0-9])?\.([a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i", 45, 0, 45))),
|
||||
factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(" />")))
|
||||
|
|
@ -777,13 +777,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(string.Empty, 11, 0, 11), 11, 0, 11),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace))),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
new MarkupBlock(
|
||||
new DynamicAttributeBlockChunkGenerator(new LocationTagged<string>(" ", 12, 0, 12), 12, 0, 12),
|
||||
Factory.Markup(" ").With(SpanChunkGenerator.Null),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition().Accepts(AcceptedCharacters.None).With(SpanChunkGenerator.Null),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharacters.NonWhiteSpace))),
|
||||
Factory.CodeTransition().Accepts(AcceptedCharactersInternal.None).With(SpanChunkGenerator.Null),
|
||||
Factory.EmptyCSharp().AsImplicitExpression(CSharpCodeParser.DefaultKeywords).Accepts(AcceptedCharactersInternal.NonWhiteSpace))),
|
||||
Factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
Factory.Markup(" />")));
|
||||
var expectedErrors = new RazorError[]
|
||||
|
|
|
|||
|
|
@ -13,10 +13,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<1-foo+bar>foo</1-foo+bar>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<1-foo+bar>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<1-foo+bar>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("foo"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</1-foo+bar>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</1-foo+bar>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<text foo bar></text>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text foo bar>").Accepts(AcceptedCharacters.Any)),
|
||||
Factory.MarkupTransition("<text foo bar>").Accepts(AcceptedCharactersInternal.Any)),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))),
|
||||
new RazorError(
|
||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text foo bar>").Accepts(AcceptedCharacters.Any))),
|
||||
Factory.MarkupTransition("</text foo bar>").Accepts(AcceptedCharactersInternal.Any))),
|
||||
new RazorError(
|
||||
LegacyResources.ParseError_TextTagCannotContainAttributes,
|
||||
new SourceLocation(8, 0, 8),
|
||||
|
|
@ -66,8 +66,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("</foo> bar baz",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_UnexpectedEndTag("foo"),
|
||||
new SourceLocation(2, 0, 2),
|
||||
|
|
@ -80,11 +80,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<p><foo></bar>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Markup("</bar>").Accepts(AcceptedCharactersInternal.None))),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_MissingEndTag("p"),
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo>blah blah blah blah blah",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("blah blah blah blah blah")),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_MissingEndTag("foo"),
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
internal class HtmlParserTestUtils
|
||||
{
|
||||
public static void RunSingleAtEscapeTest(Action<string, Block> testMethod, AcceptedCharacters lastSpanAcceptedCharacters = AcceptedCharacters.None)
|
||||
public static void RunSingleAtEscapeTest(Action<string, Block> testMethod, AcceptedCharactersInternal lastSpanAcceptedCharacters = AcceptedCharactersInternal.None)
|
||||
{
|
||||
var factory = new SpanFactory();
|
||||
testMethod("<foo>@@bar</foo>",
|
||||
|
|
@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.Markup("</foo>").Accepts(lastSpanAcceptedCharacters))));
|
||||
}
|
||||
|
||||
public static void RunMultiAtEscapeTest(Action<string, Block> testMethod, AcceptedCharacters lastSpanAcceptedCharacters = AcceptedCharacters.None)
|
||||
public static void RunMultiAtEscapeTest(Action<string, Block> testMethod, AcceptedCharactersInternal lastSpanAcceptedCharacters = AcceptedCharactersInternal.None)
|
||||
{
|
||||
var factory = new SpanFactory();
|
||||
testMethod("<foo>@@@@@bar</foo>",
|
||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
factory.CodeTransition(),
|
||||
factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</foo>").Accepts(lastSpanAcceptedCharacters))));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<p></> Bar",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("</>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
BlockFactory.MarkupTagBlock("</>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)),
|
||||
new RazorError(
|
||||
LegacyResources.FormatParseError_MissingEndTag("p"),
|
||||
new SourceLocation(1, 0, 1),
|
||||
|
|
@ -52,9 +52,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
// the contents of an HTML tag.
|
||||
ParseBlockTest("<></> Bar",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("</>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
BlockFactory.MarkupTagBlock("<>", AcceptedCharactersInternal.None),
|
||||
BlockFactory.MarkupTagBlock("</>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -62,8 +62,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<!--Foo--> Bar",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("<!--Foo-->").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
Factory.Markup("<!--Foo-->").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -71,8 +71,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<!DOCTYPE html> foo",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("<!DOCTYPE html>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
Factory.Markup("<!DOCTYPE html>").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -80,8 +80,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<?xml version=\"1.0\" ?> foo",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("<?xml version=\"1.0\" ?>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
Factory.Markup("<?xml version=\"1.0\" ?>").Accepts(AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -89,10 +89,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<p>Foo</p> Bar",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup("Foo"),
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
BlockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -102,7 +102,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("<text>")),
|
||||
Factory.Markup("Foo").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup("Foo").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.MarkupTransition("</text>"))));
|
||||
}
|
||||
|
|
@ -112,8 +112,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<![CDATA[Foo]]> Bar",
|
||||
new MarkupBlock(
|
||||
Factory.Markup("<![CDATA[Foo]]>").Accepts(AcceptedCharacters.None),
|
||||
Factory.Markup(" ").Accepts(AcceptedCharacters.None)));
|
||||
Factory.Markup("<![CDATA[Foo]]>").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 + "><other>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 + "> </" + tagName + ">foo",
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None),
|
||||
Factory.Markup(" "),
|
||||
BlockFactory.MarkupTagBlock("</" + tagName + ">", AcceptedCharacters.None)));
|
||||
BlockFactory.MarkupTagBlock("</" + tagName + ">", AcceptedCharactersInternal.None)));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
|
|
@ -201,7 +201,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
{
|
||||
ParseBlockTest("<" + tagName + "></" + tagName,
|
||||
new MarkupBlock(
|
||||
BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharacters.None),
|
||||
BlockFactory.MarkupTagBlock("<" + tagName + ">", AcceptedCharactersInternal.None),
|
||||
BlockFactory.MarkupTagBlock("</" + tagName)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,13 +15,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<p>foo#@i</p>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<p>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<p>").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("</p>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</p>").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("<foo>@bar<baz>@boz</baz></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").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("<baz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<baz>").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("</baz>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</baz>").Accepts(AcceptedCharactersInternal.None)),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").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("<foo><!-- @foo --></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<!-- "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("foo")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
Factory.Markup(" -->").Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" -->").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -128,16 +128,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><!DOCTYPE foo @bar baz></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<!DOCTYPE foo "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
Factory.Markup(" baz>").Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" baz>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -146,16 +146,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><![CDATA[ foo @bar baz]]></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<![CDATA[ foo "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
Factory.Markup(" baz]]>").Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" baz]]>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -164,16 +164,16 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo><?xml foo @bar baz?></foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("<?xml foo "),
|
||||
new ExpressionBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.Code("bar")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords)
|
||||
.Accepts(AcceptedCharacters.NonWhiteSpace)),
|
||||
Factory.Markup(" baz?>").Accepts(AcceptedCharacters.None),
|
||||
.Accepts(AcceptedCharactersInternal.NonWhiteSpace)),
|
||||
Factory.Markup(" baz?>").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -182,10 +182,10 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
ParseBlockTest("<foo>anurse@microsoft.com</foo>",
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<foo>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup("anurse@microsoft.com"),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</foo>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</foo>").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>(string.Empty, 9, 0, 9), new LocationTagged<string>("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("</a>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</a>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<ul>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<ul>").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("<li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<li>").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("</li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</li>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</ul>").Accepts(AcceptedCharacters.None))));
|
||||
Factory.Markup("</ul>").Accepts(AcceptedCharactersInternal.None))));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -262,17 +262,17 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("<li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<li>").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("</li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</li>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</ul>"))));
|
||||
|
|
@ -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("<li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<li>").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("</li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharacters.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</li>").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine).Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Code(" }" + Environment.NewLine).AsStatement().Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(" "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</ul>")),
|
||||
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("<ul>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<ul>").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("<li>").Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("<li>").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("</li>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Code(Environment.NewLine + " }").AsStatement().Accepts(AcceptedCharacters.None)),
|
||||
Factory.Markup("</li>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.Code(Environment.NewLine + " }").AsStatement().Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.Markup(Environment.NewLine + " "),
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</ul>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Markup("</ul>").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("</foo>")),
|
||||
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("</foo>")),
|
||||
Factory.Markup(" ")),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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")));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<string, Block>
|
||||
{
|
||||
|
|
@ -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; <text>Foo</text> foo++; } while (foo<bar>);";
|
||||
var doWhile = new Func<int, SyntaxTreeNode>(index =>
|
||||
new MarkupBlock(
|
||||
|
|
@ -1455,13 +1455,13 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
factory.MarkupTransition("<text>")),
|
||||
factory.Markup("Foo").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("Foo").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.MarkupTransition("</text>"))),
|
||||
factory
|
||||
.Code(" foo++; } while (foo<bar>);")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None)))));
|
||||
.Accepts(AcceptedCharactersInternal.None)))));
|
||||
|
||||
var currentFormattedString = "<p class=\"{0}\" style='{0}'></p>";
|
||||
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; <p>Foo</p> foo++; } while (foo<bar>);";
|
||||
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<bar>);")
|
||||
.AsStatement()
|
||||
.Accepts(AcceptedCharacters.None));
|
||||
.Accepts(AcceptedCharactersInternal.None));
|
||||
|
||||
var currentFormattedString = "<p>{0}</p>";
|
||||
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<string, MarkupBlock>
|
||||
{
|
||||
|
|
@ -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<string, MarkupBlock>
|
||||
|
|
@ -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<string>(" ", 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<MarkupBlock> updateDynamicChunkGenerators = (block) =>
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
var rootBlock = Assert.IsType<Block>(document);
|
||||
var child = Assert.Single(rootBlock.Children);
|
||||
var tagBlock = Assert.IsType<Block>(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<string, MarkupBlock>
|
||||
|
|
@ -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<string, MarkupBlock>
|
||||
|
|
@ -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>(string.Empty, 16, 0, 16),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 16, 0, 16),
|
||||
value: new LocationTagged<string>("btn", 16, 0, 16))),
|
||||
factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
|
|
@ -2351,9 +2351,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
prefix: new LocationTagged<string>(string.Empty, 16, 0, 16),
|
||||
value: new LocationTagged<string>("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("</", "text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
|
|
@ -2389,8 +2389,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 34, 0, 34),
|
||||
value: new LocationTagged<string>("btn", 34, 0, 34)))),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", 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<string>(" ", 34, 0, 34),
|
||||
value: new LocationTagged<string>("btn2", 35, 0, 35))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", 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
|
|||
"@{</!text>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None))),
|
||||
new []
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -2505,25 +2505,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@{<!text></!text>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
"@{<!text>words and spaces</!text>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None),
|
||||
factory.Markup("words and spaces"),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
"@{<!text></text>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None),
|
||||
blockFactory.MarkupTagBlock("</text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None),
|
||||
blockFactory.MarkupTagBlock("</text>", AcceptedCharactersInternal.None))),
|
||||
new []
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -2540,9 +2540,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
() => new MarkupBlock(
|
||||
new MarkupTagBlock(factory.MarkupTransition("<text>")),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("</").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("</").Accepts(AcceptedCharactersInternal.None),
|
||||
factory.BangEscape(),
|
||||
factory.Markup("text>").Accepts(AcceptedCharacters.None)))),
|
||||
factory.Markup("text>").Accepts(AcceptedCharactersInternal.None)))),
|
||||
new []
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -2554,9 +2554,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@{<!text><text></text></!text>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None),
|
||||
new MarkupTagHelperBlock("text"),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", 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("<text>")),
|
||||
new MarkupTagBlock(
|
||||
factory.Markup("<").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("<").Accepts(AcceptedCharactersInternal.None),
|
||||
factory.BangEscape(),
|
||||
factory.Markup("text>").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharacters.None),
|
||||
factory.Markup("text>").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", 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("</", "text>", AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "text>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "text>", AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
blockFactory.MarkupTagBlock("</text>", AcceptedCharacters.None)),
|
||||
blockFactory.MarkupTagBlock("</text>", 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>(string.Empty, 13, 0, 13),
|
||||
value: new LocationTagged<string>("btn", 13, 0, 13))),
|
||||
new MarkupBlock(
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 16, 0, 16), new LocationTagged<string>("@", 16, 0, 16))).Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharacters.None)),
|
||||
factory.Markup("@").With(new LiteralAttributeChunkGenerator(new LocationTagged<string>(string.Empty, 16, 0, 16), new LocationTagged<string>("@", 16, 0, 16))).Accepts(AcceptedCharactersInternal.None),
|
||||
factory.Markup("@").With(SpanChunkGenerator.Null).Accepts(AcceptedCharactersInternal.None)),
|
||||
factory.Markup("}").With(
|
||||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(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
|
|||
"@{</!p>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new []
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -3238,25 +3238,25 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
"@{<!p></!p>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
"@{<!p>words and spaces</!p>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
factory.Markup("words and spaces"),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
"@{<!p></p>}",
|
||||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None),
|
||||
blockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.MarkupTagBlock("</p>", AcceptedCharactersInternal.None))),
|
||||
new []
|
||||
{
|
||||
new RazorError(
|
||||
|
|
@ -3272,7 +3272,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
buildStatementBlock(
|
||||
() => new MarkupBlock(
|
||||
new MarkupTagHelperBlock("p",
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None)))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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("</", "p>", AcceptedCharacters.None)))),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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("</", "p>", AcceptedCharacters.None),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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("</", "p>", AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
blockFactory.MarkupTagBlock("</p>", AcceptedCharacters.None)),
|
||||
blockFactory.MarkupTagBlock("</p>", 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("</", "p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new MarkupBlock(
|
||||
blockFactory.MarkupTagBlock("</strong>", AcceptedCharacters.None)),
|
||||
blockFactory.MarkupTagBlock("</strong>", 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("</", "p>", AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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("</", "strong>", AcceptedCharacters.None)))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "strong>", AcceptedCharactersInternal.None)))),
|
||||
new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharacters.None),
|
||||
blockFactory.MarkupTagBlock("</strong>", AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("<", "p>", AcceptedCharactersInternal.None),
|
||||
blockFactory.MarkupTagBlock("</strong>", AcceptedCharactersInternal.None)),
|
||||
new MarkupBlock(
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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>(string.Empty, 13, 0, 13),
|
||||
value: new LocationTagged<string>("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>(string.Empty, 13, 0, 13),
|
||||
value: new LocationTagged<string>("btn", 13, 0, 13))),
|
||||
factory.Markup("\"").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
|
|
@ -3542,9 +3542,9 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
prefix: new LocationTagged<string>(string.Empty, 13, 0, 13),
|
||||
value: new LocationTagged<string>("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("</", "p>", AcceptedCharacters.None))),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharactersInternal.None))),
|
||||
new RazorError[0]
|
||||
},
|
||||
{
|
||||
|
|
@ -3580,8 +3580,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new LiteralAttributeChunkGenerator(
|
||||
prefix: new LocationTagged<string>(string.Empty, 31, 0, 31),
|
||||
value: new LocationTagged<string>("btn", 31, 0, 31)))),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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<string>(" ", 31, 0, 31),
|
||||
value: new LocationTagged<string>("btn2", 32, 0, 32))),
|
||||
factory.Markup("'").With(SpanChunkGenerator.Null)),
|
||||
factory.Markup(">").Accepts(AcceptedCharacters.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", AcceptedCharacters.None))),
|
||||
factory.Markup(">").Accepts(AcceptedCharactersInternal.None)),
|
||||
blockFactory.EscapedMarkupTagBlock("</", "p>", 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<string>(" ", 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("<text>")),
|
||||
factory.Markup("Hello World").Accepts(AcceptedCharacters.None),
|
||||
factory.Markup("Hello World").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupTagBlock(
|
||||
factory.MarkupTransition("</text>"))),
|
||||
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("<text>")),
|
||||
|
|
@ -3979,7 +3979,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
new MarkupTagBlock(
|
||||
factory.MarkupTransition("</text>"))),
|
||||
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("</foo>")))
|
||||
|
|
@ -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("</foo>")))
|
||||
|
|
@ -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("</foo>")))
|
||||
|
|
@ -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("</foo>")))
|
||||
|
|
@ -4203,12 +4203,12 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
|
|||
Factory.Markup("<div>")),
|
||||
new StatementBlock(
|
||||
Factory.CodeTransition(),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharacters.None),
|
||||
Factory.MetaCode("{").Accepts(AcceptedCharactersInternal.None),
|
||||
new MarkupBlock(
|
||||
new MarkupTagBlock(
|
||||
Factory.Markup("</div>").Accepts(AcceptedCharacters.None))),
|
||||
Factory.Markup("</div>").Accepts(AcceptedCharactersInternal.None))),
|
||||
Factory.EmptyCSharp().AsStatement(),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharacters.None)),
|
||||
Factory.MetaCode("}").Accepts(AcceptedCharactersInternal.None)),
|
||||
Factory.EmptyHtml());
|
||||
var expectedErrors = new[]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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<ISymbol> ctor)
|
||||
private SpanConstructor CreateSymbolSpan(SpanKindInternal kind, string content, Func<ISymbol> 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<ISymbol> symbols)
|
||||
public SpanConstructor(SpanKindInternal kind, SourceLocation location, IEnumerable<ISymbol> 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;
|
||||
|
|
|
|||
|
|
@ -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<ArgumentOutOfRangeException>(parameterName, () => new TextChange(-1, 0, new Mock<ITextBuffer>().Object, 0, 0, new Mock<ITextBuffer>().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<ArgumentOutOfRangeException>(parameterName, () => new TextChange(0, 0, new Mock<ITextBuffer>().Object, -1, 0, new Mock<ITextBuffer>().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<ArgumentOutOfRangeException>(parameterName, () => new TextChange(0, -1, new Mock<ITextBuffer>().Object, 0, 0, new Mock<ITextBuffer>().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<ArgumentOutOfRangeException>(parameterName, () => new TextChange(0, 0, new Mock<ITextBuffer>().Object, 0, -1, new Mock<ITextBuffer>().Object));
|
||||
ExceptionHelpers.ValidateArgumentException(parameterName, "Value must be greater than or equal to 0.", exception);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ConstructorInitializesProperties()
|
||||
{
|
||||
// Act
|
||||
var oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().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<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().Object;
|
||||
var change = new TextChange(0, 1, oldBuffer, 0, newBuffer);
|
||||
|
||||
// Assert
|
||||
Assert.True(change.IsDelete);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestDeleteCreatesTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
var oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().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<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().Object;
|
||||
var change = new TextChange(0, 0, oldBuffer, 35, newBuffer);
|
||||
|
||||
// Assert
|
||||
Assert.True(change.IsInsert);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestInsertCreateTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
var oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().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<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().Object;
|
||||
var change = new TextChange(0, 5, oldBuffer, 10, newBuffer);
|
||||
|
||||
// Assert
|
||||
Assert.True(change.IsReplace);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ReplaceCreatesTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
var oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().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<ITextBuffer>().Object;
|
||||
var newBuffer = new Mock<ITextBuffer>().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
|
||||
|
|
@ -72,7 +72,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Test
|
|||
Assert.NotNull(syntaxTree);
|
||||
Assert.Equal(6, syntaxTree.Root.Children.Count);
|
||||
var block = Assert.IsType<Block>(syntaxTree.Root.Children[4]);
|
||||
Assert.Equal(BlockKind.Directive, block.Type);
|
||||
Assert.Equal(BlockKindInternal.Directive, block.Type);
|
||||
Assert.Empty(syntaxTree.Diagnostics);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue