답변

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 참조).

추가 질문이 있으면 언제든지 저에게 연락하십시오.