public override void Execute(TVContext context) { int secretNum = new Random().Next() % 10; MsgBox.Instance.Ask <int?>("Number", null, "Guess a number", null, s => { int num; if (string.IsNullOrWhiteSpace(s)) { return("Enter a number"); } if (!int.TryParse(s, out num)) { return("Not an integer"); } if (num == 42) { return("Nope!"); } if (num != secretNum) { return("WRONG!!!"); } return(string.Empty); }); }
IMDTokenNode GetTokenNode(TVContext context) { if (context.Nodes.Length == 0) { return(null); } return(context.Nodes[0] as IMDTokenNode); }
public override string GetHeader(TVContext context) { var node = GetTokenNode(context); if (node == null) { return(string.Empty); } return($"Copy token {node.Reference.MDToken.Raw:X8}"); }
public override void Execute(TVContext context) { var instr = GetSecondInstruction(context); if (instr != null) { try { Clipboard.SetText($"Second instruction: {instr}"); } catch (ExternalException) { } } }
public override void Execute(TVContext context) { var node = GetTokenNode(context); if (node != null) { try { Clipboard.SetText($"{node.Reference.MDToken.Raw:X8}"); } catch (ExternalException) { } } }
Instruction GetSecondInstruction(TVContext context) { if (context.Nodes.Length == 0) { return(null); } var methNode = context.Nodes[0] as MethodNode; if (methNode == null) { return(null); } var body = methNode.MethodDef.Body; if (body == null || body.Instructions.Count < 2) { return(null); } return(body.Instructions[1]); }
public override bool IsVisible(TVContext context) => context.Nodes.Length > 0;
public override void Execute(TVContext context) => MsgBox.Instance.Show("Command #2");
public override bool IsEnabled(TVContext context) => context.Nodes.Length > 1;
public override bool IsEnabled(TVContext context) => GetSecondInstruction(context) != null;
public override bool IsVisible(TVContext context) => GetTokenNode(context) != null;
public override bool IsEnabled(TVContext context) => context.Nodes.Length == 1 && context.Nodes[0] is ModuleDocumentNode;
public override bool IsEnabled(TVContext context) => context.Nodes.Length == 1 && context.Nodes[0] is IModuleFileNode;
public override bool IsEnabled(TVContext context) => !(GetSecondInstruction(context) is null);
public override bool IsVisible(TVContext context) => !(GetTokenNode(context) is null);