2015-02-02 3 views
0

Visual Studio 용 LanguageService에서 작업하고 Visual Studio 2013에서 사용자 지정 색에 문제가 있습니다. 최근에 Visual Studio 2010에서 2013으로 이동했으며 RequestStockColorsfalse으로 설정할 때마다 모든 구문 강조 표시가 사라집니다.Visual Studio Extension의 사용자 지정 ColorableItems

My LanguageService는 GetColorableItemGetItemCount을 구현합니다. 나는 9 개의 주문 색깔을 사용하고있다. 언어 서비스를 디버깅 할 때 GetColorableItem이 소수의 시간 동안 호출되었지만 GetItemCount은 절대로 공격을받지 않습니다. 나는 Visual Studio를 통해 디버깅 할 때

나는 다음과 같은 명령 줄 인수를 사용하고 있습니다 :

/ranu /rootsuffix Exp

업데이트 : 나는 처음 5 색 (표준과 중복 사람의 이름을 변경 토큰 색상)을 표준 이름 (예 : "키워드", "식별자"등)과 일치 시키면 해당 색상이 표시되지만 추가 색상 유형은 표시되지 않습니다. 또한 Visual Studio의 서체 및 색상 구성에 해당 항목이 나타나지 않습니다. 어떻게 설치해야합니까?

답변

0

내 맞춤 색상별로 ClassificationFormatDefinition의 인스턴스를 만들어 EditorFormatDefinition 유형으로 내 보내야합니다. 이 작업을 수행하면 폰트 및 색상 페이지에 나타나고 구문 강조 표시로 나타납니다.

[Export(typeof(EditorFormatDefinition))] 
[ClassificationType(ClassificationTypeNames = "<name of color>")] 
[Name("<name of color>")] 
[UserVisible(true)] 
[Order(Before = Priority.Default)] 
internal sealed class ExampleColor: ClassificationFormatDefinition 
{ 
    public ExampleColor() 
    { 
     this.DisplayName = "<name of color>"; 
     this.ForegroundColor = System.Windows.Media.Color.FromArgb(0, 0, 128, 128); 
    } 
} 

난 아직도 내 GetItemCount() 방법에는 안타를보고하지 오전하지만 다음과 같이 기본 6 이상 각 색상

, 나는 클래스 정의를 추가했습니다.

3

최근 내 비슷한 ColorableItems가 구문 강조 표시에 나타나지 않는 비슷한 문제가 발생했습니다. 글꼴과 색상 캐시를 지워서이 문제를 해결할 수있었습니다. 나를 위해

IVsFontAndColorCacheManager mgr = this.GetService(typeof(SVsFontAndColorCacheManager)) as IVsFontAndColorCacheManager; 
mgr.ClearAllCaches(); 

이 고정 일 :

나는 일시적으로 내 대 패키지 내 초기화 방법에 다음을 포함. 이 수정 프로그램은 6 개의 기본값을 포함 할 필요가 없으며 추가 ClassificationFormatDefinition 클래스가 필요합니다.

참고 : GetItemCount()가 호출되는 것을 결코 보지 못했지만 캐시를 지우는 것이 주요 문제를 해결했습니다.

신용 : 또한이 스레드에 대한 에드 도르의 의견에 약간의 크레딧이 내 수정을 찾는 데 도움이 http://www.databaseforum.info/8/1217583.aspx.

+0

감사합니다. –

관련 문제