public static SourceCodeEditor show(this SourceCodeEditor codeEditor, IO2Trace o2Trace)
 {
     codeEditor.open(o2Trace.file);
     if (o2Trace.lineNumber > 0)
     {
         codeEditor.editor().gotoLine((int)o2Trace.lineNumber - 1);
         //codeViewer.editor().caret_Line();
         codeEditor.editor().caret_Line((int)o2Trace.lineNumber - 1);
         codeEditor.editor().caret_Column((int)o2Trace.columnNumber);
     }
     return(codeEditor);
 }
 public void refresh_AllCodeStreams_TreeView()
 {
     codeStreams.clear();
     codeStreams.add_Nodes(savedMethodStream.CodeStreams, (codeStream) => codeStream.CodeStreamPaths.size() > 0);
     _codeEditor.editor().clearMarkers();
     O2Thread.mtaThread(
         () => {
         codeStreams.selectFirst();
     });
 }
 public static ascx_FindingsViewer set_CodeEditor(this ascx_FindingsViewer findingsViewer, SourceCodeEditor codeEditor)
 {
     findingsViewer._onTraceSelected +=
         (trace) => {
         codeEditor.show(trace);
         findingsViewer.controls <ascx_TraceTreeView>().focus();
     };
     findingsViewer._onFindingSelected +=
         (finding) => {
         findingsViewer.invokeOnThread(
             () => {
             codeEditor.textEditor().LineViewerStyle = ICSharpCode.TextEditor.Document.LineViewerStyle.None;
             codeEditor.open(finding.file);
             //"Going to line: {0}".info(finding.lineNumber);
             codeEditor.editor().gotoLine((int)finding.lineNumber);
         });
         O2Thread.mtaThread(
             () => {
             findingsViewer.sleep(100, false);
             findingsViewer.getResultsTreeView().focus();
         });
     };
     return(findingsViewer);
 }
        public ascx_CodeStreams buildGui()
        {
            //codeViewer = this.add_SourceCodeViewer();
            _codeEditor      = this.add_SourceCodeEditor();
            codeStreams      = _codeEditor.insert_Right().add_GroupBox("All Code Streams").add_TreeView();
            codeStreamViewer = codeStreams.parent().insert_Below().add_GroupBox("Selected Code Stream").add_TreeView();
            //var codeStreamViewer = topPanel.insert_Right().add_TreeView();

            Action <TreeNode, CodeStreamPath> add_CodeStreamPath = null;

            add_CodeStreamPath =
                (treeNode, codeStreamPath) => {
                var newNode = treeNode.add_Node(codeStreamPath);
                foreach (var childPath in codeStreamPath.CodeStreamPaths)
                {
                    add_CodeStreamPath(newNode, childPath);
                }
            };

            Action <TreeView, CodeStreamPath> showCodeStreamPath =
                (treeView, codeStreamPath) => {
                treeView.clear();
                add_CodeStreamPath(treeView.rootNode(), codeStreamPath);
                treeView.expandAll();
                treeView.selectFirst();
            };

            Action <SourceCodeEditor, CodeStreamPath, bool> colorCodePath =
                (codeEditor, codeStreamPath, clearMarkers) =>
            {
                if (codeEditor.getSourceCode().inValid() || codeStreamPath.Line == 0 && codeStreamPath.Column == 0)
                {
                    return;
                }
                try
                {
                    if (clearMarkers)
                    {
                        codeEditor.clearMarkers();
                        codeEditor.caret(codeStreamPath.Line, codeStreamPath.Column);
                    }
                    codeEditor.selectTextWithColor(codeStreamPath.Line,
                                                   codeStreamPath.Column,
                                                   codeStreamPath.Line_End,
                                                   codeStreamPath.Column_End);
                    codeEditor.refresh();
                }
                catch (Exception ex)
                {
                    ex.log();
                }
            };

            Action <SourceCodeEditor, List <CodeStreamPath> > colorCodePaths =
                (codeEditor, codeStreamPaths) => {
                foreach (var codeStreamPath in codeStreamPaths)
                {
                    colorCodePath(codeEditor, codeStreamPath, false);
                }
            };

            Action <TreeView, SourceCodeEditor> set_AfterSelect_SyncWithCodeEditor =
                (treeView, codeEditor) => {
                treeView.afterSelect <CodeStreamPath>(
                    (codeStreamPath) => colorCodePath(codeEditor, codeStreamPath, true));
            };


            set_AfterSelect_SyncWithCodeEditor(codeStreams, _codeEditor.editor());
            set_AfterSelect_SyncWithCodeEditor(codeStreamViewer, _codeEditor.editor());

            codeStreams.afterSelect <CodeStreamPath>(
                (codeStreamPath) => showCodeStreamPath(codeStreamViewer, codeStreamPath));


            codeStreams.beforeExpand <CodeStreamPath>(
                (treeNode, codeStreamPath) => {
                treeNode.add_Nodes(codeStreamPath.CodeStreamPaths, (codeStream) => codeStream.CodeStreamPaths.size() > 0);
            });


            _codeEditor.onClick(
                () => {
                if (savedMethodStream.notNull())
                {
                    _codeEditor.editor().clearMarkers();
                    codeStreamViewer.clear();
                    codeStreams.clear();
                    var line   = _codeEditor.caret().Line + 1;
                    var column = _codeEditor.caret().Column + 1;
                    CodeStreamPath lastMatch = null;
                    foreach (var codeStreamPath in savedMethodStream.CodeStreams)
                    {
                        if (codeStreamPath.Line <= line && codeStreamPath.Line_End >= line &&
                            codeStreamPath.Column <= column && codeStreamPath.Column_End >= column)
                        {
                            codeStreams.add_Node(codeStreamPath);
                            lastMatch = codeStreamPath;
                        }
                    }
                    if (lastMatch.notNull())
                    {
                        showCodeStreamPath(codeStreamViewer, lastMatch);
                        var codeStreamPaths = (from node in codeStreamViewer.allNodes()
                                               select(CodeStreamPath) node.get_Tag()).toList();
                        colorCodePaths(_codeEditor.editor(), codeStreamPaths);
                    }
                    else
                    {
                        refresh_AllCodeStreams_TreeView();
                    }
                }
            });
            return(this);
        }
Пример #5
0
 public static SourceCodeEditor     onFileOpen(this SourceCodeEditor sourceCodeEditor, Action <string> onFileOpen)
 {
     sourceCodeEditor.editor().eFileOpen += onFileOpen;
     return(sourceCodeEditor);
 }
Пример #6
0
 public static SourceCodeEditor     onCompile(this SourceCodeEditor sourceCodeEditor, Action <Assembly> onCompile)
 {
     sourceCodeEditor.editor().eCompile += onCompile;
     return(sourceCodeEditor);
 }