Commit Graph

873 Commits

Author SHA1 Message Date
Ryan Nowak 6bab1c682d Fix a build break introduced by new SDK
This is failing on the CI due to an issue with a newer build of the SDK.
I opened https://github.com/dotnet/sdk/issues/1854 to track the SDK bug.

- update korebuild
- upgrade deps
- remove System.Diagnostics.DiagnosticSource from test projects
2018-01-12 14:22:00 -08:00
Ryan Nowak 5f501710aa Make Razor targets noop with no razor files 2018-01-11 13:59:25 -08:00
Ryan Nowak bb0aa9464a Add support and tests for Pack and P2P reference 2018-01-10 18:09:05 -08:00
N. Taylor Mullen 8d6b86c76a Add `RazorLanguage.CoreContentType`.
#1852
2018-01-09 14:59:01 -08:00
Ryan Nowak 03dea86c4e Adding more tests and clarity around file paths
I noticed we were really undertesting all of the things that handle
paths and file names. I gave this some love and a little clean up where
we weren't doing the right thing in RazorSourceDocument.

Also changed the template engine tests to use the
FileSystemRazorProject. These tests are already using the files on disk
as inputs. I turned off checksums for these since they now have the full
file path, and that would not be portable.
2018-01-08 22:53:49 -08:00
Ryan Nowak b7415502bf Add RelativePhysicalPath
The FilePath property on RPI isn't what we want for use in the compiler,
it's more of a view engine concept. Adding a property that does what we
want.
2018-01-08 19:37:54 -08:00
Pranav K bf52e0dbf0 Add support for CopyBuildOutputToOutputDirectory and CopyOutputSymbolsToOutputDirectory
Fixes #1896
2018-01-07 19:16:46 -08:00
Ryan Nowak 16324c3126 Add an Identifier by default
Using the MVC view engine convention for identifiers seems to make the
most sense, and we already use that convention for RazorProject so I
guess we're stuck with it.
2018-01-06 18:43:01 -08:00
Ryan Nowak b93bab9c04 Remove Get/SetRelativePath 2018-01-05 21:52:59 -08:00
Ryan Nowak d602f9d770 Add relative path to source document
Adding this via a properties object that encompasses all of the optional
properties. This way if we need to add more items that are optional we
can continue to do so without overload explosion.
2018-01-05 18:15:06 -08:00
Pranav K 1849056093 Add support for running tests using desktop msbuild 2018-01-05 12:52:01 -08:00
Ajay Bhargav Baaskaran 988d1b3c34 Use common BDN runner and config 2018-01-04 14:35:38 -08:00
Ryan Nowak 6fc028afb0 Attempt to fix travis again 2018-01-02 16:45:32 -08:00
Ryan Nowak 186e5733c0
Add metadata to Razor (#1894)
* Add metadata to Razor

This PR introduces standard metadata to Razor. This change begins to
formalize the contract between generated code produced by Razor and
runtimes that want to load and interact with this code.

This is a step on making MVC a 'plugin' to Razor rather than the only
possible implementation. Since we're doing MSBuild work - this is the
right time to designate the current interaction between Razor and MVC as
'legacy' and move forward.

Additionally, we need the source thumbprinting to make re-compilation of
Razor a thing.

-----

Also I noticed that our source document doesn't expose the hash
algorithm by name. We really should have this, so I added it and
hardened the code that deals with checksums in c# generation.
2018-01-02 13:30:50 -08:00
Ryan Nowak 2717cf8e77 Fix #1893 - fix formatting of RazorCompile 2018-01-02 10:54:59 -08:00
Pranav K 3ae601e4df
Prevent type name collisions when file hierarchy + namespace is identical (#1881)
* Prevent type name collisions when file hierarchy + namespace is identical
2018-01-02 09:41:10 -08:00
Ajay Bhargav Baaskaran 52a06e93bc Added test for DefaultRazorSyntaxFactsService 2017-12-29 17:02:35 -08:00
Pranav K b2e2719e43 Make AspNetCoreSettings actually work 2017-12-28 09:40:21 -08:00
Ajay Bhargav Baaskaran 34fe4099c2 Removed LegacyRazorDiagnostic and RazorError 2017-12-27 11:43:19 -08:00
Ajay Bhargav Baaskaran 439c742dec Removed LegacyResources.resx 2017-12-22 15:59:35 -08:00
N. Taylor Mullen 66d244aafc Make unit test work on linux 2017-12-22 14:33:08 -08:00
N. Taylor Mullen d4994eb4a4 Added DefaultRazorIndentationFactsService unit tests.
- Already had a good variety of integration tests so refactored the service to properly unit test each piece.
- Found several pieces of unneeded code (wasn't being used) so removed it.
- Removed the `LocateOwner` logic that was embedded in the service. We already have an equivalent locate owner on our `SyntaxTreeNode` items.

#1698
2017-12-22 14:31:14 -08:00
Ajay Bhargav Baaskaran 80af17fc4b Moved TagHelperParseTreeRewriter out of LegacyRazorDiagnostic 2017-12-22 12:33:28 -08:00
N. Taylor Mullen 63aceea121 Change TagHelperBlockRewriter's error usage to use RazorDiagnosticFactory.
- Changed `DefaultRazorDiagnostic` to expose a little more information for tests. This info is only available when casted to the `DefaultRazorDiagnostic` type and only available internally.
- Changed parameter order of a `DefaultTagHelperTargetExtension` diagnostic.
- Updated baselines of files in `Razor.Language.Test`.
- Added a new convenience constructor on `SourceSpan`. The ctor is equivalent to calling the class with a SourceLocation.

#1827
2017-12-22 09:38:31 -08:00
Pranav K bd03c16ee7 Ensure test apps use the same SDK as Razor 2017-12-22 07:34:22 -08:00
Pranav K 14fc427068 Make RazorCodeGen track file renames \ deletes
Fixes #1810
2017-12-22 07:13:53 -08:00
Ryan Nowak 3f948ad3c5
Verify support for reporting errors using MSBuild (#1867)
* Verify support for reporting errors using MSBuild
* Verifies that CSC errors get mapped to the right place

Resolves #1850
2017-12-20 16:08:35 -08:00
Ajay Bhargav Baaskaran d419566534 Revert "Revert "Include LineIndex and CharacterIndex when comparing SourceLocation""
This reverts commit bace4a3818.
2017-12-20 15:27:15 -08:00
Ryan Nowak 2c27272e4d Adding a basic test for RazorGenerate
Lotsa cleanup
2017-12-20 12:27:57 -08:00
Ajay Bhargav Baaskaran b3be0ebb91 Moved TokenizerBackerParser out of LegacyRazorDiagnostic 2017-12-20 11:21:05 -08:00
Ajay Bhargav Baaskaran 7d4fb5dcab Moved HtmlMarkupParser out of LegacyRazorDiagnostic 2017-12-19 18:07:23 -08:00
Ajay Bhargav Baaskaran bace4a3818 Revert "Include LineIndex and CharacterIndex when comparing SourceLocation"
This reverts commit 0e20ea5178.
2017-12-19 18:04:18 -08:00
Ajay Bhargav Baaskaran 0e20ea5178 Include LineIndex and CharacterIndex when comparing SourceLocation 2017-12-19 15:59:45 -08:00
Ajay Bhargav Baaskaran 808f539297 Moved CSharpCodeParser out of LegacyRazorDiagnostic 2017-12-19 15:59:37 -08:00
N. Taylor Mullen 926dae0d88 Move DefaultTagHelperTargetExtension errors to use RazorDiagnosticFactory.
- Added tests validating these errors because we didn't have any before.

#1827
2017-12-19 15:28:24 -08:00
Ryan Nowak b900a82bc3 Refocus Razor runtime assemblies
Microsoft.AspNetCore.Razor becomes the home for TagHelper-related types
that you use in your code.

Microsoft.AspNetCore.Razor.Runtime becomes the home type types you need
to build a view engine. User code should not need this package anymore.

None of these are breaking changes due to typeforwards.
2017-12-19 13:26:07 -08:00
N. Taylor Mullen 4b93741610 Add Mac project build change trigger.
- Added a Mac specific implementation of the project build change trigger. It applies to all types of project builds so we need to do a little extra filtering to ensure that we're not operating on a non-ASP.NET Core project.
- Added tests to validate that the project build event fires correctly.

#1851
2017-12-18 17:23:43 -08:00
Ryan Nowak 06c2cf31d4 Hardcode Debug in test 2017-12-18 14:15:30 -08:00
Ryan Nowak 5425c69df6 Use path.combine instead 2017-12-18 13:28:14 -08:00
Ryan Nowak a3fef5eeaa Adds support for Razor compilation at build-time
This PR adds two new tools as well as a tasks project. None of these
projects produce a package and they ship as part of
Microsoft.AspNetCore.Razor.Design. For now this is a 'fat' package that
contains all of the dependencies, but we plan to strip them out in the
future.

The support for compilation at build-time will start as **off** by
default. The immediate goal here is to get this to flow through the
build so that we can test it as part of the inner loop effort. We will
enable this feature by default once we've done more thorough testing.

Since this is mostly a code dump, I plan to address blocking and minor
feedback only. If there are design issues that are non-critical, I will
open follow up items.

The next step will be to start adding more detailed tests.
2017-12-18 13:01:14 -08:00
Ajay Bhargav Baaskaran 18ce7f07ac Moved CSharpTokenizer errors out of legacy diagnostic 2017-12-18 11:51:08 -08:00
N. Taylor Mullen 463e11b739 Make SyntaxTree mutations not leak.
- Prior to this when the partial parser would successfully parse a change we'd mutate the returned syntax tree so any data inquired about the tree would then be wrong. We now isolate mutations to copied versions of the syntax tree.
- Added copy tests to ensure that we were appropriately copying all the various syntax node types.

#1793
2017-12-18 11:50:07 -08:00
Ajay Bhargav Baaskaran 8fcb046345 Moved the test infrastructure to depend on RazorDiagnostic instead of RazorError 2017-12-15 17:22:00 -08:00
Ajay Bhargav Baaskaran 085838e83a Make ErrorSink and Tokenizer depend on RazorDiagnostic instead of RazorError 2017-12-14 18:32:58 -08:00
Ajay Bhargav Baaskaran 6bbd063e26 Use DefaultRazorDiagnostic in DefaultDirectiveSyntaxTreePass 2017-12-14 16:35:13 -08:00
N. Taylor Mullen 4164821e4c Add VS agnostic non-OOP DefaultTagHelperResolver.
- Added tests for the VisualStudio.Editor tag helper resolver.

#1789
2017-12-14 11:28:30 -08:00
N. Taylor Mullen 1aff9d0031 Make RazorEditorFactoryService VS agnostic.
- Moved the editor factory service into the Editor dll. It did not have any windows specific functionality within it.

#1789
2017-12-13 17:11:48 -08:00
Ryan Nowak 1962989ffc Implement a .Design package and some testing for MSBuild
This is the first step in adding support for Razor compilation at build
time. Additional steps will complete this by adding tag helper
discovery, code generation and finally a call to CsC.

I want to get this in now to get the package into the build system and
to lay down the general infrastructure for testing.

---

The strategy for testing here is to use checked in projects that have
everything Razor needs to compile code. We already have shims for the
APIs Razor uses by default in this repo and I'm using them in the
project.

The test infrastructure creates a temporary directory, copies the
project, and fixes up a few small things to cooperate with outputs we've
already built so that the test can use the new versions of Razor bits
built from this repo.

We can then call various MSBuild targets and verify the files on disk. I
envision tests that verify incrementalism as well as the basic E2E.

We will test the E2E in general in other places, since it's part of the
new default experience. This repo will test things at a higher level of
detail, but in slightly artifical scenarios.
2017-12-13 15:06:10 -08:00
Ajay Bhargav Baaskaran 7654f73c54 Assert foreground thread before dispatching events 2017-12-12 16:18:49 -08:00
N. Taylor Mullen b73c50be41 Add Mac implementation of FileChangeTracker.
- Added a LanguageServices Mac test project.
- Added a few tests for the new `DefaultFileChangeTracker`. There's currently an issue with the MonoDevelop.Core binaries we're compiling against which doesn't allow me to unit test other pieces of the class (they depend on instantiating mono develop objects).
- Added IVT from product projects to new mac testing project.

#1789
2017-12-12 15:47:16 -08:00