MQ: Cleanup to use var
This commit is contained in:
parent
d12bb79714
commit
21d64b4ae2
|
|
@ -23,7 +23,7 @@ namespace Microsoft.Internal.Web.Utils
|
|||
}
|
||||
else
|
||||
{
|
||||
int count = 0;
|
||||
var count = 0;
|
||||
foreach (object o in e)
|
||||
{
|
||||
Add(o);
|
||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.Internal.Web.Utils
|
|||
|
||||
public HashCodeCombiner Add(object o)
|
||||
{
|
||||
int hashCode = (o != null) ? o.GetHashCode() : 0;
|
||||
var hashCode = (o != null) ? o.GetHashCode() : 0;
|
||||
Add(hashCode);
|
||||
return this;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
AutoCompleteEditHandler other = obj as AutoCompleteEditHandler;
|
||||
var other = obj as AutoCompleteEditHandler;
|
||||
return base.Equals(obj) &&
|
||||
other != null &&
|
||||
String.Equals(other.AutoCompleteString, AutoCompleteString, StringComparison.Ordinal) &&
|
||||
|
|
|
|||
|
|
@ -86,19 +86,19 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
foreach (TextChange change in changes)
|
||||
{
|
||||
cancelToken.ThrowIfCancellationRequested();
|
||||
Span changeOwner = leftTree.LocateOwner(change);
|
||||
var changeOwner = leftTree.LocateOwner(change);
|
||||
|
||||
// Apply the change to the tree
|
||||
if (changeOwner == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
EditResult result = changeOwner.EditHandler.ApplyChange(changeOwner, change, force: true);
|
||||
var result = changeOwner.EditHandler.ApplyChange(changeOwner, change, force: true);
|
||||
changeOwner.ReplaceWith(result.EditedSpan);
|
||||
}
|
||||
|
||||
// Now compare the trees
|
||||
bool treesDifferent = !leftTree.EquivalentTo(rightTree);
|
||||
var treesDifferent = !leftTree.EquivalentTo(rightTree);
|
||||
return treesDifferent;
|
||||
}
|
||||
|
||||
|
|
@ -143,13 +143,13 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
private class MainThreadState : ThreadStateBase, IDisposable
|
||||
{
|
||||
private CancellationTokenSource _cancelSource = new CancellationTokenSource();
|
||||
private ManualResetEventSlim _hasParcel = new ManualResetEventSlim(false);
|
||||
private readonly CancellationTokenSource _cancelSource = new CancellationTokenSource();
|
||||
private readonly ManualResetEventSlim _hasParcel = new ManualResetEventSlim(false);
|
||||
private CancellationTokenSource _currentParcelCancelSource;
|
||||
|
||||
[SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Justification = "Field is used in debug code and may be used later")]
|
||||
private string _fileName;
|
||||
private object _stateLock = new object();
|
||||
private readonly object _stateLock = new object();
|
||||
private IList<TextChange> _changes = new List<TextChange>();
|
||||
|
||||
public MainThreadState(string fileName)
|
||||
|
|
@ -299,9 +299,9 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
private void WorkerLoop()
|
||||
{
|
||||
long? elapsedMs = null;
|
||||
string fileNameOnly = Path.GetFileName(_fileName);
|
||||
var fileNameOnly = Path.GetFileName(_fileName);
|
||||
#if EDITOR_TRACING
|
||||
Stopwatch sw = new Stopwatch();
|
||||
var sw = new Stopwatch();
|
||||
#endif
|
||||
|
||||
try
|
||||
|
|
@ -316,7 +316,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
while (!_shutdownToken.IsCancellationRequested)
|
||||
{
|
||||
// Grab the parcel of work to do
|
||||
WorkParcel parcel = _main.GetParcel();
|
||||
var parcel = _main.GetParcel();
|
||||
if (parcel.Changes.Any())
|
||||
{
|
||||
RazorEditorTrace.TraceLine(RazorResources.FormatTrace_ChangesArrived(fileNameOnly, parcel.Changes.Count));
|
||||
|
|
@ -345,11 +345,11 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
allChanges = parcel.Changes.ToList();
|
||||
}
|
||||
|
||||
TextChange finalChange = allChanges.Last();
|
||||
var finalChange = allChanges.Last();
|
||||
#if EDITOR_TRACING
|
||||
sw.Start();
|
||||
#endif
|
||||
GeneratorResults results = ParseChange(finalChange.NewBuffer, linkedCancel.Token);
|
||||
var results = ParseChange(finalChange.NewBuffer, linkedCancel.Token);
|
||||
#if EDITOR_TRACING
|
||||
sw.Stop();
|
||||
elapsedMs = sw.ElapsedMilliseconds;
|
||||
|
|
@ -369,7 +369,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
#if EDITOR_TRACING
|
||||
sw.Start();
|
||||
#endif
|
||||
bool treeStructureChanged = _currentParseTree == null || TreesAreDifferent(_currentParseTree, results.Document, allChanges, parcel.CancelToken);
|
||||
var treeStructureChanged = _currentParseTree == null || TreesAreDifferent(_currentParseTree, results.Document, allChanges, parcel.CancelToken);
|
||||
#if EDITOR_TRACING
|
||||
sw.Stop();
|
||||
elapsedMs = sw.ElapsedMilliseconds;
|
||||
|
|
@ -401,7 +401,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
{
|
||||
// Rewind the buffer and sanity check the line mappings
|
||||
finalChange.NewBuffer.Position = 0;
|
||||
int lineCount = finalChange.NewBuffer.ReadToEnd().Split(new string[] { Environment.NewLine, "\r", "\n" }, StringSplitOptions.None).Count();
|
||||
var lineCount = finalChange.NewBuffer.ReadToEnd().Split(new string[] { Environment.NewLine, "\r", "\n" }, StringSplitOptions.None).Count();
|
||||
Debug.Assert(
|
||||
!args.GeneratorResults.DesignTimeLineMappings.Any(pair => pair.Value.StartLine > lineCount),
|
||||
"Found a design-time line mapping referring to a line outside the source file!");
|
||||
|
|
@ -456,7 +456,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
EnsureOnThread();
|
||||
|
||||
// Create a template engine
|
||||
RazorTemplateEngine engine = new RazorTemplateEngine(_host);
|
||||
var engine = new RazorTemplateEngine(_host);
|
||||
|
||||
// Seek the buffer to the beginning
|
||||
buffer.Position = 0;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
ImplicitExpressionEditHandler other = obj as ImplicitExpressionEditHandler;
|
||||
var other = obj as ImplicitExpressionEditHandler;
|
||||
return other != null &&
|
||||
base.Equals(other) &&
|
||||
Keywords.SetEquals(other.Keywords) &&
|
||||
|
|
@ -74,7 +74,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
{
|
||||
return HandleReplacement(target, normalizedChange);
|
||||
}
|
||||
int changeRelativePosition = normalizedChange.OldPosition - target.Start.AbsoluteIndex;
|
||||
var changeRelativePosition = normalizedChange.OldPosition - target.Start.AbsoluteIndex;
|
||||
|
||||
// Get the edit context
|
||||
char? lastChar = null;
|
||||
|
|
@ -186,13 +186,13 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
private static bool RemainingIsWhitespace(Span target, TextChange change)
|
||||
{
|
||||
int offset = (change.OldPosition - target.Start.AbsoluteIndex) + change.OldLength;
|
||||
var offset = (change.OldPosition - target.Start.AbsoluteIndex) + change.OldLength;
|
||||
return String.IsNullOrWhiteSpace(target.Content.Substring(offset));
|
||||
}
|
||||
|
||||
private PartialParseResult HandleDotlessCommitInsertion(Span target)
|
||||
{
|
||||
PartialParseResult result = PartialParseResult.Accepted;
|
||||
var result = PartialParseResult.Accepted;
|
||||
if (!AcceptTrailingDot && target.Content.LastOrDefault() == '.')
|
||||
{
|
||||
result |= PartialParseResult.Provisional;
|
||||
|
|
@ -207,9 +207,9 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
// 1. Insert "." at the end of this span
|
||||
// 2. Replace the "Date." at the end of the span with "DateTime."
|
||||
// We need partial parsing to accept case #2.
|
||||
string oldText = GetOldText(target, change);
|
||||
var oldText = GetOldText(target, change);
|
||||
|
||||
PartialParseResult result = PartialParseResult.Rejected;
|
||||
var result = PartialParseResult.Rejected;
|
||||
if (EndsWithDot(oldText) && EndsWithDot(change.NewText))
|
||||
{
|
||||
result = PartialParseResult.Accepted;
|
||||
|
|
@ -265,7 +265,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
else if (EndsWithDot(change.NewText))
|
||||
{
|
||||
// Accept it, possibly provisionally
|
||||
PartialParseResult result = PartialParseResult.Accepted;
|
||||
var result = PartialParseResult.Accepted;
|
||||
if (!AcceptTrailingDot)
|
||||
{
|
||||
result |= PartialParseResult.Provisional;
|
||||
|
|
@ -297,7 +297,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
private PartialParseResult TryAcceptChange(Span target, TextChange change, PartialParseResult acceptResult = PartialParseResult.Accepted)
|
||||
{
|
||||
string content = change.ApplyChange(target);
|
||||
var content = change.ApplyChange(target);
|
||||
if (StartsWithKeyword(content))
|
||||
{
|
||||
return PartialParseResult.Rejected | PartialParseResult.SpanContextChanged;
|
||||
|
|
@ -308,7 +308,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
private bool StartsWithKeyword(string newContent)
|
||||
{
|
||||
using (StringReader reader = new StringReader(newContent))
|
||||
using (var reader = new StringReader(newContent))
|
||||
{
|
||||
return Keywords.Contains(reader.ReadWhile(ParserHelpers.IsIdentifierPart));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
public virtual EditResult ApplyChange(Span target, TextChange change, bool force)
|
||||
{
|
||||
PartialParseResult result = PartialParseResult.Accepted;
|
||||
TextChange normalized = change.Normalize();
|
||||
var result = PartialParseResult.Accepted;
|
||||
var normalized = change.Normalize();
|
||||
if (!force)
|
||||
{
|
||||
result = CanAcceptChange(target, normalized);
|
||||
|
|
@ -73,8 +73,8 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
public virtual bool OwnsChange(Span target, TextChange change)
|
||||
{
|
||||
int end = target.Start.AbsoluteIndex + target.Length;
|
||||
int changeOldEnd = change.OldPosition + change.OldLength;
|
||||
var end = target.Start.AbsoluteIndex + target.Length;
|
||||
var changeOldEnd = change.OldPosition + change.OldLength;
|
||||
return change.OldPosition >= target.Start.AbsoluteIndex &&
|
||||
(changeOldEnd < end || (changeOldEnd == end && AcceptedCharacters != AcceptedCharacters.None));
|
||||
}
|
||||
|
|
@ -86,8 +86,8 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
protected virtual SpanBuilder UpdateSpan(Span target, TextChange normalizedChange)
|
||||
{
|
||||
string newContent = normalizedChange.ApplyChange(target);
|
||||
SpanBuilder newSpan = new SpanBuilder(target);
|
||||
var newContent = normalizedChange.ApplyChange(target);
|
||||
var newSpan = new SpanBuilder(target);
|
||||
newSpan.ClearSymbols();
|
||||
foreach (ISymbol sym in Tokenizer(newContent))
|
||||
{
|
||||
|
|
@ -96,7 +96,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
}
|
||||
if (target.Next != null)
|
||||
{
|
||||
SourceLocation newEnd = SourceLocationTracker.CalculateNewLocation(target.Start, newContent);
|
||||
var newEnd = SourceLocationTracker.CalculateNewLocation(target.Start, newContent);
|
||||
target.Next.ChangeStart(newEnd);
|
||||
}
|
||||
return newSpan;
|
||||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
protected internal static bool IsAtEndOfFirstLine(Span target, TextChange change)
|
||||
{
|
||||
int endOfFirstLine = target.Content.IndexOfAny(new char[] { (char)0x000d, (char)0x000a, (char)0x2028, (char)0x2029 });
|
||||
var endOfFirstLine = target.Content.IndexOfAny(new char[] { (char)0x000d, (char)0x000a, (char)0x2028, (char)0x2029 });
|
||||
return (endOfFirstLine == -1 || (change.OldPosition - target.Start.AbsoluteIndex) <= endOfFirstLine);
|
||||
}
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ namespace Microsoft.AspNet.Razor.Editor
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
SpanEditHandler other = obj as SpanEditHandler;
|
||||
var other = obj as SpanEditHandler;
|
||||
return other != null &&
|
||||
AcceptedCharacters == other.AcceptedCharacters &&
|
||||
EditorHints == other.EditorHints;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override void GenerateCode(Span target, CodeGeneratorContext context)
|
||||
{
|
||||
string ns = Namespace;
|
||||
var ns = Namespace;
|
||||
|
||||
if (!String.IsNullOrEmpty(ns) && Char.IsWhiteSpace(ns[0]))
|
||||
{
|
||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
AddImportCodeGenerator other = obj as AddImportCodeGenerator;
|
||||
var other = obj as AddImportCodeGenerator;
|
||||
return other != null &&
|
||||
String.Equals(Namespace, other.Namespace, StringComparison.Ordinal) &&
|
||||
NamespaceKeywordLength == other.NamespaceKeywordLength;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
AttributeBlockCodeGenerator other = obj as AttributeBlockCodeGenerator;
|
||||
var other = obj as AttributeBlockCodeGenerator;
|
||||
return other != null &&
|
||||
String.Equals(other.Name, Name, StringComparison.Ordinal) &&
|
||||
Equals(other.Prefix, Prefix) &&
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
writer.WriteUsing(import);
|
||||
}
|
||||
|
||||
string taskNamespace = typeof(Task).Namespace;
|
||||
var taskNamespace = typeof(Task).Namespace;
|
||||
|
||||
// We need to add the task namespace but ONLY if it hasn't been added by the default imports or using imports yet.
|
||||
if (!defaultImports.Contains(taskNamespace) && !usingVisitor.ImportedUsings.Contains(taskNamespace))
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
{
|
||||
// Need to add an additional line at the end IF there wasn't one already written.
|
||||
// This is needed to work with the C# editor's handling of #line ...
|
||||
bool endsWithNewline = _writer.GenerateCode().EndsWith("\n");
|
||||
var endsWithNewline = _writer.GenerateCode().EndsWith("\n");
|
||||
|
||||
// Always write at least 1 empty line to potentially separate code from pragmas.
|
||||
_writer.WriteLine();
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
throw new ArgumentNullException("target");
|
||||
}
|
||||
|
||||
int padding = CalculatePadding(target, generatedStart: 0);
|
||||
var padding = CalculatePadding(target, generatedStart: 0);
|
||||
|
||||
// We treat statement padding specially so for brace positioning, so that in the following example:
|
||||
// @if (foo > 0)
|
||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
padding--;
|
||||
}
|
||||
|
||||
string generatedCode = BuildPaddingInternal(padding);
|
||||
var generatedCode = BuildPaddingInternal(padding);
|
||||
|
||||
return generatedCode;
|
||||
}
|
||||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
|
||||
public string BuildExpressionPadding(Span target, int generatedStart)
|
||||
{
|
||||
int padding = CalculatePadding(target, generatedStart);
|
||||
var padding = CalculatePadding(target, generatedStart);
|
||||
|
||||
return BuildPaddingInternal(padding);
|
||||
}
|
||||
|
|
@ -91,8 +91,8 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
{
|
||||
if (_host.DesignTimeMode && _host.IsIndentingWithTabs)
|
||||
{
|
||||
int spaces = padding % _host.TabSize;
|
||||
int tabs = padding / _host.TabSize;
|
||||
var spaces = padding % _host.TabSize;
|
||||
var tabs = padding / _host.TabSize;
|
||||
|
||||
return new string('\t', tabs) + new string(' ', spaces);
|
||||
}
|
||||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
|
||||
private static int CollectSpacesAndTabs(Span target, int tabSize)
|
||||
{
|
||||
Span firstSpanInLine = target;
|
||||
var firstSpanInLine = target;
|
||||
|
||||
string currentContent = null;
|
||||
|
||||
|
|
@ -113,9 +113,9 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
// When scanning previous spans we need to be break down the spans with spaces. The parser combines
|
||||
// whitespace into existing spans so you'll see tabs, newlines etc. within spans. We only care about
|
||||
// the \t in existing spans.
|
||||
String previousContent = firstSpanInLine.Previous.Content ?? String.Empty;
|
||||
var previousContent = firstSpanInLine.Previous.Content ?? String.Empty;
|
||||
|
||||
int lastNewLineIndex = previousContent.LastIndexOfAny(_newLineChars);
|
||||
var lastNewLineIndex = previousContent.LastIndexOfAny(_newLineChars);
|
||||
|
||||
if (lastNewLineIndex < 0)
|
||||
{
|
||||
|
|
@ -134,14 +134,14 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
}
|
||||
|
||||
// We need to walk from the beginning of the line, because space + tab(tabSize) = tabSize columns, but tab(tabSize) + space = tabSize+1 columns.
|
||||
Span currentSpanInLine = firstSpanInLine;
|
||||
var currentSpanInLine = firstSpanInLine;
|
||||
|
||||
if (currentContent == null)
|
||||
{
|
||||
currentContent = currentSpanInLine.Content;
|
||||
}
|
||||
|
||||
int padding = 0;
|
||||
var padding = 0;
|
||||
while (currentSpanInLine != target)
|
||||
{
|
||||
if (currentContent != null)
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
Writer.Write(ItemParameterName).Write(" => ")
|
||||
.WriteStartNewObject(Context.Host.GeneratedClassContext.TemplateTypeName);
|
||||
|
||||
string currentTargetWriterName = Context.TargetWriterName;
|
||||
var currentTargetWriterName = Context.TargetWriterName;
|
||||
Context.TargetWriterName = TemplateWriterName;
|
||||
|
||||
using (Writer.BuildLambda(endLine: false, parameterNames: TemplateWriterName))
|
||||
|
|
@ -184,8 +184,8 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
return;
|
||||
}
|
||||
|
||||
ExpressionRenderingMode currentRenderingMode = Context.ExpressionRenderingMode;
|
||||
string currentTargetWriterName = Context.TargetWriterName;
|
||||
var currentRenderingMode = Context.ExpressionRenderingMode;
|
||||
var currentTargetWriterName = Context.TargetWriterName;
|
||||
|
||||
Context.TargetWriterName = ValueWriterName;
|
||||
|
||||
|
|
@ -261,7 +261,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
{
|
||||
Writer.WriteStartMethodInvocation("Tuple.Create", new string[] { "System.Object", "System.Int32" });
|
||||
|
||||
ExpressionRenderingMode currentRenderingMode = Context.ExpressionRenderingMode;
|
||||
var currentRenderingMode = Context.ExpressionRenderingMode;
|
||||
Context.ExpressionRenderingMode = ExpressionRenderingMode.InjectCode;
|
||||
|
||||
Accept(chunk.Children);
|
||||
|
|
@ -339,8 +339,8 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
|
||||
if (firstChild != null)
|
||||
{
|
||||
int currentIndent = Writer.CurrentIndent;
|
||||
string designTimeAssignment = "__o = ";
|
||||
var currentIndent = Writer.CurrentIndent;
|
||||
var designTimeAssignment = "__o = ";
|
||||
Writer.ResetIndent();
|
||||
|
||||
var documentLocation = firstChild.Association.Start;
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
{
|
||||
IDisposable lambdaScope = null;
|
||||
|
||||
string accessibility = "public " + (Context.Host.StaticHelpers ? "static" : String.Empty);
|
||||
var accessibility = "public " + (Context.Host.StaticHelpers ? "static" : String.Empty);
|
||||
|
||||
// We want to write the method signature at 0 indentation so if helper's are formatted they format correctly.
|
||||
int currentIndentation = Writer.CurrentIndent;
|
||||
var currentIndentation = Writer.CurrentIndent;
|
||||
Writer.ResetIndent();
|
||||
Writer.Write(accessibility).Write(" ").Write(Context.Host.GeneratedClassContext.TemplateTypeName).Write(" ");
|
||||
Writer.SetIndent(currentIndentation);
|
||||
|
|
@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
lambdaScope = Writer.BuildLambda(endLine: false, parameterNames: HelperWriterName);
|
||||
}
|
||||
|
||||
string currentTargetWriterName = Context.TargetWriterName;
|
||||
var currentTargetWriterName = Context.TargetWriterName;
|
||||
Context.TargetWriterName = HelperWriterName;
|
||||
|
||||
// Generate children code
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler.CSharp
|
|||
|
||||
protected override void Visit(UsingChunk chunk)
|
||||
{
|
||||
string documentContent = ((Span)chunk.Association).Content.Trim();
|
||||
bool mapSemicolon = false;
|
||||
var documentContent = ((Span)chunk.Association).Content.Trim();
|
||||
var mapSemicolon = false;
|
||||
|
||||
if (documentContent.LastOrDefault() == ';')
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
LineMapping other = obj as LineMapping;
|
||||
var other = obj as LineMapping;
|
||||
return DocumentLocation.Equals(other.DocumentLocation) &&
|
||||
GeneratedLocation.Equals(other.GeneratedLocation);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Razor.Generator.Compiler
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
MappingLocation other = obj as MappingLocation;
|
||||
var other = obj as MappingLocation;
|
||||
|
||||
return AbsoluteIndex == other.AbsoluteIndex &&
|
||||
ContentLength == other.ContentLength &&
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
DynamicAttributeBlockCodeGenerator other = obj as DynamicAttributeBlockCodeGenerator;
|
||||
var other = obj as DynamicAttributeBlockCodeGenerator;
|
||||
return other != null &&
|
||||
Equals(other.Prefix, Prefix);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
HelperCodeGenerator other = obj as HelperCodeGenerator;
|
||||
var other = obj as HelperCodeGenerator;
|
||||
return other != null &&
|
||||
base.Equals(other) &&
|
||||
HeaderComplete == other.HeaderComplete &&
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
LiteralAttributeCodeGenerator other = obj as LiteralAttributeCodeGenerator;
|
||||
var other = obj as LiteralAttributeCodeGenerator;
|
||||
return other != null &&
|
||||
Equals(other.Prefix, Prefix) &&
|
||||
Equals(other.Value, Value) &&
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
RazorDirectiveAttributeCodeGenerator other = obj as RazorDirectiveAttributeCodeGenerator;
|
||||
var other = obj as RazorDirectiveAttributeCodeGenerator;
|
||||
return other != null &&
|
||||
Name.Equals(other.Name, StringComparison.OrdinalIgnoreCase) &&
|
||||
Value.Equals(other.Value, StringComparison.OrdinalIgnoreCase);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
SectionCodeGenerator other = obj as SectionCodeGenerator;
|
||||
var other = obj as SectionCodeGenerator;
|
||||
return other != null &&
|
||||
base.Equals(other) &&
|
||||
String.Equals(SectionName, other.SectionName, StringComparison.Ordinal);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
SetBaseTypeCodeGenerator other = obj as SetBaseTypeCodeGenerator;
|
||||
var other = obj as SetBaseTypeCodeGenerator;
|
||||
return other != null &&
|
||||
String.Equals(BaseType, other.BaseType, StringComparison.Ordinal);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
SetLayoutCodeGenerator other = obj as SetLayoutCodeGenerator;
|
||||
var other = obj as SetLayoutCodeGenerator;
|
||||
return other != null && String.Equals(other.LayoutPath, LayoutPath, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Context.CurrentBlock.Type = BlockType.Directive;
|
||||
|
||||
// Accept spaces, but not newlines
|
||||
bool foundSomeWhitespace = At(CSharpSymbolType.WhiteSpace);
|
||||
var foundSomeWhitespace = At(CSharpSymbolType.WhiteSpace);
|
||||
AcceptWhile(CSharpSymbolType.WhiteSpace);
|
||||
Output(SpanKind.MetaCode, foundSomeWhitespace ? AcceptedCharacters.None : AcceptedCharacters.Any);
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
AcceptUntil(CSharpSymbolType.NewLine);
|
||||
Span.CodeGenerator = new SetLayoutCodeGenerator(Span.GetContent());
|
||||
Span.EditHandler.EditorHints = EditorHints.LayoutPage | EditorHints.VirtualPath;
|
||||
bool foundNewline = Optional(CSharpSymbolType.NewLine);
|
||||
var foundNewline = Optional(CSharpSymbolType.NewLine);
|
||||
AddMarkerSymbolIfNecessary();
|
||||
Output(SpanKind.MetaCode, foundNewline ? AcceptedCharacters.None : AcceptedCharacters.Any);
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Context.CurrentBlock.Type = BlockType.Directive;
|
||||
|
||||
// Accept whitespace
|
||||
CSharpSymbol remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
var remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
|
||||
if (Span.Symbols.Count > 1)
|
||||
{
|
||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
|
||||
// Pull out the type name
|
||||
string sessionStateValue = String.Concat(
|
||||
var sessionStateValue = String.Concat(
|
||||
Span.Symbols
|
||||
.Cast<CSharpSymbol>()
|
||||
.Select(sym => sym.Content)).Trim();
|
||||
|
|
@ -119,14 +119,14 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
[SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "C# Keywords are always lower-case")]
|
||||
protected virtual void HelperDirective()
|
||||
{
|
||||
bool nested = Context.IsWithin(BlockType.Helper);
|
||||
var nested = Context.IsWithin(BlockType.Helper);
|
||||
|
||||
// Set the block and span type
|
||||
Context.CurrentBlock.Type = BlockType.Helper;
|
||||
|
||||
// Verify we're on "helper" and accept
|
||||
AssertDirective(SyntaxConstants.CSharp.HelperKeyword);
|
||||
Block block = new Block(CurrentSymbol.Content.ToString().ToLowerInvariant(), CurrentLocation);
|
||||
var block = new Block(CurrentSymbol.Content.ToString().ToLowerInvariant(), CurrentLocation);
|
||||
AcceptAndMoveNext();
|
||||
|
||||
if (nested)
|
||||
|
|
@ -159,7 +159,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
return;
|
||||
}
|
||||
|
||||
CSharpSymbol remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
var remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
|
||||
// Output metacode and continue
|
||||
Output(SpanKind.MetaCode);
|
||||
|
|
@ -170,7 +170,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
AcceptWhile(IsSpacingToken(includeNewLines: false, includeComments: true)); // Don't accept newlines.
|
||||
|
||||
// Expecting an identifier (helper name)
|
||||
bool errorReported = !Required(CSharpSymbolType.Identifier, errorIfNotFound: true, errorBase: RazorResources.FormatParseError_Unexpected_Character_At_Helper_Name_Start);
|
||||
var errorReported = !Required(CSharpSymbolType.Identifier, errorIfNotFound: true, errorBase: RazorResources.FormatParseError_Unexpected_Character_At_Helper_Name_Start);
|
||||
if (!errorReported)
|
||||
{
|
||||
Assert(CSharpSymbolType.Identifier);
|
||||
|
|
@ -180,7 +180,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
AcceptWhile(IsSpacingToken(includeNewLines: false, includeComments: true));
|
||||
|
||||
// Expecting parameter list start: "("
|
||||
SourceLocation bracketErrorPos = CurrentLocation;
|
||||
var bracketErrorPos = CurrentLocation;
|
||||
if (!Optional(CSharpSymbolType.LeftParenthesis))
|
||||
{
|
||||
if (!errorReported)
|
||||
|
|
@ -193,7 +193,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
else
|
||||
{
|
||||
SourceLocation bracketStart = CurrentLocation;
|
||||
var bracketStart = CurrentLocation;
|
||||
if (!Balance(BalancingModes.NoErrorOnFailure,
|
||||
CSharpSymbolType.LeftParenthesis,
|
||||
CSharpSymbolType.RightParenthesis,
|
||||
|
|
@ -207,12 +207,12 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Optional(CSharpSymbolType.RightParenthesis);
|
||||
}
|
||||
|
||||
int bookmark = CurrentLocation.AbsoluteIndex;
|
||||
var bookmark = CurrentLocation.AbsoluteIndex;
|
||||
IEnumerable<CSharpSymbol> ws = ReadWhile(IsSpacingToken(includeNewLines: true, includeComments: true));
|
||||
|
||||
// Expecting a "{"
|
||||
SourceLocation errorLocation = CurrentLocation;
|
||||
bool headerComplete = At(CSharpSymbolType.LeftBrace);
|
||||
var errorLocation = CurrentLocation;
|
||||
var headerComplete = At(CSharpSymbolType.LeftBrace);
|
||||
if (headerComplete)
|
||||
{
|
||||
Accept(ws);
|
||||
|
|
@ -235,7 +235,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
// Grab the signature and build the code generator
|
||||
AddMarkerSymbolIfNecessary();
|
||||
LocationTagged<string> signature = Span.GetContent();
|
||||
HelperCodeGenerator blockGen = new HelperCodeGenerator(signature, headerComplete);
|
||||
var blockGen = new HelperCodeGenerator(signature, headerComplete);
|
||||
Context.CurrentBlock.CodeGenerator = blockGen;
|
||||
|
||||
// The block will generate appropriate code,
|
||||
|
|
@ -254,7 +254,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
|
||||
// We're valid, so parse the nested block
|
||||
AutoCompleteEditHandler bodyEditHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
var bodyEditHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
using (PushSpanConfig(DefaultSpanConfig))
|
||||
{
|
||||
using (Context.StartBlock(BlockType.Statement))
|
||||
|
|
@ -289,8 +289,8 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected virtual void SectionDirective()
|
||||
{
|
||||
bool nested = Context.IsWithin(BlockType.Section);
|
||||
bool errorReported = false;
|
||||
var nested = Context.IsWithin(BlockType.Section);
|
||||
var errorReported = false;
|
||||
|
||||
// Set the block and span type
|
||||
Context.CurrentBlock.Type = BlockType.Section;
|
||||
|
|
@ -308,7 +308,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
IEnumerable<CSharpSymbol> ws = ReadWhile(IsSpacingToken(includeNewLines: true, includeComments: false));
|
||||
|
||||
// Get the section name
|
||||
string sectionName = String.Empty;
|
||||
var sectionName = String.Empty;
|
||||
if (!Required(CSharpSymbolType.Identifier,
|
||||
errorIfNotFound: true,
|
||||
errorBase: RazorResources.FormatParseError_Unexpected_Character_At_Section_Name_Start))
|
||||
|
|
@ -330,11 +330,11 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
Context.CurrentBlock.CodeGenerator = new SectionCodeGenerator(sectionName);
|
||||
|
||||
SourceLocation errorLocation = CurrentLocation;
|
||||
var errorLocation = CurrentLocation;
|
||||
ws = ReadWhile(IsSpacingToken(includeNewLines: true, includeComments: false));
|
||||
|
||||
// Get the starting brace
|
||||
bool sawStartingBrace = At(CSharpSymbolType.LeftBrace);
|
||||
var sawStartingBrace = At(CSharpSymbolType.LeftBrace);
|
||||
if (!sawStartingBrace)
|
||||
{
|
||||
if (!errorReported)
|
||||
|
|
@ -357,7 +357,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
|
||||
// Set up edit handler
|
||||
AutoCompleteEditHandler editHandler = new AutoCompleteEditHandler(Language.TokenizeString) { AutoCompleteAtEndOfSpan = true };
|
||||
var editHandler = new AutoCompleteEditHandler(Language.TokenizeString) { AutoCompleteAtEndOfSpan = true };
|
||||
|
||||
Span.EditHandler = editHandler;
|
||||
Span.Accept(CurrentSymbol);
|
||||
|
|
@ -391,7 +391,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
// Verify we're on "functions" and accept
|
||||
AssertDirective(SyntaxConstants.CSharp.FunctionsKeyword);
|
||||
Block block = new Block(CurrentSymbol);
|
||||
var block = new Block(CurrentSymbol);
|
||||
AcceptAndMoveNext();
|
||||
|
||||
AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: false));
|
||||
|
|
@ -410,13 +410,13 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
|
||||
// Capture start point and continue
|
||||
SourceLocation blockStart = CurrentLocation;
|
||||
var blockStart = CurrentLocation;
|
||||
AcceptAndMoveNext();
|
||||
|
||||
// Output what we've seen and continue
|
||||
Output(SpanKind.MetaCode);
|
||||
|
||||
AutoCompleteEditHandler editHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
var editHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
Span.EditHandler = editHandler;
|
||||
|
||||
Balance(BalancingModes.NoErrorOnFailure, CSharpSymbolType.LeftBrace, CSharpSymbolType.RightBrace, blockStart);
|
||||
|
|
@ -469,7 +469,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Context.CurrentBlock.Type = BlockType.Directive;
|
||||
|
||||
// Accept whitespace
|
||||
CSharpSymbol remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
var remainingWs = AcceptSingleWhiteSpaceCharacter();
|
||||
|
||||
if (Span.Symbols.Count > 1)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void UsingKeyword(bool topLevel)
|
||||
{
|
||||
Assert(CSharpKeyword.Using);
|
||||
Block block = new Block(CurrentSymbol);
|
||||
var block = new Block(CurrentSymbol);
|
||||
AcceptAndMoveNext();
|
||||
AcceptWhile(IsSpacingToken(includeNewLines: false, includeComments: true));
|
||||
|
||||
|
|
@ -293,7 +293,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
return;
|
||||
}
|
||||
Block block = new Block(CurrentSymbol);
|
||||
var block = new Block(CurrentSymbol);
|
||||
|
||||
AcceptAndMoveNext();
|
||||
AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true));
|
||||
|
|
@ -332,7 +332,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void UnconditionalBlock()
|
||||
{
|
||||
Assert(CSharpSymbolType.Keyword);
|
||||
Block block = new Block(CurrentSymbol);
|
||||
var block = new Block(CurrentSymbol);
|
||||
AcceptAndMoveNext();
|
||||
AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true));
|
||||
ExpectCodeBlock(block);
|
||||
|
|
@ -341,7 +341,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void ConditionalBlock(bool topLevel)
|
||||
{
|
||||
Assert(CSharpSymbolType.Keyword);
|
||||
Block block = new Block(CurrentSymbol);
|
||||
var block = new Block(CurrentSymbol);
|
||||
ConditionalBlock(block);
|
||||
if (topLevel)
|
||||
{
|
||||
|
|
@ -366,7 +366,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
if (At(CSharpSymbolType.LeftParenthesis))
|
||||
{
|
||||
bool complete = Balance(BalancingModes.BacktrackOnFailure | BalancingModes.AllowCommentsAndTemplates);
|
||||
var complete = Balance(BalancingModes.BacktrackOnFailure | BalancingModes.AllowCommentsAndTemplates);
|
||||
if (!complete)
|
||||
{
|
||||
AcceptUntil(CSharpSymbolType.NewLine);
|
||||
|
|
@ -390,7 +390,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Span.EditHandler.AcceptedCharacters = AcceptedCharacters.Any;
|
||||
|
||||
// Accept whitespace but always keep the last whitespace node so we can put it back if necessary
|
||||
CSharpSymbol lastWs = AcceptWhiteSpaceInLines();
|
||||
var lastWs = AcceptWhiteSpaceInLines();
|
||||
Debug.Assert(lastWs == null || (lastWs.Start.AbsoluteIndex + lastWs.Content.Length == CurrentLocation.AbsoluteIndex));
|
||||
|
||||
if (EndOfFile)
|
||||
|
|
@ -402,13 +402,13 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
return;
|
||||
}
|
||||
|
||||
CSharpSymbolType type = CurrentSymbol.Type;
|
||||
SourceLocation loc = CurrentLocation;
|
||||
var type = CurrentSymbol.Type;
|
||||
var loc = CurrentLocation;
|
||||
|
||||
bool isSingleLineMarkup = type == CSharpSymbolType.Transition && NextIs(CSharpSymbolType.Colon);
|
||||
bool isMarkup = isSingleLineMarkup ||
|
||||
type == CSharpSymbolType.LessThan ||
|
||||
(type == CSharpSymbolType.Transition && NextIs(CSharpSymbolType.LessThan));
|
||||
var isSingleLineMarkup = type == CSharpSymbolType.Transition && NextIs(CSharpSymbolType.Colon);
|
||||
var isMarkup = isSingleLineMarkup ||
|
||||
type == CSharpSymbolType.LessThan ||
|
||||
(type == CSharpSymbolType.Transition && NextIs(CSharpSymbolType.LessThan));
|
||||
|
||||
if (Context.DesignTimeMode || !isMarkup)
|
||||
{
|
||||
|
|
@ -487,7 +487,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
// First, verify the type of the block
|
||||
Assert(CSharpSymbolType.Transition);
|
||||
CSharpSymbol transition = CurrentSymbol;
|
||||
var transition = CurrentSymbol;
|
||||
NextToken();
|
||||
|
||||
if (At(CSharpSymbolType.Transition))
|
||||
|
|
@ -527,7 +527,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
while (!EndOfFile)
|
||||
{
|
||||
int bookmark = CurrentLocation.AbsoluteIndex;
|
||||
var bookmark = CurrentLocation.AbsoluteIndex;
|
||||
IEnumerable<CSharpSymbol> read = ReadWhile(sym => sym.Type != CSharpSymbolType.Semicolon &&
|
||||
sym.Type != CSharpSymbolType.RazorCommentTransition &&
|
||||
sym.Type != CSharpSymbolType.Transition &&
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
AcceptWhile(IsSpacingToken(includeNewLines: true, includeComments: true));
|
||||
|
||||
CSharpSymbol current = CurrentSymbol;
|
||||
var current = CurrentSymbol;
|
||||
if (At(CSharpSymbolType.StringLiteral) && CurrentSymbol.Content.Length > 0 && CurrentSymbol.Content[0] == SyntaxConstants.TransitionCharacter)
|
||||
{
|
||||
Tuple<CSharpSymbol, CSharpSymbol> split = Language.SplitSymbol(CurrentSymbol, 1, CSharpSymbolType.Transition);
|
||||
|
|
@ -279,7 +279,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void VerbatimBlock()
|
||||
{
|
||||
Assert(CSharpSymbolType.LeftBrace);
|
||||
Block block = new Block(RazorResources.BlockName_Code, CurrentLocation);
|
||||
var block = new Block(RazorResources.BlockName_Code, CurrentLocation);
|
||||
AcceptAndMoveNext();
|
||||
|
||||
// Set up the "{" span and output
|
||||
|
|
@ -288,7 +288,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Output(SpanKind.MetaCode);
|
||||
|
||||
// Set up auto-complete and parse the code block
|
||||
AutoCompleteEditHandler editHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
var editHandler = new AutoCompleteEditHandler(Language.TokenizeString);
|
||||
Span.EditHandler = editHandler;
|
||||
CodeBlock(false, block);
|
||||
|
||||
|
|
@ -391,7 +391,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
if (CurrentSymbol.Type == CSharpSymbolType.Dot)
|
||||
{
|
||||
CSharpSymbol dot = CurrentSymbol;
|
||||
var dot = CurrentSymbol;
|
||||
if (NextToken())
|
||||
{
|
||||
if (At(CSharpSymbolType.Identifier) || At(CSharpSymbolType.Keyword))
|
||||
|
|
@ -485,7 +485,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
private void ExplicitExpression()
|
||||
{
|
||||
Block block = new Block(RazorResources.BlockName_ExplicitExpression, CurrentLocation);
|
||||
var block = new Block(RazorResources.BlockName_ExplicitExpression, CurrentLocation);
|
||||
Assert(CSharpSymbolType.LeftParenthesis);
|
||||
AcceptAndMoveNext();
|
||||
Span.EditHandler.AcceptedCharacters = AcceptedCharacters.None;
|
||||
|
|
@ -493,7 +493,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Output(SpanKind.MetaCode);
|
||||
using (PushSpanConfig(ConfigureExplicitExpressionSpan))
|
||||
{
|
||||
bool success = Balance(
|
||||
var success = Balance(
|
||||
BalancingModes.BacktrackOnFailure | BalancingModes.NoErrorOnFailure | BalancingModes.AllowCommentsAndTemplates,
|
||||
CSharpSymbolType.LeftParenthesis,
|
||||
CSharpSymbolType.RightParenthesis,
|
||||
|
|
@ -553,7 +553,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void NestedBlock()
|
||||
{
|
||||
Output(SpanKind.Code);
|
||||
bool wasNested = IsNested;
|
||||
var wasNested = IsNested;
|
||||
IsNested = true;
|
||||
using (PushSpanConfig())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -20,17 +20,17 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected override bool CanRewrite(Block block)
|
||||
{
|
||||
AttributeBlockCodeGenerator gen = block.CodeGenerator as AttributeBlockCodeGenerator;
|
||||
var gen = block.CodeGenerator as AttributeBlockCodeGenerator;
|
||||
return gen != null && block.Children.Any() && block.Children.All(IsLiteralAttributeValue);
|
||||
}
|
||||
|
||||
protected override SyntaxTreeNode RewriteBlock(BlockBuilder parent, Block block)
|
||||
{
|
||||
// Collect the content of this node
|
||||
string content = String.Concat(block.Children.Cast<Span>().Select(s => s.Content));
|
||||
var content = String.Concat(block.Children.Cast<Span>().Select(s => s.Content));
|
||||
|
||||
// Create a new span containing this content
|
||||
SpanBuilder span = new SpanBuilder();
|
||||
var span = new SpanBuilder();
|
||||
span.EditHandler = new SpanEditHandler(HtmlTokenizer.Tokenize);
|
||||
FillSpan(span, block.Children.Cast<Span>().First().Start, content);
|
||||
return span.Build();
|
||||
|
|
@ -42,10 +42,10 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
return false;
|
||||
}
|
||||
Span span = node as Span;
|
||||
var span = node as Span;
|
||||
Debug.Assert(span != null);
|
||||
|
||||
LiteralAttributeCodeGenerator litGen = span.CodeGenerator as LiteralAttributeCodeGenerator;
|
||||
var litGen = span.CodeGenerator as LiteralAttributeCodeGenerator;
|
||||
|
||||
return span != null &&
|
||||
((litGen != null && litGen.ValueGenerator == null) ||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
// Parse until a newline, it's that simple!
|
||||
// First, signal to code parser that whitespace is significant to us.
|
||||
bool old = Context.WhiteSpaceIsSignificantToAncestorBlock;
|
||||
var old = Context.WhiteSpaceIsSignificantToAncestorBlock;
|
||||
Context.WhiteSpaceIsSignificantToAncestorBlock = true;
|
||||
Span.EditHandler = new SingleLineMarkupEditHandler(Language.TokenizeString);
|
||||
SkipToAndParseCode(HtmlSymbolType.NewLine);
|
||||
|
|
@ -121,7 +121,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void TagBlock(Stack<Tuple<HtmlSymbol, SourceLocation>> tags)
|
||||
{
|
||||
// Skip Whitespace and Text
|
||||
bool complete = false;
|
||||
var complete = false;
|
||||
do
|
||||
{
|
||||
SkipToAndParseCode(HtmlSymbolType.OpenAngle);
|
||||
|
|
@ -149,7 +149,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
_lastTagStart = CurrentLocation;
|
||||
Assert(HtmlSymbolType.OpenAngle);
|
||||
_bufferedOpenAngle = CurrentSymbol;
|
||||
SourceLocation tagStart = CurrentLocation;
|
||||
var tagStart = CurrentLocation;
|
||||
if (!NextToken())
|
||||
{
|
||||
Accept(_bufferedOpenAngle);
|
||||
|
|
@ -275,7 +275,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
// Accept "/" and move next
|
||||
Assert(HtmlSymbolType.ForwardSlash);
|
||||
HtmlSymbol solidus = CurrentSymbol;
|
||||
var solidus = CurrentSymbol;
|
||||
if (!NextToken())
|
||||
{
|
||||
Accept(_bufferedOpenAngle);
|
||||
|
|
@ -284,12 +284,12 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
else
|
||||
{
|
||||
string tagName = String.Empty;
|
||||
var tagName = String.Empty;
|
||||
if (At(HtmlSymbolType.Text))
|
||||
{
|
||||
tagName = CurrentSymbol.Content;
|
||||
}
|
||||
bool matched = RemoveTag(tags, tagName, tagStart);
|
||||
var matched = RemoveTag(tags, tagName, tagStart);
|
||||
|
||||
if (tags.Count == 0 &&
|
||||
String.Equals(tagName, SyntaxConstants.TextTagName, StringComparison.OrdinalIgnoreCase) &&
|
||||
|
|
@ -318,7 +318,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
private bool EndTextTag(HtmlSymbol solidus, IDisposable tagBlockWrapper)
|
||||
{
|
||||
SourceLocation start = _bufferedOpenAngle.Start;
|
||||
var start = _bufferedOpenAngle.Start;
|
||||
|
||||
Accept(_bufferedOpenAngle);
|
||||
Accept(solidus);
|
||||
|
|
@ -326,7 +326,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
Assert(HtmlSymbolType.Text);
|
||||
AcceptAndMoveNext();
|
||||
|
||||
bool seenCloseAngle = Optional(HtmlSymbolType.CloseAngle);
|
||||
var seenCloseAngle = Optional(HtmlSymbolType.CloseAngle);
|
||||
|
||||
if (!seenCloseAngle)
|
||||
{
|
||||
|
|
@ -456,14 +456,14 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
// First, determine if this is a 'data-' attribute (since those can't use conditional attributes)
|
||||
LocationTagged<string> name = nameSymbols.GetContent(Span.Start);
|
||||
bool attributeCanBeConditional = !name.Value.StartsWith("data-", StringComparison.OrdinalIgnoreCase);
|
||||
var attributeCanBeConditional = !name.Value.StartsWith("data-", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
// Accept the whitespace and name
|
||||
Accept(whitespace);
|
||||
Accept(nameSymbols);
|
||||
Assert(HtmlSymbolType.Equals); // We should be at "="
|
||||
AcceptAndMoveNext();
|
||||
HtmlSymbolType quote = HtmlSymbolType.Unknown;
|
||||
var quote = HtmlSymbolType.Unknown;
|
||||
if (At(HtmlSymbolType.SingleQuote) || At(HtmlSymbolType.DoubleQuote))
|
||||
{
|
||||
quote = CurrentSymbol.Type;
|
||||
|
|
@ -516,13 +516,13 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
private void AttributeValue(HtmlSymbolType quote)
|
||||
{
|
||||
SourceLocation prefixStart = CurrentLocation;
|
||||
var prefixStart = CurrentLocation;
|
||||
var prefix = ReadWhile(sym => sym.Type == HtmlSymbolType.WhiteSpace || sym.Type == HtmlSymbolType.NewLine);
|
||||
Accept(prefix);
|
||||
|
||||
if (At(HtmlSymbolType.Transition))
|
||||
{
|
||||
SourceLocation valueStart = CurrentLocation;
|
||||
var valueStart = CurrentLocation;
|
||||
PutCurrentBack();
|
||||
|
||||
// Output the prefix but as a null-span. DynamicAttributeBlockCodeGenerator will render it
|
||||
|
|
@ -543,7 +543,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
NextIs(HtmlSymbolType.ForwardSlash))
|
||||
{
|
||||
// Virtual Path value
|
||||
SourceLocation valueStart = CurrentLocation;
|
||||
var valueStart = CurrentLocation;
|
||||
VirtualPath();
|
||||
Span.CodeGenerator = new LiteralAttributeCodeGenerator(
|
||||
prefix.GetContent(prefixStart),
|
||||
|
|
@ -634,7 +634,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
private void ParseQuoted()
|
||||
{
|
||||
HtmlSymbolType type = CurrentSymbol.Type;
|
||||
var type = CurrentSymbol.Type;
|
||||
AcceptAndMoveNext();
|
||||
ParseQuoted(type);
|
||||
}
|
||||
|
|
@ -674,9 +674,9 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
AcceptAndMoveNext();
|
||||
|
||||
int bookmark = CurrentLocation.AbsoluteIndex;
|
||||
var bookmark = CurrentLocation.AbsoluteIndex;
|
||||
IEnumerable<HtmlSymbol> tokens = ReadWhile(IsSpacingToken(includeNewLines: true));
|
||||
bool empty = At(HtmlSymbolType.ForwardSlash);
|
||||
var empty = At(HtmlSymbolType.ForwardSlash);
|
||||
if (empty)
|
||||
{
|
||||
Accept(tokens);
|
||||
|
|
@ -727,7 +727,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
return false;
|
||||
}
|
||||
|
||||
bool isEmpty = At(HtmlSymbolType.ForwardSlash);
|
||||
var isEmpty = At(HtmlSymbolType.ForwardSlash);
|
||||
// Found a solidus, so don't accept it but DON'T push the tag to the stack
|
||||
if (isEmpty)
|
||||
{
|
||||
|
|
@ -735,7 +735,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
|
||||
// Check for the '>' to determine if the tag is finished
|
||||
bool seenClose = Optional(HtmlSymbolType.CloseAngle);
|
||||
var seenClose = Optional(HtmlSymbolType.CloseAngle);
|
||||
if (!seenClose)
|
||||
{
|
||||
Context.OnError(tag.Item2, RazorResources.FormatParseError_UnfinishedTag(tag.Item1.Content));
|
||||
|
|
@ -745,7 +745,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
if (!isEmpty)
|
||||
{
|
||||
// Is this a void element?
|
||||
string tagName = tag.Item1.Content.Trim();
|
||||
var tagName = tag.Item1.Content.Trim();
|
||||
if (VoidElements.Contains(tagName))
|
||||
{
|
||||
CompleteTagBlockWithSpan(tagBlockWrapper, AcceptedCharacters.None, SpanKind.Markup);
|
||||
|
|
@ -753,7 +753,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
// 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
|
||||
// Place a bookmark
|
||||
int bookmark = CurrentLocation.AbsoluteIndex;
|
||||
var bookmark = CurrentLocation.AbsoluteIndex;
|
||||
|
||||
// Skip whitespace
|
||||
IEnumerable<HtmlSymbol> whiteSpace = ReadWhile(IsSpacingToken(includeNewLines: true));
|
||||
|
|
@ -761,10 +761,10 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
// Open Angle
|
||||
if (At(HtmlSymbolType.OpenAngle) && NextIs(HtmlSymbolType.ForwardSlash))
|
||||
{
|
||||
HtmlSymbol openAngle = CurrentSymbol;
|
||||
var openAngle = CurrentSymbol;
|
||||
NextToken();
|
||||
Assert(HtmlSymbolType.ForwardSlash);
|
||||
HtmlSymbol solidus = CurrentSymbol;
|
||||
var solidus = CurrentSymbol;
|
||||
NextToken();
|
||||
if (At(HtmlSymbolType.Text) && string.Equals(CurrentSymbol.Content, tagName, StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
|
|
@ -819,12 +819,12 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private void SkipToEndScriptAndParseCode(AcceptedCharacters endTagAcceptedCharacters = AcceptedCharacters.Any)
|
||||
{
|
||||
// Special case for <script>: Skip to end of script tag and parse code
|
||||
bool seenEndScript = false;
|
||||
var seenEndScript = false;
|
||||
|
||||
while (!seenEndScript && !EndOfFile)
|
||||
{
|
||||
SkipToAndParseCode(HtmlSymbolType.OpenAngle);
|
||||
SourceLocation tagStart = CurrentLocation;
|
||||
var tagStart = CurrentLocation;
|
||||
|
||||
if (NextIs(HtmlSymbolType.ForwardSlash))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
private void NestingSection(Tuple<string, string> nestingSequences)
|
||||
{
|
||||
int nesting = 1;
|
||||
var nesting = 1;
|
||||
while (nesting > 0 && !EndOfFile)
|
||||
{
|
||||
SkipToAndParseCode(sym =>
|
||||
|
|
@ -92,7 +92,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
EnsureCurrent();
|
||||
if (String.Equals(CurrentSymbol.Content, nestingSequenceComponents[0], Comparison))
|
||||
{
|
||||
int bookmark = CurrentSymbol.Start.AbsoluteIndex;
|
||||
var bookmark = CurrentSymbol.Start.AbsoluteIndex;
|
||||
try
|
||||
{
|
||||
foreach (string component in nestingSequenceComponents)
|
||||
|
|
@ -122,7 +122,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
for (int i = 0; i < CurrentSymbol.Content.Length; i++)
|
||||
{
|
||||
int nestingDelta = HandleNestingSequence(nestingSequences.Item1, i, currentNesting, 1);
|
||||
var nestingDelta = HandleNestingSequence(nestingSequences.Item1, i, currentNesting, 1);
|
||||
if (nestingDelta == 0)
|
||||
{
|
||||
nestingDelta = HandleNestingSequence(nestingSequences.Item2, i, currentNesting, -1);
|
||||
|
|
@ -142,21 +142,21 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
CurrentSymbol.Content[position] == sequence[0] &&
|
||||
position + sequence.Length <= CurrentSymbol.Content.Length)
|
||||
{
|
||||
string possibleStart = CurrentSymbol.Content.Substring(position, sequence.Length);
|
||||
var possibleStart = CurrentSymbol.Content.Substring(position, sequence.Length);
|
||||
if (String.Equals(possibleStart, sequence, Comparison))
|
||||
{
|
||||
// Capture the current symbol and "put it back" (really we just want to clear CurrentSymbol)
|
||||
int bookmark = Context.Source.Position;
|
||||
HtmlSymbol sym = CurrentSymbol;
|
||||
var bookmark = Context.Source.Position;
|
||||
var sym = CurrentSymbol;
|
||||
PutCurrentBack();
|
||||
|
||||
// Carve up the symbol
|
||||
Tuple<HtmlSymbol, HtmlSymbol> pair = Language.SplitSymbol(sym, position, HtmlSymbolType.Text);
|
||||
HtmlSymbol preSequence = pair.Item1;
|
||||
var preSequence = pair.Item1;
|
||||
Debug.Assert(pair.Item2 != null);
|
||||
pair = Language.SplitSymbol(pair.Item2, sequence.Length, HtmlSymbolType.Text);
|
||||
HtmlSymbol sequenceToken = pair.Item1;
|
||||
HtmlSymbol postSequence = pair.Item2;
|
||||
var sequenceToken = pair.Item1;
|
||||
var postSequence = pair.Item2;
|
||||
|
||||
// Accept the first chunk (up to the nesting sequence we just saw)
|
||||
if (!String.IsNullOrEmpty(preSequence.Content))
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
protected void SkipToAndParseCode(Func<HtmlSymbol, bool> condition)
|
||||
{
|
||||
HtmlSymbol last = null;
|
||||
bool startOfLine = false;
|
||||
var startOfLine = false;
|
||||
while (!EndOfFile && !condition(CurrentSymbol))
|
||||
{
|
||||
if (At(HtmlSymbolType.NewLine))
|
||||
|
|
@ -86,7 +86,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
else if (At(HtmlSymbolType.Transition))
|
||||
{
|
||||
HtmlSymbol transition = CurrentSymbol;
|
||||
var transition = CurrentSymbol;
|
||||
NextToken();
|
||||
if (At(HtmlSymbolType.Transition))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
using (SeekableTextReader reader = new SeekableTextReader(input))
|
||||
{
|
||||
TTokenizer tok = CreateTokenizer(reader);
|
||||
var tok = CreateTokenizer(reader);
|
||||
TSymbol sym;
|
||||
while ((sym = tok.NextSymbol()) != null)
|
||||
{
|
||||
|
|
@ -93,7 +93,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
public virtual Tuple<TSymbol, TSymbol> SplitSymbol(TSymbol symbol, int splitAt, TSymbolType leftType)
|
||||
{
|
||||
TSymbol left = CreateSymbol(symbol.Start, symbol.Content.Substring(0, splitAt), leftType, Enumerable.Empty<RazorError>());
|
||||
var left = CreateSymbol(symbol.Start, symbol.Content.Substring(0, splitAt), leftType, Enumerable.Empty<RazorError>());
|
||||
TSymbol right = null;
|
||||
if (splitAt < symbol.Content.Length)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
protected override SyntaxTreeNode RewriteSpan(BlockBuilder parent, Span span)
|
||||
{
|
||||
// Only rewrite if we have a previous that is also markup (CanRewrite does this check for us!)
|
||||
Span previous = parent.Children.LastOrDefault() as Span;
|
||||
var previous = parent.Children.LastOrDefault() as Span;
|
||||
if (previous == null || !CanRewrite(previous))
|
||||
{
|
||||
return span;
|
||||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
// Merge spans
|
||||
parent.Children.Remove(previous);
|
||||
SpanBuilder merged = new SpanBuilder();
|
||||
var merged = new SpanBuilder();
|
||||
FillSpan(merged, previous.Start, previous.Content + span.Content);
|
||||
return merged.Build();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
if (CanRewrite(block))
|
||||
{
|
||||
SyntaxTreeNode newNode = RewriteBlock(_blocks.Peek(), block);
|
||||
var newNode = RewriteBlock(_blocks.Peek(), block);
|
||||
if (newNode != null)
|
||||
{
|
||||
_blocks.Peek().Children.Add(newNode);
|
||||
|
|
@ -48,7 +48,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
else
|
||||
{
|
||||
// Not rewritable.
|
||||
BlockBuilder builder = new BlockBuilder(block);
|
||||
var builder = new BlockBuilder(block);
|
||||
builder.Children.Clear();
|
||||
_blocks.Push(builder);
|
||||
base.VisitBlock(block);
|
||||
|
|
@ -66,7 +66,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
if (CanRewrite(span))
|
||||
{
|
||||
SyntaxTreeNode newNode = RewriteSpan(_blocks.Peek(), span);
|
||||
var newNode = RewriteSpan(_blocks.Peek(), span);
|
||||
if (newNode != null)
|
||||
{
|
||||
_blocks.Peek().Children.Add(newNode);
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
return '\0';
|
||||
}
|
||||
#endif
|
||||
int ch = Source.Peek();
|
||||
var ch = Source.Peek();
|
||||
if (ch == -1)
|
||||
{
|
||||
return '\0';
|
||||
|
|
@ -162,7 +162,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
}
|
||||
if (_blockStack.Count > 1)
|
||||
{
|
||||
BlockBuilder block = _blockStack.Pop();
|
||||
var block = _blockStack.Pop();
|
||||
_blockStack.Peek().Children.Add(block.Build());
|
||||
}
|
||||
else
|
||||
|
|
@ -269,7 +269,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
{
|
||||
get
|
||||
{
|
||||
string remaining = Source.ReadToEnd();
|
||||
var remaining = Source.ReadToEnd();
|
||||
Source.Position -= remaining.Length;
|
||||
return remaining;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
public static bool IsLetter(char value)
|
||||
{
|
||||
UnicodeCategory cat = CharUnicodeInfo.GetUnicodeCategory(value);
|
||||
var cat = CharUnicodeInfo.GetUnicodeCategory(value);
|
||||
|
||||
return cat == UnicodeCategory.UppercaseLetter
|
||||
|| cat == UnicodeCategory.LowercaseLetter
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
[Obsolete("Lookahead-based readers have been deprecated, use overrides which accept a TextReader or ITextDocument instead")]
|
||||
public virtual void Parse(LookaheadTextReader input, ParserVisitor visitor)
|
||||
{
|
||||
ParserResults results = ParseCore(new SeekableTextReader(input));
|
||||
var results = ParseCore(new SeekableTextReader(input));
|
||||
|
||||
// Replay the results on the visitor
|
||||
visitor.Visit(results);
|
||||
|
|
@ -149,7 +149,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
private ParserResults ParseCore(ITextDocument input)
|
||||
{
|
||||
// Setup the parser context
|
||||
ParserContext context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser)
|
||||
var context = new ParserContext(input, CodeParser, MarkupParser, MarkupParser)
|
||||
{
|
||||
DesignTimeMode = DesignTimeMode
|
||||
};
|
||||
|
|
@ -161,7 +161,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
MarkupParser.ParseDocument();
|
||||
|
||||
// Get the result
|
||||
ParserResults results = context.CompleteParse();
|
||||
var results = context.CompleteParse();
|
||||
|
||||
// Rewrite whitespace if supported
|
||||
var rewritingContext = new RewritingContext(results.Document);
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Block other = obj as Block;
|
||||
var other = obj as Block;
|
||||
return other != null &&
|
||||
Type == other.Type &&
|
||||
Equals(CodeGenerator, other.CodeGenerator) &&
|
||||
|
|
@ -126,14 +126,14 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
// Create an enumerable that flattens the tree for use by syntax highlighters, etc.
|
||||
foreach (SyntaxTreeNode element in Children)
|
||||
{
|
||||
Span span = element as Span;
|
||||
var span = element as Span;
|
||||
if (span != null)
|
||||
{
|
||||
yield return span;
|
||||
}
|
||||
else
|
||||
{
|
||||
Block block = element as Block;
|
||||
var block = element as Block;
|
||||
foreach (Span childSpan in block.Flatten())
|
||||
{
|
||||
yield return childSpan;
|
||||
|
|
@ -148,7 +148,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
Span owner = null;
|
||||
foreach (SyntaxTreeNode element in Children)
|
||||
{
|
||||
Span span = element as Span;
|
||||
var span = element as Span;
|
||||
if (span == null)
|
||||
{
|
||||
owner = ((Block)element).LocateOwner(change);
|
||||
|
|
@ -196,7 +196,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override bool EquivalentTo(SyntaxTreeNode node)
|
||||
{
|
||||
Block other = node as Block;
|
||||
var other = node as Block;
|
||||
if (other == null || other.Type != Type)
|
||||
{
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
RazorError err = obj as RazorError;
|
||||
var err = obj as RazorError;
|
||||
return (err != null) && (Equals(err));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public void Change(Action<SpanBuilder> changes)
|
||||
{
|
||||
SpanBuilder builder = new SpanBuilder(this);
|
||||
var builder = new SpanBuilder(this);
|
||||
changes(builder);
|
||||
ReplaceWith(builder);
|
||||
}
|
||||
|
|
@ -87,7 +87,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var builder = new StringBuilder();
|
||||
builder.Append(Kind);
|
||||
builder.AppendFormat(" Span at {0}::{1} - [{2}]", Start, Length, Content);
|
||||
builder.Append(" Edit: <");
|
||||
|
|
@ -104,8 +104,8 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
public void ChangeStart(SourceLocation newStart)
|
||||
{
|
||||
_start = newStart;
|
||||
Span current = this;
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(newStart);
|
||||
var current = this;
|
||||
var tracker = new SourceLocationTracker(newStart);
|
||||
tracker.UpdateLocation(Content);
|
||||
while ((current = current.Next) != null)
|
||||
{
|
||||
|
|
@ -124,7 +124,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
/// </summary>
|
||||
public override bool EquivalentTo(SyntaxTreeNode node)
|
||||
{
|
||||
Span other = node as Span;
|
||||
var other = node as Span;
|
||||
return other != null &&
|
||||
Kind.Equals(other.Kind) &&
|
||||
Start.Equals(other.Start) &&
|
||||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNet.Razor.Parser.SyntaxTree
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Span other = obj as Span;
|
||||
var other = obj as Span;
|
||||
return other != null &&
|
||||
Kind.Equals(other.Kind) &&
|
||||
EditHandler.Equals(other.EditHandler) &&
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
throw new ArgumentNullException("condition");
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int ch = -1;
|
||||
var builder = new StringBuilder();
|
||||
var ch = -1;
|
||||
while ((ch = reader.Peek()) != -1 && !condition((char)ch))
|
||||
{
|
||||
reader.Read(); // Advance the reader
|
||||
|
|
|
|||
|
|
@ -66,9 +66,9 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected internal bool Balance(BalancingModes mode)
|
||||
{
|
||||
TSymbolType left = CurrentSymbol.Type;
|
||||
TSymbolType right = Language.FlipBracket(left);
|
||||
SourceLocation start = CurrentLocation;
|
||||
var left = CurrentSymbol.Type;
|
||||
var right = Language.FlipBracket(left);
|
||||
var start = CurrentLocation;
|
||||
AcceptAndMoveNext();
|
||||
if (EndOfFile && ((mode & BalancingModes.NoErrorOnFailure) != BalancingModes.NoErrorOnFailure))
|
||||
{
|
||||
|
|
@ -83,8 +83,8 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected internal bool Balance(BalancingModes mode, TSymbolType left, TSymbolType right, SourceLocation start)
|
||||
{
|
||||
int startPosition = CurrentLocation.AbsoluteIndex;
|
||||
int nesting = 1;
|
||||
var startPosition = CurrentLocation.AbsoluteIndex;
|
||||
var nesting = 1;
|
||||
if (!EndOfFile)
|
||||
{
|
||||
IList<TSymbol> syms = new List<TSymbol>();
|
||||
|
|
@ -156,9 +156,9 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected internal bool NextIs(Func<TSymbol, bool> condition)
|
||||
{
|
||||
TSymbol cur = CurrentSymbol;
|
||||
var cur = CurrentSymbol;
|
||||
NextToken();
|
||||
bool result = condition(CurrentSymbol);
|
||||
var result = condition(CurrentSymbol);
|
||||
PutCurrentBack();
|
||||
PutBack(cur);
|
||||
EnsureCurrent();
|
||||
|
|
@ -335,7 +335,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected internal bool Required(TSymbolType expected, bool errorIfNotFound, Func<string, string> errorBase)
|
||||
{
|
||||
bool found = At(expected);
|
||||
var found = At(expected);
|
||||
if (!found && errorIfNotFound)
|
||||
{
|
||||
string error;
|
||||
|
|
@ -506,7 +506,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
using (Context.StartBlock(BlockType.Comment))
|
||||
{
|
||||
Context.CurrentBlock.CodeGenerator = new RazorCommentCodeGenerator();
|
||||
SourceLocation start = CurrentLocation;
|
||||
var start = CurrentLocation;
|
||||
|
||||
Expected(KnownSymbolType.CommentStart);
|
||||
Output(SpanKind.Transition, AcceptedCharacters.None);
|
||||
|
|
@ -518,7 +518,7 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
AddMarkerSymbolIfNecessary();
|
||||
Output(SpanKind.Comment);
|
||||
|
||||
bool errorReported = false;
|
||||
var errorReported = false;
|
||||
if (!Optional(KnownSymbolType.CommentStar))
|
||||
{
|
||||
errorReported = true;
|
||||
|
|
|
|||
|
|
@ -52,14 +52,14 @@ namespace Microsoft.AspNet.Razor.Parser
|
|||
|
||||
protected override SyntaxTreeNode RewriteBlock(BlockBuilder parent, Block block)
|
||||
{
|
||||
BlockBuilder newBlock = new BlockBuilder(block);
|
||||
var newBlock = new BlockBuilder(block);
|
||||
newBlock.Children.Clear();
|
||||
Span ws = block.Children.FirstOrDefault() as Span;
|
||||
var ws = block.Children.FirstOrDefault() as Span;
|
||||
IEnumerable<SyntaxTreeNode> newNodes = block.Children;
|
||||
if (ws.Content.All(Char.IsWhiteSpace))
|
||||
{
|
||||
// Add this node to the parent
|
||||
SpanBuilder builder = new SpanBuilder(ws);
|
||||
var builder = new SpanBuilder(ws);
|
||||
builder.ClearSymbols();
|
||||
FillSpan(builder, ws.Start, ws.Content);
|
||||
parent.Children.Add(builder.Build());
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ namespace Microsoft.AspNet.Razor
|
|||
|
||||
RunTask(() =>
|
||||
{
|
||||
string outputFileName = Normalize(sourceFile) + "_tree";
|
||||
string outputPath = Path.Combine(Path.GetDirectoryName(sourceFile), outputFileName);
|
||||
var outputFileName = Normalize(sourceFile) + "_tree";
|
||||
var outputPath = Path.Combine(Path.GetDirectoryName(sourceFile), outputFileName);
|
||||
|
||||
var treeBuilder = new StringBuilder();
|
||||
WriteTree(document, treeBuilder);
|
||||
|
|
@ -140,7 +140,7 @@ namespace Microsoft.AspNet.Razor
|
|||
|
||||
private static string ConvertEscapseSequences(string value)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
var sb = new StringBuilder();
|
||||
foreach (var ch in value)
|
||||
{
|
||||
sb.Append(GetCharValue(ch));
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNet.Razor
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
RazorDirectiveAttribute attribute = obj as RazorDirectiveAttribute;
|
||||
var attribute = obj as RazorDirectiveAttribute;
|
||||
return attribute != null &&
|
||||
Name.Equals(attribute.Name, StringComparison.OrdinalIgnoreCase) &&
|
||||
StringComparer.OrdinalIgnoreCase.Equals(Value, attribute.Value);
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Razor
|
|||
{
|
||||
if (_lastAutoCompleteSpan != null)
|
||||
{
|
||||
AutoCompleteEditHandler editHandler = _lastAutoCompleteSpan.EditHandler as AutoCompleteEditHandler;
|
||||
var editHandler = _lastAutoCompleteSpan.EditHandler as AutoCompleteEditHandler;
|
||||
if (editHandler != null)
|
||||
{
|
||||
return editHandler.AutoCompleteString;
|
||||
|
|
@ -128,7 +128,7 @@ namespace Microsoft.AspNet.Razor
|
|||
// Validate the change
|
||||
long? elapsedMs = null;
|
||||
#if EDITOR_TRACING
|
||||
Stopwatch sw = new Stopwatch();
|
||||
var sw = new Stopwatch();
|
||||
sw.Start();
|
||||
#endif
|
||||
RazorEditorTrace.TraceLine(RazorResources.FormatTrace_EditorReceivedChange(Path.GetFileName(FileName), change));
|
||||
|
|
@ -139,10 +139,10 @@ namespace Microsoft.AspNet.Razor
|
|||
"TextChange"), "change");
|
||||
}
|
||||
|
||||
PartialParseResult result = PartialParseResult.Rejected;
|
||||
var result = PartialParseResult.Rejected;
|
||||
|
||||
// If there isn't already a parse underway, try partial-parsing
|
||||
string changeString = String.Empty;
|
||||
var changeString = String.Empty;
|
||||
using (_parser.SynchronizeMainThreadState())
|
||||
{
|
||||
// Capture the string value of the change while we're synchronized
|
||||
|
|
@ -199,12 +199,12 @@ namespace Microsoft.AspNet.Razor
|
|||
|
||||
private PartialParseResult TryPartialParse(TextChange change)
|
||||
{
|
||||
PartialParseResult result = PartialParseResult.Rejected;
|
||||
var result = PartialParseResult.Rejected;
|
||||
|
||||
// Try the last change owner
|
||||
if (_lastChangeOwner != null && _lastChangeOwner.EditHandler.OwnsChange(_lastChangeOwner, change))
|
||||
{
|
||||
EditResult editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, change);
|
||||
var editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, change);
|
||||
result = editResult.Result;
|
||||
if ((editResult.Result & PartialParseResult.Rejected) != PartialParseResult.Rejected)
|
||||
{
|
||||
|
|
@ -224,7 +224,7 @@ namespace Microsoft.AspNet.Razor
|
|||
}
|
||||
else if (_lastChangeOwner != null)
|
||||
{
|
||||
EditResult editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, change);
|
||||
var editResult = _lastChangeOwner.EditHandler.ApplyChange(_lastChangeOwner, change);
|
||||
result = editResult.Result;
|
||||
if ((editResult.Result & PartialParseResult.Rejected) != PartialParseResult.Rejected)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public override int Read()
|
||||
{
|
||||
int ch = CurrentCharacter;
|
||||
var ch = CurrentCharacter;
|
||||
NextCharacter();
|
||||
return ch;
|
||||
}
|
||||
|
|
@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
// Mark the position to return to when we backtrack
|
||||
// Use the closures and the "using" statement rather than an explicit stack
|
||||
BacktrackContext context = new BacktrackContext()
|
||||
var context = new BacktrackContext()
|
||||
{
|
||||
BufferIndex = _currentBufferPosition,
|
||||
Location = CurrentLocation
|
||||
|
|
@ -123,7 +123,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
protected virtual void NextCharacter()
|
||||
{
|
||||
int prevChar = CurrentCharacter;
|
||||
var prevChar = CurrentCharacter;
|
||||
if (prevChar == -1)
|
||||
{
|
||||
return; // We're at the end of the source
|
||||
|
|
@ -166,7 +166,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
protected bool ExpandBuffer()
|
||||
{
|
||||
// Pull another character into the buffer and update the position
|
||||
int ch = InnerReader.Read();
|
||||
var ch = InnerReader.Read();
|
||||
|
||||
// Only append the character to the buffer if there actually is one
|
||||
if (ch != -1)
|
||||
|
|
|
|||
|
|
@ -48,12 +48,12 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public CharacterReference CharAt(int absoluteIndex)
|
||||
{
|
||||
TextLine line = FindLine(absoluteIndex);
|
||||
var line = FindLine(absoluteIndex);
|
||||
if (line == null)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("absoluteIndex");
|
||||
}
|
||||
int idx = absoluteIndex - line.Start;
|
||||
var idx = absoluteIndex - line.Start;
|
||||
return new CharacterReference(line.Content[idx], new SourceLocation(absoluteIndex, line.Index, idx));
|
||||
}
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
{
|
||||
for (int i = 0; i < _lines.Count; i++)
|
||||
{
|
||||
int idx = (i + startPos) % _lines.Count;
|
||||
var idx = (i + startPos) % _lines.Count;
|
||||
Debug.Assert(idx >= 0 && idx < _lines.Count);
|
||||
|
||||
if (_lines[idx].Contains(absoluteIndex))
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
{
|
||||
return -1;
|
||||
}
|
||||
char chr = _current.Value;
|
||||
var chr = _current.Value;
|
||||
_position++;
|
||||
UpdateState();
|
||||
return chr;
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public static SourceLocation Advance(SourceLocation left, string text)
|
||||
{
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(left);
|
||||
var tracker = new SourceLocationTracker(left);
|
||||
tracker.UpdateLocation(text);
|
||||
return tracker.CurrentLocation;
|
||||
}
|
||||
|
|
@ -101,7 +101,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
private static SourceLocation CreateUndefined()
|
||||
{
|
||||
SourceLocation sl = new SourceLocation();
|
||||
var sl = new SourceLocation();
|
||||
sl._absoluteIndex = -1;
|
||||
sl._lineIndex = -1;
|
||||
sl._characterIndex = -1;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
{
|
||||
for (int i = 0; i < content.Length; i++)
|
||||
{
|
||||
char nextCharacter = '\0';
|
||||
var nextCharacter = '\0';
|
||||
if (i < content.Length - 1)
|
||||
{
|
||||
nextCharacter = content[i + 1];
|
||||
|
|
|
|||
|
|
@ -36,11 +36,11 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public override int Read()
|
||||
{
|
||||
int read = InnerBuffer.Read();
|
||||
var read = InnerBuffer.Read();
|
||||
if (read != -1)
|
||||
{
|
||||
char nextChar = '\0';
|
||||
int next = Peek();
|
||||
var nextChar = '\0';
|
||||
var next = Peek();
|
||||
if (next != -1)
|
||||
{
|
||||
nextChar = (char)next;
|
||||
|
|
@ -54,7 +54,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
{
|
||||
if (disposing)
|
||||
{
|
||||
IDisposable disposable = InnerBuffer as IDisposable;
|
||||
var disposable = InnerBuffer as IDisposable;
|
||||
if (disposable != null)
|
||||
{
|
||||
disposable.Dispose();
|
||||
|
|
@ -65,7 +65,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public override IDisposable BeginLookahead()
|
||||
{
|
||||
BacktrackContext context = new BacktrackContext() { Location = CurrentLocation };
|
||||
var context = new BacktrackContext() { Location = CurrentLocation };
|
||||
_bookmarks.Push(context);
|
||||
return new DisposableAction(() =>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
{
|
||||
return false;
|
||||
}
|
||||
TextChange change = (TextChange)obj;
|
||||
var change = (TextChange)obj;
|
||||
return (change.OldPosition == OldPosition) &&
|
||||
(change.NewPosition == NewPosition) &&
|
||||
(change.OldLength == OldLength) &&
|
||||
|
|
@ -132,7 +132,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public string ApplyChange(string content, int changeOffset)
|
||||
{
|
||||
int changeRelativePosition = OldPosition - changeOffset;
|
||||
var changeRelativePosition = OldPosition - changeOffset;
|
||||
|
||||
Debug.Assert(changeRelativePosition >= 0);
|
||||
return content.Remove(changeRelativePosition, OldLength)
|
||||
|
|
@ -185,7 +185,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
return String.Empty;
|
||||
}
|
||||
|
||||
int oldPosition = buffer.Position;
|
||||
var oldPosition = buffer.Position;
|
||||
try
|
||||
{
|
||||
buffer.Position = position;
|
||||
|
|
@ -200,7 +200,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
var builder = new StringBuilder();
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
char c = (char)buffer.Read();
|
||||
var c = (char)buffer.Read();
|
||||
builder.Append(c);
|
||||
|
||||
// This check is probably not necessary, will revisit when fixing https://aspnetwebstack.codeplex.com/workitem/1317
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
[SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "The consumer is expected to dispose this object")]
|
||||
public static ITextDocument ToDocument(this ITextBuffer self)
|
||||
{
|
||||
ITextDocument ret = self as ITextDocument;
|
||||
var ret = self as ITextDocument;
|
||||
if (ret == null)
|
||||
{
|
||||
ret = new SeekableTextReader(self);
|
||||
|
|
@ -26,7 +26,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public static LookaheadToken BeginLookahead(this ITextBuffer self)
|
||||
{
|
||||
int start = self.Position;
|
||||
var start = self.Position;
|
||||
return new LookaheadToken(() =>
|
||||
{
|
||||
self.Position = start;
|
||||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNet.Razor.Text
|
|||
|
||||
public static string ReadToEnd(this ITextBuffer self)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var builder = new StringBuilder();
|
||||
int read;
|
||||
while ((read = self.Read()) != -1)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
|
||||
private static bool IsIdentifierPartByUnicodeCategory(char character)
|
||||
{
|
||||
UnicodeCategory category = CharUnicodeInfo.GetUnicodeCategory(character);
|
||||
var category = CharUnicodeInfo.GetUnicodeCategory(character);
|
||||
|
||||
return category == UnicodeCategory.NonSpacingMark || // Mn
|
||||
category == UnicodeCategory.SpacingCombiningMark || // Mc
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
if (ParserHelpers.IsNewLine(CurrentCharacter))
|
||||
{
|
||||
// CSharp Spec §2.3.1
|
||||
bool checkTwoCharNewline = CurrentCharacter == '\r';
|
||||
var checkTwoCharNewline = CurrentCharacter == '\r';
|
||||
TakeCurrent();
|
||||
if (checkTwoCharNewline && CurrentCharacter == '\n')
|
||||
{
|
||||
|
|
@ -168,7 +168,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
|
||||
private CSharpSymbolType Operator()
|
||||
{
|
||||
char first = CurrentCharacter;
|
||||
var first = CurrentCharacter;
|
||||
TakeCurrent();
|
||||
Func<CSharpSymbolType> handler;
|
||||
if (_operatorHandlers.TryGetValue(first, out handler))
|
||||
|
|
@ -418,8 +418,8 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
CSharpSymbol sym = null;
|
||||
if (HaveContent)
|
||||
{
|
||||
CSharpKeyword? kwd = CSharpKeywordDetector.SymbolTypeForIdentifier(Buffer.ToString());
|
||||
CSharpSymbolType type = CSharpSymbolType.Identifier;
|
||||
var kwd = CSharpKeywordDetector.SymbolTypeForIdentifier(Buffer.ToString());
|
||||
var type = CSharpSymbolType.Identifier;
|
||||
if (kwd != null)
|
||||
{
|
||||
type = CSharpSymbolType.Keyword;
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
{
|
||||
using (SeekableTextReader reader = new SeekableTextReader(content))
|
||||
{
|
||||
HtmlTokenizer tok = new HtmlTokenizer(reader);
|
||||
var tok = new HtmlTokenizer(reader);
|
||||
HtmlSymbol sym;
|
||||
while ((sym = tok.NextSymbol()) != null)
|
||||
{
|
||||
|
|
@ -100,7 +100,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
|
||||
private StateResult Text()
|
||||
{
|
||||
char prev = '\0';
|
||||
var prev = '\0';
|
||||
while (!EndOfFile && !ParserHelpers.IsWhitespaceOrNewLine(CurrentCharacter) && !AtSymbol())
|
||||
{
|
||||
prev = CurrentCharacter;
|
||||
|
|
@ -109,7 +109,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
|
||||
if (CurrentCharacter == '@')
|
||||
{
|
||||
char next = Peek();
|
||||
var next = Peek();
|
||||
if (ParserHelpers.IsLetterOrDecimalDigit(prev) && ParserHelpers.IsLetterOrDecimalDigit(next))
|
||||
{
|
||||
TakeCurrent(); // Take the "@"
|
||||
|
|
@ -124,7 +124,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
private HtmlSymbol Symbol()
|
||||
{
|
||||
Debug.Assert(AtSymbol());
|
||||
char sym = CurrentCharacter;
|
||||
var sym = CurrentCharacter;
|
||||
TakeCurrent();
|
||||
switch (sym)
|
||||
{
|
||||
|
|
@ -177,7 +177,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
{
|
||||
Debug.Assert(ParserHelpers.IsNewLine(CurrentCharacter));
|
||||
// CSharp Spec §2.3.1
|
||||
bool checkTwoCharNewline = CurrentCharacter == '\r';
|
||||
var checkTwoCharNewline = CurrentCharacter == '\r';
|
||||
TakeCurrent();
|
||||
if (checkTwoCharNewline && CurrentCharacter == '\n')
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer.Symbols
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
CSharpSymbol other = obj as CSharpSymbol;
|
||||
var other = obj as CSharpSymbol;
|
||||
return base.Equals(obj) && other.Keyword == Keyword;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
{
|
||||
get
|
||||
{
|
||||
int peek = Source.Peek();
|
||||
var peek = Source.Peek();
|
||||
return peek == -1 ? '\0' : (char)peek;
|
||||
}
|
||||
}
|
||||
|
|
@ -77,7 +77,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
{
|
||||
return null;
|
||||
}
|
||||
TSymbol sym = Turn();
|
||||
var sym = Turn();
|
||||
|
||||
// Post-Condition: Buffer should be empty at the end of Next()
|
||||
Debug.Assert(Buffer.Length == 0);
|
||||
|
|
@ -100,7 +100,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
|
||||
protected bool TakeString(string input, bool caseSensitive)
|
||||
{
|
||||
int position = 0;
|
||||
var position = 0;
|
||||
Func<char, char> charFilter = c => c;
|
||||
if (caseSensitive)
|
||||
{
|
||||
|
|
@ -148,7 +148,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
CurrentStart = previous.Start;
|
||||
|
||||
// Capture the current buffer content
|
||||
string newContent = Buffer.ToString();
|
||||
var newContent = Buffer.ToString();
|
||||
|
||||
// Clear the buffer, then put the old content back and add the new content to the end
|
||||
Buffer.Clear();
|
||||
|
|
@ -227,8 +227,8 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
TakeUntil(c => c == '*');
|
||||
if (CurrentCharacter == '*')
|
||||
{
|
||||
char star = CurrentCharacter;
|
||||
SourceLocation start = CurrentLocation;
|
||||
var star = CurrentCharacter;
|
||||
var start = CurrentLocation;
|
||||
MoveNext();
|
||||
if (!EndOfFile && CurrentCharacter == '@')
|
||||
{
|
||||
|
|
@ -351,7 +351,7 @@ namespace Microsoft.AspNet.Razor.Tokenizer
|
|||
{
|
||||
get
|
||||
{
|
||||
string remaining = Source.ReadToEnd();
|
||||
var remaining = Source.ReadToEnd();
|
||||
Source.Seek(-remaining.Length);
|
||||
return remaining;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void CreateCodeParserReturnsNewCSharpCodeParser()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeLanguage service = new CSharpRazorCodeLanguage();
|
||||
var service = new CSharpRazorCodeLanguage();
|
||||
|
||||
// Act
|
||||
ParserBase parser = service.CreateCodeParser();
|
||||
var parser = service.CreateCodeParser();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(parser);
|
||||
|
|
@ -28,11 +28,11 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void CreateCodeGeneratorParserListenerReturnsNewCSharpCodeGeneratorParserListener()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeLanguage service = new CSharpRazorCodeLanguage();
|
||||
var service = new CSharpRazorCodeLanguage();
|
||||
|
||||
// Act
|
||||
RazorEngineHost host = new RazorEngineHost(service);
|
||||
RazorCodeGenerator generator = service.CreateCodeGenerator("Foo", "Bar", "Baz", host);
|
||||
var host = new RazorEngineHost(service);
|
||||
var generator = service.CreateCodeGenerator("Foo", "Bar", "Baz", host);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(generator);
|
||||
|
|
|
|||
|
|
@ -43,20 +43,20 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
public void TreesAreDifferentReturnsTrueIfTreeStructureIsDifferent()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Block original = new MarkupBlock(
|
||||
var original = new MarkupBlock(
|
||||
factory.Markup("<p>"),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition()),
|
||||
factory.Markup("</p>"));
|
||||
Block modified = new MarkupBlock(
|
||||
var modified = new MarkupBlock(
|
||||
factory.Markup("<p>"),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition("@"),
|
||||
factory.Code("f")
|
||||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)),
|
||||
factory.Markup("</p>"));
|
||||
ITextBuffer oldBuffer = new StringTextBuffer("<p>@</p>");
|
||||
ITextBuffer newBuffer = new StringTextBuffer("<p>@f</p>");
|
||||
var oldBuffer = new StringTextBuffer("<p>@</p>");
|
||||
var newBuffer = new StringTextBuffer("<p>@f</p>");
|
||||
Assert.True(BackgroundParser.TreesAreDifferent(
|
||||
original, modified, new[] {
|
||||
new TextChange(position: 4, oldLength: 0, oldBuffer: oldBuffer, newLength: 1, newBuffer: newBuffer)
|
||||
|
|
@ -67,7 +67,7 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
public void TreesAreDifferentReturnsFalseIfTreeStructureIsSame()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Block original = new MarkupBlock(
|
||||
var original = new MarkupBlock(
|
||||
factory.Markup("<p>"),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
|
|
@ -75,7 +75,7 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
.AsImplicitExpression(CSharpCodeParser.DefaultKeywords, acceptTrailingDot: false)),
|
||||
factory.Markup("</p>"));
|
||||
factory.Reset();
|
||||
Block modified = new MarkupBlock(
|
||||
var modified = new MarkupBlock(
|
||||
factory.Markup("<p>"),
|
||||
new ExpressionBlock(
|
||||
factory.CodeTransition(),
|
||||
|
|
@ -84,8 +84,8 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
factory.Markup("</p>"));
|
||||
original.LinkNodes();
|
||||
modified.LinkNodes();
|
||||
ITextBuffer oldBuffer = new StringTextBuffer("<p>@f</p>");
|
||||
ITextBuffer newBuffer = new StringTextBuffer("<p>@foo</p>");
|
||||
var oldBuffer = new StringTextBuffer("<p>@f</p>");
|
||||
var newBuffer = new StringTextBuffer("<p>@foo</p>");
|
||||
Assert.False(BackgroundParser.TreesAreDifferent(
|
||||
original, modified, new[] {
|
||||
new TextChange(position: 5, oldLength: 0, oldBuffer: oldBuffer, newLength: 2, newBuffer: newBuffer)
|
||||
|
|
@ -95,7 +95,7 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
[Fact]
|
||||
public void CheckForStructureChangesRequiresNonNullBufferInChange()
|
||||
{
|
||||
TextChange change = new TextChange();
|
||||
var change = new TextChange();
|
||||
var parameterName = "change";
|
||||
var exception = Assert.Throws<ArgumentException>(
|
||||
parameterName,
|
||||
|
|
@ -117,10 +117,10 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
// Arrange
|
||||
using (RazorEditorParser parser = CreateClientParser())
|
||||
{
|
||||
StringTextBuffer input = new StringTextBuffer(SimpleCSHTMLDocument.ReadAllText());
|
||||
var input = new StringTextBuffer(SimpleCSHTMLDocument.ReadAllText());
|
||||
|
||||
DocumentParseCompleteEventArgs capturedArgs = null;
|
||||
ManualResetEventSlim parseComplete = new ManualResetEventSlim(false);
|
||||
var parseComplete = new ManualResetEventSlim(false);
|
||||
|
||||
parser.DocumentParseComplete += (sender, args) =>
|
||||
{
|
||||
|
|
@ -144,13 +144,13 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
public void CheckForStructureChangesStartsFullReparseIfChangeOverlapsMultipleSpans()
|
||||
{
|
||||
// Arrange
|
||||
RazorEditorParser parser = new RazorEditorParser(CreateHost(), TestLinePragmaFileName);
|
||||
ITextBuffer original = new StringTextBuffer("Foo @bar Baz");
|
||||
ITextBuffer changed = new StringTextBuffer("Foo @bap Daz");
|
||||
TextChange change = new TextChange(7, 3, original, 3, changed);
|
||||
var parser = new RazorEditorParser(CreateHost(), TestLinePragmaFileName);
|
||||
var original = new StringTextBuffer("Foo @bar Baz");
|
||||
var changed = new StringTextBuffer("Foo @bap Daz");
|
||||
var change = new TextChange(7, 3, original, 3, changed);
|
||||
|
||||
ManualResetEventSlim parseComplete = new ManualResetEventSlim();
|
||||
int parseCount = 0;
|
||||
var parseComplete = new ManualResetEventSlim();
|
||||
var parseCount = 0;
|
||||
parser.DocumentParseComplete += (sender, args) =>
|
||||
{
|
||||
Interlocked.Increment(ref parseCount);
|
||||
|
|
@ -162,7 +162,7 @@ namespace Microsoft.AspNet.Razor.Test.Editor
|
|||
parseComplete.Reset();
|
||||
|
||||
// Act
|
||||
PartialParseResult result = parser.CheckForStructureChanges(change);
|
||||
var result = parser.CheckForStructureChanges(change);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(PartialParseResult.Rejected, result);
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
protected override void SingleSpanBlockTest(string document, string spanContent, BlockType blockType, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedErrors)
|
||||
{
|
||||
Block b = CreateSimpleBlockAndSpan(spanContent, blockType, spanType, acceptedCharacters);
|
||||
var b = CreateSimpleBlockAndSpan(spanContent, blockType, spanType, acceptedCharacters);
|
||||
ParseBlockTest(document, b, expectedErrors ?? new RazorError[0]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
protected virtual void SingleSpanDocumentTest(string document, BlockType blockType, SpanKind spanType)
|
||||
{
|
||||
Block b = CreateSimpleBlockAndSpan(document, blockType, spanType);
|
||||
var b = CreateSimpleBlockAndSpan(document, blockType, spanType);
|
||||
ParseDocumentTest(document, b);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
protected virtual void SingleSpanBlockTest(string document, string spanContent, BlockType blockType, SpanKind spanType, AcceptedCharacters acceptedCharacters, params RazorError[] expectedErrors)
|
||||
{
|
||||
BlockBuilder builder = new BlockBuilder();
|
||||
var builder = new BlockBuilder();
|
||||
builder.Type = blockType;
|
||||
ParseBlockTest(
|
||||
document,
|
||||
|
|
@ -167,13 +167,13 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
// Create the source
|
||||
ParserResults results = null;
|
||||
using (SeekableTextReader reader = new SeekableTextReader(document))
|
||||
using (var reader = new SeekableTextReader(document))
|
||||
{
|
||||
try
|
||||
{
|
||||
ParserBase codeParser = CreateCodeParser();
|
||||
ParserBase markupParser = CreateMarkupParser();
|
||||
ParserContext context = CreateParserContext(reader, codeParser, markupParser);
|
||||
var codeParser = CreateCodeParser();
|
||||
var markupParser = CreateMarkupParser();
|
||||
var context = CreateParserContext(reader, codeParser, markupParser);
|
||||
context.DesignTimeMode = designTimeParser;
|
||||
|
||||
codeParser.Context = context;
|
||||
|
|
@ -199,7 +199,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
protected virtual void RunParseTest(string document, Func<ParserBase, Action> parserActionSelector, Block expectedRoot, IList<RazorError> expectedErrors, bool designTimeParser, Func<ParserContext, ParserBase> parserSelector = null)
|
||||
{
|
||||
// Create the source
|
||||
ParserResults results = RunParse(document, parserActionSelector, designTimeParser, parserSelector);
|
||||
var results = RunParse(document, parserActionSelector, designTimeParser, parserSelector);
|
||||
|
||||
// Evaluate the results
|
||||
if (!ReferenceEquals(expectedRoot, IgnoreOutput))
|
||||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
[Conditional("PARSER_TRACE")]
|
||||
private void WriteNode(int indent, SyntaxTreeNode node)
|
||||
{
|
||||
string content = node.ToString().Replace("\r", "\\r")
|
||||
var content = node.ToString().Replace("\r", "\\r")
|
||||
.Replace("\n", "\\n")
|
||||
.Replace("{", "{{")
|
||||
.Replace("}", "}}");
|
||||
|
|
@ -220,7 +220,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
content = new String('.', indent * 2) + content;
|
||||
}
|
||||
WriteTraceLine(content);
|
||||
Block block = node as Block;
|
||||
var block = node as Block;
|
||||
if (block != null)
|
||||
{
|
||||
foreach (SyntaxTreeNode child in block.Children)
|
||||
|
|
@ -244,7 +244,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
public static void EvaluateParseTree(Block actualRoot, Block expectedRoot)
|
||||
{
|
||||
// Evaluate the result
|
||||
ErrorCollector collector = new ErrorCollector();
|
||||
var collector = new ErrorCollector();
|
||||
|
||||
// Link all the nodes
|
||||
expectedRoot.LinkNodes();
|
||||
|
|
@ -429,7 +429,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
return "\t<< No Errors >>";
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var builder = new StringBuilder();
|
||||
foreach (RazorError err in errors)
|
||||
{
|
||||
builder.AppendFormat("\t{0}", err);
|
||||
|
|
@ -446,8 +446,8 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
protected virtual Block CreateSimpleBlockAndSpan(string spanContent, BlockType blockType, SpanKind spanType, AcceptedCharacters acceptedCharacters = AcceptedCharacters.Any)
|
||||
{
|
||||
SpanConstructor span = Factory.Span(spanType, spanContent, spanType == SpanKind.Markup).Accepts(acceptedCharacters);
|
||||
BlockBuilder b = new BlockBuilder()
|
||||
var span = Factory.Span(spanType, spanContent, spanType == SpanKind.Markup).Accepts(acceptedCharacters);
|
||||
var b = new BlockBuilder()
|
||||
{
|
||||
Type = blockType
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
RawTextSymbol other = obj as RawTextSymbol;
|
||||
var other = obj as RawTextSymbol;
|
||||
return Equals(Start, other.Start) && Equals(Content, other.Content);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
public static SourceLocation GetLocationAndAdvance(this SourceLocationTracker self, string content)
|
||||
{
|
||||
SourceLocation ret = self.CurrentLocation;
|
||||
var ret = self.CurrentLocation;
|
||||
self.UpdateLocation(content);
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -169,7 +169,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
private SpanConstructor CreateSymbolSpan(SpanKind kind, string content, Func<SourceLocation, ISymbol> ctor)
|
||||
{
|
||||
SourceLocation start = LocationTracker.CurrentLocation;
|
||||
var start = LocationTracker.CurrentLocation;
|
||||
LocationTracker.UpdateLocation(content);
|
||||
return new SpanConstructor(kind, new[] { ctor(start) });
|
||||
}
|
||||
|
|
@ -186,7 +186,7 @@ namespace Microsoft.AspNet.Razor.Test.Framework
|
|||
|
||||
private IEnumerable<ISymbol> Tokenize(string content, bool markup)
|
||||
{
|
||||
ITokenizer tok = MakeTokenizer(markup, new SeekableTextReader(content));
|
||||
var tok = MakeTokenizer(markup, new SeekableTextReader(content));
|
||||
ISymbol sym;
|
||||
ISymbol last = null;
|
||||
while ((sym = tok.NextSymbol()) != null)
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
|
||||
private void OpenedIf(bool withTabs)
|
||||
{
|
||||
int tabOffsetForMapping = 7;
|
||||
var tabOffsetForMapping = 7;
|
||||
|
||||
// where the test is running with tabs, the offset into the CS buffer changes for the whitespace mapping
|
||||
// with spaces we get 7xspace -> offset of 8 (column = offset+1)
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
var paddingBuilder = new CSharpPaddingBuilder(host);
|
||||
|
||||
// Act
|
||||
int padding = paddingBuilder.CalculatePadding(span, 1);
|
||||
var padding = paddingBuilder.CalculatePadding(span, 1);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(5, padding);
|
||||
|
|
@ -229,7 +229,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
|
||||
using (var reader = new StringReader(text))
|
||||
{
|
||||
ParserResults results = parser.Parse(reader);
|
||||
var results = parser.Parse(reader);
|
||||
spans = results.Document.Flatten().ToArray();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
Func<RazorTemplateEngine, RazorTemplateEngine> templateEngineConfig = null,
|
||||
Action<GeneratorResults> onResults = null)
|
||||
{
|
||||
bool testRun = false;
|
||||
var testRun = false;
|
||||
|
||||
if ((tabTest & TabTest.Tabs) == TabTest.Tabs)
|
||||
{
|
||||
|
|
@ -103,11 +103,11 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
baselineName = name;
|
||||
}
|
||||
|
||||
string sourceLocation = string.Format("TestFiles/CodeGenerator/{1}/Source/{0}.{2}", name, LanguageName, FileExtension);
|
||||
string expectedOutput = TestFile.Create(string.Format("TestFiles/CodeGenerator/CS/Output/{0}.{1}", baselineName, BaselineExtension)).ReadAllText();
|
||||
var sourceLocation = string.Format("TestFiles/CodeGenerator/{1}/Source/{0}.{2}", name, LanguageName, FileExtension);
|
||||
var expectedOutput = TestFile.Create(string.Format("TestFiles/CodeGenerator/CS/Output/{0}.{1}", baselineName, BaselineExtension)).ReadAllText();
|
||||
|
||||
// Set up the host and engine
|
||||
RazorEngineHost host = CreateHost();
|
||||
var host = CreateHost();
|
||||
host.NamespaceImports.Add("System");
|
||||
host.DesignTimeMode = designTimeMode;
|
||||
host.StaticHelpers = true;
|
||||
|
|
@ -136,7 +136,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
host.IsIndentingWithTabs = withTabs;
|
||||
host.EnableInstrumentation = true;
|
||||
|
||||
RazorTemplateEngine engine = new RazorTemplateEngine(host);
|
||||
var engine = new RazorTemplateEngine(host);
|
||||
|
||||
if(templateEngineConfig != null)
|
||||
{
|
||||
|
|
@ -154,7 +154,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
BaselineWriter.WriteBaseline(String.Format(@"test\Microsoft.AspNet.Razor.Test\TestFiles\CodeGenerator\{0}\Output\{1}.{2}", LanguageName, baselineName, BaselineExtension), results.GeneratedCode);
|
||||
|
||||
#if !GENERATE_BASELINES
|
||||
string textOutput = results.GeneratedCode;
|
||||
var textOutput = results.GeneratedCode;
|
||||
|
||||
if (onResults != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Razor.Test.Generator
|
|||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
TestSpan other = obj as TestSpan;
|
||||
var other = obj as TestSpan;
|
||||
|
||||
if (other != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -17,12 +17,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void ConstructorWithBlockBuilderSetsParent()
|
||||
{
|
||||
// Arrange
|
||||
BlockBuilder builder = new BlockBuilder() { Type = BlockType.Comment };
|
||||
Span span = new SpanBuilder() { Kind = SpanKind.Code }.Build();
|
||||
var builder = new BlockBuilder() { Type = BlockType.Comment };
|
||||
var span = new SpanBuilder() { Kind = SpanKind.Code }.Build();
|
||||
builder.Children.Add(span);
|
||||
|
||||
// Act
|
||||
Block block = builder.Build();
|
||||
var block = builder.Build();
|
||||
|
||||
// Assert
|
||||
Assert.Same(block, span.Parent);
|
||||
|
|
@ -32,15 +32,15 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void ConstructorTransfersInstanceOfCodeGeneratorFromBlockBuilder()
|
||||
{
|
||||
// Arrange
|
||||
IBlockCodeGenerator expected = new ExpressionCodeGenerator();
|
||||
BlockBuilder builder = new BlockBuilder()
|
||||
var expected = new ExpressionCodeGenerator();
|
||||
var builder = new BlockBuilder()
|
||||
{
|
||||
Type = BlockType.Helper,
|
||||
CodeGenerator = expected
|
||||
};
|
||||
|
||||
// Act
|
||||
Block actual = builder.Build();
|
||||
var actual = builder.Build();
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, actual.CodeGenerator);
|
||||
|
|
@ -50,15 +50,15 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void ConstructorTransfersChildrenFromBlockBuilder()
|
||||
{
|
||||
// Arrange
|
||||
Span expected = new SpanBuilder() { Kind = SpanKind.Code }.Build();
|
||||
BlockBuilder builder = new BlockBuilder()
|
||||
var expected = new SpanBuilder() { Kind = SpanKind.Code }.Build();
|
||||
var builder = new BlockBuilder()
|
||||
{
|
||||
Type = BlockType.Functions
|
||||
};
|
||||
builder.Children.Add(expected);
|
||||
|
||||
// Act
|
||||
Block block = builder.Build();
|
||||
var block = builder.Build();
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, block.Children.Single());
|
||||
|
|
@ -69,16 +69,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Block block = new MarkupBlock(
|
||||
var block = new MarkupBlock(
|
||||
factory.Markup("Foo "),
|
||||
new StatementBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.Code("bar").AsStatement()),
|
||||
factory.Markup(" Baz"));
|
||||
TextChange change = new TextChange(128, 1, new StringTextBuffer("Foo @bar Baz"), 1, new StringTextBuffer("Foo @bor Baz"));
|
||||
var change = new TextChange(128, 1, new StringTextBuffer("Foo @bar Baz"), 1, new StringTextBuffer("Foo @bor Baz"));
|
||||
|
||||
// Act
|
||||
Span actual = block.LocateOwner(change);
|
||||
var actual = block.LocateOwner(change);
|
||||
|
||||
// Assert
|
||||
Assert.Null(actual);
|
||||
|
|
@ -89,16 +89,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Block block = new MarkupBlock(
|
||||
var block = new MarkupBlock(
|
||||
factory.Markup("Foo "),
|
||||
new StatementBlock(
|
||||
factory.CodeTransition(),
|
||||
factory.Code("bar").AsStatement()),
|
||||
factory.Markup(" Baz"));
|
||||
TextChange change = new TextChange(4, 10, new StringTextBuffer("Foo @bar Baz"), 10, new StringTextBuffer("Foo @bor Baz"));
|
||||
var change = new TextChange(4, 10, new StringTextBuffer("Foo @bar Baz"), 10, new StringTextBuffer("Foo @bor Baz"));
|
||||
|
||||
// Act
|
||||
Span actual = block.LocateOwner(change);
|
||||
var actual = block.LocateOwner(change);
|
||||
|
||||
// Assert
|
||||
Assert.Null(actual);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp
|
|||
public void ParseBlockMethodThrowsArgNullExceptionOnNullContext()
|
||||
{
|
||||
// Arrange
|
||||
CSharpCodeParser parser = new CSharpCodeParser();
|
||||
var parser = new CSharpCodeParser();
|
||||
|
||||
// Act and Assert
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => parser.ParseBlock());
|
||||
|
|
@ -567,14 +567,14 @@ catch(bar) { baz(); }", BlockType.Statement, SpanKind.Code);
|
|||
[Fact]
|
||||
public void ParseBlockStopsParsingCatchClausesAfterFinallyBlock()
|
||||
{
|
||||
string expectedContent = "try { var foo = new { } } finally { var foo = new { } }";
|
||||
var expectedContent = "try { var foo = new { } } finally { var foo = new { } }";
|
||||
SingleSpanBlockTest(expectedContent + " catch(Foo Bar Baz) { }", expectedContent, BlockType.Statement, SpanKind.Code, acceptedCharacters: AcceptedCharacters.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseBlockDoesNotAllowMultipleFinallyBlocks()
|
||||
{
|
||||
string expectedContent = "try { var foo = new { } } finally { var foo = new { } }";
|
||||
var expectedContent = "try { var foo = new { } } finally { var foo = new { } }";
|
||||
SingleSpanBlockTest(expectedContent + " finally { }", expectedContent, BlockType.Statement, SpanKind.Code, acceptedCharacters: AcceptedCharacters.None);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -384,7 +384,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.CSharp
|
|||
[Fact]
|
||||
public void ParseBlockRequiresControlFlowStatementsToHaveBraces()
|
||||
{
|
||||
string expectedMessage = RazorResources.FormatParseError_SingleLine_ControlFlowStatements_Not_Allowed("{", "<");
|
||||
var expectedMessage = RazorResources.FormatParseError_SingleLine_ControlFlowStatements_Not_Allowed("{", "<");
|
||||
ParseBlockTest("if(foo) <p>Bar</p> else if(bar) <p>Baz</p> else <p>Boz</p>",
|
||||
new StatementBlock(
|
||||
Factory.Code("if(foo) ").AsStatement(),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
Action<Span> spanCallback = _ => { };
|
||||
CallbackVisitor listener = new CallbackVisitor(spanCallback);
|
||||
var listener = new CallbackVisitor(spanCallback);
|
||||
|
||||
// Act/Assert
|
||||
listener.VisitStartBlock(new FunctionsBlock());
|
||||
|
|
@ -114,7 +114,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
// Act/Assert
|
||||
RunCallbackTest<T>(default(T), callback =>
|
||||
{
|
||||
CallbackVisitor listener = ctor(callback);
|
||||
var listener = ctor(callback);
|
||||
listener.SynchronizationContext = mockContext.Object;
|
||||
return listener;
|
||||
}, call, (original, actual) =>
|
||||
|
|
@ -151,7 +151,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
object actual = null;
|
||||
Action<T> callback = t => actual = t;
|
||||
|
||||
CallbackVisitor listener = ctor(callback);
|
||||
var listener = ctor(callback);
|
||||
|
||||
// Act
|
||||
call(listener, expected);
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
public void ConditionalAttributeCollapserDoesNotRemoveUrlAttributeValues()
|
||||
{
|
||||
// Act
|
||||
ParserResults results = ParseDocument("<a href='~/Foo/Bar' />");
|
||||
var results = ParseDocument("<a href='~/Foo/Bar' />");
|
||||
var rewritingContext = new RewritingContext(results.Document);
|
||||
new ConditionalAttributeCollapser(new HtmlMarkupParser().BuildSpan).Rewrite(rewritingContext);
|
||||
new MarkupCollapser(new HtmlMarkupParser().BuildSpan).Rewrite(rewritingContext);
|
||||
|
|
@ -271,7 +271,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
</div>";
|
||||
|
||||
// Act
|
||||
ParserResults results = ParseDocument(code);
|
||||
var results = ParseDocument(code);
|
||||
var rewritingContext = new RewritingContext(results.Document);
|
||||
new ConditionalAttributeCollapser(new HtmlMarkupParser().BuildSpan).Rewrite(rewritingContext);
|
||||
new MarkupCollapser(new HtmlMarkupParser().BuildSpan).Rewrite(rewritingContext);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
public void ParseBlockMethodThrowsArgNullExceptionOnNullContext()
|
||||
{
|
||||
// Arrange
|
||||
HtmlMarkupParser parser = new HtmlMarkupParser();
|
||||
var parser = new HtmlMarkupParser();
|
||||
|
||||
// Act and Assert
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => parser.ParseBlock());
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
public void ParseDocumentMethodThrowsArgNullExceptionOnNullContext()
|
||||
{
|
||||
// Arrange
|
||||
HtmlMarkupParser parser = new HtmlMarkupParser();
|
||||
var parser = new HtmlMarkupParser();
|
||||
|
||||
// Act and Assert
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => parser.ParseDocument());
|
||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
public void ParseSectionMethodThrowsArgNullExceptionOnNullContext()
|
||||
{
|
||||
// Arrange
|
||||
HtmlMarkupParser parser = new HtmlMarkupParser();
|
||||
var parser = new HtmlMarkupParser();
|
||||
|
||||
// Act and Assert
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => parser.ParseSection(null, true));
|
||||
|
|
@ -277,7 +277,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.Html
|
|||
[Fact]
|
||||
public void ParseBlockCanParse1000NestedElements()
|
||||
{
|
||||
string content = Nested1000.ReadAllText();
|
||||
var content = Nested1000.ReadAllText();
|
||||
ParseDocument(content);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,12 +65,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void ConstructorInitializesProperties()
|
||||
{
|
||||
// Arrange
|
||||
SeekableTextReader expectedBuffer = new SeekableTextReader(TextReader.Null);
|
||||
CSharpCodeParser expectedCodeParser = new CSharpCodeParser();
|
||||
HtmlMarkupParser expectedMarkupParser = new HtmlMarkupParser();
|
||||
var expectedBuffer = new SeekableTextReader(TextReader.Null);
|
||||
var expectedCodeParser = new CSharpCodeParser();
|
||||
var expectedMarkupParser = new HtmlMarkupParser();
|
||||
|
||||
// Act
|
||||
ParserContext context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser);
|
||||
var context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(context.Source);
|
||||
|
|
@ -83,10 +83,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void CurrentCharacterReturnsCurrentCharacterInTextBuffer()
|
||||
{
|
||||
// Arrange
|
||||
ParserContext context = SetupTestContext("bar", b => b.Read());
|
||||
var context = SetupTestContext("bar", b => b.Read());
|
||||
|
||||
// Act
|
||||
char actual = context.CurrentCharacter;
|
||||
var actual = context.CurrentCharacter;
|
||||
|
||||
// Assert
|
||||
Assert.Equal('a', actual);
|
||||
|
|
@ -96,10 +96,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void CurrentCharacterReturnsNulCharacterIfTextBufferAtEOF()
|
||||
{
|
||||
// Arrange
|
||||
ParserContext context = SetupTestContext("bar", b => b.ReadToEnd());
|
||||
var context = SetupTestContext("bar", b => b.ReadToEnd());
|
||||
|
||||
// Act
|
||||
char actual = context.CurrentCharacter;
|
||||
var actual = context.CurrentCharacter;
|
||||
|
||||
// Assert
|
||||
Assert.Equal('\0', actual);
|
||||
|
|
@ -109,7 +109,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void EndOfFileReturnsFalseIfTextBufferNotAtEOF()
|
||||
{
|
||||
// Arrange
|
||||
ParserContext context = SetupTestContext("bar");
|
||||
var context = SetupTestContext("bar");
|
||||
|
||||
// Act/Assert
|
||||
Assert.False(context.EndOfFile);
|
||||
|
|
@ -119,7 +119,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void EndOfFileReturnsTrueIfTextBufferAtEOF()
|
||||
{
|
||||
// Arrange
|
||||
ParserContext context = SetupTestContext("bar", b => b.ReadToEnd());
|
||||
var context = SetupTestContext("bar", b => b.ReadToEnd());
|
||||
|
||||
// Act/Assert
|
||||
Assert.True(context.EndOfFile);
|
||||
|
|
@ -129,7 +129,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void StartBlockCreatesNewBlock()
|
||||
{
|
||||
// Arrange
|
||||
ParserContext context = SetupTestContext("phoo");
|
||||
var context = SetupTestContext("phoo");
|
||||
|
||||
// Act
|
||||
context.StartBlock(BlockType.Expression);
|
||||
|
|
@ -145,7 +145,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
Mock<ParserVisitor> mockListener = new Mock<ParserVisitor>();
|
||||
ParserContext context = SetupTestContext("phoo");
|
||||
var context = SetupTestContext("phoo");
|
||||
|
||||
// Act
|
||||
context.StartBlock(BlockType.Expression);
|
||||
|
|
@ -165,21 +165,21 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
// Arrange
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Mock<ParserVisitor> mockListener = new Mock<ParserVisitor>();
|
||||
ParserContext context = SetupTestContext("phoo");
|
||||
var context = SetupTestContext("phoo");
|
||||
|
||||
SpanBuilder builder = new SpanBuilder()
|
||||
var builder = new SpanBuilder()
|
||||
{
|
||||
Kind = SpanKind.Code
|
||||
};
|
||||
builder.Accept(new CSharpSymbol(1, 0, 1, "foo", CSharpSymbolType.Identifier));
|
||||
Span added = builder.Build();
|
||||
var added = builder.Build();
|
||||
|
||||
using (context.StartBlock(BlockType.Functions))
|
||||
{
|
||||
context.AddSpan(added);
|
||||
}
|
||||
|
||||
BlockBuilder expected = new BlockBuilder()
|
||||
var expected = new BlockBuilder()
|
||||
{
|
||||
Type = BlockType.Functions,
|
||||
};
|
||||
|
|
@ -196,7 +196,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
// Arrange
|
||||
var codeParser = new CSharpCodeParser();
|
||||
var markupParser = new HtmlMarkupParser();
|
||||
ParserContext context = SetupTestContext("barbazbiz", b => b.Read(), codeParser, markupParser, codeParser);
|
||||
var context = SetupTestContext("barbazbiz", b => b.Read(), codeParser, markupParser, codeParser);
|
||||
Assert.Same(codeParser, context.ActiveParser);
|
||||
|
||||
// Act
|
||||
|
|
@ -212,7 +212,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
// Arrange
|
||||
var codeParser = new CSharpCodeParser();
|
||||
var markupParser = new HtmlMarkupParser();
|
||||
ParserContext context = SetupTestContext("barbazbiz", b => b.Read(), codeParser, markupParser, markupParser);
|
||||
var context = SetupTestContext("barbazbiz", b => b.Read(), codeParser, markupParser, markupParser);
|
||||
Assert.Same(markupParser, context.ActiveParser);
|
||||
|
||||
// Act
|
||||
|
|
@ -238,7 +238,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
|
||||
private ParserContext SetupTestContext(string document, Action<TextReader> positioningAction, ParserBase codeParser, ParserBase markupParser, ParserBase activeParser)
|
||||
{
|
||||
ParserContext context = new ParserContext(new SeekableTextReader(new StringReader(document)), codeParser, markupParser, activeParser);
|
||||
var context = new ParserContext(new SeekableTextReader(new StringReader(document)), codeParser, markupParser, activeParser);
|
||||
positioningAction(context.Source);
|
||||
return context;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
public void VisitThrowsOnNullVisitor()
|
||||
{
|
||||
ParserVisitor target = null;
|
||||
ParserResults results = new ParserResults(new BlockBuilder() { Type = BlockType.Comment }.Build(), new List<RazorError>());
|
||||
var results = new ParserResults(new BlockBuilder() { Type = BlockType.Comment }.Build(), new List<RazorError>());
|
||||
|
||||
Assert.Throws<ArgumentNullException>("self", () => target.Visit(results));
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
[Fact]
|
||||
public void VisitThrowsOnNullResults()
|
||||
{
|
||||
ParserVisitor target = new Mock<ParserVisitor>().Object;
|
||||
var target = new Mock<ParserVisitor>().Object;
|
||||
Assert.Throws<ArgumentNullException>("result", () => target.Visit(null));
|
||||
}
|
||||
|
||||
|
|
@ -34,8 +34,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
Mock<ParserVisitor> targetMock = new Mock<ParserVisitor>();
|
||||
Block root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
ParserResults results = new ParserResults(root, new List<RazorError>());
|
||||
var root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
var results = new ParserResults(root, new List<RazorError>());
|
||||
|
||||
// Act
|
||||
targetMock.Object.Visit(results);
|
||||
|
|
@ -49,12 +49,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
Mock<ParserVisitor> targetMock = new Mock<ParserVisitor>();
|
||||
Block root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
var root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
List<RazorError> errors = new List<RazorError>() {
|
||||
new RazorError("Foo", 1, 0, 1),
|
||||
new RazorError("Bar", 2, 0, 2)
|
||||
};
|
||||
ParserResults results = new ParserResults(root, errors);
|
||||
var results = new ParserResults(root, errors);
|
||||
|
||||
// Act
|
||||
targetMock.Object.Visit(results);
|
||||
|
|
@ -69,12 +69,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
Mock<ParserVisitor> targetMock = new Mock<ParserVisitor>();
|
||||
Block root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
var root = new BlockBuilder() { Type = BlockType.Comment }.Build();
|
||||
List<RazorError> errors = new List<RazorError>() {
|
||||
new RazorError("Foo", 1, 0, 1),
|
||||
new RazorError("Bar", 2, 0, 2)
|
||||
};
|
||||
ParserResults results = new ParserResults(root, errors);
|
||||
var results = new ParserResults(root, errors);
|
||||
|
||||
// Act
|
||||
targetMock.Object.Visit(results);
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void AwaitPeriodInsertionAcceptedProvisionally()
|
||||
{
|
||||
// Arrange
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @await Html. baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @await Html baz");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("foo @await Html. baz");
|
||||
var old = new StringTextBuffer("foo @await Html baz");
|
||||
|
||||
// Act and Assert
|
||||
RunPartialParseTest(new TextChange(15, 0, old, 1, changed),
|
||||
|
|
@ -35,13 +35,13 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsInnerInsertionsInStatementBlock()
|
||||
{
|
||||
// Arrange
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime..Now" + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime.Now" + Environment.NewLine
|
||||
+ "}");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime..Now" + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime.Now" + Environment.NewLine
|
||||
+ "}");
|
||||
|
||||
// Act and Assert
|
||||
RunPartialParseTest(new TextChange(17, 0, old, 1, changed),
|
||||
|
|
@ -65,9 +65,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsInnerInsertions()
|
||||
{
|
||||
// Arrange
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @DateTime..Now baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @DateTime.Now baz");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("foo @DateTime..Now baz");
|
||||
var old = new StringTextBuffer("foo @DateTime.Now baz");
|
||||
|
||||
// Act and Assert
|
||||
RunPartialParseTest(new TextChange(13, 0, old, 1, changed),
|
||||
|
|
@ -83,19 +83,19 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
[Fact]
|
||||
public void ImplicitExpressionAcceptsDotlessCommitInsertionsInStatementBlockAfterIdentifiers()
|
||||
{
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime." + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime" + Environment.NewLine
|
||||
+ "}");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime." + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime" + Environment.NewLine
|
||||
+ "}");
|
||||
|
||||
var textChange = new TextChange(17, 0, old, 1, changed);
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
Action<TextChange, PartialParseResult, string> applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) =>
|
||||
{
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
var result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedResult, result);
|
||||
|
|
@ -123,16 +123,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
|
||||
old = changed;
|
||||
changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime.." + Environment.NewLine
|
||||
+ "}");
|
||||
+ " @DateTime.." + Environment.NewLine
|
||||
+ "}");
|
||||
textChange = new TextChange(18, 0, old, 1, changed);
|
||||
|
||||
applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime..");
|
||||
|
||||
old = changed;
|
||||
changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime.Now." + Environment.NewLine
|
||||
+ "}");
|
||||
+ " @DateTime.Now." + Environment.NewLine
|
||||
+ "}");
|
||||
textChange = new TextChange(18, 0, old, 3, changed);
|
||||
|
||||
applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.Now.");
|
||||
|
|
@ -141,19 +141,19 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
[Fact]
|
||||
public void ImplicitExpressionAcceptsDotlessCommitInsertionsInStatementBlock()
|
||||
{
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateT." + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateT" + Environment.NewLine
|
||||
+ "}");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateT." + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateT" + Environment.NewLine
|
||||
+ "}");
|
||||
|
||||
var textChange = new TextChange(14, 0, old, 1, changed);
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
Action<TextChange, PartialParseResult, string> applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) =>
|
||||
{
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
var result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedResult, result);
|
||||
|
|
@ -181,8 +181,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
|
||||
old = changed;
|
||||
changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @DateTime." + Environment.NewLine
|
||||
+ "}");
|
||||
+ " @DateTime." + Environment.NewLine
|
||||
+ "}");
|
||||
textChange = new TextChange(14, 0, old, 3, changed);
|
||||
|
||||
applyAndVerifyPartialChange(textChange, PartialParseResult.Accepted, "DateTime.");
|
||||
|
|
@ -191,14 +191,14 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
[Fact]
|
||||
public void ImplicitExpressionProvisionallyAcceptsDotlessCommitInsertions()
|
||||
{
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("foo @DateT. baz");
|
||||
var old = new StringTextBuffer("foo @DateT baz");
|
||||
var textChange = new TextChange(10, 0, old, 1, changed);
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
Action<TextChange, PartialParseResult, string> applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) =>
|
||||
{
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
var result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedResult, result);
|
||||
|
|
@ -227,14 +227,14 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
[Fact]
|
||||
public void ImplicitExpressionProvisionallyAcceptsDotlessCommitInsertionsAfterIdentifiers()
|
||||
{
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("foo @DateTime. baz");
|
||||
var old = new StringTextBuffer("foo @DateTime baz");
|
||||
var textChange = new TextChange(13, 0, old, 1, changed);
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
Action<TextChange, PartialParseResult, string> applyAndVerifyPartialChange = (changeToApply, expectedResult, expectedCode) =>
|
||||
{
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
var result = manager.CheckForStructureChangesAndWait(textChange);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedResult, result);
|
||||
|
|
@ -269,9 +269,9 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
[Fact]
|
||||
public void ImplicitExpressionProvisionallyAcceptsDeleteOfIdentifierPartsIfDotRemains()
|
||||
{
|
||||
SpanFactory factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @User. baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @User.Name baz");
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
var changed = new StringTextBuffer("foo @User. baz");
|
||||
var old = new StringTextBuffer("foo @User.Name baz");
|
||||
RunPartialParseTest(new TextChange(10, 4, old, 0, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -286,8 +286,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsDeleteOfIdentifierPartsIfSomeOfIdentifierRemains()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @Us baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @User baz");
|
||||
var changed = new StringTextBuffer("foo @Us baz");
|
||||
var old = new StringTextBuffer("foo @User baz");
|
||||
RunPartialParseTest(new TextChange(7, 2, old, 0, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -301,8 +301,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionProvisionallyAcceptsMultipleInsertionIfItCausesIdentifierExpansionAndTrailingDot()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @User. baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @U baz");
|
||||
var changed = new StringTextBuffer("foo @User. baz");
|
||||
var old = new StringTextBuffer("foo @U baz");
|
||||
RunPartialParseTest(new TextChange(6, 0, old, 4, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -317,8 +317,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsMultipleInsertionIfItOnlyCausesIdentifierExpansion()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @barbiz baz");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @bar baz");
|
||||
var changed = new StringTextBuffer("foo @barbiz baz");
|
||||
var old = new StringTextBuffer("foo @bar baz");
|
||||
RunPartialParseTest(new TextChange(8, 0, old, 3, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -332,12 +332,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsIdentifierExpansionAtEndOfNonWhitespaceCharacters()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @food" + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo" + Environment.NewLine
|
||||
+ "}");
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @food" + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo" + Environment.NewLine
|
||||
+ "}");
|
||||
RunPartialParseTest(new TextChange(12, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.EmptyHtml(),
|
||||
|
|
@ -359,12 +359,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsIdentifierAfterDotAtEndOfNonWhitespaceCharacters()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo.d" + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo." + Environment.NewLine
|
||||
+ "}");
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo.d" + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo." + Environment.NewLine
|
||||
+ "}");
|
||||
RunPartialParseTest(new TextChange(13, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.EmptyHtml(),
|
||||
|
|
@ -386,12 +386,12 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsDotAtEndOfNonWhitespaceCharacters()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo." + Environment.NewLine
|
||||
+ "}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo" + Environment.NewLine
|
||||
+ "}");
|
||||
var changed = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo." + Environment.NewLine
|
||||
+ "}");
|
||||
var old = new StringTextBuffer("@{" + Environment.NewLine
|
||||
+ " @foo" + Environment.NewLine
|
||||
+ "}");
|
||||
RunPartialParseTest(new TextChange(12, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.EmptyHtml(),
|
||||
|
|
@ -415,16 +415,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
var factory = SpanFactory.CreateCsHtml();
|
||||
|
||||
// Arrange
|
||||
TextChange dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo @bar"), 1, new StringTextBuffer("foo @foo. @bar"));
|
||||
TextChange charTyped = new TextChange(14, 0, new StringTextBuffer("foo @foo. @bar"), 1, new StringTextBuffer("foo @foo. @barb"));
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo @bar"), 1, new StringTextBuffer("foo @foo. @bar"));
|
||||
var charTyped = new TextChange(14, 0, new StringTextBuffer("foo @foo. @bar"), 1, new StringTextBuffer("foo @foo. @barb"));
|
||||
var manager = CreateParserManager();
|
||||
manager.InitializeWithDocument(dotTyped.OldBuffer);
|
||||
|
||||
// Apply the dot change
|
||||
Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped));
|
||||
|
||||
// Act (apply the identifier start char change)
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(charTyped);
|
||||
var result = manager.CheckForStructureChangesAndWait(charTyped);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(PartialParseResult.Rejected, result);
|
||||
|
|
@ -452,16 +452,16 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
var factory = SpanFactory.CreateCsHtml();
|
||||
|
||||
// Arrange
|
||||
TextChange dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo bar"), 1, new StringTextBuffer("foo @foo. bar"));
|
||||
TextChange charTyped = new TextChange(9, 0, new StringTextBuffer("foo @foo. bar"), 1, new StringTextBuffer("foo @foo.b bar"));
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var dotTyped = new TextChange(8, 0, new StringTextBuffer("foo @foo bar"), 1, new StringTextBuffer("foo @foo. bar"));
|
||||
var charTyped = new TextChange(9, 0, new StringTextBuffer("foo @foo. bar"), 1, new StringTextBuffer("foo @foo.b bar"));
|
||||
var manager = CreateParserManager();
|
||||
manager.InitializeWithDocument(dotTyped.OldBuffer);
|
||||
|
||||
// Apply the dot change
|
||||
Assert.Equal(PartialParseResult.Provisional | PartialParseResult.Accepted, manager.CheckForStructureChangesAndWait(dotTyped));
|
||||
|
||||
// Act (apply the identifier start char change)
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(charTyped);
|
||||
var result = manager.CheckForStructureChangesAndWait(charTyped);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(PartialParseResult.Accepted, result);
|
||||
|
|
@ -481,8 +481,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionProvisionallyAcceptsDotAfterIdentifierInMarkup()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @foo. bar");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @foo bar");
|
||||
var changed = new StringTextBuffer("foo @foo. bar");
|
||||
var old = new StringTextBuffer("foo @foo bar");
|
||||
RunPartialParseTest(new TextChange(8, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -499,8 +499,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsAdditionalIdentifierCharactersIfEndOfSpanIsIdentifier()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("foo @foob bar");
|
||||
StringTextBuffer old = new StringTextBuffer("foo @foo bar");
|
||||
var changed = new StringTextBuffer("foo @foob bar");
|
||||
var old = new StringTextBuffer("foo @foo bar");
|
||||
RunPartialParseTest(new TextChange(8, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.Markup("foo "),
|
||||
|
|
@ -516,8 +516,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsAdditionalIdentifierStartCharactersIfEndOfSpanIsDot()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{@foo.b}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{@foo.}");
|
||||
var changed = new StringTextBuffer("@{@foo.b}");
|
||||
var old = new StringTextBuffer("@{@foo.}");
|
||||
RunPartialParseTest(new TextChange(7, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.EmptyHtml(),
|
||||
|
|
@ -539,8 +539,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
public void ImplicitExpressionAcceptsDotIfTrailingDotsAreAllowed()
|
||||
{
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
StringTextBuffer changed = new StringTextBuffer("@{@foo.}");
|
||||
StringTextBuffer old = new StringTextBuffer("@{@foo}");
|
||||
var changed = new StringTextBuffer("@{@foo.}");
|
||||
var old = new StringTextBuffer("@{@foo}");
|
||||
RunPartialParseTest(new TextChange(6, 0, old, 1, changed),
|
||||
new MarkupBlock(
|
||||
factory.EmptyHtml(),
|
||||
|
|
|
|||
|
|
@ -21,11 +21,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
protected static void RunFullReparseTest(TextChange change, PartialParseResult additionalFlags = (PartialParseResult)0)
|
||||
{
|
||||
// Arrange
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
manager.InitializeWithDocument(change.OldBuffer);
|
||||
|
||||
// Act
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(change);
|
||||
var result = manager.CheckForStructureChangesAndWait(change);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(PartialParseResult.Rejected | additionalFlags, result);
|
||||
|
|
@ -35,11 +35,11 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
protected static void RunPartialParseTest(TextChange change, Block newTreeRoot, PartialParseResult additionalFlags = (PartialParseResult)0)
|
||||
{
|
||||
// Arrange
|
||||
TestParserManager manager = CreateParserManager();
|
||||
var manager = CreateParserManager();
|
||||
manager.InitializeWithDocument(change.OldBuffer);
|
||||
|
||||
// Act
|
||||
PartialParseResult result = manager.CheckForStructureChangesAndWait(change);
|
||||
var result = manager.CheckForStructureChangesAndWait(change);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(PartialParseResult.Accepted | additionalFlags, result);
|
||||
|
|
@ -49,8 +49,8 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
|
||||
protected static TestParserManager CreateParserManager()
|
||||
{
|
||||
RazorEngineHost host = CreateHost();
|
||||
RazorEditorParser parser = new RazorEditorParser(host, TestLinePragmaFileName);
|
||||
var host = CreateHost();
|
||||
var parser = new RazorEditorParser(host, TestLinePragmaFileName);
|
||||
return new TestParserManager(parser);
|
||||
}
|
||||
|
||||
|
|
@ -72,10 +72,10 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
|
||||
protected static void RunTypeKeywordTest(string keyword)
|
||||
{
|
||||
string before = "@" + keyword.Substring(0, keyword.Length - 1);
|
||||
string after = "@" + keyword;
|
||||
StringTextBuffer changed = new StringTextBuffer(after);
|
||||
StringTextBuffer old = new StringTextBuffer(before);
|
||||
var before = "@" + keyword.Substring(0, keyword.Length - 1);
|
||||
var after = "@" + keyword;
|
||||
var changed = new StringTextBuffer(after);
|
||||
var old = new StringTextBuffer(before);
|
||||
RunFullReparseTest(new TextChange(keyword.Length, 0, old, 1, changed), additionalFlags: PartialParseResult.SpanContextChanged);
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser.PartialParsing
|
|||
|
||||
public PartialParseResult CheckForStructureChangesAndWait(TextChange change)
|
||||
{
|
||||
PartialParseResult result = Parser.CheckForStructureChanges(change);
|
||||
var result = Parser.CheckForStructureChanges(change);
|
||||
if (result.HasFlag(PartialParseResult.Rejected))
|
||||
{
|
||||
WaitForParse();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
{
|
||||
// Arrange
|
||||
var factory = SpanFactory.CreateCsHtml();
|
||||
Block start = new MarkupBlock(
|
||||
var start = new MarkupBlock(
|
||||
factory.Markup("test"),
|
||||
new ExpressionBlock(
|
||||
factory.Code(" ").AsExpression(),
|
||||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Razor.Test.Parser
|
|||
),
|
||||
factory.Markup("test")
|
||||
);
|
||||
WhiteSpaceRewriter rewriter = new WhiteSpaceRewriter(new HtmlMarkupParser().BuildSpan);
|
||||
var rewriter = new WhiteSpaceRewriter(new HtmlMarkupParser().BuildSpan);
|
||||
var rewritingContext = new RewritingContext(start);
|
||||
|
||||
// Act
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void MultipleCallsToGetServiceWithSameExtensionReturnSameObject()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeLanguage expected = RazorCodeLanguage.GetLanguageByExtension("cshtml");
|
||||
var expected = RazorCodeLanguage.GetLanguageByExtension("cshtml");
|
||||
|
||||
// Act
|
||||
RazorCodeLanguage actual = RazorCodeLanguage.GetLanguageByExtension("cshtml");
|
||||
var actual = RazorCodeLanguage.GetLanguageByExtension("cshtml");
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, actual);
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
var attribute2 = new RazorDirectiveAttribute("foo", "BAr");
|
||||
|
||||
// Act
|
||||
bool result = attribute1.Equals(attribute2);
|
||||
var result = attribute1.Equals(attribute2);
|
||||
var hashCode = attribute1.GetHashCode();
|
||||
|
||||
// Assert
|
||||
|
|
@ -71,7 +71,7 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
var attribute2 = new RazorDirectiveAttribute("foo", "");
|
||||
|
||||
// Act
|
||||
bool result = attribute1.Equals(attribute2);
|
||||
var result = attribute1.Equals(attribute2);
|
||||
var hashCode1 = attribute1.GetHashCode();
|
||||
var hashCode2 = attribute2.GetHashCode();
|
||||
|
||||
|
|
|
|||
|
|
@ -27,10 +27,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void ConstructorWithCodeLanguageSetsPropertiesAppropriately()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeLanguage language = new CSharpRazorCodeLanguage();
|
||||
var language = new CSharpRazorCodeLanguage();
|
||||
|
||||
// Act
|
||||
RazorEngineHost host = new RazorEngineHost(language);
|
||||
var host = new RazorEngineHost(language);
|
||||
|
||||
// Assert
|
||||
VerifyCommonDefaults(host);
|
||||
|
|
@ -42,11 +42,11 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void ConstructorWithCodeLanguageAndMarkupParserSetsPropertiesAppropriately()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeLanguage language = new CSharpRazorCodeLanguage();
|
||||
ParserBase expected = new HtmlMarkupParser();
|
||||
var language = new CSharpRazorCodeLanguage();
|
||||
var expected = new HtmlMarkupParser();
|
||||
|
||||
// Act
|
||||
RazorEngineHost host = new RazorEngineHost(language, () => expected);
|
||||
var host = new RazorEngineHost(language, () => expected);
|
||||
|
||||
// Assert
|
||||
VerifyCommonDefaults(host);
|
||||
|
|
@ -76,10 +76,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void DecorateCodeParserDoesNotModifyIncomingParser()
|
||||
{
|
||||
// Arrange
|
||||
ParserBase expected = new CSharpCodeParser();
|
||||
var expected = new CSharpCodeParser();
|
||||
|
||||
// Act
|
||||
ParserBase actual = CreateHost().DecorateCodeParser(expected);
|
||||
var actual = CreateHost().DecorateCodeParser(expected);
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, actual);
|
||||
|
|
@ -89,10 +89,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void DecorateMarkupParserReturnsIncomingParser()
|
||||
{
|
||||
// Arrange
|
||||
ParserBase expected = new HtmlMarkupParser();
|
||||
var expected = new HtmlMarkupParser();
|
||||
|
||||
// Act
|
||||
ParserBase actual = CreateHost().DecorateMarkupParser(expected);
|
||||
var actual = CreateHost().DecorateMarkupParser(expected);
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, actual);
|
||||
|
|
@ -102,10 +102,10 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
public void DecorateCodeGeneratorReturnsIncomingCodeGenerator()
|
||||
{
|
||||
// Arrange
|
||||
RazorCodeGenerator expected = new CSharpRazorCodeGenerator("Foo", "Bar", "Baz", CreateHost());
|
||||
var expected = new CSharpRazorCodeGenerator("Foo", "Bar", "Baz", CreateHost());
|
||||
|
||||
// Act
|
||||
RazorCodeGenerator actual = CreateHost().DecorateCodeGenerator(expected);
|
||||
var actual = CreateHost().DecorateCodeGenerator(expected);
|
||||
|
||||
// Assert
|
||||
Assert.Same(expected, actual);
|
||||
|
|
|
|||
|
|
@ -235,8 +235,8 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void BacktrackBufferIsClearedWhenEndReachedAndNoCurrentLookaheads()
|
||||
{
|
||||
// Arrange
|
||||
StringReader source = new StringReader(TestString);
|
||||
BufferingTextReader reader = new BufferingTextReader(source);
|
||||
var source = new StringReader(TestString);
|
||||
var reader = new BufferingTextReader(source);
|
||||
|
||||
reader.Read(); // Reader: "bcdefg"
|
||||
using (reader.BeginLookahead())
|
||||
|
|
@ -257,8 +257,8 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
private static void RunDisposeTest(Action<LookaheadTextReader> triggerAction)
|
||||
{
|
||||
// Arrange
|
||||
DisposeTestMockTextReader source = new DisposeTestMockTextReader();
|
||||
LookaheadTextReader reader = new BufferingTextReader(source);
|
||||
var source = new DisposeTestMockTextReader();
|
||||
var reader = new BufferingTextReader(source);
|
||||
|
||||
// Act
|
||||
triggerAction(reader);
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
[Fact]
|
||||
public void CtorInitializesProperties()
|
||||
{
|
||||
LineTrackingStringBuffer buffer = new LineTrackingStringBuffer();
|
||||
var buffer = new LineTrackingStringBuffer();
|
||||
Assert.Equal(0, buffer.Length);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CharAtCorrectlyReturnsLocation()
|
||||
{
|
||||
LineTrackingStringBuffer buffer = new LineTrackingStringBuffer();
|
||||
var buffer = new LineTrackingStringBuffer();
|
||||
buffer.Append("foo\rbar\nbaz\r\nbiz");
|
||||
LineTrackingStringBuffer.CharacterReference chr = buffer.CharAt(14);
|
||||
Assert.Equal('i', chr.Character);
|
||||
|
|
|
|||
|
|
@ -30,11 +30,11 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunSourceLocationTest(string input, SourceLocation expected, Action<LookaheadTextReader> readerAction)
|
||||
{
|
||||
// Arrange
|
||||
LookaheadTextReader reader = CreateReader(input);
|
||||
var reader = CreateReader(input);
|
||||
readerAction(reader);
|
||||
|
||||
// Act
|
||||
SourceLocation actual = reader.CurrentLocation;
|
||||
var actual = reader.CurrentLocation;
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expected, actual);
|
||||
|
|
@ -59,10 +59,10 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunReadToEndTest()
|
||||
{
|
||||
// Arrange
|
||||
LookaheadTextReader reader = CreateReader("abcdefg");
|
||||
var reader = CreateReader("abcdefg");
|
||||
|
||||
// Act
|
||||
string str = reader.ReadToEnd();
|
||||
var str = reader.ReadToEnd();
|
||||
|
||||
// Assert
|
||||
Assert.Equal("abcdefg", str);
|
||||
|
|
@ -71,7 +71,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunCancelBacktrackOutsideLookaheadTest()
|
||||
{
|
||||
// Arrange
|
||||
LookaheadTextReader reader = CreateReader("abcdefg");
|
||||
var reader = CreateReader("abcdefg");
|
||||
|
||||
// Act and Assert
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => reader.CancelBacktrack());
|
||||
|
|
@ -123,7 +123,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunLookaheadTest(string input, string expected, params Action<StringBuilder, LookaheadTextReader>[] readerCommands)
|
||||
{
|
||||
// Arrange
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var builder = new StringBuilder();
|
||||
using (LookaheadTextReader reader = CreateReader(input))
|
||||
{
|
||||
RunAll(readerCommands, builder, reader);
|
||||
|
|
@ -138,14 +138,14 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunReadUntilTest(Func<LookaheadTextReader, string> readMethod, int expectedRaw, int expectedChar, int expectedLine)
|
||||
{
|
||||
// Arrange
|
||||
LookaheadTextReader reader = CreateReader("a\r\nbcd\r\nefg");
|
||||
var reader = CreateReader("a\r\nbcd\r\nefg");
|
||||
|
||||
reader.Read(); // Reader: "\r\nbcd\r\nefg"
|
||||
reader.Read(); // Reader: "\nbcd\r\nefg"
|
||||
reader.Read(); // Reader: "bcd\r\nefg"
|
||||
|
||||
// Act
|
||||
string read = null;
|
||||
string read;
|
||||
SourceLocation actualLocation;
|
||||
using (reader.BeginLookahead())
|
||||
{
|
||||
|
|
@ -167,13 +167,13 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
protected void RunBufferReadTest(Func<LookaheadTextReader, char[], int, int, int> readMethod)
|
||||
{
|
||||
// Arrange
|
||||
LookaheadTextReader reader = CreateReader("abcdefg");
|
||||
var reader = CreateReader("abcdefg");
|
||||
|
||||
reader.Read(); // Reader: "bcdefg"
|
||||
|
||||
// Act
|
||||
char[] buffer = new char[4];
|
||||
int read = -1;
|
||||
var read = -1;
|
||||
SourceLocation actualLocation;
|
||||
using (reader.BeginLookahead())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void ConstructorWithLineAndCharacterIndexSetsAssociatedProperties()
|
||||
{
|
||||
// Act
|
||||
SourceLocation loc = new SourceLocation(0, 42, 24);
|
||||
var loc = new SourceLocation(0, 42, 24);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(0, loc.AbsoluteIndex);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
[Fact]
|
||||
public void ConstructorWithSourceLocationSetsCurrentLocationToSpecifiedValue()
|
||||
{
|
||||
SourceLocation loc = new SourceLocation(10, 42, 4);
|
||||
var loc = new SourceLocation(10, 42, 4);
|
||||
Assert.Equal(loc, new SourceLocationTracker(loc).CurrentLocation);
|
||||
}
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesCorrectlyForMultiLineString()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation("foo\nbar\rbaz\r\nbox");
|
||||
|
|
@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesAbsoluteIndexOnNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('f', 'o');
|
||||
|
|
@ -55,7 +55,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesCharacterIndexOnNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('f', 'o');
|
||||
|
|
@ -68,7 +68,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationDoesNotAdvanceLineIndexOnNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('f', 'o');
|
||||
|
|
@ -81,7 +81,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesLineIndexOnSlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\n', 'o');
|
||||
|
|
@ -94,7 +94,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesAbsoluteIndexOnSlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\n', 'o');
|
||||
|
|
@ -107,7 +107,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationResetsCharacterIndexOnSlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\n', 'o');
|
||||
|
|
@ -120,7 +120,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesLineIndexOnSlashRFollowedByNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', 'o');
|
||||
|
|
@ -133,7 +133,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesAbsoluteIndexOnSlashRFollowedByNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', 'o');
|
||||
|
|
@ -146,7 +146,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationResetsCharacterIndexOnSlashRFollowedByNonNewlineCharacter()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', 'o');
|
||||
|
|
@ -159,7 +159,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationDoesNotAdvanceLineIndexOnSlashRFollowedBySlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', '\n');
|
||||
|
|
@ -172,7 +172,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesAbsoluteIndexOnSlashRFollowedBySlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', '\n');
|
||||
|
|
@ -185,7 +185,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void UpdateLocationAdvancesCharacterIndexOnSlashRFollowedBySlashN()
|
||||
{
|
||||
// Arrange
|
||||
SourceLocationTracker tracker = new SourceLocationTracker(TestStartLocation);
|
||||
var tracker = new SourceLocationTracker(TestStartLocation);
|
||||
|
||||
// Act
|
||||
tracker.UpdateLocation('\r', '\n');
|
||||
|
|
|
|||
|
|
@ -221,8 +221,8 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
private static void RunDisposeTest(Action<LookaheadTextReader> triggerAction)
|
||||
{
|
||||
// Arrange
|
||||
StringTextBuffer source = new StringTextBuffer("abcdefg");
|
||||
LookaheadTextReader reader = new TextBufferReader(source);
|
||||
var source = new StringTextBuffer("abcdefg");
|
||||
var reader = new TextBufferReader(source);
|
||||
|
||||
// Act
|
||||
triggerAction(reader);
|
||||
|
|
|
|||
|
|
@ -62,9 +62,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void ConstructorInitializesProperties()
|
||||
{
|
||||
// Act
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(42, 24, oldBuffer, 1337, newBuffer);
|
||||
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);
|
||||
|
|
@ -78,9 +78,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void TestIsDelete()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 1, oldBuffer, 0, newBuffer);
|
||||
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);
|
||||
|
|
@ -90,9 +90,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void TestDeleteCreatesTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 1, oldBuffer, 0, newBuffer);
|
||||
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);
|
||||
|
|
@ -103,9 +103,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void TestIsInsert()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 0, oldBuffer, 35, newBuffer);
|
||||
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);
|
||||
|
|
@ -115,9 +115,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void TestInsertCreateTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 0, oldBuffer, 1, newBuffer);
|
||||
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);
|
||||
|
|
@ -128,9 +128,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void TestIsReplace()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 5, oldBuffer, 10, newBuffer);
|
||||
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);
|
||||
|
|
@ -140,9 +140,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void ReplaceCreatesTheRightSizeChange()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 5, oldBuffer, 10, newBuffer);
|
||||
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);
|
||||
|
|
@ -153,9 +153,9 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
public void ReplaceCreatesTheRightSizeChange1()
|
||||
{
|
||||
// Arrange
|
||||
ITextBuffer oldBuffer = new Mock<ITextBuffer>().Object;
|
||||
ITextBuffer newBuffer = new Mock<ITextBuffer>().Object;
|
||||
TextChange change = new TextChange(0, 5, oldBuffer, 1, newBuffer);
|
||||
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);
|
||||
|
|
@ -172,7 +172,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(2, 1, oldBuffer, 1, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.OldText;
|
||||
var text = textChange.OldText;
|
||||
|
||||
// Assert
|
||||
Assert.Equal("x", text);
|
||||
|
|
@ -187,7 +187,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(2, 2, oldBuffer, 1, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.OldText;
|
||||
var text = textChange.OldText;
|
||||
|
||||
// Assert
|
||||
Assert.Equal("xt", text);
|
||||
|
|
@ -202,8 +202,8 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(0, 0, oldBuffer, 3, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.NewText;
|
||||
string oldText = textChange.OldText;
|
||||
var text = textChange.NewText;
|
||||
var oldText = textChange.OldText;
|
||||
|
||||
// Assert
|
||||
Assert.Equal("tes", text);
|
||||
|
|
@ -219,7 +219,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(1, 1, oldBuffer, 0, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.NewText;
|
||||
var text = textChange.NewText;
|
||||
|
||||
// Assert
|
||||
Assert.Equal(String.Empty, text);
|
||||
|
|
@ -234,8 +234,8 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(2, 2, oldBuffer, 1, newBuffer);
|
||||
|
||||
// Act
|
||||
string newText = textChange.NewText;
|
||||
string oldText = textChange.OldText;
|
||||
var newText = textChange.NewText;
|
||||
var oldText = textChange.OldText;
|
||||
|
||||
// Assert
|
||||
Assert.Equal("s", newText);
|
||||
|
|
@ -251,7 +251,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(0, 0, oldBuffer, 3, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.ApplyChange("abcd", 0);
|
||||
var text = textChange.ApplyChange("abcd", 0);
|
||||
|
||||
// Assert
|
||||
Assert.Equal("tesabcd", text);
|
||||
|
|
@ -266,7 +266,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(1, 1, oldBuffer, 0, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.ApplyChange("abcdefg", 1);
|
||||
var text = textChange.ApplyChange("abcdefg", 1);
|
||||
|
||||
// Assert
|
||||
Assert.Equal("bcdefg", text);
|
||||
|
|
@ -281,7 +281,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var textChange = new TextChange(1, 1, oldBuffer, 2, newBuffer);
|
||||
|
||||
// Act
|
||||
string text = textChange.ApplyChange("abcdefg", 1);
|
||||
var text = textChange.ApplyChange("abcdefg", 1);
|
||||
|
||||
// Assert
|
||||
Assert.Equal("bcbcdefg", text);
|
||||
|
|
@ -296,7 +296,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var original = new TextChange(0, 4, oldBuffer, 5, newBuffer);
|
||||
|
||||
// Act
|
||||
TextChange normalized = original.Normalize();
|
||||
var normalized = original.Normalize();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(new TextChange(4, 0, oldBuffer, 1, newBuffer), normalized);
|
||||
|
|
@ -311,7 +311,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var original = new TextChange(0, 5, oldBuffer, 9, newBuffer);
|
||||
|
||||
// Act
|
||||
TextChange normalized = original.Normalize();
|
||||
var normalized = original.Normalize();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(original, normalized);
|
||||
|
|
@ -326,7 +326,7 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
var original = new TextChange(0, 8, oldBuffer, 1, newBuffer);
|
||||
|
||||
// Act
|
||||
TextChange normalized = original.Normalize();
|
||||
var normalized = original.Normalize();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(original, normalized);
|
||||
|
|
|
|||
|
|
@ -166,10 +166,10 @@ namespace Microsoft.AspNet.Razor.Test.Text
|
|||
private static void RunReaderTest(string testString, string expectedOutput, int expectedPeek, Func<TextReader, string> action)
|
||||
{
|
||||
// Arrange
|
||||
StringReader reader = new StringReader(testString);
|
||||
var reader = new StringReader(testString);
|
||||
|
||||
// Act
|
||||
string read = action(reader);
|
||||
var read = action(reader);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedOutput, read);
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer
|
|||
[Fact]
|
||||
public void After_Cancelling_Lookahead_Tokenizer_Returns_Same_Tokens_As_It_Did_Before_Lookahead()
|
||||
{
|
||||
HtmlTokenizer tokenizer = new HtmlTokenizer(new SeekableTextReader(new StringReader("<foo>")));
|
||||
var tokenizer = new HtmlTokenizer(new SeekableTextReader(new StringReader("<foo>")));
|
||||
using (tokenizer.Source.BeginLookahead())
|
||||
{
|
||||
Assert.Equal(new HtmlSymbol(0, 0, 0, "<", HtmlSymbolType.OpenAngle), tokenizer.NextSymbol());
|
||||
|
|
@ -29,7 +29,7 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer
|
|||
[Fact]
|
||||
public void After_Accepting_Lookahead_Tokenizer_Returns_Next_Token()
|
||||
{
|
||||
HtmlTokenizer tokenizer = new HtmlTokenizer(new SeekableTextReader(new StringReader("<foo>")));
|
||||
var tokenizer = new HtmlTokenizer(new SeekableTextReader(new StringReader("<foo>")));
|
||||
using (LookaheadToken lookahead = tokenizer.Source.BeginLookahead())
|
||||
{
|
||||
Assert.Equal(new HtmlSymbol(0, 0, 0, "<", HtmlSymbolType.OpenAngle), tokenizer.NextSymbol());
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@ namespace Microsoft.AspNet.Razor.Test.Tokenizer
|
|||
protected void TestTokenizer(string input, params TSymbol[] expectedSymbols)
|
||||
{
|
||||
// Arrange
|
||||
bool success = true;
|
||||
StringBuilder output = new StringBuilder();
|
||||
var success = true;
|
||||
var output = new StringBuilder();
|
||||
using (StringReader reader = new StringReader(input))
|
||||
{
|
||||
using (SeekableTextReader source = new SeekableTextReader(reader))
|
||||
{
|
||||
Tokenizer<TSymbol, TSymbolType> tokenizer = CreateTokenizer(source);
|
||||
int counter = 0;
|
||||
var counter = 0;
|
||||
TSymbol current = null;
|
||||
while ((current = tokenizer.NextSymbol()) != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ namespace Microsoft.AspNet.Razor.Test.Utils
|
|||
public void ActionIsExecutedOnDispose()
|
||||
{
|
||||
// Arrange
|
||||
bool called = false;
|
||||
DisposableAction action = new DisposableAction(() => { called = true; });
|
||||
var called = false;
|
||||
var action = new DisposableAction(() => { called = true; });
|
||||
|
||||
// Act
|
||||
action.Dispose();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.Razor.Test
|
|||
|
||||
public Stream OpenRead()
|
||||
{
|
||||
Stream strm = Assembly.GetManifestResourceStream(ResourceName);
|
||||
var strm = Assembly.GetManifestResourceStream(ResourceName);
|
||||
if (strm == null)
|
||||
{
|
||||
Assert.True(false, string.Format("Manifest resource: {0} not found", ResourceName));
|
||||
|
|
|
|||
Loading…
Reference in New Issue