public IPathNode NewItem(IContext context, string path, string itemTypeName, object newItemValue) { if (null == ErrorProvider) { var sp = Locator.Get <IServiceProvider>(); if (null == sp) { throw new ServiceUnavailableException(typeof(IServiceProvider)); } ErrorProvider = new InternalErrorListProvider(sp); } var p = context.DynamicParameters as NewItemParams; var errorCategory = TaskErrorCategory.Error; try { errorCategory = (TaskErrorCategory)Enum.Parse(typeof(TaskErrorCategory), itemTypeName, true); } catch { } var task = new ErrorTask { ErrorCategory = errorCategory, Text = newItemValue.ToString(), Column = p.Column, Line = p.Line, HierarchyItem = GetHeirarchyItemFromSourcePath(context, p.SourcePath), Document = GetDocumentFromSourcePath(context, p.SourcePath) }; task.Navigate += NavigateToTask; ErrorProvider.Tasks.Add(task); ErrorProvider.Show(); var errors = _dte.ToolWindows.ErrorList.ErrorItems; ErrorItem item = errors.Item(errors.Count); if (null != item) { return(new ErrorListItemNodeFactory(item).GetNodeValue()); } return(null); }
public IPathNode NewItem(IContext context, string path, string itemTypeName, object newItemValue) { if (null == ErrorProvider) { var sp = Locator.Get<IServiceProvider>(); if( null == sp ) { throw new ServiceUnavailableException( typeof( IServiceProvider ) ); } ErrorProvider = new InternalErrorListProvider(sp); } var p = context.DynamicParameters as NewItemParams; var errorCategory = TaskErrorCategory.Error; try { errorCategory = (TaskErrorCategory) Enum.Parse(typeof (TaskErrorCategory), itemTypeName, true); } catch { } var task = new ErrorTask { ErrorCategory = errorCategory, Text = newItemValue.ToString(), Column = p.Column, Line = p.Line, HierarchyItem = GetHeirarchyItemFromSourcePath(context, p.SourcePath), Document = GetDocumentFromSourcePath(context, p.SourcePath) }; task.Navigate += NavigateToTask; ErrorProvider.Tasks.Add(task); ErrorProvider.Show(); var errors = _dte.ToolWindows.ErrorList.ErrorItems; ErrorItem item = errors.Item(errors.Count); if (null != item) { return new ErrorListItemNodeFactory(item).GetNodeValue(); } return null; }