- Correctly handle VSCode/LSP completion behaviour where the last character typed is implicitly part of the current selection, if it triggered completion (#93).
- Extension now more aggressively forces local user runtime and picks up the latest runtime version available (including previews). This makes it possible to use the extension with preview versions of .NET/MSBuild (#152).
- Language server now validates
dotnet
host process exit code and can provide more diagnostic information in some scenarios, such as when the SDK configured inglobal.json
is not available (tintoy/msbuild-project-tools-server#106).
- Update intellisense help content for Content items and CopyToXXXDirectory global item metadata (#148).
- Improve handling of concurrent loads for MSBuild sub-projects (fixes tintoy/msbuild-project-tools-server#100).
- Extension startup time has been improved.
- The MSBuild language server now runs on .NET 8.
- Isolated runtime for the language server is back, so users no longer need to have a specific version of .NET to be installed to be able to use the extension.
- Improve file-access behaviour for project.assets.json (tintoy/msbuild-project-tools-server#82).
- Revert usage of the
vscode-dotnet-runtime
extension (#89 - isolated runtimes are problematic if you want to use global SDKs).
- Temporary roll-back from v0.5.0 to v0.4.5 (#137).
- The .NET runtime, required to run the language server, is now acquired using the
vscode-dotnet-runtime
extension as a dependency (so you don't need to have that specific version of .NET on your machine installed to use the extension) - All completion are now shown by default
- Basic integration with
redhat.vscode-xml
extension is now provided, so you can use its features formsbuild
language - Language server, packed with the extension, is now built in release mode
- Extension bundle size has been significantly optimized
- Dependencies have been updaded to address known security vulnerabilities
- Wait for redirected STDOUT/STDERR streams to complete when launching dotnet host process (#105, tintoy/msbuild-project-tools-server#28).
Thanks, @tillig!
- Selectively enable COREHOST_TRACE when launching dotnet executable to probe .NET SDKs (#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 (#99).
- Improve parsing of output from
dotnet --info
(#98).
- Always roll forward to the latest (stable) installed version of the runtime (#90).
- Mark extension as a workspace extension to enable correct behaviour in remote scenarios (#99).
- Fix ArgumentNullException from NuGet client library when requesting package version completions (#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 (#74).
- Improve detection logic for .NET host version during extension startup (#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 (#67).
- Explicitly watch parent process for termination (#53).
- Update MSBuild engine packages to v16.5.0 (#66).
- Add IntelliSense for
GenerateDocumentationFile
property (#60).
- Use v16.4.0 of the MSBuild engine (#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 (#48).
- Use correct MSBuild SDK folder for .NET Core 3.0 and newer (#46).
- Enable per-workspace override of
MSBuildExtensionsPath
andMSBuildExtensionsPath32
(#35).
- Prevent "dotnet --info" hanging when its output is larger than the process STDOUT buffer (#42).
- Improvements to logging during startup (#42).
- Log configured package sources when initialising a project document (#44).
- Handle localised output from
dotnet --info
(#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
(#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 (#36).
- Add completion for
LangVersion
property. - Improve metadata completions for
Content
items. - Wait for Exit notification before terminating server process (#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 (#32).
- Implement default value(s) for well-known property completions (#31).
- Use latest version of OmniSharp LSP libraries (improves stability and diagnostic capabilities).
- Improve MSBuild snippets by @doggy8088 (#30).
- Add MSBuild snippets by @doggy8088 (#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 (#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 (#25).
- Bug-fix: language server does not correctly report server capabilities when first initialised (#22).
- Add support for passing language service configuration in
InitializeParams.InitializationOptions
(#17).
- Offer element completions, when appropriate, in whitespace or element text (#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 (#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 #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 (#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 #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 #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.