Resharper Live Template Macro, который меняет имя переменной при выходе - PullRequest
3 голосов
/ 24 февраля 2010

Я хотел бы создать Resharper Live Template, который меняет все пробелы на подчеркивания и мою переменную "факта" Live template $ testname $:

<Fact()> _
Public Sub $testnames$()
    ' Arrange
    $END$

    ' Act

    ' Assert

End Sub

У меня есть это:

    [Macro("applyRegex", ShortDescription = "Run on {#0:variable}", LongDescription = "")]
    class ApplyRegexMacro : IMacro
    {
        public string EvaluateQuickResult(IHotspotContext context, IList<string> arguments)
        {
            return Regex.Replace(arguments[0], " ", "_", RegexOptions.IgnoreCase);
        }

        public HotspotItems GetLookupItems(IHotspotContext context, IList<string> arguments)
        {
            return null;
        }

        public string GetPlaceholder()
        {
            return "placeholder";
        }

        public bool HandleExpansion(IHotspotContext context, IList<string> arguments)
        {
            return false;
        }

        public ParameterInfo[] Parameters
        {
            get
            {
                return new[] { new ParameterInfo(ParameterType.String), new ParameterInfo(ParameterType.String), new ParameterInfo(ParameterType.VariableReference) };           
            }
        }
    }

Но это работает только тогда, когда я нажимаю Tab. Я хочу, чтобы макрос запускался после вывода из $ testname $.

Я хочу иметь возможность просто написать имя теста в одной строке текста с пробелами, а затем макрос превращает все пробелы в подчеркивания.

Возможно ли это?

...