Commit Graph

1312 Commits

Author SHA1 Message Date
Ryan Nowak 7cca8618ea Change notifications for the project manager
There's still nothing processing the notifications in the background.
This is all the plumbing for dirty checking and publishing updates.
2017-09-12 10:36:56 -07:00
Ryan Nowak 82866d9442 Refactor project snapshot manager
Splits the 'trigger' out from the change manager. The next change will
add more functionality to DPSMBase.
2017-09-08 08:11:58 -07:00
Ryan Nowak 1806d26e9a Merge branch 'rynowak/foreground-theory' into dev 2017-09-07 13:07:13 -07:00
Ryan Nowak 5ee4c8ec4d Add [ForegroundTheory] 2017-09-07 13:06:55 -07:00
Ajay Bhargav Baaskaran aa445ee9b4 Add error for using single quotes in add/remove taghelper directive 2017-09-07 11:29:33 -07:00
Ryan Nowak 00dc95098f Update our diagnostics window
Updates our diagnostics window to use the 'in the box' version of the
assembly/version discovery logic.
2017-09-06 15:37:06 -07:00
N. Taylor Mullen 67f255adca Change completion provider to be lazy if not Razor.
#1672
2017-09-06 12:56:11 -07:00
Ryan Nowak ca844afe5a Add a subsystem for detecting versions
This adds the beginning of an API for detecting versions from the
project. We will flesh out this API more when we do tooling
extensiblity.
2017-09-06 12:36:19 -07:00
N. Taylor Mullen 0155cf2c73 Fix inherits directive description.
#291
2017-09-05 10:50:23 -07:00
N. Taylor Mullen 61260ddf1c Add basic Razor directive completion.
- Added APIs to retrieve an `ITextBuffer` from a `Document` and to retrieve a `RazorCodeDocument` from an `ITextBuffer`.
- The `RazorCodeDocument` from `ITextBuffer` API supports both the new and old Razor parsers so we can transition seamlessly between the two.
- Added logic in the `RazorDirectiveCompletionProvider` to consume descriptions from `DirectiveDescriptor`s. This is then surfaced via tooltips.
- Retrieved currently active `RazorCodeDocument` given a Roslyn buffer and harvested all directives to display in the completion list.
- Added unit tests to validate each new services functionality.

