Visual Studio: Is it possible to define custom functions for use in one's own Code Snippets?
Asked Answered
O

1

12

I want to write a Visual Studio snippet which allows me to quickly create a class of the form:

public SomeClass
{
    public SomeType SomeProperty { get; private set; }
    public SomeClass(SomeType someProperty) { SomeProperty = someProperty; }
}

I want the parameter on the constructor to have the same name as the property, but lower-cased. I don't want to have to type the name twice. How do I do this?

I've already looked at the XML for snippets and I discovered that there are certain functions that can be used. For example, the built-in "switch" code snippet contains the following instruction:

<Function>GenerateSwitchCases($expression$)</Function>

According to this MSDN documentation page, there are three built-in functions that you can use in this <Function> tag. Unfortunately, neither of them does what I want (lower-case the first letter). Is it possible to define a function that I can then use in my snippet?

Override answered 15/2, 2010 at 14:7 Comment(2)
Man, I was just trying to do almost the exact same thing! Argh!Electuary
see this Answer: #5664069Strait
R
6

No this is not possible in Visual Studio today. The definition and execution of snippet functions is directly controlled by the C# language service. It is not currently an extensibility point. It is being considered for a future version of the product though.

Razorbill answered 15/2, 2010 at 19:13 Comment(5)
Is it? Are you sure? There is a comment on a Microsoft Connect post that said this is considered "for the next version", but that comment is from 2005 and there have been two next versions since...Override
For clarity, my comment was referring to your last sentence in which you claimed "It is being considered for a future version". I am unconvinced that this is the case.Override
@Timwii, I can assure you it's actively being considered for a future version of the product. Like always no assurances can be made but it is something that we are investigating.Razorbill
This post claims to have created such a custom function: stackoverflow.com/questions/12730156Lyrism
@Daryl: OP says it won't work for C#. If you read the last couple of comments, he explains.Gradation

© 2022 - 2024 — McMap. All rights reserved.