//========================================================================================= public WhereSuggestionBuilder(CodeViewer viewer, IDbInfoProvider infoProvider, string schema, string table) : base(viewer) { this.InfoProvider = infoProvider; this.Schema = schema; this.Table = table; }
public void Setup() { Viewer = new CodeViewer(); Viewer.Language = PredefinedLanguage.MsSql; EditController = new EditingController(Viewer); EditController.ClipboardProxy = new FakeClipboard(); }
private async Task DumpFormatAsync(ExpressionViewModel vm, string msg) => //if () //{ // return ; //} //var retVal = SerializingFormatter.Format( // Interpreter, // true, // Interpreter.GetReturnValue(), // ignoreNull: false, // ignoreClrObj: false, // scopes: AphidObject.GetScopeAncestors(Interpreter.CurrentScope)); //return CodeViewer.Run(() => vm.Value = retVal); await CodeViewer.Run( x => vm.Value = x, await(msg != null ? (Func <Task <string> >)(() => Task.FromResult(msg)) : (() => Task.Run( () => SerializingFormatter.Format( Interpreter, true, Interpreter.GetReturnValue(), ignoreNull: false, ignoreClrObj: false, scopes: AphidObject .GetScopeAncestors(Interpreter.CurrentScope)))))());
public ascx_FolderView buildGui() { var topPanel = this.clear().add_Panel(); CodeViewer = topPanel.title(Title_CodeEditor).add_SourceCodeViewer(); FolderView = topPanel.insert_Left(SplitterDistance, Title_FolderView).add_TreeView(); FolderView.afterSelect <string>( (fileOrFolder) => { if (fileOrFolder.fileExists()) { CodeViewer.open(fileOrFolder); } }); FolderView.beforeExpand <string>((treeNode, path) => loadFolder(treeNode, path)); FolderView.onDrop((fileOrfolder) => { FolderView.clear(); if (fileOrfolder.dirExists()) { loadFolder(FolderView.rootNode(), fileOrfolder); } }); FolderView.add_ContextMenu() .add_MenuItem("Refresh", true, () => refresh()) .add_MenuItem("Open in Windows Explorer", () => FolderView.selected().get_Tag().str().startProcess()); CodeViewer.set_Text("....select file on the left to view its contents here..."); return(this); }
public void showCodeStream() { CodeStream.show(CodeViewer.editor()); CodeStream.show(CodeStreamCodeViewer.editor()); CodeStream.show(CodeStreamTreeView); O2Thread.mtaThread( () => { if (ShowGraphInNewWindow) { if (JoinGraphData.isFalse()) { CodeStreamGraph = O2Gui.open <Panel>("O2 Ast Engine Graph", 400, 400).add_Graph(); } CodeStream.show(CodeStreamGraph); } else { if (JoinGraphData.isFalse()) { CodeStreamGraphPanel.clear(); CodeStreamGraph = CodeStreamGraphPanel.add_Graph(); } CodeStream.show(CodeStreamGraph); } CodeStreamGraphScript.InvocationParameters.add("graph", CodeStreamGraph); }); }
//========================================================================================= public EditQueryRegExBuilder(CodeViewer viewer, IDbInfoProvider infoProvider) : base(viewer) { this.Keywords = new List<string> { "WHERE", "SELECT", "JOIN", "ORDER", "FROM", "AS", "UPDATE", "SET" }; this.InfoProvider = infoProvider; this.DefaultSchema = "dbo"; string sWordDefinition; const string sWordPattern = @"(?:\w+|{0}.*?{1})"; switch (this.Viewer.Language) { case PredefinedLanguage.MySql: sWordDefinition = String.Format(sWordPattern, "`", "`"); break; case PredefinedLanguage.Oracle: case PredefinedLanguage.Access: sWordDefinition = String.Format(sWordPattern, "\"", "\""); break; case PredefinedLanguage.MsSql: default: sWordDefinition = String.Format(sWordPattern, @"\[", @"\]"); break; } const string sFromJoinDefinition = @"(?:from|join|update)\s+"; string sRegexDefinition = string.Format( @"(?<source>(?:(?<schema>{0})\s*\.\s*)?(?<table>{0})(?:\s*(?:AS)?\s*(?<alias>{0}))?)", sWordDefinition); string sRegexMultiple = string.Format(@"{0}{1}(?:\s*,\s*{1})*", sFromJoinDefinition, sRegexDefinition); this.RegexSources = new Regex(sRegexMultiple, RegexOptions.IgnoreCase); }
public void Caret_returns_and_empty_lines() { { //Single caret return at the end of document string sText = "create table t1 (id int)\r\n"; CodeViewer oViewer = new CodeViewer(); oViewer.Text = sText; Assert.AreEqual(oViewer.Document.Count, 2); } { //Two caret returns at the end of document string sText = "create table t1 (id int)\r\n\r\n"; CodeViewer oViewer = new CodeViewer(); oViewer.Text = sText; Assert.AreEqual(oViewer.Document.Count, 3); Assert.AreEqual(oViewer.Document[1].Text, string.Empty); Assert.AreEqual(oViewer.Document[2].Text, string.Empty); } { //Last line is empty but next to last contains tab string sText = "create table t1 (id int)\r\n\t\r\n"; CodeViewer oViewer = new CodeViewer(); oViewer.Text = sText; Assert.AreEqual(oViewer.Document.Count, 3); Assert.AreEqual(oViewer.Document[1].Text, "\t"); Assert.AreEqual(oViewer.Document[2].Text, string.Empty); } }
private void CreateInterpreterThread() { _interpreterThread = new Thread(() => { while (true) { _interpreterReset.WaitOne(); if (IsMultiLine) { ExecuteStatements(Code); } else { var c = Code; CodeViewer.BeginInvoke(() => Code = ""); ExecuteExpression(c); } CodeViewer.BeginInvoke(() => { Status = "Done"; IsExecuting = false; _callback?.Invoke(); }); } }) { IsBackground = true }; _interpreterThread.Start(); }
public AphidReplViewModel(CodeViewer outputTextBox) { _configProperties = new Lazy <string[]>(() => GetType() .GetMembers() .Where(x => x.GetCustomAttributes(typeof(SettingAttribute), true).Length > 0) .Select(x => x.Name) .ToArray()); //var type = new DynamicDataClassExtractor<AphidReplViewModel, SettingAttribute>().InstantiatePopulated(this, "AphidUIConfig"); //using (var s = new MemoryStream()) //{ // var serializer = new XmlSerializer(type.GetType()); // serializer.Serialize(s, type); // s.Position = 0; // var type2= serializer.Deserialize(s); //} Code = ""; Status = "Ready"; IsMultiLine = false; IsExecuting = false; LineOptionVisibility = Visibility.Visible; CodeViewer = outputTextBox; CodeViewer.Document.Blocks.Clear(); Expressions.CollectionChanged += Expressions_CollectionChanged; InitInterpreter(); PropertyChanged += AphidReplViewModel_PropertyChanged; }
public void Change_selection() { this.Viewer = new CodeViewer(); this.Viewer.Text = "\t \tselect\r\n'Привет!';"; //Select the whole document this.Viewer.Caret.MoveDocHome(true); this.Viewer.Caret.MoveDocEnd(false); this.AssertSelection(1, 10, 0, 0); }
//========================================================================================= public CodeViewerTokenIndexTests() { this.Viewer = new CodeViewer(); this.Viewer.Language = PredefinedLanguage.MsSql; var oTestProvider = new TestDbInfoProvider(); var oSuggestionBuilder = new EditQueryRegExBuilder(this.Viewer, oTestProvider); this.Viewer.UseSuggestionRules(oSuggestionBuilder); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); CodeViewer window = new CodeViewer(); window.DefinitionsPath = Path.Combine(Application.StartupPath, "..\\..\\..\\Core\\Entities\\Definitions.xml"); Application.Run(window); }
//========================================================================================= public RendererTests() { this.Viewer = new CodeViewer(); this.Viewer.Language = PredefinedLanguage.MsSql; this.Viewer.Size = new Size(400, 400); Bitmap oBitmap = new Bitmap(1, 1); this.MyGraphics = Graphics.FromImage(oBitmap); }
public void Change_font() { CodeViewer oViewer = new CodeViewer(); oViewer.Language = PredefinedLanguage.MsSql; oViewer.Text = Script; Assert.AreEqual(oViewer.Font.Name, "Consolas"); oViewer.Body.Font = new Font("Arial", 12); Assert.AreEqual(oViewer.Font.Name, "Arial"); }
public UndoRedoManager(CodeViewer viewer, EditingController editingController) { Viewer = viewer; EditingController = editingController; Caret = Viewer.Caret; Doc = Viewer.Document; Operations = new Stack <UndoRedoOperation>(); UndoneOperations = new Stack <UndoRedoOperation>(); StartNewUndoRedoOperation(); }
//========================================================================================= /// <summary>Связывает класс с CodeViewer'ом устанавливая требуемые связи.</summary> public void LinkWithViewer(CodeViewer viewer) { this.Viewer = viewer; this.Viewer.CodeCompletor = this; if (this.Viewer.ParentForm != null) { this.Viewer.ParentForm.Move += new EventHandler(ParentForm_Move); this.Viewer.ParentForm.Deactivate += new EventHandler(ParentForm_Deactivate); } }
public void set_Text(string codeToLoad, string extension, bool createMethodStream) { if (createMethodStream) { loadFile(codeToLoad.saveWithExtension(extension)); } else { CodeViewer.set_Text(codeToLoad, extension); } }
public void Tabs_and_spaces() { { this.Viewer = new CodeViewer(); this.Viewer.Language = PredefinedLanguage.MsSql; this.Viewer.Text = "\t \tselect"; var oToken = this.Viewer.Tokens[0]; Assert.AreEqual(oToken.Start.Col, 8); Assert.AreEqual(oToken.Start.Char, 3); } }
//========================================================================================= public CodeCompletorTestsExtra() { this.Viewer = new CodeViewer(); this.Viewer.Language = PredefinedLanguage.MsSql; var oTestProvider = new TestDbInfoProvider(); var oSugBuilder = new EditQueryRegExBuilder(Viewer, oTestProvider); oSugBuilder.DefaultSchema = "Schema_Second"; this.Viewer.UseSuggestionRules(oSugBuilder); }
public void Change_tab_size() { this.Viewer = new CodeViewer(); this.Viewer.Language = PredefinedLanguage.MsSql; this.Viewer.Text = "\tselect\r\n\t \t'a'"; this.AssertPoint(this.Viewer.Tokens[0].Start, 0, 1, 4); this.AssertPoint(this.Viewer.Tokens[1].Start, 1, 3, 8); //Change Tab Size and check token positions this.Viewer.TabSize = 7; this.AssertPoint(this.Viewer.Tokens[0].Start, 0, 1, 7); this.AssertPoint(this.Viewer.Tokens[1].Start, 1, 3, 14); }
public AphidReplViewModel(CodeViewer outputTextBox) { Code = ""; Status = "Ready"; IsMultiLine = false; IsExecuting = false; LineOptionVisibility = Visibility.Visible; _codeViewer = outputTextBox; _codeViewer.Document.Blocks.Clear(); _expressions.CollectionChanged += Expressions_CollectionChanged; InitInterpreter(); }
public Thread saveEditorContents() { if (MethodStreamFile.fileExists() && MethodStreamFile.contains("".tempDir())) { "deleting previous temp temp file: {0}".info(MethodStreamFile); Files.deleteFile(MethodStreamFile); // delete previous file since we don't need it anymore } "saving editor contents: {0}".info(MethodStreamFile); var code = CodeViewer.get_Text(); MethodStreamFile = code.saveWithExtension(".cs"); return(processCodeViewerContents()); }
private void CreateWindow(CodeLocation codeLocation, string identifier, string caption) { var codeViewer = new CodeViewer(codeLocation); var window = windowManager.Add(identifier, codeViewer, caption); window.FormClosed += (s1, e1) => openWindows.Remove(identifier); windowManager.Show(identifier); openWindows.Add(identifier); }
public void Getting_style_by_name() { CodeViewer oViewer = new CodeViewer(); oViewer.Language = PredefinedLanguage.MsSql; oViewer.Text = Script; SyntaxSettings oSettings = oViewer.SyntaxSettings; TextStyle oStyle = oSettings.GetStyleByName(SyntaxSettings.S_KEYWORDS_1); Assert.AreEqual(oStyle.ForeColor, Color.Blue); }
public void createMethodStream(IMethod iMethod) { MethodStream = AstEngine.AstData.createO2MethodStream(iMethod); MethodStreamFile = MethodStream.csharpCode().saveWithExtension(".cs"); CodeViewer.open(MethodStreamFile); CodeStreamCodeViewer.open(MethodStreamFile); if (AstData_MethodStream.notNull()) { AstData_MethodStream.Dispose(); } AstData_MethodStream = new O2MappedAstData(); AstData_MethodStream.loadFile(MethodStreamFile); }
public void Select_the_whole_document() { this.Viewer = new CodeViewer(); this.Viewer.Text = @"Create table [T 1](--xxxxxxx x int, y1 int ) "; this.Viewer.Caret.MoveDocHome(true); this.Viewer.SelectAll(); this.AssertSelection(4, 0, 0, 0); this.Viewer.Caret.MoveToPos(2, 0, true); this.Viewer.SelectAll(); this.AssertSelection(4, 0, 0, 0); }
private void UpdateVariables() { var variables = Interpreter.CurrentScope .Select(x => new VariableViewModel() { Name = x.Key, Value = x.Value?.Value, }) .ToArray(); CodeViewer.BeginInvoke(() => { Variables.Clear(); variables.For(Variables.Add); }); }
public void Linking() { CodeViewer oViewer = new CodeViewer(); Assert.IsNull(oViewer.CodeCompletor); oViewer.ReadOnly = false; Assert.IsNull(oViewer.CodeCompletor); TestDbInfoProvider oTestProvider = new TestDbInfoProvider(); var oSuggestionBuilder = new EditQueryRegExBuilder(oViewer, oTestProvider); oViewer.UseSuggestionRules(oSuggestionBuilder); Assert.IsNotNull(oViewer.CodeCompletor); Assert.IsNotNull(oViewer.CodeCompletor.Builder); Assert.AreEqual(oSuggestionBuilder, oViewer.CodeCompletor.Builder); }
public void CheckEvent_SelectionChanged() { int iCounter = 0, iHasSelectionCounter = 0; this.Viewer = new CodeViewer(); this.Viewer.Text = @"Create table [T 1](id int)"; this.Viewer.Caret.MoveDocHome(true); this.Viewer.SelectionChange += (sender, e) => { iCounter++; if (this.Viewer.SelectionExists) { iHasSelectionCounter++; } }; //Move caret left this.Viewer.Caret.MoveRight(false); Assert.AreEqual(1, iCounter); Assert.AreEqual(1, iHasSelectionCounter); //Go to the end of document this.Viewer.Caret.MoveDocEnd(true); Assert.AreEqual(2, iCounter); Assert.AreEqual(1, iHasSelectionCounter); //Go to the specified position this.Viewer.Caret.MoveToPos(0, 3, true); Assert.AreEqual(3, iCounter); Assert.AreEqual(1, iHasSelectionCounter); //Repeate previous movement. Event should not be generated. this.Viewer.Caret.MoveToPos(0, 3, false); Assert.AreEqual(3, iCounter); Assert.AreEqual(1, iHasSelectionCounter); //Go to the start of line this.Viewer.Caret.MoveLineHome(true); Assert.AreEqual(4, iCounter); Assert.AreEqual(1, iHasSelectionCounter); }
public void createAndShowCodeStream(INode iNode) { try { if (iNode != null) { CodeViewer.editor().caret(iNode.StartLocation.Line, iNode.StartLocation.Column); CodeViewer.editor().selectTextWithColor(iNode); var codeStream = AstData_MethodStream.createO2CodeStream(TaintRules, MethodStreamFile, iNode); //var codeStream = AstData_MethodStream.createO2CodeStream(MethodStreamFile,iNode); if (codeStream.hasPaths()) { showCodeStream(codeStream); } } } catch (Exception ex) { ex.log("in createAndShowCodeStream"); } }
public void Stop() { IsExecuting = false; Task.Run(() => { if (_interpreterThread != null) { try { _interpreterThread.Abort(); } catch { } _interpreterThread = null; } CodeViewer.AppendOutput("Stopped"); CodeViewer.BeginInvoke(() => Status = "Script stopped"); }); }
//========================================================================================= public EditingController(CodeViewer viewer) { this.Viewer = viewer; this.Doc = viewer.Document; }
//========================================================================================= public SuggestionBuilder(CodeViewer viewer) { this.Viewer = viewer; }