2009-02-02 6 views
20

최근에 John Lam's Vibrant Ink VS 색 구성표를 사용하여 다른 색상의 클래스에 대한 메서드 이름을 강조 표시하기 위해 조정하고 싶습니다. 거기에 VS에 대한 옵션이 없습니다.VS 2008에 대한 사용자 정의 구문 강조 표시

Resharper에는 사용자 지정 구문 강조를 제공하는 a feature이 있습니다. 세분화 된 사용자 정의 구문 강조를 제공하는 작은 플러그인을 작성하는 것이 얼마나 힘든지 궁금합니다. 거기에 오픈 소스 광고가 있습니까?

편집

모두 감사합니다, 나는 DXCore를 사용하여 물건을 해킹 관리 및 내 VS 오 TextMate를 너무 비슷한 찾고 있습니다.

VS is looking fantastic http://img14.imageshack.us/img14/637/awesomevsgq1.png

** 참고 **

나는 그것이 C#에서 점으로 구분 된 메소드 이름과 평등 사업자와 함께 작동하므로 약간 로리하여 조각을 수정했다

.

내가 지금 사용하고 있습니다 :

  string name = ea.LanguageElement.Name.Split('.').Last(); 

      if (name == ("op_Equality")) { 
       name = "=="; 
      } else if (name == "op_Inequality") { 
       name = "!="; 
      } 

      ea.PaintArgs.OverlayText(name, 
       ea.LanguageElement.NameRange.Start, 
       Color.FromArgb(255,204,0)); 
+0

나는 VS에서 ad-ins에 의해 호출된다고 생각합니다. – Avram

답변

11

Brian은 이미 말했습니다 ... My PaintIt pluginDXCore으로 수행 할 수있는 작업에 대한 아이디어를 줄 것입니다.

또한 우리의 "Community Plugin Site"에 대한 몇 가지 다른 "장식 플러그인"가 당신이 특정 질문이 있으면 우리는

DevExpress IDE Tools 포럼에 괜찮은 지역에 걸쳐있다.

DXCore 당신에게 그래픽 기능의 종류

그들이 어떤 능력이 있는지의 아이디어를 줄 것이다 RefactorProCodeRush이 구축되는 프레임 워크입니다.

그런데 DXCore을 사용하기 위해 이러한 도구 중 하나가 필요하지 않다고하셨습니다. Community Site is "Open Source" (그래서입니다 PaintIt)

모든 것이 당신에게 얼마나 간단한 일의 아이디어를 제공하기 위해 ... 다음 코드는 기본을 얻을 기본 플러그인 템플릿에 추가 할 필요가 전부입니다 실행이 코드를 기반으로 내가 (CR_ColorizeMemberNames라고 함) 플러그인을 만들었습니다

Private Sub PlugIn_EditorPaintLanguageElement(ByVal ea As DevExpress.CodeRush.Core.EditorPaintLanguageElementEventArgs) Handles Me.EditorPaintLanguageElement 
    If ea.LanguageElement.ElementType = LanguageElementType.Method Then 
     ea.PaintArgs.OverlayText(ea.LanguageElement.Name, _ 
           ea.LanguageElement.NameRange.Start, _ 
           Color.HotPink) 
    End If 
End Sub 

... DXCore을 사용하고 Community Plugin Site에 추가.

이진 파일은 내 사이트 here에서 사용할 수 있습니다.

DXCore을 다운로드하여 설치하고 binary of the plugin을 plugins 폴더 (Visual Studio .NET \ 2.0 \ Bin \ Plugins의 경우 C : \ Program Files \ Developer Express \ DXCore 기본값)에 놓아야합니다. 그런 다음 VS 그리고 당신의 메소드 이름은 모두 HotPink에 있어야합니다. (Lovely)

+0

Rory, 작업하는 데 paintit을 사용하는 데 문제가 있었지만 코드 스 니펫을 사용하여이 모든 것을 연결하도록했습니다 (내 스크린 샷 참조). –

0

정말 얼마나 열심히 대답이나 오픈 소스가 있는지 여부 만 완수 할 수 없습니다, 당신은 사용자 정의 텍스트 마커에 익어을 먹고 싶어. 자세한 내용은이 두 문서를 참조하십시오

+0

텍스트 마커는 많은 양의 오버 헤드가 있기 때문에 채색에 좋지 않습니다. 모든 단일 토큰마다 마커를 정의하고 싶지는 않습니다. –

4

는 간단한 키워드 착색을 넘어하려면 Visual Studio를 구문 색상에 대한 자세한 내용은 defined here이다; implement here에 세부 사항.

이 문서는 기본 배관이, 음, 배관 방법 개요 - 그리고 더 중요한 것은, 와이어하는 방법에 대한 내용이수록 자신의 -

+1

이들은 처음부터 언어 서비스를 정의하기위한 문서입니다. 그가 그렇게했다면, 그는 intellisence를 포함한 모든 것을 다시 구현해야 할 것입니다. 그건 정말 비쌀 겁니다. –

3

당신이 자신의 롤하려는 경우, 내가 권하고 싶습니다 점점 DXCore from DevExpress. 나는이 추가 기능을 사용하여 VS2008에 자신의 시각적 요소를 추가 할 수 있다는 것을 알고 있으며 무료라고 생각합니다. 자신의 플러그인을 작성하는 데 도움이되는 적절한 규모의 커뮤니티가 있으며, 이미 사용자를 위해 만들어진 플러그인이있을 수도 있습니다.

저는 DevExpress를 좋아합니다. Refactor를 실행합니다! 및 CodeRush.

2

DXCore를 가져온 다음이 플러그인으로 시작하십시오 : http://www.rorybecker.me.uk/PaintIt.html 그러면 메소드 이름을 색칠하기위한 코드로 시작해야합니다. Rory는 코드를 사용할 수있게 만들고 여기에 회원이 있다고 생각합니다.

+0

그래, 내가 주변에있어 :) 당신은 저에게 [email protected]을 이메일로 보내거나 트위터 twitter.com/rorybecker에서 나를 따라갈 수 있습니다. 그 코드는 꽤 오래되었지만 지금은 업데이트하고 있습니다. –