Commit Graph

1300 Commits

Author SHA1 Message Date
N. Taylor Mullen e0e1c39cce Added a LiveShareWorkspaceProvider to enable location of the remote workspace in live share scenarios.
- MEF is the primary means of resolving the new live share provider therefore we allow it to not be registered.
- The new contract is in the Editor.Razor binary so the LiveShare bits don't have to take the dependency on the windows binary in Razor (has a lot of baggage).
- This is specific to live share but providing a generic way to resolve workspaces didn't seem reasonable given the varying expectations in VS4Mac. If we need to make a more generic solution in the future we'll revisit this; for now this is a straight forward inclusion of live share functionality.
- Added tests to validate the new behavior.
- This unblocks the live share scenario of resolving the remote workspace. We can't rely on the projection buffers to provide the correct workspace because that workspace is wired up too late in the process of opening a Razor file.

#2335
2018-05-08 16:54:43 -07:00
Ryan Nowak 1d5245c421 Reorganize file tracker
This is precursor to a much bigger change. Pushing out some of the
changes that have broad impact early to make it easier to review the
real change.
2018-05-08 16:27:51 -07:00
Ajay Bhargav Baaskaran f150ee329a Merge branch 'release/2.1' into dev 2018-05-03 11:19:46 -07:00
N. Taylor Mullen dbed73da32 Remove ProjectService requirements for Razor text buffer initialization.
- Now that we have our own content type the editor does the work of determining if a Razor file opened in a core project should flow to our code.
2018-05-03 11:13:36 -07:00
Ryan Nowak e0612d7e07 Fixes for the document window state 2018-05-03 10:28:13 -07:00
Ajay Bhargav Baaskaran 41c0a69c5b Allow build server to run on net46 2018-05-02 16:17:09 -07:00
Pranav K 1a2ca58eba
Merge pull request #2324 from aspnet/release/2.1
Merge release/2.1
2018-05-01 19:31:26 -07:00
Pranav K a94323499b Change CopyToPublishDirectory on Content items instead of explicitly removing this from publish items
Fixes #2295
2018-05-01 16:50:49 -07:00
Pranav K 05c84f008a Ensure Views dll are copied during P2P builds
FastUpToDateCheck in VS doesn't account for changes solely to .Views.dll. This causes referencing projects to be treated as
up to date even though a referenced project rebuilt. Touch the marker file to cause referenced projects to rebuild.

Fixes https://github.com/aspnet/Razor/issues/2306

to cause it to treat
2018-05-01 16:50:49 -07:00
Pranav K 8d99ba53ce Make incremental build in VS copy output files
Fixes #2306
2018-05-01 16:50:49 -07:00
Ajay Bhargav Baaskaran 7cba5ed593 Fix flaky test failure in ServerCommandTest 2018-04-30 16:32:18 -07:00
N. Taylor Mullen c59dcb9b4c Add IVT for Razor.LiveShare.Test. 2018-04-30 16:13:40 -07:00
Ryan Nowak f67458f156 Fix #2298 simplify TagHelperDescriptor hash
The hash code implementation here is exhaustive when it doesn't need to
be. Slimming this down to a much more reasonable set of things for perf
reasons.
2018-04-30 13:55:55 -07:00
N. Taylor Mullen 2885b4b138 Make document tracker resilient to multiple subscribes.
- Added tests to verify new functionality.

#2314
2018-04-30 12:03:13 -07:00
N. Taylor Mullen ee9537bebd Add Razor.LiveShare IVT to Editor.Razor. 2018-04-27 10:57:10 -07:00
N. Taylor Mullen ad66ebb220 Add Razor.LiveShare IVT to CodeAnalysis.Razor. 2018-04-26 15:45:06 -07:00
N. Taylor Mullen 49299d78a4 Add Razor.LiveShare IVT to Razor.Workspaces. 2018-04-25 17:25:56 -07:00
Ryan Nowak e2edc280c5 Add documents, engine, tag helpers to snapshot
The project snapshot now maintains a RazorProjectEngine as well as set
of Tag Helpers that are known for that snapshot.

Pivoted some more services to be snapshot-centric.

