//=========================================================================================
 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();
 }
Beispiel #3
0
        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 WhereSuggestionBuilder(CodeViewer viewer, IDbInfoProvider infoProvider, string schema, string table)
			: base(viewer)
		{
			this.InfoProvider = infoProvider;
			this.Schema = schema;
			this.Table = table;
		}
Beispiel #6
0
            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);
		}
Beispiel #8
0
 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);
     }
 }
Beispiel #9
0
        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();
        }
Beispiel #10
0
        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;
        }
Beispiel #11
0
 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);
 }
Beispiel #12
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);
        }
Beispiel #13
0
        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();
        }
Beispiel #17
0
        //=========================================================================================
        /// <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);
            }
        }
Beispiel #18
0
		//=========================================================================================
		/// <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);
			}
		}
Beispiel #19
0
 public void set_Text(string codeToLoad, string extension, bool createMethodStream)
 {
     if (createMethodStream)
     {
         loadFile(codeToLoad.saveWithExtension(extension));
     }
     else
     {
         CodeViewer.set_Text(codeToLoad, extension);
     }
 }
Beispiel #20
0
 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);
        }
Beispiel #22
0
 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);
 }
Beispiel #23
0
 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();
 }
Beispiel #24
0
 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();
 }
Beispiel #25
0
        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());
        }
Beispiel #26
0
        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);
        }
Beispiel #28
0
            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);
            }
Beispiel #29
0
        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);
        }
Beispiel #30
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);
            });
        }
Beispiel #31
0
        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);
        }
Beispiel #32
0
        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);
        }
Beispiel #33
0
 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");
     }
 }
Beispiel #34
0
        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;
 }