Exemplo n.º 1
0
 private void rPGConversionToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (this.LastEditing.Tag != null)
     {
         Member      MemberInfo = (Member)this.LastEditing.Tag;
         ILELanguage Language   = GetBoundLangType(MemberInfo.GetExtension());
         if (Language == ILELanguage.RPG)
         {
             SetStatus("Converting RPG in " + MemberInfo.GetMember());
             LastEditing.ConvertSelectedRPG();
         }
     }
 }
Exemplo n.º 2
0
 private void cLFormatterToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (this.LastEditing.Tag != null)
     {
         Member      MemberInfo = (Member)this.LastEditing.Tag;
         ILELanguage Language   = Editor.GetBoundLangType(MemberInfo.GetExtension());
         if (Language == ILELanguage.CL)
         {
             SetStatus("Formatting CL in " + MemberInfo.GetMember());
             LastEditing.FormatCL();
         }
     }
 }
Exemplo n.º 3
0
        private void AddMemberEditor(Member MemberInfo, ILELanguage Language = ILELanguage.None)
        {
            string  pageName   = MemberInfo.GetLibrary() + "/" + MemberInfo.GetObject() + "(" + MemberInfo.GetMember() + ")";
            OpenTab currentTab = EditorContains(pageName);

            if (File.Exists(MemberInfo.GetLocalFile()))
            {
                //Close tab if it already exists.
                if (currentTab != null)
                {
                    switch (currentTab.getSide())
                    {
                    case OpenTab.TAB_SIDE.Left:
                        editortabsleft.TabPages.RemoveAt(currentTab.getIndex());
                        break;

                    case OpenTab.TAB_SIDE.Right:
                        editortabsright.TabPages.RemoveAt(currentTab.getIndex());
                        break;
                    }
                }

                TabPage tabPage = new TabPage(pageName);
                tabPage.ImageIndex  = 0;
                tabPage.ToolTipText = MemberInfo.GetLibrary() + "/" + MemberInfo.GetObject() + "(" + MemberInfo.GetMember() + ")";
                SourceEditor srcEdit = new SourceEditor(MemberInfo.GetLocalFile(), Language, MemberInfo.GetRecordLength());
                srcEdit.SetReadOnly(!MemberInfo.IsEditable());
                srcEdit.BringToFront();
                srcEdit.Dock = DockStyle.Fill;
                srcEdit.Tag  = MemberInfo;

                tabPage.Tag = MemberInfo;
                tabPage.Controls.Add(srcEdit);
                editortabsleft.TabPages.Add(tabPage);

                SwitchToTab(OpenTab.TAB_SIDE.Left, editortabsleft.TabPages.Count - 1);
            }
            else
            {
                MessageBox.Show("There was an error opening the local member. '" + MemberInfo.GetLocalFile() + "' does not exist");
            }
        }
Exemplo n.º 4
0
        public SourceEditor(String LocalFile, ILELanguage Language = ILELanguage.None, int RecordLength = 0)
        {
            InitializeComponent();

            //https://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting

            this.Language = Language;
            this.RcdLen   = RecordLength;

            textEditor = new TextEditor();
            textEditor.ShowLineNumbers = true;
            //textEditor.Encoding = Encoding.GetEncoding(1252);
            //textEditor.Encoding = Encoding.GetEncoding(28591);
            //textEditor.Encoding = Encoding.GetEncoding("IBM437");
            textEditor.Encoding = Encoding.GetEncoding("iso-8859-1");
            textEditor.Text     = File.ReadAllText(LocalFile, textEditor.Encoding);

            textEditor.FontFamily = new System.Windows.Media.FontFamily(IBMi.CurrentSystem.GetValue("FONT"));
            textEditor.FontSize   = float.Parse(IBMi.CurrentSystem.GetValue("ZOOM"));

            textEditor.TextChanged += TextEditor_TextChanged;
            textEditor.TextArea.Caret.PositionChanged += TextEditorTextAreaCaret_PositionChanged;
            textEditor.GotFocus += TextEditor_GotFocus;

            textEditor.Options.ConvertTabsToSpaces  = true;
            textEditor.Options.EnableTextDragDrop   = false;
            textEditor.Options.IndentationSize      = int.Parse(IBMi.CurrentSystem.GetValue("INDENT_SIZE"));
            textEditor.Options.ShowSpaces           = (IBMi.CurrentSystem.GetValue("SHOW_SPACES") == "true");
            textEditor.Options.HighlightCurrentLine = (IBMi.CurrentSystem.GetValue("HIGHLIGHT_CURRENT_LINE") == "true");

            textEditor.Options.AllowScrollBelowDocument = true;

            if (this.RcdLen > 0)
            {
                textEditor.Options.ShowColumnRuler     = true;
                textEditor.Options.ColumnRulerPosition = this.RcdLen;
            }

            //SearchPanel.Install(textEditor);
            SearchReplacePanel.Install(textEditor);

            string lang     = "";
            bool   DarkMode = (Program.Config.GetValue("darkmode") == "true");

            if (DarkMode)
            {
                lang += "dark";
            }
            else
            {
                lang += "light";
            }

            switch (Language)
            {
            case ILELanguage.RPG:
                lang += "RPG";
                break;

            case ILELanguage.SQL:
                lang += "SQL";
                break;

            case ILELanguage.CPP:
                lang += "CPP";
                break;

            case ILELanguage.CL:
                lang += "CL";
                break;

            case ILELanguage.COBOL:
                lang += "COBOL";
                break;

            case ILELanguage.None:
                lang = "";
                break;
            }

            if (DarkMode)
            {
                textEditor.Background = (SolidColorBrush) new BrushConverter().ConvertFromString("#1E1E1E");
                textEditor.Foreground = System.Windows.Media.Brushes.White;
            }

            if (lang != "")
            {
                using (Stream s = new MemoryStream(Encoding.ASCII.GetBytes(Properties.Resources.ResourceManager.GetString(lang))))
                    using (XmlTextReader reader = new XmlTextReader(s))
                        textEditor.SyntaxHighlighting = HighlightingLoader.Load(reader, HighlightingManager.Instance);
            }

            ElementHost host = new ElementHost();

            host.Dock  = DockStyle.Fill;
            host.Child = textEditor;
            this.Controls.Add(host);
        }