Commit Graph

530 Commits

Author SHA1 Message Date
Pranav K c746fd81df Updating versions to 1.2.0-* 2016-11-09 14:19:11 -08:00
Jass Bagga 77ed9f22fc Moved location of and modified CaseSensitiveTagHelperAttributeComparer
Addresses Mvc https://github.com/aspnet/Mvc/issues/5323
2016-11-01 14:47:13 -07:00
Pranav K 8a057d5491 Updating to netcoreapp1.1 2016-10-13 11:23:50 -07:00
Pranav K 7bc3d440bd Revert "Updating to netcoreapp1.1"
This reverts commit c17540f02c.
2016-10-12 16:09:28 -07:00
Pranav K c17540f02c Updating to netcoreapp1.1 2016-10-12 13:46:19 -07:00
Pranav K 039e1021a4 Updating partner package versions 2016-09-28 11:51:56 -07:00
Crystal Qian d19845730f Added a copy constructor for tag helper descriptors. (#827) 2016-08-31 15:38:35 -07:00
Crystal Qian 127e095370 Added property bag to tag helper descriptor. (#822)
aspnet/Mvc#1051
2016-08-25 18:04:17 -07:00
Crystal Qian b34543621f Added property bag to tag helper descriptor. (#822)
aspnet/Mvc#1051
2016-08-25 09:31:29 -07:00
Crystal Qian 489c0d9046 Added view component tag helper updates. (#823)
Added view component tag helper updates.

aspnet/mvc#1051
2016-08-24 16:01:59 -07:00
N. Taylor Mullen 8d7c51bd60 Change TagHelpers to work in partial parsing.
- Prior to this change any query for ownership within a TagHelper would never succeed.
- TagHelpers structure can be influenced greatly by changes to the tags start/end body; therefore, only allowed modifications to TagHelper attribute values to avoid complexity and enable the more widespread scenario of a user typing C# code in an attribute value.
- Updated existing tests to reflect the new edit handlers that were added to TagHelper attributes.
- Added partial parsing tests to verify partial parses succeed/fail when expected.

#792
2016-08-15 16:15:41 -07:00
N. Taylor Mullen 82c9c40709 Capture exceptions when trying to parse files and return parse errors.
#808
2016-08-11 12:11:51 -07:00
Ajay Bhargav Baaskaran f09e2bf571 [Fixes #804] Fixed unsafe cast in CSharpCodeVisitor 2016-08-08 16:38:51 -07:00
Ajay Bhargav Baaskaran 687b3f6911 [Fixes #815] Fix Debug.Assert failure for malformed tags in expression 2016-08-08 16:34:38 -07:00
Pranav K f0f3832c14 Updating to Moq \ Castle.Core that does not require imports 2016-08-08 11:59:09 -07:00
N. Taylor Mullen fc4a61586e Obsolete `EditorHints`.
- For tests added grouped pragma warning disables to not pollute the test files with too many duplicate warning disable/restores.

#780
2016-08-01 11:08:03 -07:00
Doug Bunting 05a52f445f One build to rule them all
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:26:20 -07:00
Ajay Bhargav Baaskaran 837b304c32 Updating to RTM builds of xunit and Moq 2016-06-30 16:34:57 -07:00
N. Taylor Mullen 9c4eee14b8 Update tests to follow developer guidelines.
- Moved tests to match their corresponding test src files.
- Updated test namespaces to match their corresponding test src files.

#782
2016-06-21 12:08:50 -07:00
Pranav K eb2b58188a Updating to dev versions
# Conflicts:
#	test/Microsoft.AspNetCore.Razor.Test/project.json
2016-06-16 10:41:31 -07:00
jacalvar 76757ee82f Update Json.NET to 9.0.1 2016-06-15 15:13:08 -07:00
N. Taylor Mullen 4b43597d28 Remove direct Microsoft.NETCore.Platforms dependency.
- Microsoft.NETCore.App now pulls this package in.

aspnet/Coherence-Signed#344
2016-06-13 15:28:51 -07:00
N. Taylor Mullen e20d18636e Move more classes into Internal namespaces.
- These classes aren't needed as top level public classes.

#779
2016-06-13 13:53:14 -07:00
N. Taylor Mullen 6e4f15bad4 Remove unused/unpurposeful classes.
- Several classes are legacy and left over from many changes in the Razor code base. This changeset removes those classes.
- Also moved several corresponding test cases

#778
2016-06-09 15:51:43 -07:00
jacalvar 2256138650 Update Json.NET to 9.0.1-beta1 2016-06-03 13:08:26 -07:00
mnltejaswini 3b9539960b [Perf] Preallocate TagHelperAttributes for simple bound string valued attributes Fixes #704 2016-06-01 11:24:32 -07:00
Doug Bunting 44f0aa63c6 Do not HTML encode while checking for whitespace
- #760
- using a `NullHtmlEncoder` improves `TagHelperContent.IsEmptyOrWhiteSpace` semantics
 - e.g. a tab is still a tab after encoding
 - also avoids `NotImplementedException`
- implement `Write(char)` for char-by-char `IHtmlContent` corner case
2016-05-31 22:09:19 -07:00
N. Taylor Mullen e14f4b095d Track `TagHelperAttribute` quotes.
- Removed `Minimized` from `TagHelperAttribute` and replaced it with `HtmlAttributeValueStyle`.
- Removed `AddMinimizedTagHelperAttribute` method from `TagHelperExecutionContext` since we always provide a `HtmlAttributeValueStyle` now.
- Stopped manually escaping double quotes because we now know how an attribute was originally written.
- Updated tests to account for new attribute format (from kvp).

#705
2016-05-27 12:28:33 -07:00
mnltejaswini bde78dc3d4 [Perf]: Avoid ViewBuffers for writing bound TagHelper attribute values
Fixes #717
2016-05-25 12:06:03 -07:00
N. Taylor Mullen d0bf6bf841 Make HTML comments more resilient to extra end dashes.
aspnet/Mvc#4465
2016-05-24 15:34:35 -07:00
N. Taylor Mullen 80ebb4a068 Update `TagHelperDirectiveSpanVisitor` to properly capture TagHelper directive text.
- Added a test with optional quotes for each of the `TagHelperDirectiveDescriptor`s, add, remove and prefix.

#744
2016-05-23 17:07:36 -07:00
N. Taylor Mullen cdea6fd3fb Fix TagHelper directive tests to fail when expected.
- Prior to this change the equals bits were falling back to the type comparison that `ChunkGenerator` exposes.
2016-05-18 11:05:55 -07:00
N. Taylor Mullen d27ab1ce3d React to `HtmlEncodedString` rename to `HtmlString`.
- Updated test output to reflect new `HtmlString` naming.

aspnet/HtmlAbstractions.25
2016-05-17 12:13:26 -07:00
Ajay Bhargav Baaskaran 9bfa74d829 [Fixes #739] Newline after text tag rendered only if followed by html 2016-05-02 16:29:29 -07:00
Pranav K 2950c87651 Merge branch 'release' into dev 2016-05-02 14:57:07 -07:00
Pranav K 2c4b0e8a7f Fix build warnings 2016-05-02 14:39:19 -07:00
Ajay Bhargav Baaskaran b520c9c15e Fix: Newline at the end of text tag in code block is rendered as markup 2016-04-26 15:43:18 -07:00
Pranav K 1101ff55ae Use latest build of dotnet-test-xunit 2016-04-19 14:54:09 -07:00
Pavel Krymets 603d181241 Bring Microsoft.NETCore.Platforms dependency back 2016-04-18 16:56:44 -07:00
Pavel Krymets dfe83b6bac Migrate tests, tools and samples to portable 2016-04-14 15:07:34 -07:00
N. Taylor Mullen c400289de5 Change `DefaultTagHelperContent` to be smart about single content entries.
- Today `TagHelperContent`s always allocate their underlying buffer even though they typically only ever have a single entry. Added a field to enable us to only allocate the backing buffer when we absolutely need to.
- Removed `IsEmpty` from `TagHelperContent` since it was not used in any of our `TagHelper`s for simplification. Changed `IsWhiteSpace` naming to be `IsEmptyOrWhiteSpace` since it can be used to indicate either state.
- Updated tests.

#621
2016-04-05 16:09:06 -07:00
N. Taylor Mullen 4212b7e713 Add `SetOutputContentAsync` to `TagHelperExecutionContext` to prevent allocation of `Task<T>`.
- Previously we'd do `executionContext.Output.Content = await executionContext.Output.GetChildContentAsync()`. The problem with this approach is that it returned a `Task<TagHelperContent>` which could not be optimized when building in release.
- Added test to validate `SetOutputContentAsync` does the appropriate thing.

#721
2016-04-02 22:58:37 -07:00
N. Taylor Mullen 714dd5fa9e Update test files to react to new `TagHelperScopeManager` contract.
#720
2016-03-29 22:05:37 -07:00
N. Taylor Mullen f5c79b62de Prevent method => delegate conversion happening multiple times.
- The conversion now only occurs on the construction of the `TagHelperScopeManager` which only occurs once.
- Updated tests.

#720
2016-03-29 10:18:10 -07:00
N. Taylor Mullen 3c73ae9cfe Change `TagHelperOutput` and `TagHelperContext` lifetimes.
- `TagHelperOutput` and `TagHelperContext` lifetimes now mach `TagHelperExecutionContext`s. This means once a set of `TagHelper`s have run on a tag the `TagHelperOutput`/`TagHelperContext` will be re-used.
- Added tests to validate the various `Reset`/`Reinitialize` methods behaved correctly.
- Updated codegen to no longer set `TagHelperExecutionContext.Output`.

#719
2016-03-28 11:54:48 -07:00
N. Taylor Mullen d62343ade5 Temporarily skipped CSS required attribute selector test on mono.
- Will re-enable once https://bugzilla.xamarin.com/show_bug.cgi?id=39951 is fixed.
2016-03-28 10:43:23 -07:00
Doug Bunting a8d4da9f17 Add a couple of missing `global::` prefixes
- was missing when writing out full name of an `enum` value
- was missing in one case when writing out `TagHelperAttribute` type name

nit: updated `CSharpTagHelperFieldDeclarationVisitor.WritePrivateField()` to always include the prefix
- no change in generated code but centralizes the prefix addition and reduces intermediate `string`s
2016-03-26 19:12:36 -07:00
ryanbrandenburg 21be7973ea SetContent to SetHtmlContent 2016-03-25 12:05:43 -07:00
David Fowler f5fbae6776 Fixed build 2016-03-25 02:36:27 -07:00
N. Taylor Mullen 3d0bf621f3 Update `TagHelperDesignTimeDescriptorFactory` to work in CoreCLR.
- After discussion offline to maintain consistency we decided to also remove `CodeBase` fallback in the net451 scenario. This will keep CoreCLR and net451 scenarios more consistent.
- Removed `CodeBase` validation tests.
- Added `GetAssemblyLocation` extensibility point to enable proper testing of the `TagHelperDesignTimeDescriptorFactory`.

#709
2016-03-21 16:17:37 -07:00
Victor Hurdugaci 37dde59569 Fix the test projects that can't build without src because the framework assemblies are not transitively referenced when referencing packages 2016-03-17 09:15:15 -07:00
Ajay Bhargav Baaskaran a7994b818e Updated Json.Net version 2016-03-14 14:47:54 -07:00
John Luo a6dab00f37 Reacting to KoreBuild changes 2016-03-08 15:03:57 -08:00
N. Taylor Mullen e5927ddd01 Add CSS attribute selectors for `TagHelper` attributes.
- Added the ability for users to opt into CSS `TagHelper` selectors in their required attributes by surrounding the value with `[` and `]`. Added operators `^`, `$` and `=`.
- Added tests to cover code paths used when determining CSS selectors.

#684
2016-03-08 12:15:06 -08:00
Ryan Nowak 9bd06a5dfc React to changes in HTML abstractions
This change implements the new API for flattening content in Razor.

Also, some optimizations to avoid allocations on paths where we need
to encode HTML attribute values.
2016-03-04 07:56:53 -08:00
N. Taylor Mullen e6d4d6c7a1 Fix nested C# blocks when combined with C# @ symbols.
- We used to accept until markup or an ending brace which didn't allow the parser to balance nested braces.

#679
2016-03-03 12:34:35 -08:00
Doug Bunting 38183b5887 Remove project name from output path
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 20:58:45 -08:00
N. Taylor Mullen b00c1c1dc7 Transition to netstandard.
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:32:43 -08:00
N. Taylor Mullen 9f675abbca Pre-allocate unbound `TagHelper` attributes.
- Hoist `TagHelperAttribute` creation into `private static readonly` fields to avoid allocations on every request. With the recent `TagHelperAttribute` change that made them immutable we can now pre-allocate them without worry of them being modified.
- Added two extra class configuration pieces to enable pre-allocation.
- Updated test files to showcase new pre-allocations.

#600
2016-03-01 11:23:49 -08:00
Ajay Bhargav Baaskaran 32c75fc78e [Fixes #698] Removed unnecessary Debug.Assert in TagHelperBlockRewriter 2016-02-25 16:16:20 -08:00
Ajay Bhargav Baaskaran 6cd13c441e [Fixes #691] Use WriteAttributeTo when TextWrites is not null 2016-02-24 12:31:13 -08:00
John Luo 5ca09d0b10 Updating test TFMs for custom test discovery 2016-02-19 11:46:09 -08:00
N. Taylor Mullen 78451efa7f Pool `TagHelperExecutionContext`s within `TagHelperScopeManager`.
- Currently the `TagHelperScopeManager` creates a new `TagHelperExecutionContext` per `TagHelper` on a given page. With this change the max number of `TagHelperExecutionContext`s per page is the number of nested levels that exist.
- Added two tests validating that specific pieces of `TagHelperExecutionContext` are updated as expected.

#674
2016-02-19 10:37:01 -08:00
Caleb Nelton b03d3aa56f Code Cleanup
Use var
Conditional can be simplified
Redundant array creation expression
Parameter name differs in base declaration
Empty statement is redundant
2016-02-18 12:04:32 -08:00
hexelium a0164b005d (#346) Fixed case when razor fails to recognize escape shortcut when the first character in a text is `:`. For example @::sometext. 2016-02-15 20:51:43 +02:00
N. Taylor Mullen 6bad1bba5b Enable Razor templates inside of sections.
- Changed the variable used to render templates (`HelperResult`s) so they can be used inside of sections.
- Updated section test file to showcase nested scenario. Also Regenerated existing test files.

#572
2016-02-11 12:01:34 -08:00
N. Taylor Mullen b7b3273fa4 Lazily initialize `TagHelperAttributeList`s.
- Not all `TagHelper`s have unbound HTML attributes or any attributes at all. A great example of this is MVC's input `TagHelper` which usually takes the format of `<input asp-for="..." />`. By lazily initializing we don't build extra attribute lists where not needed.
- Moved `TagHelperContext` and `TagHelperOutput` creation to CreateX methods on `TagHelperExecutionContext`.

#604
2016-02-10 11:15:54 -08:00
Kiran Challa 84ac19571c Enable tests to run using dotnet xunit runner 2016-02-10 00:20:35 -08:00
N. Taylor Mullen fc99082ea8 Make `TagHelperAttribute` immutable.
- Remove a lot of the ugly generic work done in `TagHelperAttributeList`/`ReadOnlyTagHelperAttributeList`.
- Removed error cases where we'd check on addition of `TagHelperAttribute`s that their `name` was not `null`. This was due to the pre-existing `string` indexer for `TagHelperAttributeList`. It no longer sets `TagHelperAttribute`s directly, instead it's `[key] = value` (instead of `[key] = new TagHelperAttribute(...))`.
- Updated tests to account for new immutability/string indexer format.
- Removed copy ctor from `TagHelperAttribute` since its immutability kills the value.
- Changed `ReadOnlyTagHelperAttributeList` to inherit from `ReadOnlyCollection`

#604
2016-02-04 16:38:30 -08:00
Ajay Bhargav Baaskaran 49c553ec7b Updated Json.Net version 2016-02-04 16:13:22 -08:00
N. Taylor Mullen 4418a5527d Up imports to net451. 2016-02-01 15:50:28 -08:00
N. Taylor Mullen ffa63cb71f Fix test projects. 2016-02-01 15:41:02 -08:00
N. Taylor Mullen c01d90900e Don't transitively depend on `Newtonsoft.Json`. 2016-01-29 10:23:15 -08:00
N. Taylor Mullen 662e6e6dbe Fix build break 2016-01-28 13:50:21 -08:00
Ryan Nowak 18909506e1 Flatten TagHelperOutput when writing
This change 'flattens' a TagHelperOutput when writing it out to an
HtmlTextWriter. This is a beneficial perf change because more often than
not the thing being written to is a ViewBuffer in Razor, which uses pooled
memory. This allows us to 'join' islands of pooled ViewBuffer memory back
into the main buffer instead of keeping them wrapped up in a
TagHelperOutput or TagHelperContent.
2016-01-25 17:32:18 -08:00
N. Taylor Mullen 2e7e1f9c85 Fix design time line mapping test. 2016-01-25 17:30:21 -08:00
N. Taylor Mullen 173886bf6c Update ASP.NET 5 versions for ASP.NET Core.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:28:16 -08:00
N. Taylor Mullen 3968eded19 Rename AspNet 5 file contents.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:21:25 -08:00
N. Taylor Mullen 3542ec3167 Rename AspNet 5 folders and files.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:21:05 -08:00
Doug Bunting 37850b5d85 Add `TagHelperOutput.GetChildContentAsync()` overloads including an `HtmlEncoder`
- #643 part 1
- change is viral and requires an update to `RazorPage.StartTagHelperWritingScope()`
  - memoize `GetChildContentAsync()` per-encoder
  - update generation tests to match and to test new behaviour
- note `HtmlEncoder`s used elsewhere e.g. in other `RazorPage` instances are unaffected

Add `NullHtmlEncoder`

Nits:
- generally clean up affected doc comments and make them more consistent
- remove unused `using`s in files I had open
2016-01-17 22:34:19 -08:00
Ryan Nowak e68c55ab41 Rewrite of tokenizers 2016-01-15 15:58:27 -08:00
N. Taylor Mullen 1ce9180a3e Prevent unneeded allocations of `Block` children enumerators.
#635
2016-01-15 15:47:35 -08:00
Ryan Nowak ffdf5d2827 Remove allocations from lookahead
This makes lookahead allocation-free, saving about 15MB in our current
benchmark.
2016-01-14 17:19:13 -08:00
Ryan Nowak 6a4a9544a1 Eliminate extra List<RazorError> copies
Changing to IReadOnlyList since we always want to support indexing.
Replacing ToArray() with non-linq when needed, and with a static
EmptyArray when not needed.

Eliminates 50mb of list copies.
2016-01-14 14:54:47 -08:00
Pranav K 9c6e5f714a Updating to use Dotnet-Cli build 2016-01-12 14:53:10 -08:00
Pranav K b4d631e2f6 Removing ITypeInfo and related types 2016-01-11 17:45:18 -08:00
Pranav K c05551e167 Removing Microsoft.AspNet.Razor.Runtime.Precompilation 2016-01-11 16:33:22 -08:00
N. Taylor Mullen 605dceea02 Change string rendering to be chunked.
- Roslyn currently has an issue where too large of strings result in out of memory exceptions at compile time. To combat this I broke down literal strings into 1024 length pieces each resulting in their own `WriteLiteral`/`WriteLiteralTo` calls. The 1024 number corresponds directly with MVCs response string buffer.
- Added tests to validate large string rendering.

#614
2016-01-06 16:21:32 -08:00
Pranav K 37eca627dd Rename TagHelperContent.Append(IHtmlContent` overload to be `TagHelperContent.AppendHtml(IHtmlContent)`
Fixes #634
2015-12-31 11:26:21 -08:00
Pranav K e1aa888165 Allow optional quotes around tag helper directives
Fixes #636
2015-12-29 12:32:23 -08:00
Pranav K 77b74b0c96 Modify TryGetAttributes to return a IReadOnlyList 2015-12-28 13:12:39 -08:00
N. Taylor Mullen dbe4ce06f2 Cache XML file information when creating design time based `TagHelperDescriptor`s.
- Prior to this change we'd hit the disk every time we'd create a `TagHelperDesignTimeDescriptor` to locate an assemblies XML files.
- Did not want to tie the XML cache to a static member in-case a user updates their XML information between parses. Therefore, changed `TagHelperDescriptorFactory` and `TagHelperDesignTimeDescriptorFactory` to no longer be static.
- Put the same `TagHeleprDescriptorFactory` extensibility point as we had for its counterpart `TagHelperTypeResolver` to stay consistent. This involved making `CreateDescriptors` virtual and allowing it to be provided in the `TagHelperDescriptorResolver` constructor.

#630
2015-12-17 11:12:19 -08:00
N. Taylor Mullen 392871beb6 Change missing section end brace error to work at EOF.
- Updated existing tests and added a new case to understand `@section {....` scenarios.
- Instead of trying to guess 1 character prior to EOF decided to log error on opening brace since we know its position. Updated error to account for change in location.

#625
2015-12-11 15:10:53 -08:00
Pranav K c7a6c099ed Removing more unused usings 2015-12-08 09:54:32 -08:00
Pranav K 2a301691db Updating tests to use moq.netcore 2015-11-23 12:15:26 -08:00
N. Taylor Mullen 6b43ebc88b Update code generation tests to account for new `TagHelperOutput`.
- Add `TagHelperOutput` unit tests.

#358
2015-11-19 16:32:08 -08:00
N. Taylor Mullen bdf869c3d5 Make `TagHelperOutput` an `IHtmlContent`.
- This allows users to write `TagHelperOutput` directly to an `IHtmlContent` accepting `TextWriter`.
- This also enables us to inspect backing fields for all of the various contents to lazily initialize them.

#358
2015-11-19 16:32:03 -08:00
Ryan Nowak 42acfe43ad Fix aspnet/Mvc#3196 Razor Compilation Allocations
This change significantly reduces the amount of string and List<ISymbol>
allocations that occur during compilation by changing the way
LiteralChunks are combined.

This is a low impact fix that addresses the performance issue, the design
issues that caused it still exist.

The problem here lies in what Razor fundamentally does - it parses HTML/C#
into tokens, and then combines them back into 'chunks' a representation
friendly to code generation. When presenting with a large block of static
HTML, Razor parses it into individual HTML tokens, and then tries to join
them in back into a single chunk for rendering. Due to details of Razor's
representation of chunks/tokens, the process of combining literals is too
expensive.

Mainly, what's done here is to not try to combine instances of
LiteralChunk. The process of merging them is too expensive and requires
lots of interm List<ISymbol> and string allocations.

Instead we produce a new 'chunk' ParentLiteralChunk, which doesn't do so
much up-front computing. Various pieces of the code that deal with
LiteralChunk need to be updated to deal with ParentLiteralChunk also,
which is the bulk of the changes here.

Note that we still have the potential for LOH allocations to occur during
codegen, but it's likely to occur O(1) for each large block of HTML
instead of O(N) as it did in the old code.
2015-11-18 12:51:11 -08:00
Ryan Nowak 5ce8740f70 Simplify ChunkTreeBuilder 2015-11-18 09:43:11 -08:00
N. Taylor Mullen 53dc4d73a4 Remove System beta tag in project.json for coreclr packages. 2015-11-12 12:23:22 -08:00
Pavel Krymets 7b248a7789 Make Compilation Abstractions naming consistent with Platform Abstractions 2015-11-06 16:18:45 -08:00
N. Taylor Mullen 0c95315500 Update tests to not require quotes for TH directives.
- Updated .cshtml files to not provide quotes for the various `TagHelper` directives.
- Updated `TagHelper` directive parsing tests. This also involved removing several tests that expected errors which no longer occur since we don't have to ensure quotes are balanced.
- Updated line mappings which significantly changed due to us no longer generating line pragmas at design time for `TagHelper` directives.

#561
2015-11-06 12:19:40 -08:00
N. Taylor Mullen 02d6b00d8f Generate `async` lambda for template attributes.
- Template attributes should be of type `Func<TextWriter, Task>`. We weren't generating an `async` lambda for attributes prior to this change resulting in a compilation failure when used at runtime and the inability to `@await` code (unless a user returns some sort of `Task`).
- Updated code generation files to reflect the new code generation behavior.

#594
2015-11-04 16:04:29 -08:00
Pavel Krymets 024c673bfa Rename Microsoft.Dnx.Compilation.Abstractions to Microsoft.Extensions.Compilation.Abstractions 2015-11-03 12:56:26 -08:00
Cesar Blum Silveira b329650a33 Merge branch 'release' into dev 2015-11-02 15:10:15 -08:00
Cesar Blum Silveira 7156de5a57 Strong name everything. 2015-11-02 14:56:23 -08:00
Chris R 99901ed4fe React to HtmlEncoder type changes. 2015-10-30 10:49:35 -07:00
N. Taylor Mullen a76f16cda8 Removed `TagHelper` infrastructure `using` statements.
- The using statements had a chance to conflict with user code. Removed them and changed the default configured type names to be `global::` full name based.
- Updated test file `TagHelperDescriptor.TypeName`s to have namespaces to make them easier to read.

#580
2015-10-29 16:23:38 -07:00
Pavel Krymets e4d1259da5 Remove usage of CallContextLocator 2015-10-29 12:06:12 -07:00
N. Taylor Mullen 22ecf85f88 Added `TagHelper` support for `enum`s.
- If a `TagHelper` attribute is an `enum` then you no longer need to provide the `enum` name. To override this functionality you can add the `@` symbol.
- Added code generation tests.
- Added `TagHelperDescriptorFactoryTest`s that double for Precompilation tests.

#196
2015-10-29 10:04:07 -07:00
Pavel Krymets 42d41a0049 Rename Microsoft.Runtime.Abstractions to Microsoft.Extensions.PlatformAbstractions 2015-10-22 18:43:18 -07:00
Doug Bunting 117bbe7f65 Rename `AppendEncoded()` to `AppendHtml()` and `SetContentEncoded()` to `SetHtmlContent()`
- aspnet/Mvc#3225, 2 of 3
- also correct parameter names
2015-10-22 16:49:37 -07:00
N. Taylor Mullen 6a7082d89e Move `DefaultTagHelperContent` from `Razor.Runtime.TagHelpers` to `Razor.TagHelpers`.
#578
2015-10-22 15:23:23 -07:00
N. Taylor Mullen 6d0b268440 Add `Init` method to `TagHelper`s.
- The init method allows multiple `TagHelper`s to inject data into the `context.Items` bag to properly function when running in unison with other `TagHelper`s that need to communicate with children.
- Transition `GetChildContentAsync` from `TagHelperContext` to `TagHelperOutput`.
- Move `TagHelperContext.GetChildContentAsync` tests to `TagHelperOutputTest`.
- Added `Init` test to ensure `TagHelperRunner` calls it in the correct order.

#571
2015-10-22 15:10:08 -07:00
N. Taylor Mullen b1ad14fd46 Rename `Microsoft.AspNet.Razor.Runtime.TagHelpers`.
- Changed non-user facing type names to `Microsoft.AspNet.Razor.TagHelpers`.
- Updated folder structure to reflect new namespaces.
- Updated generated code files to reflect new runtime type namespaces.

#578
2015-10-22 10:45:43 -07:00
N. Taylor Mullen bd2a98e5ec Rename `Microsoft.AspNet.Razor.TagHelpers`.
- Name changed to `Microsoft.AspNet.Razor.Compilation.TagHelpers`.
- Changed folder locations to reflect namespace change.

#578
2015-10-22 10:25:19 -07:00
N. Taylor Mullen deaf2dc828 Enable `TagHelper`s to properly flatten to enable partial parsing.
- `TagHelper`s used to not flatten correctly resulting in inconsistent start locations for `SyntaxTreeNode`s following/within `TagHelper`s.
- This change indirectly corrected bad indentation that existed in generated C#.
- Added a test to validate `TreesAreDifferent` returns expected behavior when modifying content inside of `TagHelper`.
- Added `TagHelperBlock` `Flatten` test.

#553
2015-10-16 15:57:37 -07:00
N. Taylor Mullen 2d4092ca32 Add line pragmas to dynamic attributes.
- This enables debugging and proper error reporting for dynamic attributes. Without the pragmas errors would showcase generated Razor C# instead of their corresponding .cshtml files.
- Did not have to do any `TagHelper` specific changes since they utilize the same core attribute rendering logic.
- Updated generated C# files for tests.

#569
2015-10-16 09:41:12 -07:00
N. Taylor Mullen ed617d17e9 Remove linemappings file. 2015-10-15 15:20:57 -07:00
Pranav K 11af72a9c6 Renaming Microsoft.Framework.* -> Microsoft.Extensions.* 2015-10-03 15:44:39 -07:00
Pranav K 3e8b7b607d Refactor WriteAttribute \ AddHtmlAttribute
Fixes #177
2015-09-30 16:12:10 -07:00
Ajay Bhargav Baaskaran bc103fcaa4 Fix: Index out of bounds for incomplete attribute value
- #555
- Added a unit and a code generation test
2015-09-30 14:51:43 -07:00
Ryan Nowak 9a41bafea7 Fix #526 - use extension methods for AppendFormat
These changes make TagHelperContent with the IHtmlBuilder pattern, but
retain the signatures returning TagHelperContent.

Removed a bunch of tests that are no redundant with tests for the
extension methods in HttpAbstractions. Kept a few explemars in place to
ensure that the basic plumbing functions as desired.
2015-09-27 22:47:23 -07:00
Pranav K e87f10e8f8 Change ITypeInfo.IsTagHelper to ITypeInfo.ImplementsInterface(ITypeInfo)
Fixes #511
2015-09-25 21:38:36 -07:00
N. Taylor Mullen d2a7a355cc Change `[RestrictChildren]` to allow non-`TagHelper` tags.
- Updated the `TagHelperParseTreeRewriter` loosen child restrictions to non-`TagHelper` HTML elements.
- Updated tests to showcase that non-`TagHelper` elements are allowed to be restricted.
- Added an additional test case to showcase sub-sub nesting of non-`TagHelper` restricted children.

#543
2015-09-25 16:27:48 -07:00
N. Taylor Mullen 816b1f4190 Update `Lookahead` method in `Tokenizer` to maintain its existing buffer.
- Added tests to verify correctness.

#527
2015-09-25 16:23:42 -07:00
N. Taylor Mullen 67739ea565 Add `ParentTag` to `[HtmlTargetElement]`.
- `ParentTag` allows `TagHelper`s to restrict where they apply based on their immediate parent tag.
- Changed the `TagHelperParseTreeRewriter` to understand non-`TagHelper` HTML elements to properly determine a parent tag when applying `TagHelperDescriptor.RequiredParent`. This change will also enable `[RestrictChildren]` to apply to more than just `TagHelper`s.
- Added tests to validate that partial and well formed tags properly discover `TagHelper`s. Also added tests that validate that descriptors are properly created based on `TagHelper` types.

#474
2015-09-24 10:30:36 -07:00
Ryan Nowak c9341ee3d7 React to removal of ToString on TagHelperContent
The code generator generates calls to ToString() on a TagHelperContent
when used with dynamic content inside an attribute that needs to be passed
to a TagHelper as a string.

This change updates the codegen to use GetContent(IHtmlEncoder)
2015-09-23 11:07:44 -07:00
Ryan Nowak 323befaaf1 Avoid GetContent and ToString in TagHelperContent tests 2015-09-22 21:28:59 -07:00
Ajay Bhargav Baaskaran 3f34add497 Removed support for regex type names in @addTagHelper and @removeTagHelper
- #426
- Updated tests to not use regex patterns
2015-09-22 17:48:59 -07:00
N. Taylor Mullen 7239eb015c Add support for data bound symbols as attribute names.
- Took the HTML5 spec approach of disallowing specific characters and accepting all others.
- Added several parser and code generation tests to cover both `TagHelper` and non-`TagHelper` variations of symbol bound attribute names.

#137
2015-09-22 16:12:37 -07:00
Pranav K 9c456965a6 ITypeInfo.FullName should return the same value as TypeInfo.FullName
Fixes #523
2015-09-21 17:00:35 -07:00
Pranav K 388362245f Making HashCodeCombiner usage non-fluent
React to https://github.com/aspnet/Common/issues/40
2015-09-21 14:46:07 -07:00
Ajay Bhargav Baaskaran 153ed57d66 [Fixes #472] Added temporary parse error for helper directive 2015-09-21 12:09:31 -07:00
N. Taylor Mullen 0253c563be Update tests to run correctly on stable mono. 2015-09-18 17:04:03 -07:00
Kiran Challa 392b7a3710 Reacting to Dnx runtime sources changes 2015-09-18 16:28:26 -07:00
N. Taylor Mullen c494cb344d Enable `TagHelper`s with `[RestrictChildren]` to log errors for no tag name tags when targeted by catch all.
#534
2015-09-18 15:41:58 -07:00
N. Taylor Mullen 635514453b Enable `TagHelper`s with `[RestrictChildren]` to log errors for no tag name tags.
- Added test cases for situations when tags have no names.

#534
2015-09-18 14:47:48 -07:00
N. Taylor Mullen 36450c978b Add support for `@tagHelperPrefix` and `[RestrictChildren]`.
- Added a test to validate prefixed `TagHelper`s can have children with `TagHelper` prefixes.

#532
2015-09-18 12:31:07 -07:00
N. Taylor Mullen fb6a08d5de Allow `TagHelper`s inside of text/html typed script tags.
- To limit the impact of the change ensured that we only do extra work in the case that we detect a script tag with a `type` attribute.
- The parsing changes include normal HTML parsing behaviors when we detect that a script tag has a `type` attribute with value `text/html`.
- Added unit and code generation tests to validate `text/html` script tag behavior.

#502
2015-09-17 21:14:40 -07:00
Pranav K 33a0f7a0db Replace NotNullAttribute with thrown exceptions 2015-09-16 22:06:25 -07:00
Pranav K 381c055e2f Removing NotNullAttribute from Microsoft.AspNet.Razor 2015-09-14 11:58:28 -07:00
N. Taylor Mullen f71f9fb679 Rename `TargetElementAttribute` => `HtmlTargetElementAttribute`.
- Nearly every other `TagHelper` related element targeting attribute has `Html` a part of its name. With this rename, the attribute will be consistent.

#516
2015-09-13 19:14:08 -07:00
Ryan Nowak fcadbc9095 React to BufferedHtmlContent changes
This changes all TagHelperContent methods to assume that input has NOT
YET been encoded.
2015-09-13 13:49:05 -07:00
N. Taylor Mullen 4fd866f340 Update `RestrictChildrenAttribute`s properties and parameters to have consistent names.
- Other attributes such as `TargetElement` have names referring to tag names as "tags". This update makes both attributes more consistent.

#517
2015-09-13 11:57:48 -07:00
Ajay Bhargav Baaskaran e2881b0eca Extra newline no longer rendered at the end of a code block
- #485
- Using a flag to consume whitespace and newline at the end of a verbatim block
- Added tests to validate nested blocks
2015-09-10 10:39:37 -07:00
Doug Bunting 493e5521b8 Build break: Mock `TypeInfo` as well to get 4 tests working
- as of aspnet/aspnet.xunit@5a12e89 xUnit uses `TypeInfo` more often
2015-09-09 22:49:12 -07:00
Pranav K 9a7be69a0d Produce ITypeInfo \ IPropertyInfo using CodeAnalysis symbol tree 2015-09-09 16:34:12 -07:00
Pranav K 231e8a9cf4 Create an abstraction model for TypeInfo for tag helper discovery. 2015-09-08 17:37:08 -07:00
Ajay Bhargav Baaskaran 08c8f9f7ba Parse the whitespace surrounding equals in attribute correctly
- #123
 - Handled the corresponding cases in tag helper scenarios
 - Added unit and code generation tests
2015-09-08 11:43:37 -07:00
Doug Bunting 6568de38d1 Two quick fixes
- add missing closing quote in a resource
- cleanup `project.json` files
  - remove some package references that are found transitively
2015-09-08 08:39:03 -07:00
N. Taylor Mullen d458e8ecb2 Change HTML in nested C# blocks to properly handle dots.
- Prior to this change adding a `.` after an implicit expression would result in compile errors due to Razor thinking the `.` was part of the C# (normally not the case).
- Added a code generation and unit tests to validate behavior.

#491
2015-09-07 19:18:09 -07:00
N. Taylor Mullen f843aec538 Update tests to reflect new length provided `RazorError`s.
- Added new tests to validate `TagHelperDescriptorResolver` properly calculates assembly location.

#386
2015-09-02 12:05:53 -07:00
N. Taylor Mullen 09bcc67955 Update tests to use `Environment.NewLine` for source locations. 2015-09-01 01:32:21 -07:00
Ajay Bhargav Baaskaran 39dda01f47 [Fixes #484] Attributes parsed correctly when newlines precedes attributes 2015-08-28 14:59:24 -07:00
N. Taylor Mullen d0688a7e00 Add the ability for `TagHelper`s to exist inside templates.
- Previously doing `@<mytaghelper />` was invalid due to how we constructed templates lambdas.

#489
2015-08-21 16:51:47 -07:00
N. Taylor Mullen 55760b4fcb Add copy constructor to `TagHelperAttribute`.
- Added test to validate copy constructor does its job.

#492
2015-08-20 22:09:46 -07:00
Ajay Bhargav Baaskaran dad3e3ade3 [Fixes #441] Removed constructors from TagHelperAttributeDescriptor and
TagHelperDescriptor
2015-08-16 18:09:07 -07:00
N. Taylor Mullen 96f1090ff1 Fix Travis.
- Fixed test that had newlines but indexes not based on them.
2015-08-15 10:07:02 -07:00
N. Taylor Mullen cf1355245f Add `RestrictChildrenAttribute` specific `TagHelperDescriptorFactory` tests.
- We covered invalid tag names in the attribute but not the full end-to-end descriptor factory resolution piece.

#255
2015-08-14 23:52:50 -07:00
N. Taylor Mullen 465ff9713d Add ability for `TagHelper`s to specify restricted children.
- Specifying the `RestrictChildrenAttribute` enables `TagHelper`s to only allow other `TagHelper`s targeting specified names to be in the children.
- Used the `null` value to indicate that `AllowedChildren` was not specified and therefore everything is allowed. This is the default.
- Added name verification to name values to ensure that no bad values pass through the system.
- Added parsing tests to validate a mixture of content generates errors when expected.

#255
2015-08-14 23:13:57 -07:00
Pranav K 3361507c29 Remove ability to specify ignored '@' in the middle of non-string
TagHelper bound attributes.

Fixes #436
2015-08-14 18:12:31 -07:00
Ajay Bhargav Baaskaran 156f859edc Removed constructors from TagHelperAttributeDesignTimeDescriptor,
TagHelperDesignTimeDescriptor and TagHelperDirectiveDescriptor
2015-08-14 11:42:51 -07:00
N. Taylor Mullen e9292a0e30 Add ability to write start tag only `TagHelper` elements.
- To write a start tag only `TagHelper` you can now utilize the `TagStructure` property on the `TargetElement` attribute. If none is specified it'll be treated as unspecified and default to old behavior of being start/end tag or self-closing.
- Added `TagMode` to showcase what the user initially wrote in their Razor document. This way `TagHelper`s can flow end-to-end in thesame format as they were written with.
- Updated code generation to specify `TagMode` instead of the boolean self-closing.
- Updated existing tests to move from `SelfClosing` => `TagMode`.
- Added `TagStructure` related tests to the set of tests that we currently have for `TagHelperBlockRewriter` and `TagHelperParseTreeRewriter`.

#450
2015-08-13 16:18:06 -07:00
Ajay Bhargav Baaskaran 71c4c8dac6 [Fixes #428] Removed newlines at the end of razor comments 2015-08-13 15:06:09 -07:00
sornaks 168fcbb9c1 Replacing BufferedEntryCollection with BufferedHtmlContent so any IHtmlContent can be added to a TagHelperContent.
- Introducing a new logic to calculate IsEmpty/IsWhitespace.
- Making Buffer private in DefaultTagHelperContent.
- Making SetContent non-abstract.
2015-08-10 14:54:10 -07:00
N. Taylor Mullen 4604c807c4 Add ability for unbound complex `TagHelper` attributes to flow through MVC attribute resolution system.
- Today MVC has specific rules about resolving Razor attribute values. Ex: `true` => attribute name being used as attribute value. This change ensures that unbound complex `TagHelper` attribute use that same logic.
- Added configuration to `GeneratedTagHelperContext` for `AddHtmlAttributeValues`.
- Had to be careful with code generating `AddHtmlAttributeValues`. In the case of `data-`; they can appear as complex attributes but may not contain any pieces that are `DynamicAttributeBlockChunk`s. Had to protect against this scenario.
- Updated existing test files.
- Added a new code gen test case to showcase the various use-cases of unbound dynamic `TagHelper` attributes.

#247
2015-08-10 11:29:22 -07:00
Troy Dai fa9f2ace5f Update CoreCLR versions 2015-08-04 10:15:31 -07:00
N. Taylor Mullen 48a6b567d6 Remove ~/ handling from core Razor.
- Removed parsing, chunk generation and code generation.
- Removed related tests.
- Did not modify existing unrelated tests with ~/ since it's just plain text and may be valid for end-users.

#427
2015-07-31 15:55:29 -07:00
N. Taylor Mullen a8fd85db1e Add ability to execute child content more than once.
- Added a boolean overload that specifies whether the user wants to retrieve cached content.
- Added tests to validate `TagHelperExecutionContext` `GetChildContentAsync` and that `TagHelperContext` passes the appropriate values through.

#459
2015-07-31 15:23:49 -07:00
N. Taylor Mullen 3b5692a5a5 Removed extra IVT from `Microsoft.AspNet.Razor`.
- Added tests to validate `IsStringProperty` on `TagHelperAttributeDescriptor`s.

#464
2015-07-28 14:58:59 -07:00
N. Taylor Mullen e722f90481 Transition `HashCodeCombiner` to use the `aspnet/Common` variation.
- Updated `LocationTagged<TValue>` to handle `null` implicit values.
- Removed `InternalsVisibleTo` declaration on `Microsoft.AspNet.Razor` to the runtime test project.
- Updated `TagHelperDescriptor` tests to utilize helper methods to construct `TagHelperDescriptor`s. This was needed since the `InternalsVisibleTo` declaration was removed.

#449
2015-07-28 10:45:08 -07:00
N. Taylor Mullen 4d0821f953 Transition Razor test comparers to new project.
- Changed namespaces for test comparers.

#461
2015-07-28 10:38:09 -07:00
N. Taylor Mullen a66490c012 Format runtime tests project.json. 2015-07-27 12:03:06 -07:00
N. Taylor Mullen 3ab6f56284 Fix `DesignTimeDescriptorFactory.CreateDescriptor` call to properly retrieve type from `TypeInfo`.
- Added `TagHelperDescriptorFactory` level tests to validate correct information is being pased to the `TagHelperDesignTimeDescriptorFactory`.

#457
2015-07-24 15:07:07 -07:00
N. Taylor Mullen c87dd8d9de Fix EditorBrowsableAttribute detection to apply to individual attributes.
- Prior to this change we'd return early and not generate any found descriptors if ANY property on a `TagHelper` had editor browsable never.
- This issue was hidden from tests due to us using the wrong comparer. Updated the comparer and failures occurred without the `TagHelperDescriptorFactory` change (yay).

#454
2015-07-23 15:26:46 -07:00
N. Taylor Mullen b762830a43 Consume `EditorBrowsableAttribute` on `TagHelper`s.
- Changed `TagHelperDescriptorFactory` to not create individual descriptors when `EditorBrowsableAttribute` is present and set to `EditorBrowsableState.Never`.
- Added tests to validate the `TagHelperDescriptorFactory` creates the attribute correctly.
- Did not look down the inheritance chain for `EditorBrowsableAttribute` because `TargetElement` is not inherited.

#447
2015-07-16 14:49:09 -07:00
sornaks ec5d1b4f4a Merge branch 'htmlcontentpart1' into dev 2015-07-10 15:45:48 -07:00
sornaks 6a7cd0f490 Making TagHelperContent implement IHtmlContent. 2015-07-10 15:44:22 -07:00
N. Taylor Mullen 2031a73918 Normalize tests project.json formatting. 2015-07-10 15:40:03 -07:00
N. Taylor Mullen c9c07bd393 Update test project.json to not depend on Moq for CoreCLR. 2015-07-10 15:38:37 -07:00
Doug Bunting 69d8e52bf9 Add support for get-only indexer properties
- #399
- move invalid `HtmlAttributeNameAttribute.Name` checking to `TagHelperDescriptorFactory`
- add a few new error cases
 - but does not cover all the new error cases e.g. `[HtmlAttributeName(...)]` on a get-only `int` property

nit:
- `resx` target removed some older resources from `RazorResources.Designer.cs`
2015-06-30 23:03:10 -07:00
Sornakumar Sundararajan 1f480386f4 Making CreateCodeWriter protected so that it can be overridden in Mvc. 2015-06-30 14:51:23 -07:00
N. Taylor Mullen 85be731e2b Add OutputElementHintAttribute to control design time IntelliSense for TagHelpers.
- Decided to not have the attribute inheritable since TargetElement is not inheritable.
- Added tests to validate serialization, deserialization and construction of TagHelperDescriptors with OutputElementHints.
- Changed TagHelperUsageDescriptor to TagHelperDesignTimeDescriptor and TagHelperAttributeDesignTImeDescriptor.

#382
2015-06-30 12:13:04 -07:00
N. Taylor Mullen eda9edc41d Fix Travis-CI.
- Added platform specific path handling to the TagHelperUsageDescriptorFactoryTests.
2015-06-29 17:17:13 -07:00
Doug Bunting 308eddc095 Quick fix: Do not check a platform-specific message 2015-06-25 15:56:21 -07:00
N. Taylor Mullen 9055da1894 Add tests to validate creation of TagHelperUsageDescriptors.
- Could not add tests to validate the full TagHelperDescriptorFactory.CreateDescriptors => TagHelperUsageDescriptors due to how the runtime loads assemblies (does it in memory without XML).
- Added serialization tests to include TagHelperUsageDescriptors.
- Updated existing tests to use new TagHelperDescriptor/TagHelperAttributeDescriptor constructors.

#352
2015-06-25 15:10:38 -07:00
N. Taylor Mullen 0bb9457fd9 Change duplicate TagHelper bound attributes to flow to output.
- Duplicate TagHelper bound attributes used to be ignored entirely; they now flow to the output as if they were unbound.
- Added code generation test to verify duplicate attributes. Added runtime and design time versions.
- Updated existing tests that happened to have duplicate bound attributes.

#418
2015-06-25 11:11:04 -07:00
N. Taylor Mullen 039062c5eb Fix C# design time projections for complex TagHelper attributes.
- TagHelper attributes that have expressions intermingled within them (resulting in Block elements) resulted in Spans in the attribute being falsely marked as SpanKind.Markup.
- Updated tests to account for new SpanKind.Code behavior.
- Added complex scenario to validate SpanKind.Code is flowed through to surround attributes.

#387
2015-06-25 10:27:03 -07:00
N. Taylor Mullen ddbd603653 Enable instrumentation for TagHelpers.
- Removed old code that disabled instrumentation for TagHelper bodies. Instrumentation will throw out sections for begin/end context that don't make it to the final output.
- Added instrumentation around WriteTagHelperAsync. Any content inside of the TagHelper will get sub-mapped via begin/end context.
- Hand verified BasicTagHelpers.cs begin/end context tests to ensure correctness.

#172
2015-06-10 12:52:25 -07:00
N. Taylor Mullen a1df1702e5 Add support for C# 6 exception filters.
- Added new handling of the C# try catch statement to allow exception filters after catch statements.
- Added tests to validate valid and invalid scenarios.

#402
2015-06-10 10:08:10 -07:00
N. Taylor Mullen 619cbc3716 Refactored several tests from TagHelperParseTreeRewriterTest into TagHelperBlockRewriterTest.
- Split the tests into their corresponding impact areas. We were testing a lot of bits that were not specific to the TagHelperParseTreeRewriter in its corresponding tests.

#370
2015-06-08 14:52:01 -07:00
N. Taylor Mullen b0b4ac4f3f Enable TagHelper attributes to render in the order they were originally.
- This was accomplished by changing when/how TagHelper attributes are rendered. Previously they were rendered: Bound => Unbound. Now they're rendered in the order that they exist on the TagHelperChunk.
- Regenerated test files to account for new re-ordering of TagHelper attributes.
- Added duplicate, unbound HTML attribute, unminimized same name test to ComplexTagHelpers.
- Did not add additional tests (other than the one noted above) since the current tests seem to be heavily impacted by the re-organization of code rendering; effectively showcasing the fix.

#225
2015-06-04 15:32:45 -07:00
Doug Bunting 113d80c6f5 Ensure `CodeVisitor`s consistenctly find tag helpers
- #412
- fix `CSharpTagHelperRunnerInitializationVisitor` and `CSharpUsingVisitor`
- fix existing test of the tag helper in a section scenario
2015-06-01 09:03:09 -07:00
Doug Bunting d545f47fe4 Avoid errors when generating baselines
- ignore missing expected output resources in this mode
- update `BaselineWriter` to avoid `IOException`s (file access issues)
 - serialize file operations
 - one file handle per file
- repeatedly `rm TestFiles/CodeGenerator/Output/*; `dnx . test`; no errors

also
- add generation of design-time line mappings
- fix ChunkGenerator -> CodeGenerator typo in path names
- update files only if they have changed
 - new `TestFiles.Exists()` method to support this check
- do not check results in `CSharpCodeBuilderTests` if `GENERATE_BASELINES` set

nits:
- update BOM in CodeBlockWithTextElement.cs to avoid future `git diff`s
- use more `var` and improve variable names in `TestFile`
- wrap long lines
2015-06-01 08:42:23 -07:00
N. Taylor Mullen 3ba92523ff Remove special casing of '*' in TagHelperDescriptorProvider.
- Requesting a '*' tagName from the TagHelperDescriptorProvider could only happen if a user was directly calling into it (extremely unlikely). Therefore I've removed the special casing to make the logic more simple.
- Removed tests that expected this behavior.

#324
2015-05-29 15:06:14 -07:00
N. Taylor Mullen ed92b6992d Addressed code review comments. 2015-05-29 12:50:01 -07:00
N. Taylor Mullen 6df8bc23f1 Renamed CodeBuilder related classes to CodeGenerator
- Now that what used to be CodeGenerators are now ChunkGenerators we can rename the CodeBuilder into its correct structure: a CodeGenerator.
- Moved the TagHelperAttributeValueCodeRenderer from the TagHelpers namespace into the CodeGeneration namespace.
- Went through several classes and remove and sorted usings.
- Updated test files to abide by the new naming convention of Builders => CodeGenerators.

#140
2015-05-27 17:00:41 -07:00
N. Taylor Mullen 5df9b52afe Renamed and moved several Razor classes for clarity.
- Renamed CodeGenerators to ChunkGenerators.
- Updated location of TestFiles from TestFiles/CodeGenerator/CS/{Output|Source} => TestFiles/CodeGenerator/{Output|Source}.
- Removed ChunkTree test; it was a legacy test used to experiment with Razor rendering (not a real test).
- Removed CSharpRazorCodeGenerator; it's now replaced with RazorCodeGenerator. It was an empty class that did nothing.
- Updated ChunkBlock => ParentChunk. Also updated several patterns throughout the code base that referenced these blocks as blocks and not parents.
- Moved Chunks and ChunkGenerators into the Chunks/Chunks.Generators namespace/folder structure. Updated test project to reflect the same.
- Moved CodeBuilders and CodeVisitors to the CodeGeneration/CodeGeneration.Visitors namespace/folder structure. Updated test project to reflect the same.
- Moved several TagHelper assets outside of their own namespaces and into Razors more general structures; such as CodeGeneration and Chunks/Chunks.Generators.

#140
2015-05-27 17:00:25 -07:00
N. Taylor Mullen 0e61b49881 Add support for '*' at the end of required attributes.
- [TargetElement(Attributes ="prefix-*")] is now supported.
- Added '*' to the list of invalid non whitespace characters in TagHelperDescriptorFactory.
- Modified TagHelperDescriptorProvider to respect suffixed wildcards in TagHelperAttributeDescriptor.Attributes.
- Added tests to validate wildcard required attributes

#361
2015-05-21 15:01:32 -07:00