Open kant2002 opened 2 years ago
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.
@marcpopMSFT is there something which external contributor can do to solve that? Or at least what stance SDK team has on this issue?
This is on the templating side so routing to them. @dotnet/templating-engine-maintainers do you want templating issues still routed to the templating repo or leave them here since templating code is now in the repo?
For discussion:
--language
(this issue)@vlada-shubina should I jump to linked issue for discussion? From what I see --group and --identity is for disabmuguation of the templates within same language, or even narrower, withing same technology stack. Language is slightly stronger differentiator, so some concerns raised in dotnet/sdk#4135 seems to be not applicable. So I fear that I will only distract discussion in the linked issue.
Moving the issue to dotnet/templating for the planning purposes.
Short time solution - workaround
It is already possible to achieve the desired behavior, though a bit odd. The solution is to use the same groupIdentity
as Microsoft template: here Microsoft.Common.Console
. It makes the template appear in the same line/group in dotnet new
.
You can check https://www.nuget.org/packages/Peachpie.Templates - they are already doing that.
@phenning please let us know if there are any concerns for Visual Studio here.
Medium time solution
--language
(this issue)Long time solution
DotNet
and not Microsoft
. This is not an easy task due to backward compatibilities.@vlada-shubina The issue though there is already an F# console template. If this new template were to have the same group identity, I believe it could hide the built in SDK template depending on the precedence value. Visual Studio would end up using one or the other, not both.
@phenning this new template would be for F-Star, a proof language that is distinct from F# :)
Are Visual Studio taking language into account when displaying template ? Because I clearly see F* as separate language in VS UI.
OK, my aging eyes just noticed it was * and not #. Apologies ;)
I just did some testing on a mock template. You do need to define the "Framework" symbol just like the console template does due to the a bug in the current logic we have that groups the templates together. The bug results in the template being shown, but uncreatable from Visual Studio. There is currently, a bug where we don't handle the case with some language templates within a group have a Framework symbol and others not.
Also, I'm assuming there is a project system that knows how to handle whatever .*proj file is output by the template. There may be further refinements that may need to happen to the templates metadata to hide if the requisite components are not present.
(Opened AzDO 1637898 to track the mentioned bug above)
Is your feature request related to a problem? Please describe.
I writing templates for F language which provide exporting to F#. I want make consuming F programs in .NET ecosystem to be as easy as possible. So I create template https://github.com/kant2002/fstarmsbuildsdk and by mistake do not change short template for template, but do change
Currently when I run
dotnet new console --lang F*
I receive following error messageDescribe the solution you'd like
Would be good that package resolution would take into account switch
--lang
here and resolve template not only on short name, but on short name + language.Additional context
Other languages which may benefit from this