AuthoringSink 오류 목록 질문에 대해서는 언어 서비스에서이 동작을 사용합니다. ParseSource에서 ParseRequest 클래스에는 AuthoringSink가 있습니다. 파서의 동작 외부에서 작업하려는 경우 새 ErrorListProvider를 만들 수도 있습니다. 다음은 몇 가지 예제 코드입니다.
error_list = new ErrorListProvider(this.Site);
error_list.ProviderName = "MyLanguageService Errors";
error_list.ProviderGuid = new Guid(this.errorlistGUIDstring.);
}
ErrorTask task = new ErrorTask();
task.Document = filename;
task.CanDelete = true;
task.Category = TaskCategory.CodeSense;
task.Column = column;
task.Line = line;
task.Text = message;
task.ErrorCategory = TaskErrorCategory.Error;
task.Navigate += NavigateToParseError;
error_list.Tasks.Add(task);
이 정보가 도움이되기를 바랍니다.
요구시 작동이 명령을 사용하면 (작업 코드에서 가져온) 같은 것을 할 수 있습니다 MYSOURCE 클래스에서,이 때마다 발사한다
: 그 한 번 확인 작동하지 않는 경우
public override void OnCommand(IVsTextView textView, VsCommands2K command, char ch)
{
if (textView == null || this.LanguageService == null
|| !this.LanguageService.Preferences.EnableCodeSense)
return;
if (command == Microsoft.VisualStudio.VSConstants.VSStd2KCmdID.TYPECHAR)
{
if (char.IsLetterOrDigit(ch))
{
//do something cool
}
}
base.OnCommand(textView, command, ch);
}
을 그 CodeSense = LanguageService 패키지를 설정할 때 ProvideLanguageService 속성에서 true를 반환합니다. LanguageService에서해야 할 멋진 일은 이러한 속성이 올바르게 켜져 있어야합니다. 어떤 사람들은 심지어 시원한 행동을 무료로 제공합니다!
또 다른주의해야 할 점은 colorizer와 같은 일부 동작이 내 경험의 하이브에서 올바르게 작동하지 않는다는 것입니다. 나는 이것들이 나를 곤경에 빠뜨린 것들이라고 생각하지 않는다. 그러나 나는 2 년 전에 이것들을 구현했다. 그래서 나는 대부분 오래된 코드를 되돌아보고있다.
Visual Studio 2010 이상을 대상으로하는 확장 프로그램의 경우 MPF 언어 서비스가 더 이상 사용되지 않습니다. 가능한 경우 새로운 MEF 인터페이스를 사용하는 것이 좋습니다 (물론 Visual Studio 2008 이전 버전을 대상으로해야하는 경우는 제외). –