sharpenrocks / Sharpen

Visual Studio extension that intelligently introduces new C# features into your existing codebase
https://sharpen.rocks
MIT License
418 stars 32 forks source link

Visual Studio for Mac and VS Code support [feature request] #23

Open orestesgaolin opened 5 years ago

orestesgaolin commented 5 years ago

As a .NET developer I would love to use this extension in VS4Mac and VS Code.

Alternatively, some kind of cross-platform CLI interface could be useful.

ironcev commented 5 years ago

Hi @orestesgaolin,

Thanks a lot for the feature request! Sharpen for VS4Mac and VS Code - absolutely. Actually, this feature was first requested by @selectnull in private correspondence, soon after I've published the embarrassing v0.1.0 (original quote in Croatian, but I guess it would sound similar in Polish 😃):

E sad kritika... ideja Sharpena je super. Ali... zasto to mora biti plugin na VS? Po meni ispravna arhitektura bi bila da imas library koji implementira funkcionalnost i daje interface prema van. A onda se implemtira VS plugin koji koristi taj lib, mozes napraviti CLI tool koji koristi taj lib, ja mogu napraviti plugin za Vim ili Emacs ili whatever...

Current architecture goes into that direction. The analysis engine is a standalone DLL that does not depend on Visual Studio at all. At the moment it is a .NET 4.6.x DLL but it can for sure easily be ported to .NET Standard. This makes it portable to Linux and Mac. I already wrote one Visual Studio Code extension and have the necessary technical knowledge to write the VS Code plugin. I guess supporting VS4Mac and Rider would be a similar effort.

The reason why it's not done so far is the limited time I have at disposal. At the moment I am the only developer on the project which makes the overal development pace pretty slow. After publishing the support for C# 8.0 I plan to start more actively searching for contributions and I hope there will be developers interested into developing plugins for other IDEs. Let me know if you would maybe be interested.

Regarding the CLI, assuming the Engine is ported to .NET Standard, getting a platform independent CLI (.NET global tool, preferably) would be straightforward. However, usability of such a CLI version concerns me. Just listing the results would be cumbersome, and without the possibility to immediately jump to the corresponding line in code the tool would be very limited. I could imagine case where one would like to have Sharpen as a part of build pipeline, but that somehow colides with the primary intention behin the tool which is learning and understanding new C# features.

Bottom line: plugins for other IDEs make sense and will come one day. At the moment my focus is C# 8.0, afterwards the refactorings and the embedded documentation.

selectnull commented 5 years ago

I'm glad my initial critique has found another kindred spirit that can guide this awesome project in the right direction :)

orestesgaolin commented 5 years ago

@ironcev thank you for your prompt response! That's great to hear that you think about extending the extension (pun intended).

original quote in Croatian, but I guess it would sound similar in Polish 😃

Ha, ha! It sounds a bit like Polish indeed!

At the moment it is a .NET 4.6.x DLL but it can for sure easily be ported to .NET Standard.

I think there are some really helpful people related to MS that look for OSS projects that aim for .NET Standard. I can think of terrajobst, csharpfritz or shanselman that do this kind of migrations pro publico bono.

ironcev commented 5 years ago

The recent 178053b commit ports Sharpen.Engine to .NET Standard 2.0 and represents the first step in the direction of supporting multiple platforms and IDEs.

BrucklynBoy commented 2 years ago

Any update on that? Sharpen for VS Code and/or Rider would be awesome (even better is based on .net core ;))