답변

1

사실, 중단 점이 실제로 무엇이든하려면 implement a debugger (AD7 인터페이스 등을 통해)이 필요합니다.

실제 중단 점 토글 기능을 사용하려면 IVsLanguageDebugInfo interface (그리고 더 많은 제어를 위해 IVsLanguageDebugInfo2IVsLanguageDebugInfo3도 구현해야합니다). (나는 이미 IVsLanguageInfo을 구현하고있는 귀하의 언어 정보 객체에 대해 제안합니다.) VS가 그것에 대해 알고 있도록 구현체를 등록하는 것을 잊지 마십시오.

ValidateBreakpointLocation()은 사용자가 F9 키를 누를 때 호출되며,이 경우 브레이크 포인트 범위를 라인의 적절한 경계 (또는 언어에 따라 라인의 일부분)로 설정해야합니다. 예를 들어, 람다 또는 행의 후행 주석을 제외한 명령문을 강조 표시하려는 경우) VSConstants.S_OK을 반환하십시오.

+0

답변 해 주셔서 감사합니다. 기본적으로 나는 토글 링을 작동시키고 싶다. 그것은 에디터 윈도우에서 사용할 수 없다. 이 편집기는 기본 C# 편집기이므로 기본적으로 사용자 정의하고 싶지는 않습니다. 단순히 기본 편집기로 사용하기를 원합니다. 다음과 같은 것들이 있습니다 : IVsTextLines docData, IVSCodeWindow codeWindow, IVsTextView textView, IVsTextBuffer textBuffer, IWpfTextViewHost textViewHost. 그래서 IVsLanguageDebugInfo를 구현 한 후 잘 모르겠습니다. 이미 구현 한 것들을 내가 이미 가지고있는 것들을 절대적으로 연결시키는 방법은 무엇입니까? – Quang

+0

추가 정보 :이 경우 파일 경로 (.cs)에서 InvisibleEditor를 만든 다음이 InvisibleEditor에서 언어 서비스 (C#)가 있어야하는 DocData를 가져옵니다. DocData에 이미 언어 서비스가있는 경우 IVsLangueDebugInfo를 제공해야하는 이유가 확실하지 않습니다. 내 가정은 기본 C# langue 서비스가 모든 기본 구현을 제공해야한다는 것입니다.이 경우에는 새로운 언어를 만들지 않기 때문입니다. – Quang

+0

@user : 흠, 흥미 롭습니다. 기존 언어 서비스를 재사용하는 것이 가능하다는 것을 몰랐습니다. 그리고 그 경우 중단 점이 이미 작동 할 것으로 기대합니다. 정보 객체를 VS에 제공하려면 언어 서비스 객체 자체에 대한 인터페이스를 구현해야한다고 생각합니다 (설명서를 다시 읽음). 하지만 네가 가진 게 아닌 것처럼 들리 네. 당신이하고자하는 것을 조금 더 설명 할 수 있습니까? 아마도 또 다른 방법이있을 것입니다. – Cameron