List <Task> SelectedTasks() { List <Task> result = new List <Task>(); int hr = VSConstants.S_OK; IVsTaskList2 taskList = _serviceProvider.GetService(typeof(SVsTaskList)) as IVsTaskList2; IVsEnumTaskItems enumerator = null; hr = taskList.EnumSelectedItems(out enumerator); Debug.Assert(hr == VSConstants.S_OK, "EnumSelectedItems did not return S_OK."); IVsTaskItem[] items = new IVsTaskItem[] { null }; uint[] fetched = new uint[] { 0 }; for (enumerator.Reset(); enumerator.Next(1, items, fetched) == VSConstants.S_OK && fetched[0] == 1; /*nothing*/) { Task task = items[0] as Task; if (task != null) { result.Add(task); } } return(result); }
public void SetAsActiveProvider() { IVsTaskList2 taskList = _serviceProvider.GetService(typeof(SVsTaskList)) as IVsTaskList2; Guid ourGuid = _providerGuid; int hr = taskList.SetActiveProvider(ref ourGuid); Debug.Assert(hr == VSConstants.S_OK, "SetActiveProvider did not return S_OK."); }
private void TaskListRefreshTask(Task task) { if (taskList != null && taskListCookie != 0 && task != null) { IVsTaskList2 taskList2 = taskList as IVsTaskList2; if (taskList2 != null) { IVsTaskItem[] taskItems = { task }; taskList2.RefreshOrAddTasks(taskListCookie, 1, taskItems); } } }
/// <summary> /// Registers current task provider inside the VisualStudio IDE. /// </summary> public void Register(string guid, string name) { // get access to TaskList: IVsTaskList taskListService = serviceProvider.GetService(typeof(SVsTaskList)) as IVsTaskList; IVsTaskList2 taskListService2 = taskListService as IVsTaskList2; this.guid = new Guid(guid); this.name = name; if (taskListService != null && taskListService2 != null) { ErrorHandler.ThrowOnFailure(taskListService.RegisterTaskProvider(this, out cookie)); ErrorHandler.ThrowOnFailure(taskListService2.SetActiveProvider(ref this.guid)); } }
public static HashSet <string> CollectElementPathsFromToolWindowList( ToolWindowKind toolWindowKind) { HashSet <string> stringSet = new HashSet <string>(); IVsTaskList2 vsTaskList2 = (IVsTaskList2)null; switch (toolWindowKind) { case ToolWindowKind.ErrorList: vsTaskList2 = CoreUtility.ServiceProvider.GetService(typeof(SVsErrorList)) as IVsTaskList2; break; case ToolWindowKind.TaskList: vsTaskList2 = CoreUtility.ServiceProvider.GetService(typeof(SVsTaskList)) as IVsTaskList2; break; } IVsEnumTaskItems ppEnum = (IVsEnumTaskItems)null; if (vsTaskList2 != null && ErrorHandler.Succeeded(vsTaskList2.EnumSelectedItems(out ppEnum))) { IVsTaskItem[] rgelt = new IVsTaskItem[1]; uint[] pceltFetched = new uint[1]; while (ppEnum.Next(1U, rgelt, pceltFetched) == 0) { if (rgelt != null && ((IEnumerable <IVsTaskItem>)rgelt).Count <IVsTaskItem>() > 0 && rgelt[0] != null) { string pbstrMkDocument = (string)null; if (ErrorHandler.Succeeded(rgelt[0].Document(out pbstrMkDocument)) && !string.IsNullOrWhiteSpace(pbstrMkDocument)) { if (pbstrMkDocument.EndsWith(".xpp", StringComparison.OrdinalIgnoreCase)) { stringSet.Add(CoreUtility.GetService <IMetadataInfoProvider>().GetXmlArtifactFilePath(pbstrMkDocument)); } else if (pbstrMkDocument.EndsWith(".xml", StringComparison.OrdinalIgnoreCase)) { stringSet.Add(pbstrMkDocument); } } } } } return(stringSet); }
// Get the currently selected task items static public List <Task> GetSelectedTasks(IVsTaskList2 taskList) { if (taskList == null) { return(null); } int selectedCount = 0; taskList.GetSelectionCount(out selectedCount); if (selectedCount <= 0) { return(null); } IVsEnumTaskItems enumItems; int hr = taskList.EnumSelectedItems(out enumItems); if (hr != 0 || enumItems == null) { return(null); } List <Task> items = new List <Task>(selectedCount); uint[] fetched = { 0 }; IVsTaskItem[] elems = { null }; do { hr = enumItems.Next(1, elems, fetched); if (fetched[0] == 1) { Task task = elems[0] as Task; items.Add(task); // can add null items } }while (hr == 0 && fetched[0] == 1); return(items); }
private void IgnoreSelectedItems(bool ignore) { int hr = VSConstants.S_OK; IVsTaskList2 taskList = _serviceProvider.GetService(typeof(SVsTaskList)) as IVsTaskList2; IVsEnumTaskItems enumerator = null; hr = taskList.EnumSelectedItems(out enumerator); Debug.Assert(hr == VSConstants.S_OK, "EnumSelectedItems did not return S_OK."); IVsTaskItem[] items = new IVsTaskItem[] { null }; uint[] fetched = new uint[] { 0 }; for (enumerator.Reset(); enumerator.Next(1, items, fetched) == VSConstants.S_OK && fetched[0] == 1; /*nothing*/) { Task task = items[0] as Task; if (task != null) { task.Ignored = ignore; } } Refresh(); }
// Get the currently selected task items static public List<Task> GetSelectedTasks(IVsTaskList2 taskList) { if (taskList == null) return null; int selectedCount = 0; taskList.GetSelectionCount(out selectedCount); if (selectedCount <= 0) return null; IVsEnumTaskItems enumItems; int hr = taskList.EnumSelectedItems(out enumItems); if (hr != 0 || enumItems == null) return null; List<Task> items = new List<Task>(selectedCount); uint[] fetched = { 0 }; IVsTaskItem[] elems = { null }; do { hr = enumItems.Next(1, elems, fetched); if (fetched[0] == 1) { Task task = elems[0] as Task; items.Add(task); // can add null items } } while (hr == 0 && fetched[0] == 1); return items; }
public void Release() { taskList = null; // this also disables menu handling }
private IVsTaskList2 taskList; // The global task list object public RootMenu() : base(null, null) { taskList = Common.GetService(typeof(SVsErrorList)) as IVsTaskList2; }