Also added the ability to track .cshtml documents to the project system.
For now most components just ignore document changes.
2018-04-25 19:05:54 -04:00
Pranav K 1e2a1405e5
Update tests to target netcoreapp2.1 2018-04-25 10:27:07 -07:00
Pranav K a6a5e4ea10
Simplify building Microsoft.AspNetCore.Razor.Design 2018-04-25 10:27:07 -07:00
Nate McMaster b956aa0c80
Merge branch 'release/2.1' into dev 2018-04-23 19:02:19 -07:00
Nate McMaster 0d047d64f3
Remove explicit reference to NETStandard.Library when using .NET Framework 2018-04-23 13:32:50 -07:00
Ajay Bhargav Baaskaran 2eb9d4d783 Merge branch 'rel/vsmac15.7' into dev 2018-04-20 13:48:35 -07:00
Ajay Bhargav Baaskaran 2be905def4 Make newline comparison work crossplat 2018-04-20 13:34:14 -07:00
Ajay Bhargav Baaskaran d2fe76be21 Write process and pipe information to a pid file 2018-04-18 14:51:28 -07:00
Ajay Bhargav Baaskaran dc997821cc Added nuspec and symbols.nuspec files to Razor.Design 2018-04-17 11:07:34 -07:00
Pranav K 95835d6c37 Continue generating RelatedAssemblyPart on assembly if GenerateAssemblyInfo=false
Fixes #2257
2018-04-13 16:14:37 -07:00
Ajay Bhargav Baaskaran 60b6ec047d Don't fail the build when ExtensionDependencyChecker fails 2018-04-13 15:55:39 -07:00
Pranav K 8d1de6ec80 Make sure RazorSdk works when BuildingInVisualStudio \ BuildProjectReferences is disabled
Fixes #2247
2018-04-13 14:35:04 -07:00
Ajay Bhargav Baaskaran f8dc5c4702 Obsoleted IRazorEngineBuilder APIs 2018-04-13 12:35:53 -07:00
Pranav K 9365fcd053 Don't publish the refs directory when the app does not have any Razor files
Fixes https://github.com/aspnet/Razor/issues/2246
2018-04-11 15:20:16 -07:00
Ajay Bhargav Baaskaran 6d9df1ef33 Noop Razor Sdk for F# projects 2018-04-11 14:18:19 -07:00
Ajay Bhargav Baaskaran 5504374125 Preserve directive node diagnostics in document node 2018-04-10 10:24:21 -07:00
Ajay Bhargav Baaskaran 6270c1f47e Merge branch 'rel/vs15.7' into dev 2018-04-05 16:28:17 -07:00
Ryan Nowak 4cd24a2b08 Add experimental flag to un-special-case data-
This change allows blazor to opt into treating data- attributes the same
way as normal attributes in the parser.
2018-04-05 15:27:04 -07:00
Ryan Nowak d1c0ab587c Add support for type parameters to class nodes
This change will allow someone extending Razor to use generic type
parameters in generated classes.

