dotnet / vscode-csharp

Official C# support for Visual Studio Code
MIT License
2.88k stars 676 forks source link

Implement completion for package references in csproj files #1156

Open jchannon opened 7 years ago

jchannon commented 7 years ago

Environment data

dotnet --info output:

.NET Command Line Tools (1.0.0-rc4-004706)

Product Information:
 Version:            1.0.0-rc4-004706
 Commit SHA-1 hash:  e38bc4950c

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.11
 OS Platform: Darwin
 RID:         osx.10.11-x64
 Base Path:   /usr/local/share/dotnet/sdk/1.0.0-rc4-004706

VS Code version: 1.8.1 ee428b0eead68bf0fb99ab5fdc4439be227b6281 C# Extension version: 1.6.2

Steps to reproduce

Edit a netcore csproj

Expected behavior

Intellisense when trying to get nuget package names and versions. This is currently possible in project.json. Editing this file manually without intellisense is a bit painful.

Actual behavior

No behaviour its just editing a text file

DustinCampbell commented 7 years ago

This will likely happen at some point, but not for awhile (unless somebody wants to contribute! :smile:)

cmurczek-it commented 7 years ago

Hi, I'd be willing to give this a shot. I think this was/is a killer feature and I'm already starting to miss it! ;)

Are you planning on merging PR #224? In that case I should make the implementation for csproj somehow fit into what was there for project.json. Otherwise I'd use the project.json implementation as a template for csproj wherever it makes sense.

I'd start by raising the PR asap so you can easily follow up on progress. Since you tagged this issue as Backlog, should I target master or future with my PR?

Let me know your plans regarding #224 so I can compile the task list for my PR.

Cheers, Christoph

DustinCampbell commented 7 years ago

You're welcome to take a stab at it! It'll be quite some time before I'm able to get to this.

strake7 commented 7 years ago

Indeed editing without the intellisense is a bit of a pain so I've been using the dotnet cli to manipulate nuget packages. Though I would use this should it be completed. Good luck!

tintoy commented 7 years ago

BTW, there's a new extension for Visual Studio 2017 that provides PackageReference intellisense:

https://github.com/dotnet/ProjFileTools

Might help if anybody is curious about the mechanics of how to accomplish this.

DustinCampbell commented 7 years ago

@mlorbetske and I were talking about how we might pull this into OmniSharp and C# for VS Code just yesterday.

stuartleeks commented 7 years ago

Go go @mlorbetske :-)

DustinCampbell commented 7 years ago

Unfortunately, this is going to have to move to 1.11. I've started looking at it, but other responsibilities got in the way this month.

tverboon commented 7 years ago

Fortunately, 1.10 is a great release with lots of improvements. 👍🏻

iSazonov commented 7 years ago

Very waiting the enhancement.

tintoy commented 7 years ago

Hi.

It's not part of OmniSharp, but I finally bit the bullet and wrote an extension to provide basic completion for PackageReference elements (package Ids and versions). I'm planning to eventually build out a full MSBuild language service behind it but it's probably good enough now for the most common use-case (packages from nuget.org - custom package sources from NuGet.config will be added in a later release). The NuGet v3 API is a little slow (but not infuriatingly so). Hopefully they'll improve it over time.

BTW, I'm happy to contribute this functionality back to OmniSharp if it makes sense to do so.

ebekker commented 7 years ago

The current changelog for C# extension reads "Known Issues in 1.12.0...There currently is no completion support for package references in csproj files. (#1156)"

Might be a good idea to add a link to @tintoy 's extension to tide people over in the interim. Or just simply adopt that extension wholesale as the official support.

DustinCampbell commented 7 years ago

That's a very good idea (and thanks for bumping this issue to the top of my stack :smile:).

@tintoy: I'd definitely work with you to contribute this back into C# for VS Code if you're interested. In the meantime, I'll add some text to point folks to your extension.

tintoy commented 7 years ago

@DustinCampbell sure, I'm keen :)

ebekker commented 7 years ago

Bonus -- @tintoy just added ability to toggle filtering of pre-release versions!

bryanhitc commented 6 years ago

@DustinCampbell @tintoy Any update on this? It would be great to have this functionality integrated into C# for VS Code.

tintoy commented 6 years ago

@BryanHitchcock It's been a while since I looked into this, but I'm still open to the idea of doing this (and am happy to put in the effort if it's what users want and the OmniSharp team think it makes sense to do so 😄). I suspect this is mostly a deployment issue, rather than one of functionality (although I could be wrong) so it might be enough to ensure that MSBuild Project Tools gets installed when you install the C# extension? We previously discussed creating an extension pack but I don't think anyone's had a proper think about what that would look like so far.

makakaorg commented 4 years ago

Hi, do you have any progress? Fixing Date?

tilkinsc commented 11 months ago

Whats the current state of things? There seems to be no alternatives.