#291
2017-09-05 10:08:31 -07:00
Ajay Bhargav Baaskaran 32d5391ff0 Moved GetDesiredIndentation to a new service 2017-08-31 15:27:11 -07:00
Ryan Nowak f6f8c15f2e Suppress API Check for the MVC 1.X shim
This is a tooling-only package. We have no compatibility requirement for
it.
2017-08-31 08:26:31 -07:00
Ajay Bhargav Baaskaran 040b5eb179 Removed unnecessary files 2017-08-30 22:16:04 -07:00
Ryan Nowak ae925049bb Add an example 2017-08-30 17:06:26 -07:00
Ryan Nowak 9dfe2a0a81 PR feedback 2017-08-30 16:39:12 -07:00
Ryan Nowak d8431067a5 Add TaskSchedulers to the dispatcher abstraction 2017-08-30 16:35:30 -07:00
Ryan Nowak c94c110de3 Move dispatcher to workspaces. 2017-08-30 16:35:29 -07:00
Ryan Nowak f3fecabe04 Bump Roslyn to a 2.6.0 build
Fixes #1654
2017-08-30 15:30:57 -07:00
Ajay Bhargav Baaskaran 5cb11b9bf4 Implmement a project system for Razor 2017-08-30 12:58:38 -07:00
Ajay Bhargav Baaskaran 4b68a48f1d Fix: Broken intellisense for extensible directives 2017-08-29 14:47:52 -07:00
Ajay Bhargav Baaskaran b12683a35d Mark trailing whitespace after type name in directives as markup 2017-08-29 12:48:44 -07:00
Ajay Bhargav Baaskaran f3d121cacf Mark whitespace between tag helper directive and its value as Markup 2017-08-28 21:42:37 -07:00
Ajay Bhargav Baaskaran 1b5bd4afac Added ParentIsTagHelper property to AttributeCompletionContext 2017-08-25 16:23:58 -07:00
Nate McMaster 471722eba1 Use PackageLineup to manage PackageReference versions
This uses a feature of KoreBuild which will select PackageReference
versions based on a lineup file. This helps unify versions between repos
and helps us ensure we are consistent across multiple components.
2017-08-25 15:44:05 -07:00
N. Taylor Mullen 347e4158fb Skipped flakey tests.
- Instead of utilizing ConditionalFact's we're silently skipping these tests to avoid the mass warnings you get otherwise.
2017-08-25 15:30:29 -07:00
Ryan Nowak 7ca8255d6f Add a default VS foregrounddispatcher 2017-08-24 11:29:26 -07:00
Ryan Nowak a9a86fa3bf Add foreground dispatcher 2017-08-24 11:11:25 -07:00
Ryan Nowak d87e0f7fbd Fixes #1632 - track textviews in the document tracker
I've stripped out some of the dead code and complexity from the document
tracker in an attempt to simplify it. I will bring this back as part of
the multi-targeting work.
2017-08-24 10:47:33 -07:00
N. Taylor Mullen 8b4fc0cef6 Take control of VisualStudioRazorParser reparse test mechanics.
#1644
2017-08-24 10:42:12 -07:00
Nate McMaster 4094e8b8f3 Use PackageReference instead of project.json in the VSIX project (#1642) 2017-08-24 09:30:29 -07:00
Ajay Bhargav Baaskaran fa6fde2b20 Moved TagHelper directive validation and parsing from TagHelperBinder to
CSharpCodeParser
2017-08-23 17:14:41 -07:00
Ajay Bhargav Baaskaran 9b6420dbfc Include currently selected attribute in TagHelper completion results 2017-08-23 17:08:59 -07:00
Nate McMaster 0c3fff3137 Upgrade to xunit 2.3.0-beta4 (#1640)
Includes a few changes required by xunit.analyzers, such as removing unused theory parameters.
2017-08-23 12:56:31 -07:00
Nate McMaster 4cadee2762 Use Directory.Build.props/targets (#1641) 2017-08-23 12:24:57 -07:00
N. Taylor Mullen 24154ec4c2 Create a VisualStudio parser to handle the editing loop.
- Renamed `RazorEditorParser` => `VisualStudioRazorParser` (maintained a copy of the original in Legacy)
- Tried to make as little changes as possible to the `BackgroundParser` due to its complexity; mostly just removed the TreeStructureChanged logic since this is re-done on the Razor editor side of things.
- Split the `RazorEditorParserTest`s into two separate tests. Partial parser tests and the VS parsing tests.
- Updated `StringTextSnapshot` to support changes in order to test the VS parser.

#1536
2017-08-23 11:38:11 -07:00
N. Taylor Mullen 6e42c8d0e4 Made section 1.X compatibility only apply at design time.
#1637
2017-08-22 20:47:01 -07:00
N. Taylor Mullen 5104e8c806 Make 2.0 codegen compatible with 1.0 projects until multi-targeting is complete.
#1637
2017-08-22 17:29:33 -07:00
Ajay Bhargav Baaskaran bf63704547 Renamed solutions 2017-08-18 11:46:38 -07:00
Ajay Bhargav Baaskaran d726be6dd1 Removed duplicate extension methods 2017-08-17 16:40:13 -07:00
Ajay Bhargav Baaskaran 45732a5dd3 Fix: Nested tag helpers do not work when tag helper prefix is set 2017-08-17 15:26:10 -07:00
N. Taylor Mullen db805eb3e3 Fix ModelExpression's in section directive blocks.
- Changed `SectionDirectivePass` to move non-token body nodes from the original `DirectiveIntermediateNode` to the `SectionIntermediateNode`. By doing this there's no longer dual references of `SectionIntermediateNode` bodies.
- Added MVC tests for current and 1_X extensions.

#1614
2017-08-16 10:25:53 -07:00
Ajay Bhargav Baaskaran 8d2a9e5929 Support tuples for type directive tokens 2017-08-14 12:43:41 -07:00
Ajay Bhargav Baaskaran 655a693e4a Make ViewComponentTagHelper use extension intermediate nodes 2017-08-11 12:01:21 -07:00
Ajay Bhargav Baaskaran 364fc1a55d Allow nullable types with generic arguments in directives 2017-08-10 11:47:43 -07:00
Ajay Bhargav Baaskaran 4fe07f2298 Added unit tests for DefaultTemplateEngineFactoryService 2017-08-09 12:31:51 -07:00
Ajay Bhargav Baaskaran dbcac41be7 Get the correct version of Mvc for multitargeting 2017-08-07 12:55:37 -07:00
Ryan Nowak 5161ebaf8a Enables the Razor Document Tracker
This enables the tracking of events that change the 'razor' state of a
document that's open in the editor.

Also fixed a crash that can occur when creating a new project with the
Razor Info window open.
2017-08-07 12:36:13 -07:00
Ajay Bhargav Baaskaran 4fcad1548e Added support for multitargeting
- Added 1_X src project for multitargeting

- Added 1_X test project for multitargeting

- Added 1_X test MvcShim for multitargeting

- Make section directive generate the correct code the appropriate version

- Added another sln
2017-08-04 15:39:18 -07:00
N. Taylor Mullen 127784e058 Fix clean machine/testing for Mvc.Extensions. 2017-08-03 10:40:16 -07:00
N. Taylor Mullen aa980fc67c Roslyn-ize our tooling contracts.
- Added `ILanguageServiceFactory` types for all serviceable contracts.
- Maintained binary compatibility by copy/pasting existing services into a Legacy folder.
- Added a Workspaces.Test project since their implementations moved.
- Updated binary incompatible version of `RazorSyntaxFactsService` to not depend on VisualStudio. Added an extension type to the VS.LanguageServices.Razor project to enable easy-access from VisualStudio.

Below on refers to the binary incompatible copies.
Core services that were **entirely** moved from VisualStudio.Razor => Razor.Workspaces are as follows:
- `RazorSyntaxFactsService`, this included mutating the API to not depend on VisualStudio and moving some primitive types such as `AcceptedCharacters`.
- `TagHelperCompletionService`
- `TagHelperFactsService`
These all have a `ServiceLayer` of `Editor`.

Bits that were partially moved:
- `RazorTemplateEngineFactoryService`. The Default implementation and its corresponding factory still live in VisualStudio.Razor. This way Razor.Workspaces can get by without a reference to Mvc.Razor.Extensions.
- `ITagHelperResolver` used to exist in VisualStudio.Razor. Removed the type and replaced its usage with the already-existing `TagHelperResolver` type in Razor.Workspaces. Both contracts were nearly identical.
These all have a `ServiceLayer` of `Default`.

#1260
2017-08-02 16:58:44 -07:00