public static SourceCodeEditor caret_Column(this SourceCodeEditor codeEditor, int value, int viewOffset) { return(codeEditor.invokeOnThread( () => { codeEditor.caret().Column = value + viewOffset; // so that the selected line is not at the bottom of the screen codeEditor.caret().Column = value; return codeEditor; })); }
public static SourceCodeEditor caret(this SourceCodeEditor codeEditor, int line, int column, int viewOffset) { return(codeEditor.invokeOnThread( () => { codeEditor.caret().Line = line - 1 + viewOffset; // so that the selected line is not at the bottom of the screen codeEditor.caret().Line = line - 1; codeEditor.caret().Column = column - 1; return codeEditor; })); }
public static SourceCodeEditor onCaretMove(this SourceCodeEditor codeEditor, Action <Caret> callback) { codeEditor.textArea().Caret.PositionChanged += (sender, e) => { if (codeEditor.notNull()) { callback(codeEditor.caret()); } }; return(codeEditor); }
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); }
public static SourceCodeEditor caret(this SourceCodeEditor codeEditor, int line, int column) { return(codeEditor.caret(line, column, 3)); }