다음을 통해 공유


구문 색상 표시를 구현합니다.

구문 색 지정 언어 서비스를 제공 하는 경우 파서는 텍스트 줄의 색 항목 배열로 변환한 이러한 색 항목에 해당 하는 토큰 형식을 반환 합니다. 파서가 색 항목 목록에 속한 토큰 형식을 반환 해야 합니다. Visual Studio코드 창의 colorizer 개체에서 적절 한 토큰 형식에 할당 된 속성에 따라 각 색 항목을 표시 합니다.

Visual Studio파서 인터페이스를 지정 하지 않는 파서 구현입니다 완벽 하 게 구성 하 고 있습니다. 그러나 기본 파서 구현 언어 패키지 Visual Studio 프로젝트에서 제공 됩니다. 관리 되는 코드에 대 한 텍스트에 색을 입히는 완벽 지원 패키지 관리 프레임 워크 (MPF)를 제공 합니다.

편집기에서 텍스트 색을 지정 하려면 다음 단계

  1. 호출 하 여 해당 colorizer 편집기를 가져옵니다는 GetColorizer 방법에는 IVsLanguageInfo 개체입니다.

  2. 편집기 호출을 GetStateMaintenanceFlag 메서드는 colorizer colorizer 외부 유지 해야 하는 각 줄의 상태를 확인 하기.

  3. 편집기를 호출 하 여 colorizer 상태를 colorizer 외부 유지 해야 하는 경우는 GetStartState 메서드의 첫 번째 줄의 상태를 가져올 수 있습니다.

  4. 버퍼 각 줄에 대 한 편집기를 호출 하는 ColorizeLine 는 다음 단계를 수행 하는 방법:

    1. 텍스트 줄의 텍스트 토큰으로 변환 하도록 스캐너에 전달 됩니다. 각 토큰은 토큰 텍스트가 및 토큰 형식을 지정합니다.

    2. 토큰 형식에 색 항목 목록으로 변환 됩니다.

    3. 토큰 정보 줄에 문자 배열의 각 요소에 해당 하는 배열에를 채우는 데 사용 됩니다. 배열에 저장 된 값의 인덱스 색 항목 목록입니다.

    4. 상태 줄의 끝에 각 줄에 대해 반환 됩니다.

  5. 편집기 colorizer의 상태를 유지 해야 하는 경우 해당 행에 대 한 상태를 캐시 합니다.

  6. 편집기에서 반환 된 정보를 사용 하 여 텍스트 줄에 렌더링 되는 ColorizeLine 메서드. 이렇게 하려면 다음 단계가 필요합니다.

    1. 줄에 있는 각 문자에 대해 색 항목의 인덱스를 가져옵니다.

    2. 기본 색 항목을 사용 하는 경우 편집기의 색 항목 목록에 액세스 합니다.

    3. 그렇지 않으면 언어 서비스를 호출 GetColorableItem 색 항목을 얻을 수 있는 방법입니다.

    4. 표시에 해당 텍스트를 렌더링 색 항목에 정보를 사용 합니다.

관리 되는 패키지 프레임 워크 Colorizer

패키지 관리 프레임 워크 (MPF)는 colorizer 구현 하는 데 필요한 모든 클래스를 제공 합니다. 언어 서비스 클래스를 상속 해야 하는 LanguageService 클래스 및 필수 메서드를 구현 합니다. 구현 하 여 스캐너 및 파서를 제공 합니다는 IScanner 인터페이스, 및 해당 인터페이스의 인스턴스를 반환의 GetScanner 메서드 (구현 해야 하는 방법 중 하나는 LanguageService 클래스). 자세한 내용은 구문 색을 입히는 데 (패키지 관리 프레임 워크)를 참조하십시오.

참고 항목

작업

방법: 기본 제공 색 항목 사용

개념

사용자 지정 색 항목

구문 색을 입히는 데 (패키지 관리 프레임 워크)

기타 리소스

언어 서비스를 개발