Commit Graph

1051 Commits

Author SHA1 Message Date
Ajay Bhargav Baaskaran f9d4fba39d Added a taghelpers and imports overload to Process and ProcessDesignTime
We want to have a way to specify the taghelper descriptors and imports to use while
processing a specific document.
- Added an overload to Process and ProcessDesignTime to take in a list
TagHelperDescriptors and a list of imports
- Added the corresponding CreateCodeDocumentCore overload
- Added GetTagHelpers and SetTagHelpers extension methods for
CodeDocument
- Added the necessary plumbing to use the taghelpers from the
CodeDocument when available and fallback logic.
- Added DocumentImportsTracker and updated background code generation
logic to use the new overload
- Added/updated tests
2018-05-22 11:40:21 -07:00
N. Taylor Mullen 59baad17da Merge branch 'rel/vs15.8' into dev 2018-05-21 10:48:16 -07:00
Ryan Nowak 4ac8b21978 Fix dispose logic for EditorDocument
This could throw when the document is disposed and wasn't open in the
editor.

Improved the tests to cover dispose as well for both cases.
2018-05-20 16:39:46 -07:00
N. Taylor Mullen 95d41507fc Add `ProjectPathProvider` abstract for document tracker creation.
- First iteration of live share replaced the document tracker factory entirely; however, this will be prone to breaking changes in the future when me make changes to document tracker to not rely on a file path. To pre-emptively prevent breaking changes I added a project path provider that can be overridden in the live share case. Note that one big difference here between old and new is that instead of being a MEF service implementation for the project path resolution we're bringing that to the Workspace service level.
- Added tests to validate the two flows of the default project path provider.
2018-05-17 15:28:20 -07:00
N. Taylor Mullen e8c8396298 Upgrade to VS 15.8 Preview 2 version of Roslyn. 2018-05-16 15:50:54 -07:00
Ryan Nowak 9b911cbb6e Add some benchmarks for project system
Adds a few benchmarks for things we're working on, also addressed a few
small perf issues that have an impact for large documents.
2018-05-16 13:21:39 -07:00
N. Taylor Mullen 7c70207594 Made the Visual Studio parser smarter about overlapping reparse requests.
- Prior to this the parser would think that a non-latest reparse request was the latest because the only way we would check to see if a change reference was "latest" would be to do an equality check on the snapshot and `SourceChange`; the issue here was that `SourceChange` was null but the snapshots were the same. Problems could arise with this due to project context changes.
- Added tests to validate the new reparse behavior.
- Renamed `Edit` in the `BackgroundParser` to `ChangeReference` also refactored all the "edit" text in `BackgroundParser` to be `ChangerReference` like.
- Added a new event args to be the DTO between the internal and external parser implementations. This is how we could pas additional information in order to determine "latest" change reference.

#2336
2018-05-14 11:54:56 -07:00
Ryan Nowak a412299881 Add a Razor design time build
This allows Razor to know what files belong to the project.
2018-05-14 09:41:15 -07:00
Ryan Nowak fafdd7e3af Track the open/closed state of documents
This change intoduces content changes to our project snapshots. We now
know the open/closed state of documents that are initialized by the
Razor project system and listen to the correct data source based on
whether the file is open in the editor.

There are a few other random improvements in here as well like a
workaround for the upcoming name change to our OOP client type.
2018-05-11 08:18:08 -07:00
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
Pranav K 0f2b315fe4 Fixup Razor Sdk tests to work on netcoreapp2.2 2018-05-08 15:22:54 -07:00
Ryan Brandenburg efaaec6546 Upgrade to netcoreapp22 2018-05-08 15:22:54 -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 8422029310 Merge branch 'release/2.1' into dev 2018-05-02 16:14:42 -07:00
Ajay Bhargav Baaskaran b2c59700d5 Skip flaky test 2018-05-02 15:43:04 -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
Pranav K 2081663635 Re-enable desktop msbuild tests
Fixes #2208
2018-05-01 15:00:03 -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
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
Pranav K 92a7e73b75 Skip flaky test 2018-04-26 17:42:01 -07:00
Pranav K 813e50087c Specify RuntimeFrameworkVersion \ NSLibraryVersion when running tests 2018-04-26 17:42:01 -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
Ajay Bhargav Baaskaran bd871ef9e9 Handle Travis failure on ubuntu 2018-04-25 13:24:53 -07: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
Pranav K a9f818bf82 Disable node-reuse to allow rebuilding
Recent builds of msbuild have node reuse enabled by default. This locks up the
task dlls after the test's completed preventing rebuilds untill you kill the process.
2018-04-23 12:50:38 -07:00
Ajay Bhargav Baaskaran 3adb7c9661 Handle Travis failure on ubuntu 2018-04-18 15:46:06 -07:00
Ajay Bhargav Baaskaran d2fe76be21 Write process and pipe information to a pid file 2018-04-18 14:51:28 -07:00
Pranav K 95835d6c37 Continue generating RelatedAssemblyPart on assembly if GenerateAssemblyInfo=false
Fixes #2257
2018-04-13 16:14:37 -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 6130eb0ec5 Is 1888 fixed 2018-04-13 11:19:07 -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
Ajay Bhargav Baaskaran d1215d8fa1 Skip checking thumbprint of file in osx 2018-03-27 10:46:49 -07:00
Pranav K 1e11b5fa95 Make PreserveCompilationContext=true 2018-03-26 14:23:29 -07:00