- Wait for redirected STDOUT/STDERR streams to complete when launching dotnet host process (tintoy#105, tintoy/msbuild-project-tools-server#28).
Thanks, @tillig!
- Selectively enable COREHOST_TRACE when launching dotnet executable to probe .NET SDKs (tintoy#105, tintoy/msbuild-project-tools-server#28).
- Enable logging from .NET / MSBuild-engine discovery logic during language-server startup (tintoy/msbuild-project-tools-server#28).
- Simplify logic for detecting .NET host version (tintoy#99).
- Improve parsing of output from
dotnet --info
(tintoy#98).
- Always roll forward to the latest (stable) installed version of the runtime (tintoy#90).
- Mark extension as a workspace extension to enable correct behaviour in remote scenarios (tintoy#99).
- Fix ArgumentNullException from NuGet client library when requesting package version completions (tintoy#91).
- Support for manually ignoring configured package sources using the
msbuildProjectTools.nuget.ignorePackageSources
extension setting (tintoy/msbuild-project-tools-server#24). - Support for automatically ignoring configured package sources when the v3 service index indicates that they don't support the NuGet completion API (tintoy/msbuild-project-tools-server#24).
- Add support for additional wel-known metadata of ProjectReference items (tintoy/msbuild-project-tools-server#26).
- Improve error handling when project assets file was not found while updating NuGet package references for a project (tintoy/msbuild-project-tools-server#24).
- Correctly handle preview versions of the .NET SDK when discovering MSBuild instances (tintoy#74).
- Improve detection logic for .NET host version during extension startup (tintoy#73).
- Remove legacy ("classic") completion provider.
- Fix MSBuild-dependent tests that break in CI when the 5.0 SDK is also installed (tintoy/msbuild-project-tools-server#20).
- Upgrade language server to target .NET 5.0 (tintoy/msbuild-project-tools-server#22).
- Upgrade the language service to use the .NET Core 3.1 runtime (tintoy/msbuild-project-tools-server#20).
- Always use the MSBuild engine from the newest version of the .NET Core SDK (tintoy/msbuild-project-tools-server#19).
- Completions now correctly replace trigger characters, if any (tintoy#67).
- Explicitly watch parent process for termination (tintoy#53).
- Update MSBuild engine packages to v16.5.0 (tintoy#66).
- Add IntelliSense for
GenerateDocumentationFile
property (tintoy#60).
- Use v16.4.0 of the MSBuild engine (tintoy#59).
- Improved error reporting when language service cannot be started (tintoy/msbuild-project-tools-server#17).
- Language service now targets .NET Core 3.0 (tintoy/msbuild-project-tools-server#17).
- Improve calculation logic for MSBuild ToolsVersion (tintoy/msbuild-project-tools-server#16).
- Use tab-character in completion text (tintoy/msbuild-project-tools-server#13).
- Upgrade MSBuild packages to v15.9.20 (tintoy/msbuild-project-tools-server#14).
- Add UserSecretsId to well-known properties (tintoy#48).
- Use correct MSBuild SDK folder for .NET Core 3.0 and newer (tintoy#46).
- Enable per-workspace override of
MSBuildExtensionsPath
andMSBuildExtensionsPath32
(tintoy#35).
- Prevent "dotnet --info" hanging when its output is larger than the process STDOUT buffer (tintoy#42).
- Improvements to logging during startup (tintoy#42).
- Log configured package sources when initialising a project document (tintoy#44).
- Handle localised output from
dotnet --info
(tintoy#43).
- Fix bug in parsing of extension settings.
- Optionally provide suggestions for packages from local (file-based) package sources (tintoy/msbuild-project-tools-server#9).
- Initial support for flattened (path-based) extension settings (tintoy/msbuild-project-tools-server#7).
- Start removing file-system hyperlinks from hover tooltips, since VS Code no longer renders them correctly.
- Use latest stable version of
NuGet.Configuration
to add support for encrypted credentials inNuGet.config
(tintoy#39).
- Further improvements to log output (especially for project-load failures; exceptions from invalid project XML are only logged when configured log level is Debug or Verbose).
- Reduce size of VSIX package (tintoy/msbuild-project-tools-server#37).
- Improve log output (especially for project-load failures).
- Support overriding of MSBuild SDKs path via environment variable (tintoy/msbuild-project-tools-server#5).
- Bug-fix: ArgumentException (parameter name: itemType) when requesting completions on root
Project
element (tintoy/msbuild-project-tools-server#5).
- Produce cleaner stack-traces using Demystifier.
- Display help and documentation links for well-known MSBuild XML elements (tintoy/msbuild-project-tools-server#5).
- Correctly handle parsing of MSBuild expressions where the root expression is an unquoted string (i.e. composite expression including one or more string-literal text sequences).
- Expression support is no longer experimental!
- Ensure package Ids and version appear before other completion types in
PackageReference
elements / attributes.
- Add completion for
IsPackable
property.
- Bug-fix: Language server process fails to terminate correctly on Linux (tintoy#36).
- Add completion for
LangVersion
property. - Improve metadata completions for
Content
items. - Wait for Exit notification before terminating server process (tintoy#36).
- LSP library's logging now uses configured logging level.
- Implement completion for XML comments.
- Implement completion for top-level
<Import>
element.
- Make ASP.NET core snippets version-specific by @doggy8088 (tintoy#32).
- Implement default value(s) for well-known property completions (tintoy#31).
- Use latest version of OmniSharp LSP libraries (improves stability and diagnostic capabilities).
- Improve MSBuild snippets by @doggy8088 (tintoy#30).
- Add MSBuild snippets by @doggy8088 (tintoy#28).
- Log errors encountered while warming up NuGet client as Verbose instead of Error (tintoy/msbuild-project-tools-server#2).
- Bug-fix: Completions don't always work correctly in .props files (tintoy#27).
- Use latest OmniSharp LSP packages.
- Use v15.5.x of MSBuild packages (tintoy/msbuild-project-tools-server#1).
- Add completions for item elements.
- Split out language server from VS Code extension.
- Never auto-show output window on messages from language server (tintoy#25).
- Bug-fix: language server does not correctly report server capabilities when first initialised (tintoy#22).
- Add support for passing language service configuration in
InitializeParams.InitializationOptions
(tintoy#17).
- Offer element completions, when appropriate, in whitespace or element text (tintoy#15).
- Improve completion behaviour.
- Improve performance of element and attribute completions for tasks in
Target
elements.
- Bug-fix: attribute completions are erroneously offered when creating a new element under an
ItemGroup
element (tintoy#21).
- Simplify extension / language-service configuration schema.
The extension will automatically upgrade settings in the legacy format (i.e. ones without'schemaVersion': 1
), but now ignores the oldmsbuildProjectFileTools
configuration section. - Bug-fix: completions for item metadata expressions being offered when only completions for item group expressions should be offered.
- Bug-fix:
NullReferenceException
when listing completions for item group expressions. - Bug-fix: restore missing hover tooltip for SDK-style project import.
- Bug-fix: metadata names in unused item groups are always named "Identity".
- Diagnostics indicating invalid project contents or XML now have a range covering the whole element or attribute (where possible).
- Bug-fix: Extension won't load, after changes for tintoy#18, if no configuration was specified (restore configuration defaults).
- Add command (
NuGet: toggle pre-release
) to toggle NuGet pre-release packages and package versions on / off (tintoy#18).
- Experimental: Add completions for task elements based on task types declared in the project.
- Experimental: Add completions for task attributes based on task types declared in the project.
- More testing on MacOS and Linux.
- Experimental: Parsing of MSBuild item transform expressions.
- Experimental: Add experimental feature flag (
empty-completion-lists
) to enable returning empty completion lists rather than null
Fixes tintoy#17.
We can't do this by default because our extension depends on VSCode's behaviour when null is returned vs an empty completion list (when null is returned, no completion list is displayed; when an empty completion list is returned, purely-textual completions are displayed based on current file contents).
This behaviour is mainly to support clients other than VSCode (e.g. aCute).
- Add setting to control which types of objects from the current projects are included when offering completions.
- Experimental: Add completions for qualified and unqualified item metadata expressions (
%(XXX.YYY)
and%(YYY)
).
- Bug-fix: attribute completions should be available on elements that don't currently have any attributes.
- Bug-fix: go-to-definition should also work for regular-style project imports (not just SDK-style imports).
- Experimental: Add completions for MSBuild property and item expressions (
$(XXX)
and@(XXX)
).
- Bug-fix: missing completions for top-level elements (e.g.
<PropertyGroup>
,<ItemGroup>
,<Target>
). - Improve help for well-known items and their metadata.
- Bug-fix for tintoy#11 (should not fail on non-standard file extension).
- Add help for well-known elements, attributes, properties, and item types from
MSBuild.*.xsd
to improve completions and tooltips-on-hover. - Improve completions for attributes that refer to target names.
- Add completions for attributes that refer to target names.
- Add completions for top-level elements (e.g.
<PropertyGroup>
,<ItemGroup>
,<Target>
). - Add completions for property elements (both common and locally-defined).
- Improve language-service internals (more consistently accurate comprehension of project contents).
- Improved completions:
- Add completions for
PackageReference
andDotNetCliToolReference
. - Add completions for common item attributes.
- Add completions for property
Condition
elements. - Support for logging to Seq.
Only useful if you're hacking on the language service itself.
- Add completions for
- Sort package versions in descending order for classic completion provider, too.
If you prefer the old behaviour, you can setmsbuildProjectTools.nuget.newestVersionsFirst
tofalse
.
- Sort package versions in descending order.
If you prefer the old behaviour, you can setmsbuildProjectTools.nuget.newestVersionsFirst
tofalse
.
- Improve tooltip content when hovering on MSBuild XML.
- Enable jumping from PackageReference element to package on NuGet.org.
- Add specific hover tooltip for Condition attributes.
- Add basic syntax-highlighting for expressions in MSBuild projects (currently only supported in attribute values).
- Improve delay on first completion of PackageReference by asynchronously warming up the NuGet client.
- Add configuration setting to disable tooltip-on-hover.
- Add configuration setting to control logging verbosity.
- Actually enable the language server by default (sorry about that).
- Language server is now enabled by default.
- Improve calculation of line / column offsets.
- Provide intellisense for regular-style and SDK-style imports whose conditions evaluate to false.
- Respect the user's nominated version of the .NET Core tooling to use when loading master projects (equivalent to running
dotnet --version
in the solution directory, this respectsglobal.json
if present).
- Provide intellisense for items whose conditions evaluate to
false
. - Show information about conditions on hover for items and properties.
- Handle
Import
elements that give rise to multiple imported projects (this already worked correctly for SDK-style imports). - Initial support for master and sub projects.
- Use a patched version of
Microsoft.Language.Xml
that behaves correctly in non-windows environments (issues with CR vs CRLF line-endings). - Improve tooltips on hover.
- Fix handling of non-windows line endings.
- Fix cross-platform path handling.
- More informative tooltips on hover
- Handle multiple items originating from a single item group element in the XML.
- Improved error handling
- Implement go-to-definition for project-style and SDK-style imports.
- Detect .NET Core version on startup, and fall back to classic completion provider if >= 2.0.0 is not available.
- Add configuration property (
msbuildProjectFileTools.languageService.enable
) to switch between MSBuild language engine and classic completion provider.
- The extension now uses a language server based on Microsoft's Language Server Protocol.
- Tooltips for MSBuild objects in the project file.
- Support for any configured (remote) package source.
We're using the new NuGet client libraries so it should understand global, solution-local, and project-local package sources. - Highly-improved handling of project files with broken or invalid XML (thanks to
Microsoft.Language.Xml
).
- Resolve the URL for the NuGet v3 AutoComplete API at extension startup.
- Initial release.