R# Plugin test: Как указать действие контекста с именем в скобках
Я создал составное контекстное действие, которое возвращает пару намерений со следующими текстами:
- [Tag] Действие
- Второе Действие
Сейчас я пытаюсь покрыть это действие тестами. Я сделал все по руководству, но я не могу определить первое действие, используя caret
нотации.
Я пробовал следующие варианты:
{caret:[Tag]:Action}
{caret:Tag:Action}
Записка из них сработала:(
Если я сделаю то же самое для Second Action
, Все отлично. Вероятно, проблема связана с квадратными скобками.
Я не хочу менять название акции. Не могли бы вы посоветовать, как указать действие в скобках?
Спасибо!
ОБНОВИТЬ
Я нашел следующий обходной путь:
- В файле данных укажите псевдоним для действия:
{caret:TagAction}
, Override
SelectItem
метод и настройка атрибутаprotected override IBulbAction SelectItem(SetFrozenAttributeAction contextAction, string attribute, ITextControl textControl) { if (attribute == "TagAction") attribute = "[Tag] Action"; return base.SelectItem(contextAction, attribute, textControl); }
Если ты знаешь лучший способ - предложи это:)
1 ответ
Да, это скобки. Я не знаю почему, но когда он сталкивается с открывающей скобкой {
, он не читает до закрывающей скобки }
, но читает набор символов, которые он считает "действительными", а затем останавливается, когда сталкивается с первым недействительным символом. Действительные символы char.IsLetter
, char.IsDigit
а также $
, (
, )
, ,
-
, .
, /
, \
, Но нет [
или же ]
- Так что ваши {caret:[Tag] Action}
просто прочитал бы {caret:
а потом остановись.
Ваш обходной путь кажется лучшим выбором!