사용자 지정 편집기에서는 문서 데이터 개체와 문서 뷰 개체의 두 부분으로 구성됩니다. 이름에서 설명한 대로 문서 데이터 개체는 표시할 텍스트 데이터를 나타냅니다. 마찬가지로 문서 뷰 개체(또는 "보기")는 문서 데이터 개체를 표시할 창을 하나 이상 나타냅니다.
문서 데이터 개체
문서 데이터 개체는 텍스트 버퍼에 있는 텍스트의 데이터 표현입니다. 문서 텍스트 및 기타 정보를 저장하는 COM 개체입니다. 또한 문서 데이터 개체는 문서 지속성을 처리하고 데이터의 여러 보기를 사용하도록 설정합니다. 자세한 내용은
사용자 지정 편집기 및 디자이너는 개체 또는 자체 사용자 지정 버퍼를 VsTextBuffer 사용하도록 선택할 수 있습니다. VsTextBuffer 는 표준 편집기용 간소화된 포함 모델을 따르고, 여러 보기를 지원하며, 여러 보기를 관리하는 데 사용되는 이벤트 인터페이스를 제공합니다.
문서 보기 객체
코드 및 기타 텍스트를 표시하는 창을 문서 보기 또는 보기라고 합니다. 편집기를 만들 때 단일 창에 텍스트가 표시되는 단일 보기를 선택할 수 있습니다. 또는 여러 창에 텍스트가 표시되는 여러 보기를 선택할 수 있습니다. 선택은 애플리케이션에 따라 달라집니다. 예를 들어 병렬 편집이 필요한 경우 여러 보기를 선택합니다. 각 보기는 RDT(문서 테이블)를 실행하는 IDE(통합 개발 환경)의 항목과 연결됩니다. 뷰 창은 IVsHierarchy 프로젝트 또는 개체에 속합니다.
편집기에서 문서 데이터 개체의 여러 보기를 지원하는 경우 문서 데이터와 문서 뷰 개체는 분리되어야 합니다. 그렇지 않으면 함께 그룹화할 수 있습니다. 자세한 내용은 여러 문서 보기 지원을 참조하세요.
IDE는 실행 중인 문서 테이블의 각 항목에 대한 항목 식별자(ItemID)를 일치시켜 이벤트(예: 문서가 포함된 솔루션이 닫힌 경우)에 대해 뷰에 알립니다. 이에 대한 자세한 내용은 문서 테이블 실행을 참조하세요.
사용자 지정 편집기용 보기를 만드는 두 가지 옵션이 있습니다. 하나는 ActiveX 컨트롤 또는 문서 데이터 개체를 사용하여 창에서 뷰가 호스트되는 현재 위치 활성화 모델입니다. 두 번째는 보기가 Visual Studio에서 호스트되고 IVsWindowPane 창 명령을 처리하도록 구현되는 간소화된 포함 모델입니다. 현재 위치 활성화 모델에 대한 자세한 내용은 현재 위치 활성화를 참조하세요. 간소화된 포함 모델에 대한 자세한 내용은 간소화된 포함을 참조하세요.