Commit Graph

800 Commits

Author SHA1 Message Date
Pranav K a801a49377 Add an API to RazorProject to navigate hierarchical files
Fixes #962
2017-02-03 11:25:15 -08:00
Pranav K 8a4d8c0b59 Simplify packing 2017-02-02 12:57:18 -08:00
Pranav K 74beba7a63 Don't restore for vsix on xplat 2017-02-01 17:13:01 -08:00
N. Taylor Mullen c49d7b8c27 Add support for new style Roslyn dotless commits.
- Roslyn swapped the way they performed dotless commit insertions. They went from:
date => date. => DateTime.  to
date => date. => date => DateTime => DateTime.
The problem with the new approach is that date => DateTime would be rejected and therefore force the editor to reparse and reclassify any dots as HTML giving improper IntelliSense.
- Updated Razor implicit expression edit handling to allow identifier => identifier replacements as long as the identifiers didn't result in keyword or directives.
- Added tests to verify the scenarios impacted.
2017-02-01 15:43:08 -08:00
Ajay Bhargav Baaskaran 7af2f6ff36 [Fixes #961] Disable instrumentation for TagHelper attribute values 2017-02-01 15:26:13 -08:00
Ryan Nowak e549270b4a Add RazorDiagnostic type
This is a replacement for RazorError, is conceptually equivalent with
Diagnostic from Roslyn.

The next PR will start exposing this through our public API rather than
the legacy type.
2017-01-31 15:53:22 -08:00
Ajay Bhargav Baaskaran 406522d14b [Fixes #958] Added support for AddTagHelper, RemoveTagHelper and TagHelperPrefix directives 2017-01-30 15:40:05 -08:00
Ryan Nowak 93981ab13e Update codegen to be compatible with MVC 2017-01-27 16:47:33 -08:00
Ryan Nowak 25831260f7 Make CodeWrite public 2017-01-27 16:38:13 -08:00
Ryan Nowak 2b2cf6efec Correct an issue with codegen for taghelperprefix
The issue here is that when a taghelper prefix is in use it will be
including in the HTML output, when it should be chopped off.

See the diff in the codegen for examples.
2017-01-27 11:13:46 -08:00
Ryan Nowak d187edbd76 Use the TagHelperBinder to dedupe taghelpers
This change does deduplication of taghelpers during the binding/rewriting
phase. This is needed when a taghelper has multiple sets of html
attributes that are required (behaves like an OR). This is used lots in
MVC.

The old codebase used to do this in the codegen phase, but it seems
beneficial to do as early as possible.
2017-01-26 15:36:42 -08:00
Ajay Bhargav Baaskaran 98d5d1c70e Flow parser errors over to the CSharpDocument 2017-01-26 15:32:03 -08:00
Ryan Nowak 0bf9abbedf Hardcoding the right value for MVC 2017-01-26 13:39:55 -08:00
Ryan Nowak 6a95002f0e Fix lowering of taghelpers inside a section
The IR lowering phase was attaching the 'tag helper fields' node to the
builder instead of to the top-level node (document). This meant that
things wouldn't be where we expect when the first tag helper occurrence is
inside a directive block (section).

Found this porting MVC to use the new Razor codebase.
2017-01-26 13:06:06 -08:00
Ajay Bhargav Baaskaran 7725c20c47 Enabled Razor.Evolution tests on linux 2017-01-26 12:34:35 -08:00
Ryan Nowak 243446d225 Quick fix for MVC. Hardcoding fullname of HelperResult. 2017-01-26 10:37:52 -08:00
Ryan Nowak 9df4674ee5 Make property attributes public in IR 2017-01-26 09:13:04 -08:00
Ryan Nowak 936c43a96c Make instrumentation pass public for MVC 2017-01-26 08:26:27 -08:00
Ryan Nowak ec45d8ea8c Remove typeof from codegen
The C# codegen was using some of the new names for various TagHelper
constructs instead of the old namespace.

This change reverts to the old names.
2017-01-24 13:45:50 -08:00
Ryan Nowak 32efe43f85 Delete some dead code 2017-01-24 10:29:30 -08:00
Ryan Nowak 03b63d97a2 Quick fixes from MVC
We're close to hooking up new Razor to MVC. This is a set of enabling
'quick fix' changes to resolve some blockers to using Razor.Evolution in
the product.

Main issues:
 - Types not public enough - anything in the .Legacy namespace is still
   slated from 'improvement'
 - Wrong references. We don't want .Workspaces in MVC, so moving the heavy
   lifting of TagHelper discovery to CodeAnalysis.Razor.
2017-01-24 09:22:28 -08:00
Ryan Nowak 3d5cfc8b8b Bump up binding redircts
The LanguageServices assembly should now be a 1.2.0 assembly since it
builds a package.
2017-01-20 17:53:52 -08:00
Ryan Nowak 851dd7ba3b Add support for TagHelper directives
This commit adds support to the TagHelperBinderSyntaxTreePass to interpret
@addTagHelper, @removeTagHelper, and @tagHelperPrefix.

I also ported all the original tests for this feature and updated them to
call new APIs.

The bulk of the changes here were updates to baseline tests that weren't
correctly using @addTagHelper
2017-01-20 17:44:35 -08:00
Ryan Nowak c31475af4e Move the LanguageServices package to src
Moves the LanguageServices package to src so it will build on the CI.
2017-01-20 16:43:21 -08:00
Ryan Nowak 9ecd30cb2f Add Microsoft.CodeAnalysis.Razor
This project will have all of our roslyn-dependent infrastructure that we
need for designtime and runtime.
2017-01-20 15:26:39 -08:00
Ryan Nowak 4a49ee2164 Adds support for imports to IR lowering
This change adds support for 'imports' - extra source files which contain
directives that can merged with 'main' source files. The purpose of course
is to support things like global usings or addTagHelpers, like
_ViewImports in MVC does today.

Instead of a one-off this is now a feature of the Razor langugage since
things like addTagHelper have an impact on the parsing behavior. Also,
having a standard imports concept keeps out feature creep, for instance
the 'global' usings we have today could really just be an import.

Imports allow single-line directives including the fundamental directives
like addTagHelper, using, and other friends. Code, content, and block
directives are not merged and will be ignored. We can consider making
these kinds of things warnings in the future.
2017-01-20 10:43:53 -08:00
Nate McMaster 79663ef90e Upgrade to RC.3 2017-01-20 09:01:49 -08:00
Nate McMaster 8ba85cf18c
Pin sdk version using global.json 2017-01-19 17:11:22 -08:00
N. Taylor Mullen 6e647854fa Add support for `ViewComponentTagHelpers`.
- Hardcoded `ViewComponent` discovery.
- Hardcoded `ViewComponentTagHelperDescriptor` creation.
- Added test to validate that ViewComponents are discovered and transitioned into TagHelpers properly.
- Avoided adding a reference to MVC to prevent circular references. This resulted in custom marker attributes to represent `ViewComponent`s. Also made a lot of use of `ViewComponent` conventions (ending in "ViewComponent").

#932
2017-01-19 10:18:11 -08:00
Ryan Nowak a84f35022e Rename a test
Imports is something different, this is a test for usings.
2017-01-18 15:33:35 -08:00
Ryan Nowak be10bb5f7b Remove support for includes
I was mistaken, this isn't a feature we will need for _ViewStart.
2017-01-18 09:11:03 -08:00
BrennanConroy ea21469c11 Change Xunit versions 2017-01-17 16:42:34 -08:00
N. Taylor Mullen d218bc3173 Remove AssemblyName requirement from TagHelperDescriptorFactory method.
- The assembly name is accessible on the provided type. No need to pass one in.
2017-01-17 14:47:40 -08:00
Ryan Nowak d7527d2e0a Create new way of suppressing unique Id generation
Adds a way of suppressing generation of guid ids that isn't based on a
global static.
2017-01-17 11:06:41 -08:00
Pranav K 1b0379126b Downgrade the versions of new CodeAnalysis packages
Workaround for #935
2017-01-13 17:18:36 -08:00
Pranav K 9dbf80dde7 Modifications to allow building VSIX from build. 2017-01-13 11:55:46 -08:00
Ryan Nowak 242ea0ee3f Add parsing of includes and imports
Also adds the source document to the RazorSyntaxTree and does some cleanup
related to this. This lets us verify which tree goes to which document and
that seems important.

Added basic tests to verify that parsing happens, though it's not being
used for anything right now.
2017-01-13 11:25:20 -08:00
Yves57 5fa4672c99 Optimize C# symbol content string allocation 2017-01-13 10:59:55 -08:00
N. Taylor Mullen 8215d28ada Port TagHelperDescriptorFactory tests.
- Ported the existing descriptor factory tests and fixed issues with the current implementation.
- Ported documentation tests with the exception of the localization variants.
- Updated the DefaultTagHelperResolver to filter TagHelper types based on accessibility.
- Added DefaultTagHelperResolver tests.

#851
2017-01-13 10:35:10 -08:00
Ryan Nowak 208da8ca12 Add plumbing for imports and includes
Groundwork for support of _ViewImports _ViewStart and others.
2017-01-12 09:25:19 -08:00
Ajay Bhargav Baaskaran ffd455b77e Adds Instrumentation support
Instrumentation is added as an optional pass that can be configured by
MVC.
2017-01-11 17:27:52 -08:00
Nate McMaster 0324ac80dd React to aspnet/KoreBuild#155
This converts to using Internal.AspNetCore.Sdk instead of importing from the KoreBuild folder directly
2017-01-11 14:21:03 -08:00
N. Taylor Mullen ee59368467 Add Microsoft.CodeAnalysis.Razor.Workspaces.Test project.
#851
2017-01-10 12:12:36 -08:00
N. Taylor Mullen 7c6aea443f Downgrade Workspaces.Common to 1.3.0 to work with Microsoft.NETCore.App 1.2.
- This also enables us to target net451.

#927
2017-01-10 12:02:05 -08:00
Ryan Nowak e072a7f452 Fix build break
These baselines needed to updated after changing the namespace
of this type.
2017-01-10 11:53:39 -08:00
Ryan Nowak 59b24fb724 Make TagHelperDescriptor public for tooling 2017-01-10 09:06:05 -08:00
Ryan Nowak 6c7d121ce8 Fix bugs in TagHelper discovery 2017-01-09 18:13:33 -08:00
N. Taylor Mullen ead9692ab1 Disable Cross plat tests for design time code gen tests. 2017-01-09 15:25:38 -08:00
Ryan Nowak 1ac38fea6b Use the version of Roslyn packages available in VS 2017-01-09 13:30:23 -08:00
Ryan Nowak cbc8d12a0c Code dump of Razor extension 2017-01-09 13:09:25 -08:00