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(); } } }
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(); } } }
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"); } }
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); }