There's no user-level extensibility provided here yet, as in there is no
language support for adding type parameters.
2018-04-05 15:26:42 -07:00
Ajay Bhargav Baaskaran ae42d7599d Show error if page directive is not at the top of file 2018-04-04 17:27:10 -07:00
Ajay Bhargav Baaskaran b1007744b0 Added PipeOptions.CurrentUserOnly option to the named pipe streams
Don't run on server if CurrentUserOnly is not available
2018-04-04 09:53:36 -07:00
Ajay Bhargav Baaskaran a2a920dde5 Normalize the tool assembly path before using it as the base for pipe name 2018-03-29 12:50:51 -07:00
Ajay Bhargav Baaskaran 03938dfd95 Handle Mutex creation exceptions 2018-03-28 18:23:30 -07:00
Pranav K 1e11b5fa95 Make PreserveCompilationContext=true 2018-03-26 14:23:29 -07:00
Ajay Bhargav Baaskaran 7bc54b99e0 Use tool assembly path for computing default pipe name 2018-03-23 16:50:20 -07:00
Ajay Bhargav Baaskaran adc7184d98 Register missed directives in RazorPageGenerator 2018-03-23 12:36:23 -07:00
Pranav K 954a62c075 Remove EnableDefaultCompiledViewAssemblyLoadBehavior and add a switch to disable generating application part factory attribute 2018-03-22 17:09:53 -07:00
Ajay Bhargav Baaskaran a7178a66bd Show error if page directive is not at the top of file 2018-03-21 11:22:01 -07:00
Pranav K 8631f287d9 Add a few more Razor Sdk fixes
* UseSharedCompilation to determine the default value of UseRazorBuildServer
* Generate AssemblyDescriptionAttribute
2018-03-21 08:44:55 -07:00
Kiran Challa 431a8e195a [Fixes #2144] Incorrect target element of nested tag helper 2018-03-20 15:25:07 -07:00
N. Taylor Mullen c874f84c3d Revert "Revert "Make Razor HTML Comments aware (#2178)""
This reverts commit 1f3f4b79da.
2018-03-20 15:23:53 -07:00
N. Taylor Mullen 1f3f4b79da Revert "Make Razor HTML Comments aware (#2178)"
This reverts commit b58986414e.
2018-03-20 11:54:09 -07:00
Pranav K 2bc3466e3d Do not write generated files to disk if the input has parser errors
Fixes #2169
2018-03-19 21:30:47 -07:00
Ajay Bhargav Baaskaran c934bd08ac Merge branch 'rel/vs15.7' into release/2.1 2018-03-19 19:14:51 -07:00
Ajay Bhargav Baaskaran 9dc7c65205 Fix: Missing Html intellisense after directives 2018-03-19 17:16:11 -07:00
Ajay Bhargav Baaskaran fab70c81ec Merge branch 'rel/vs15.7' into release/2.1 2018-03-19 15:57:46 -07:00
Ajay Bhargav Baaskaran 79e744f691 Handle unreadable import items in design time 2018-03-19 15:39:25 -07:00
Ryan Nowak d72e914fe9 Merge branch 'rel/vs15.7' into release/2.1 2018-03-19 15:11:49 -07:00
Ryan Nowak d1bf120c54 Make 2.1 MVC the default for uninitialized projects 2018-03-19 15:06:57 -07:00
Ryan Nowak 130a751dfa Add an experimental Language Version
Adding a secret language version for Blazor and other experiments.
2018-03-19 14:10:33 -07:00
Ryan Nowak be53b64fc1 Add an experimental Language Version
Adding a secret language version for Blazor and other experiments.
2018-03-19 13:21:06 -07:00
Ryan Nowak 6e4a968e12 Fix #2149 give generated files distinct extension
Gives our generated a files an extension that isn't used for any other
purpose (that we know of). This is handy for tooling to be able to
quickly know if a file is 'ours'. This comes up in places like
IVsSymbolicNavigationNotify (go to definition).
2018-03-19 12:59:16 -07:00
Pranav K 7ff56dadf4 CodeGen RouteTemplate as a RazorCompiledItemAttribute 2018-03-19 12:37:04 -07:00
Ajay Bhargav Baaskaran 767e5a12c3 Display errors from build server as part of MsBuild output 2018-03-19 10:49:00 -07:00
Ryan Brandenburg 7a7cc5ab1e Set 2.0 baselines 2018-03-19 10:46:23 -07:00
Artak b58986414e
Make Razor HTML Comments aware (#2178)
* Merging changes (from dev branch; doing manually to squash them really)of HTML Parser to be aware of HTML Comments so TagHelpers don't complain about comments as content.
2018-03-19 10:18:29 -07:00
Ajay Bhargav Baaskaran d8e363d99c Added parameter validation to RazorTagHelper and RazorGenerate tasks 2018-03-16 12:02:51 -07:00
Pranav K b74582e101 Ensure PreserveCompilationContext is set if we're targeting precompilation tool
PreserveCompilationContext must be set for precompilation tool to work, even when
the app has no views.

Fixes #2168
2018-03-15 12:49:56 -07:00
Pranav K 5f69a01cc5
RazorSdk - Attribute code generation fixes
* Allow the type name for ProvideApplicationPartFactoryAttribute to be specified.

* Generate ReleatedAssemblyAttribute in class library projects
2018-03-14 23:09:28 -07:00
N. Taylor Mullen f9ad346be8 Fix RazorDirectiveCompletionProvider MEF dependency. 2018-03-14 14:41:22 -07:00
N. Taylor Mullen 1d602d1205 Add host project system for VS4Mac.
- Tied into VS4Macs ProjectExtensions in order to bootstrap our Razor world.
- We currently watch all DotNet projects with the expectation that they're the only ones that can potentially turn into Razor compatible projects.
- Added a fallback Razor project host which is used for pre-Razor SDK Razor versions (< 2.1).
- Added a default Razor project host which consumes all MSBuild data from the users packages and sets up the Razor world accordingly.
- Had to modify some existing contracts to work better with new expectations. one of these was the VS4Mac specific Workspace accessor; essentially we needed to be able to lookup a workspace from a solution.
- Some of our previous expectations about addins were wrong (not being able to directly reference your libraries). To avoid using reflection to bootstrap our types I tried out directly referencing our libraries and all worked fine.
- Refactored the DefaultRazorProjectHost in windows (since we had to in Mac) for testing purposes.

#2081
2018-03-13 15:31:45 -07:00
N. Taylor Mullen 492e958114 Change HostProjectBuildComplete to persist workspace projects.
- This was missed in the VS15.7 movement to dev.
2018-03-13 15:11:21 -07:00
Pranav K 1eab654620 Fix typo in Razor.props 2018-03-13 14:01:23 -07:00
Pranav K 425724ce28 Avoid generating RelatedAssemblyAttribute when RazorSdk isn't in play 2018-03-13 13:54:02 -07:00
N. Taylor Mullen 9fc6b8fcf5 Clean up mac completion broker. 2018-03-13 10:04:29 -07:00
David Karlaš 6b2b47a8e6 [VSfM] Fix code completion disappearing/reseting because C# part of .cshtml in regenerated
Razor AddIn generation of C# projection content inside .cshtml depends on code completion being visible hence it needs to know state.
Since we are using Roslyn code completion API which doesn't have method to check if code completion is visible and also it's internal, only other way would be to make some public static field inside CSharpBinding which indicates visibility of code completion, hence it's better to just store this value inside textView.Properties. We should be able to remove this in 15.8 when we switch to new VSEditor code completion API.
2018-03-13 09:59:52 -07:00
Ajay Bhargav Baaskaran fcd4484542 Fix TagHelperDescriptor.Kind serialization 2018-03-12 15:44:38 -07:00
Artak a9004e503e
Merge pull request #2061 from aspnet/artakm/RestrictChildrenComments
Ignoring HTML comments in tag helper's body. Updated the markup parser to be aware of HTML Comments.
2018-03-12 11:17:57 -07:00
Artak Mkrtchyan ae94c3c452
- Updated naming for methods to be more intuitive.
- Added extra tests for clarity
- Added extra comments to clarify complex areas
2018-03-09 18:18:16 -08:00
Artak Mkrtchyan 3e22c16930
Added extra tests for non-covered scenarios:
- For older version of Razor the HTML comments will be complained about by TahHelperRewriter
- RazorParserFeatureFlags tests now ensure that AllowHtmlCommentsInTagHelpers is true in 2.1 version  and false in older versions
- Added extra test for IsHtmlCommentAhead to make sure Razor code transition is allowed in comment tag
- Moved the unallowed html comment ending to a static array.
2018-03-09 17:18:57 -08:00
Pranav K 483fba5972 Generate application part attributes
* Add support for generating attributes on Razor assembly
* Generate ProvideApplicationPartFactoryAttribute on Razor assembly
* Generate RelatedAssemblyAttribute on application assembly
2018-03-09 14:36:55 -08:00
Artak Mkrtchyan 6c8c6a777c
- Clarified the code where the comment content ending is checked to be allowed or not.
- Added more unit tests
2018-03-09 09:16:17 -08:00
Artak Mkrtchyan 1318a83511
Fixed the NextIs method to put back the symbol, when at the end of the file 2018-03-08 17:13:34 -08:00
Artak Mkrtchyan faccd90aa5
Added unit-tests to validate new methods 2018-03-08 16:36:56 -08:00
Ryan Nowak 2f79b90af5 Merge branch 'rel/vs15.7' into dev 2018-03-08 15:49:01 -08:00
Ryan Nowak 989a6c699f Don't add the tag helper provider by default
Since the default tag helper provider is used by MVC then MVC should
include it. Now that Blazor is in the mix we shouldn't include it for
all configurations.
2018-03-08 15:41:34 -08:00
N. Taylor Mullen 07e672159e Merge remote-tracking branch 'origin/dev' into nimullen/vs15.7merge 2018-03-08 14:44:14 -08:00
Artak Mkrtchyan 7357fa04ea
Applied PR feedback (unit testst will be added as part of a separate commit) 2018-03-08 13:38:35 -08:00
Artak Mkrtchyan 32e2c533c7
Naming improvements and test code cleanup 2018-03-08 13:37:05 -08:00
Artak Mkrtchyan 33814fb634
Updated the Comments detection to comply with HTML 5 specification 2018-03-08 13:37:04 -08:00
Artak Mkrtchyan 0af42204eb
Added the AllowHtmlCommentsInTagHelpers feature flag to control behavior of having comments in TagHelpers 2018-03-08 13:37:04 -08:00
Artak Mkrtchyan e1fbea24f1
HtmlMarkupParser is now aware of HtmlComment blocks. Majority (if not all, will confirm soon) tests have been updated to account for HtmlComment blocks. 2018-03-08 13:37:03 -08:00
Artak Mkrtchyan ad8485addd
Added new BlockType - HtmlComment
Updated the HtmlMarkupParser to understand the HtmlCOmments, and treat those as blocks.
2018-03-08 13:37:03 -08:00
Artak Mkrtchyan a940a4cd91
Moved the comment check into the "ValidateParentAllowsContent" method 2018-03-08 13:37:02 -08:00
Artak Mkrtchyan 679acdc5d4
Ignoring razor comments during validation 2018-03-08 13:37:02 -08:00
Artak Mkrtchyan 47228dd822
Revert unnecessary change 2018-03-08 13:37:01 -08:00
Artak Mkrtchyan 41b7d90ea8
Ignoring markup comments during validation 2018-03-08 13:37:01 -08:00
Artak Mkrtchyan e6f68eb244
Added a unit test to repro the issue 2018-03-08 13:37:01 -08:00
Pranav K c4ba279fb5
Skipping flaky test and additional additional diagnositcs to Shutdown command 2018-03-06 09:15:53 -08:00
Pranav K 0d321771ad
Make UseRazorBuildServer=true by default 2018-03-06 09:15:52 -08:00
N. Taylor Mullen 5c456fbd04 Merge branch 'rel/vs15.7' into dev
# Conflicts:
#	build/dependencies.props
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/DefaultProjectSnapshot.cs
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/DefaultProjectSnapshotManager.cs
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/DefaultProjectSnapshotWorker.cs
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/DefaultProjectSnapshotWorkerFactory.cs
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/ProjectSnapshot.cs
#	src/Microsoft.CodeAnalysis.Razor.Workspaces/ProjectSystem/ProjectSnapshotUpdateContext.cs
#	src/Microsoft.VisualStudio.Editor.Razor/DefaultVisualStudioDocumentTracker.cs
#	src/Microsoft.VisualStudio.LanguageServices.Razor/Legacy/LegacyTagHelperResolver.cs
#	src/Microsoft.VisualStudio.LanguageServices.Razor/Microsoft.VisualStudio.LanguageServices.Razor.csproj
#	src/Microsoft.VisualStudio.LanguageServices.Razor/ProjectSystem/Rules/RazorConfiguration.cs
#	src/Microsoft.VisualStudio.LanguageServices.Razor/ProjectSystem/Rules/RazorExtension.cs
#	src/Microsoft.VisualStudio.LanguageServices.Razor/ProjectSystem/Rules/RazorGeneral.cs
#	src/Microsoft.VisualStudio.LanguageServices.Razor/ProjectSystem/Rules/RazorProjectProperties.cs
#	test/Microsoft.CodeAnalysis.Razor.Workspaces.Test/ProjectSystem/DefaultProjectSnapshotTest.cs
#	test/Microsoft.VisualStudio.Editor.Razor.Test/Microsoft.VisualStudio.Editor.Razor.Test.csproj
2018-03-05 22:58:07 -08:00
Ajay Bhargav Baaskaran 27e6c699e5 Don't print normal output as error 2018-03-05 15:22:37 -08:00
Pranav K 41c923926e Make RazorCompileOnBuild=true
Fixes #1986
2018-03-05 11:29:44 -08:00
Pranav K c444f65c5d Import capabilities to support solution explorer nesting
Fixes #2047
2018-03-02 11:18:11 -08:00
Pranav K 5bd650bdd1 Pack should pack symbol nupkg
* Update path calculation for BuiltProjectOutputGroupOutput to include full path. This matches
  the behavior of Microsoft.Common.targets.
* Add Razor symbols to DebugSymbolsProjectOutputGroupOutput

Fixes #2116
2018-03-02 07:45:24 -08:00
Ajay Bhargav Baaskaran 0f1bc0e0bd Fix flaky dispatcher test 2018-03-01 14:29:25 -08:00
Ajay Bhargav Baaskaran a9dca60a10 Added support for AssemblyMetadata caching during build server TagHelper discovery 2018-03-01 13:08:56 -08:00
Ryan Nowak 00485d9f1b Fix #2099 - make AssemblyExtension public
This is needed when a runtime wants to construct its own configuration
manually, especially useful in tests.

(cherry picked from commit 92c511b2b4)
2018-03-01 11:05:35 -08:00
Ryan Nowak 3e0360a891 Fix #2041 - Add static constructor to DocumentWriter
The instance Create method was always supposed to be static.

(cherry picked from commit e05c2abd94)
2018-03-01 10:54:16 -08:00
Ryan Nowak 92c511b2b4 Fix #2099 - make AssemblyExtension public
This is needed when a runtime wants to construct its own configuration
manually, especially useful in tests.
2018-02-28 17:58:21 -08:00
Ryan Nowak e05c2abd94 Fix #2041 - Add static constructor to DocumentWriter
The instance Create method was always supposed to be static.
2018-02-28 13:46:18 -08:00
Ryan Nowak d6784b5f16 Report faults on Razor project system exceptions
Using the async-tasks service will automatically handle and report
exceptions from the project system
2018-02-28 13:04:42 -08:00
Pranav K 62df770c39 PreserveCompilationContext needs to be set only if a project has any Razor files
Fixes #2077
2018-02-28 11:45:20 -08:00
Pranav K 251d57942b Clean up error message when Razor compiler is not referenced
Fixes #1974
2018-02-27 18:08:34 -08:00
Pranav K f51ddf68a6 Add RazorGenerate items to UpToDateCheckInput
Fixes #2048
2018-02-27 15:01:27 -08:00
Pranav K aa21a6be6e
Use File.Open overload that overwrites file entirely in DiscoverCommand (#2110)
* Use File.Open overload that overwrites file entirely in DiscoverCommand

Re-enable TagHelper discovery incrementalism test

Fixes #2104
2018-02-26 10:22:29 -08:00
N. Taylor Mullen b538ceba93 Change final code documents to not contain non-existent imports.
- Existent imports are imports that have content that contribute to the processing of a Razor document. Prior to this we had a legacy expectation that code documents had empty markers in them for all of their import locations. This proved troublesome when cross-referencing files that had file paths and were supposed to be existent but weren't in metadata. Now that we have a project engine with a de-coupled import feature we can rely on the import feature for finding all locations of important files and then strip out any non-existent items.
2018-02-23 16:30:22 -08:00
Pranav K 540e8437da Enable PreserveCompilationContext by default 2018-02-21 11:59:23 -08:00
Pranav K 33e60ae363 Separate VS/DesignTime properties from general SDK properties
Fixes #2069
2018-02-21 11:55:36 -08:00
Pranav K 8938f6c8c2 Change the default extension for Razor views to .Views.dll 2018-02-21 11:48:31 -08:00
N. Taylor Mullen c5e83c61f8 Changed AddDefaultImports to take strings instead of project items.
- Strings here was important because any import added to the system dynamically needs to eventually make its way back to being a project item. With strings we can state that they do exist (have content) but do not have any file paths associated.
- Updated all call sites to use the new AddDefaultImports string based api.

#2080
2018-02-21 09:42:40 -08:00
Pranav K 9a9a2cf66a Make content files work better in class library projects referencing Razor Sdk
* Include cshtml files as content when referencing Razor Sdk
* Exclude cshtml files added by default from being packed

Fixes #1980
2018-02-20 14:15:19 -08:00
Ryan Nowak cf5743ea86 Fix a bug in tag helper discovery on build 2018-02-20 13:07:01 -08:00
Ryan Nowak 43f8108ac3 Merge branch 'rel/vs15.7' into dev 2018-02-19 16:45:49 -08:00
Ryan Nowak 0b777dad3f Decouple tooling from MVC assemblies 2018-02-19 14:39:19 -08:00
Ryan Nowak 5008c7803c Add a project system
Step 1: Add HostProject

This is a somewhat complex addition to the ProjectSnapshotManager. Now
that we accept updates from the underlying IDE project system we need to
coordinate those with the Workspace.

This means that ProjectSnapshot itself now also has a version concept.

Step 2: Introduce a new project system based on CPS

We use project capabilities defined by the Razor SDK to determine
whether to rely on MSBuild evaluation to detect the configuration or
whether to fallback to assembly-based detection.

Step 3: Flow RazorConfiguration everywhere

We use now expose the RazorConfiguration to the language service and
editor. This means that we no longer need to detect the project's
configuration asynchronously, it happens much faster now.
2018-02-19 14:39:19 -08:00
Ryan Nowak 59a1cf9293 Add support for method parameters to Razor IR 2018-02-19 14:38:03 -08:00
Ryan Nowak c032988ddf Merge branch 'rel/vs15.7' into dev 2018-02-19 14:06:34 -08:00
Ryan Nowak fcf6ea03a9 Add IDE extensibility for project engine 2018-02-19 14:03:41 -08:00
Ryan Nowak b644ecfeaa Relayer interaction between extensions and engine 2018-02-19 14:00:31 -08:00
Nate McMaster 13824c418e Catch 15.7 up with dev
This change integrates most of the non-breaking work that we did in 2.1
including the updates to make Razor less coupled to MVC.
2018-02-19 10:46:16 -08:00
Ryan Nowak 45148142ea Fix broken build 2018-02-16 09:43:33 -08:00
Rustam Agametov 9ec207399d bug fix: unused parameter in the constructor 2018-02-16 00:50:59 -08:00
Ajay Bhargav Baaskaran c293267421 Fixed unnecessary invocation of TagHelper target 2018-02-15 15:31:54 -08:00
Pranav K a13a0aa8c4
WebSdk transitions (#2078)
* WebSdk transitions

* Add a reference to Microsoft.Net.Sdk if it wasn't previously referenced
* Move PreserveCompilationContext in to our target
* Remove use of transition property
2018-02-15 15:09:05 -08:00
Ryan Nowak 56ead8118a Decouple Razor tools from MVC
Adds a loader (with shadow copying in server mode) based on the Roslyn
Analyzer loader design.

Adds some targets to the Razor SDK that we can use to compute the
configuration and extensions.

Passes all of the metadata through to the command line tools so they can
deal with extensions.
2018-02-15 13:31:31 -08:00
Pranav K 16bcd8871e WebSdk transitions
* Add a reference to Microsoft.Net.Sdk if it wasn't previously referenced
* Move PreserveCompilationContext in to our target
* Remove use of transition property
2018-02-15 12:08:18 -08:00
N. Taylor Mullen e200b69511 Change IImportProjectFeature to consume RazorProjectItems.
- Updated all implementations of `IImportProjectFeature`; for MVC I went ahead and made a single project item that's always returned for MVC scenarios. That project item is smart about returning its content in a light-weight stream fashion.
- Had to add a `RazorProjectItem` => `RazorSourceDocument` conversion mechanic into `DefaultRazorProjectEngine`.
- Added tests for `DefaultRazorProjectItem.ConvertToSourceDocument`.
- Removed the `ProjectEngine` API from `VisualStudioRazorParser`. This was unrelated but was missed feedback.

#2068
2018-02-15 11:31:18 -08:00
Pranav K 501c180b5f Use properties in package props to redirect imports 2018-02-15 10:40:27 -08:00
N. Taylor Mullen 133eff3119 Move to RazorProjectEngine.
- Instead of using Razor/Mvc TemplateEngine use `RazorProjectEngine`. This involved changing several locations (each of which used `RazorTemplateEngine` in an entirely different way) to use the RazorProjectEngine's two Process methods.
- Changed an unused public API `VisualStudioRazorParser.TemplateEngine` to `VisualStudioRazorParser.RazorProjectEngine`.
- Ported the remainder of `RazorEngineBuilder`'s extension methods over to `RazorProjectEngineBuilder`. These were used in tests and our `RazorGenerate` tool.
- Added a few test helper methods/classes to enable simple testing of the `RazorProjectEngine`.
- Resolved several test hacks that were working around little discrepancies each of the `RazorTemplateEngine` APIs.
- Changed the template engine factory service to be a project engine factory service.
2018-02-14 12:40:23 -08:00
Ryan Nowak 0c6ec09958 Addressed Taylors feedback 2018-02-13 16:21:18 -08:00
Ryan Nowak 82579b6333 Get rid of RazorConfiguration.DesignTime
This change makes it so that we no longer create 'design time' engines.
The choice of design time or runtime is made when we initiate a code
generation operation.

Options instances are now created as part of the CodeDocument
initialization. Our existing code can still be created using a
RazorEngine so our passes that initialize the options still support the
old code path.
2018-02-13 16:21:18 -08:00
Pranav K 010b43cedf Make imports work without warnings or errors when the Sdk is referenced via MsBuild and package. 2018-02-13 13:45:42 -08:00
Pranav K 6be6229d18 Include the buildMultiTargeting folder in the Sdk package 2018-02-12 18:00:58 -08:00
Ryan Nowak c733156596 SDK changes needed to decouple Razor from MVC 2018-02-12 14:08:57 -08:00
N. Taylor Mullen 3375fc8b99 Change RazorProjectEngine to operate on RazorProjectItems.
- Removed the `Process(string)` overload to make it extra clear that you must operate on project items. This way we also don't need to worry about the various formats of paths that can flow through the system.
- Updated tests to use the new project item format.
- Did a few formatting fixes on unrealted files.

#2049
2018-02-09 17:24:27 -08:00
N. Taylor Mullen 84bc74ea9f Move to RazorProjectFileSystem.
- Changed all existing APIs to utilize `RazorProjectFileSystem`. This was possible because `RazorProjectFileSystem` inherits from RazorProject.
- Renamed `FileSystemRazorProject` to `DefaultRazorProjectFileSystem`.
- Renamed FileSystemRazorProjectItem` to `DefaultRazorProjectItem`.
- Obsoleted `RazorProject.Create`

#1828
2018-02-09 11:49:31 -08:00
Nate McMaster 06c2f0cfd2 Merge branch 'release/2.1' into dev 2018-02-09 10:12:41 -08:00
Nate McMaster 1a77aecf68 Align NETStandard.Library version variable with Universe 2018-02-09 10:08:09 -08:00
Pranav K e537cdd319 Prepare for Razor Sdk to be imported by Web Sdk 2018-02-08 15:14:47 -08:00
Ajay Bhargav Baaskaran 8b78b4f421 Cleaned up logging in build server 2018-02-07 23:52:54 -08:00
Ajay Bhargav Baaskaran f991b9ae48 Better comment 2018-02-07 18:23:33 -08:00
Ryan Nowak 2ae925a0f2 Update SDK with tooling changes
These are some updates to the SDK based on the work going on in the
VS 15.7 branch. I porting the SDK changes here early for ease of
testing.
2018-02-06 18:21:33 -08:00