public void Update(Diagnostic[] diagnostics, FileName fileName, IDocument document)
        {
            WorkbenchSingleton.SafeThreadCall(() => {
                ClearTasksForFileName(fileName);

                List<TypeScriptTask> tasks = diagnostics
                    .Select(diagnostic => TypeScriptTask.Create(fileName, diagnostic, document))
                    .ToList();

                TaskService.AddRange(tasks);
            });
        }
		public void Update(Diagnostic[] diagnostics, FileName fileName)
		{
			SD.MainThread.InvokeIfRequired(() => {
				ClearTasksForFileName(fileName);
				
				IViewContent view = FileService.GetOpenFile(fileName);
				if (view == null)
					return;
				
				ITextEditor textEditor = view.GetService<ITextEditor>();
				if (textEditor == null)
					return;
				
				List<TypeScriptTask> tasks = diagnostics
					.Select(diagnostic => TypeScriptTask.Create(fileName, diagnostic, textEditor.Document))
					.ToList();
				
				TaskService.AddRange(tasks);
			});
		}