2016-09-06 8 views
0

我創建了一個返回與下面的文本一對夫婦意向的合成背景動作:R·插件測試:如何用括號指定範圍內的行動名字

  • [標籤]行動
  • 第二個行動

現在我試圖通過測試來覆蓋此操作。我通過指導做了所有事情,但我無法使用caret表示法識別第一個動作。

我已經試過以下選項:

  • {caret:[Tag]:Action}
  • {caret:Tag:Action}

他們的注意工作:(

如果我的Second Action做的一樣,一切都很可能,問題與括號有關

我不想更改操作的名稱。你能建議如何用括號指定動作嗎?

謝謝!

UPDATE

我已經找到了以下解決方法:

  1. 在數據文件中指定的行動別名:{caret:TagAction}
  2. 覆蓋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.IsLetterchar.IsDigit$(),-./\。但不是[] - 因此您的{caret:[Tag] Action}只會讀取{caret:然後停止。

你的解決方法似乎是最好的選擇!

相關問題