Commit Graph

403 Commits

Author SHA1 Message Date
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
N. Taylor Mullen 46f7a8575e React to updated CoreCLR packages.
https://github.com/aspnet/Coherence/issues/97
2016-05-17 12:11:54 -07:00
N. Taylor Mullen 53e59b39c3 Revert "Add Visual Studio specific RC1 binaries."
This reverts commit 197d6a579f, 2c0fb950bc, 62fe5d6c4e and fad09801f8
2016-05-16 10:30:59 -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 eeed1036e3 Stop compiling for dnx451
Fixes #734
2016-04-15 13:12:14 -07:00
Pranav K 78c742c6ee Removing imports from src projects 2016-04-08 06:48:49 -07:00
N. Taylor Mullen fad09801f8 Update Resource lookup keys for VSRC1 packages. 2016-04-06 11:41:19 -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 2c0fb950bc Add `AssemblyCompany`, `AssemblyCopyright` and `AssemblyProduct` attributes to the assembly. 2016-04-04 16:18:59 -07:00
N. Taylor Mullen 197d6a579f Add Visual Studio specific RC1 binaries.
- This is needed for Visual Studio RC1 backwards compatibility.
2016-04-04 15:20:38 -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
jacalvar abaf3bba50 Make dependencies injectable in TagHelperDescriptorResolver.
* Added an interface for ITagHelperTypeResolver and made TagHelperTypeResolver implement it.
* Added an interface for ITagHelperTypeDescriptorFactory and made TagHelperDescriptorFactory implement it.
* Added a constructor on TagHelperDescriptorResolver that takes in an ITagHelperTypeResolver and ITagHelperDescriptorFactory.
2016-04-01 11:25:47 -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
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
Pranav K d04f2fd2ee Reacting to CoreCLR package changes 2016-03-23 14:30:29 -07:00
Pranav K 63ed1e551a Reacting to CoreCLR package changes 2016-03-23 13:02:53 -07:00
Pranav K 1e3d675993 Reacting to CoreCLR package changes 2016-03-22 15:09:58 -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
Eilon Lipton 0f6fb8277c Fix package metadata 2016-03-15 15:48:34 -07:00
Pranav K 0858d430ea Fix CI build break + add dnx451 2016-03-11 15:51:45 -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
Ajay Bhargav Baaskaran 5b7dc0d1bc Added Company, Copyright and Product attributes to AssemblyInfo 2016-03-03 17:32:27 -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
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
N. Taylor Mullen 2ab54e73c5 Fix build dependencies. 2016-02-17 16:18:08 -08:00
Ajay Bhargav Baaskaran 54fea50483 Enabled xml doc generation 2016-02-17 10:21:17 -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
Pranav K 5e72b580d9 Reacting to CoreCLR package version changes 2016-02-08 09:33:48 -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
N. Taylor Mullen f78c52a216 Expose `IsTagHelper` as an extensibility point.
- This is required for the Razor tooling that determines `TagHelperDescriptor`s.

https://github.com/aspnet/RazorTooling/issues/43
2016-01-28 11:41: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 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