回答

3

當你正在編寫上下文動作或類似的東西(請閱讀http://confluence.jetbrains.net/display/ReSharper/ReSharper+7+Plugin+Development關於動作和上下文動作)時,你會收到一個IDataContext的實例。以這種方式進行文本控制,文檔和選擇:

var textControl = context.GetData(TextControl.DataContext.DataConstants.TEXT_CONTROL); 
var document = textControl.Document; 
var solution = projectFile.GetSolution(); 
TextRange selection = textControl.Selection.OneDocRangeWithCaret(); 

使用document.GetText獲取選擇範圍的文本。

爲了在當前類的外部生成代碼,您需要找到其他類聲明的元素。爲此,您需要使用IDeclarationsCache,請參閱http://confluence.jetbrains.net/display/ReSharper/4.01+Caches+%28R7%29。當你得到聲明元素時,使用GetDeclarations()方法來接收所有類聲明的訪問權限(由於部分類可以有多個聲明)並將其轉換爲IClassLikeDeclaration。使用AddClassMemberDeclaration方法添加成員和RemoveClassMemberDeclaration以刪除。添加類成員時,使用元素工廠創建添加的元素(請參閱http://confluence.jetbrains.net/display/ReSharper/3.2+Creating+Code+Elements+%28R7%29)。

如果您還有其他問題,請隨時與我聯繫。