private TextViewModel CreateNode(params string[] lines) { var fmt = new TextSpanFormatter(); foreach (var line in lines) { fmt.WriteLine(line); } return fmt.GetModel(); }
private string Flatten(TextSpanFormatter tsf) { var model = tsf.GetModel(); var sb= new StringBuilder(); var lines = model.GetLineSpans(model.LineCount); foreach (var line in lines) { foreach (var span in line.TextSpans) { EmitSpanWrapper(span, sb); sb.Append(span.GetText()); EmitSpanWrapper(span, sb); } sb.AppendLine(); } return sb.ToString(); }
public void DisplaySegment(ImageSegment segment, Program program) { try { if (segmentView == null || segment == null || segment.Designer == null) return; this.program = program; var tsf = new TextSpanFormatter(); segment.Designer.Render( segment, program, tsf); this.segmentView.TextView.Model = tsf.GetModel(); } catch { } }
public void DisplaySegment(ImageSegment segment, Program program) { try { if (segmentView == null || segment == null || segment.Designer == null) { return; } this.program = program; var tsf = new TextSpanFormatter(); segment.Designer.Render( segment, program, tsf); this.segmentView.TextView.Model = tsf.GetModel(); } catch { } }
public void DisplayProcedure(Procedure proc) { if (codeView == null || proc == null) return; this.proc = proc; var tsf = new TextSpanFormatter(); var fmt = new CodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; fmt.Write(proc); this.TextView.Model = tsf.GetModel(); }
private void SetTextView(Procedure proc) { var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; fmt.Write(proc); this.TextView.Model = tsf.GetModel(); }
private TextViewModel GenerateTextModel(Block b) { var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); var procf = new ProcedureFormatter(b.Procedure, fmt); fmt.InnerFormatter.UseTabs = false; procf.WriteBlock(b, fmt); return tsf.GetModel(); }
private void CreateNestedTextModel() { this.nestedTextModel = new NestedTextModel(); var mixedCodeDataModel = combinedCodeView.MixedCodeDataView.Model as MixedCodeDataModel; if (mixedCodeDataModel == null) return; var dataItemNodes = mixedCodeDataModel.GetDataItemNodes(); this.nodeByAddress = new SortedList<Address, MixedCodeDataModel.DataItemNode>(); foreach (var dataItemNode in dataItemNodes) { var curAddr = dataItemNode.StartAddress; bool nodeCreated = false; ImageMapItem item; Procedure proc = dataItemNode.Proc; if (ShowItem(dataItemNode)) { if (proc != null) { var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; fmt.Write(proc); //$TODO: make spacing between globals / procedures user adjustable tsf.WriteLine(""); tsf.WriteLine(""); nestedTextModel.Nodes.Add(tsf.GetModel()); nodeCreated = true; } else if (program.ImageMap.TryFindItem(curAddr, out item) && item.DataType != null && !(item.DataType is UnknownType)) { var dt = item.DataType; var name = item.Name ?? "<unnamed>"; var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; var gdw = new GlobalDataWriter(program, services); gdw.WriteGlobalVariable(curAddr, dt, name, tsf); //$TODO: make spacing between globals / procedures user adjustable tsf.WriteLine(""); nestedTextModel.Nodes.Add(tsf.GetModel()); nodeCreated = true; } } if (nodeCreated) { dataItemNode.ModelNode = nestedTextModel.Nodes.Last(); this.nodeByAddress[curAddr] = dataItemNode; } } combinedCodeView.CodeView.Model = nestedTextModel; }
private void SetTextView(DataType dt) { var tsf = new TextSpanFormatter() { Indentation = 0 }; var fmt = new TypeFormatter(tsf, false); tsf.UseTabs = false; fmt.Write(dt, ""); this.TextView.Model = tsf.GetModel(); }
private void CreateNestedTextModel() { this.nestedTextModel = new NestedTextModel(); var mixedCodeDataModel = combinedCodeView.MixedCodeDataView.Model as MixedCodeDataModel; if (mixedCodeDataModel == null) { return; } var dataItemNodes = mixedCodeDataModel.GetDataItemNodes(); this.nodeByAddress = new SortedList <Address, MixedCodeDataModel.DataItemNode>(); foreach (var dataItemNode in dataItemNodes) { var curAddr = dataItemNode.StartAddress; bool nodeCreated = false; ImageMapItem item; Procedure proc = dataItemNode.Proc; if (ShowItem(dataItemNode)) { if (proc != null) { var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; fmt.Write(proc); //$TODO: make spacing between globals / procedures user adjustable tsf.WriteLine(""); tsf.WriteLine(""); nestedTextModel.Nodes.Add(tsf.GetModel()); nodeCreated = true; } else if (program.ImageMap.TryFindItem(curAddr, out item) && item.DataType != null && !(item.DataType is UnknownType)) { var dt = item.DataType; var name = item.Name ?? "<unnamed>"; var tsf = new TextSpanFormatter(); var fmt = new AbsynCodeFormatter(tsf); fmt.InnerFormatter.UseTabs = false; var gdw = new GlobalDataWriter(program, services); gdw.WriteGlobalVariable(curAddr, dt, name, tsf); //$TODO: make spacing between globals / procedures user adjustable tsf.WriteLine(""); nestedTextModel.Nodes.Add(tsf.GetModel()); nodeCreated = true; } } if (nodeCreated) { dataItemNode.ModelNode = nestedTextModel.Nodes.Last(); this.nodeByAddress[curAddr] = dataItemNode; } } combinedCodeView.CodeView.Model = nestedTextModel; }