public SymbolItem Add(ISymbol symbol, ISymbol containerType) { var item = new SymbolItem(symbol, this, containerType); _Symbols.Add(item); return(item); }
public SymbolItem Add(Location location) { var item = new SymbolItem(location, this); _Symbols.Add(item); return(item); }
public SymbolItem Add(SyntaxNode node) { var item = new SymbolItem(node, this); _Symbols.Add(item); return(item); }
public SymbolItem Add(ISymbol symbol, bool includeContainerType) { var item = new SymbolItem(symbol, this, includeContainerType); _Symbols.Add(item); return(item); }
void SetupContextMenu(CSharpSymbolContextMenu menu, SymbolItem item) { if (item.SyntaxNode != null) { SetupMenuCommand(item, IconIds.SelectCode, R.CMD_SelectCode, s => { if (s.IsExternal) { s.SyntaxNode.SelectNode(true); } else { s.Container.SemanticContext.View.SelectNode(s.SyntaxNode, true); } }); //SetupMenuCommand(item, KnownImageIds.Copy, "Copy Code", s => Clipboard.SetText(s.SyntaxNode.ToFullString())); item.SetSymbolToSyntaxNode(); } if (item.Symbol != null) { if (item.SyntaxNode == null && item.Symbol.HasSource()) { menu.AddSymbolNodeCommands(); } else { menu.AddSymbolCommands(); } menu.Items.Add(new Separator()); menu.SyntaxNode = item.SyntaxNode; menu.Symbol = item.Symbol; menu.AddAnalysisCommands(); } }
internal static bool FilterByUsage(MemberFilterTypes filterTypes, SymbolItem item) { var m = MemberFilterTypes.None; if (item.Usage.HasAnyFlag(SymbolUsageKind.Usage) == false) { return(false); } if (item.Usage.MatchFlags(SymbolUsageKind.Write)) { m |= MemberFilterTypes.Write; } if (item.Usage.MatchFlags(SymbolUsageKind.TypeCast)) { m |= MemberFilterTypes.TypeCast; } if (item.Usage.HasAnyFlag(SymbolUsageKind.TypeParameter | SymbolUsageKind.Catch)) { m |= MemberFilterTypes.TypeReference; } if (item.Usage.HasAnyFlag(SymbolUsageKind.Delegate | SymbolUsageKind.Attach | SymbolUsageKind.Detach)) { m |= MemberFilterTypes.Read; } return(filterTypes.HasAnyFlag(m)); }
void SetupMenuCommand(SymbolItem item, int imageId, string title, Action <SymbolItem> action) { var mi = new ThemedMenuItem(imageId, title, (s, args) => { var i = (ValueTuple <SymbolItem, Action <SymbolItem> >)((MenuItem)s).Tag; i.Item2(i.Item1); }) { Tag = (item, action) }; ContextMenu.Items.Add(mi); }
void SetupMenuCommand(SymbolItem item, int imageId, string title, Action <SymbolItem> action) { var mi = new ThemedMenuItem { Icon = ThemeHelper.GetImage(imageId), Header = new ThemedMenuText(title), Tag = (item, action) }; mi.Click += (s, args) => { var i = (ValueTuple <SymbolItem, Action <SymbolItem> >)((MenuItem)s).Tag; i.Item2(i.Item1); }; ContextMenu.Items.Add(mi); }
void SetupContextMenu(CSharpSymbolContextMenu menu, SymbolItem item) { if (item.SyntaxNode != null) { SetupMenuCommand(item, KnownImageIds.BlockSelection, "Select Code", s => s.Container.SemanticContext.View.SelectNode(s.SyntaxNode, true)); //SetupMenuCommand(item, KnownImageIds.Copy, "Copy Code", s => Clipboard.SetText(s.SyntaxNode.ToFullString())); item.SetSymbolToSyntaxNode(); } if (item.Symbol != null) { if (item.SyntaxNode == null && item.Symbol.HasSource()) { SetupMenuCommand(item, KnownImageIds.GoToDefinition, "Go to Definition", s => s.Symbol.GoToSource()); SetupMenuCommand(item, KnownImageIds.BlockSelection, "Select Code", s => s.Symbol.GetSyntaxNode().SelectNode(true)); } menu.AddSymbolCommands(); menu.Items.Add(new Separator()); menu.SyntaxNode = item.SyntaxNode; menu.Symbol = item.Symbol; menu.AddAnalysisCommands(); } }
public SymbolItem Add(SymbolItem item) { _Symbols.Add(item); return(item); }